Fork me on GitHub

虎牙平台数据驱动业务实践,破局在即!

以下文章来源于 https://zhuanlan.zhihu.com/p/671192469

导读 虎牙作为内容供给平台,有典型因果推断应用的业务场景。今天结合业务场景给大家分享虎牙的实验科学平台的实践案例。

今天的介绍会围绕下面五点展开:

  1. 虎牙的数据赋能挑战

  2. 实验文化与平台能力建设

  3. 结合场景服务扩展

  4. 总结与回顾

  5. 问答环节

分享嘉宾|黄琨 虎牙 数据科学家

内容校对|李瑶

出品社区|DataFun

01虎牙的数据赋能挑战



首先,虎牙是一个内容供给平台,常见的业务诉求包括增长、内容、推荐等。以外部广告投放促进增长为例:如果我们不进行拉新,那么新用户会减少多少,这就是一个典型的因果推断问题。



因果推断是探讨变量之间因果关系的科学方法,存在三个层级。第一层是关联,是指两个或多个变量之间存在的统计联系;第二层是干预,指的是行为对结果影响;第三层是反事实,如果希望达成指定结果,具体需要做什么。从浅入深,是一个从指标描述,到科学度量,再到数据驱动的过程。在实际的业务中,数据团队的核心价值在于科学度量和数据驱动。



在业务应用的过程中,如何实现科学度量与数据驱动?以广告拉新场景为例,根据因果推断的理论,可以画出一个有向循环图。我们的目标是用较少的广告曝光带来更多的新客。实际的应用过程中,会有些混淆因子,比如厂商会将站外搜索作为是否干预的一个重要考量因素。如果你搜索过虎牙,他会更愿意做虎牙广告的曝光,这时因广告引流到虎牙的新增就不一定是纯粹的新用户增量。所以如果我们单纯依赖从干预到最终标签的转化比例来计算贡献效益会存在一些问题,会对最终的结论带来偏差。

要解决上述问题,大部分情况是通过 AB Test 来切断从搜索过虎牙到展示广告的联系,这样就可以客观地去观测从展示广告到成为新客的转化情况。但是 AB Test 本身也有局限性。此场景中,广告是外部数据,通过内部系统,是没法去做 AB Test 的,只有广告平台才具备做 AB Test 的能力。



在实际的业务过程中,有很多问题是 AB Test 解决不了的。在虎牙的具体的场景里,即使在同一个业务中,有些问题可以通过实验来解决,而有些则不能。这些实验解决不了的问题,有可能不是实验问题,比如对大盘 DAU 增量的预估,对未来营收的预估;还有一些可能是因为目前的架构不具备这个实验能力,比如一些前端展示的流实验可能不具备分流能力,尤其是主播端的实验;还有可能是因为当前流量太小了,很难去得到明确实验结论。

02实验文化与平台能力建设

1. 虎牙实验平台建设的三个阶段



虎牙实验平台的建设,经历了三个阶段。第一个阶段是实验文化建立和推广,第二个阶段是实验效率提升,第三个是我们现在正处于的阶段,扩展实验平台可支撑的服务边界,不断地去完善自身的阶段。

2. 新手敲门砖:典型案例



虎牙刚开始做实验平台的时候,我们比较理想的 AB 实验的过程是:数据科学团队在事前参与实验方案设计,事中进行策略异动监控,事后有一套简洁有效的指标体系去帮助业务直观的复盘。但实际上业务对 AB 更多的诉求是,有一个大而全的指标体系,还能提供显著性的看数平台。所以会出现这样的问题:一个实验里可能会出现多达上百个指标,且大部分指标对其他实验毫无帮助。这就导致了指标复用性差,可读性差。用户看了一大堆指标,有些显著,有些不显著,不知道应该如何解读这个实验数据。这种指标体系虽然也能帮助到用户,但是没有最大限度地实现平台的价值。针对刚接触实验的初阶用户,我们的解法是通过典型案例作为实验的敲门砖,从而建立信任与合作关系,帮助用户深入业务场景。进而针对这个业务场景,构成简单而有效的指标体系、标准化实验和复盘流程。

3. 进阶用户的实验提效



当通过典型案例入门后,用户会形成一定的实验习惯。平台怎样进一步完善自身的能力,帮助用户实验提效呢?提升效率,主要分为三个方面:

(1)指标的制作效率。目的是减少从有实验需求到有指标可看的时间。虎牙的很多业务指标,可能是在数据的同学接到需求之后开发的。我们给出的解决方案是,一方面提供清晰可复用的指标解决存量指标引用,另一方面是形成比较便捷的生产模式弥补新指标缺失。

(2)实验的检验效率。包括两部分:第一部分是降低做决错误决策的概率,实际上主要是假阳性的控制;第二部分是检验效率的提升和完善检验能力。

(3)复盘的效率。用户不需要通过数据同学的专项支撑,自己即可快速地从实验平台的实验结果得到正确结论。

4. 虎牙落地的实验方法效果分享



这里简单分享一些比较有用的实验方法的落地情况。

(1)多重检验的落地。在做传统 t 检验时,假如它的分流是相互独立的,同一个实验在实验组数上升的时候,假阳性会大幅上升。例如,传统t检验实验在 n=4 的时候,任意一组假阳的概率达到了 16%。如果用业界常用的多种检验方法,可以有效地降低假阳性到 5% 的区间。实际应用的时候,还应该关注二类错误这个指标。二类错误是指它本身是有效的,但是我们检验不出来。图中第二组的情况是一个比较极端的例子,虽然它的假阳性得到了极端的控制,但是其二类错误将近 40%。在这里,有些同学会一次性开很多组实验,验证很多种想法。将参数刚好调到某个区间就认为策略是有效的。这样是有问题的,值得大家关注。

(2)实验观测机制落地。实际的用户会比其他人更为关注自己做的实验,每天都去关注实验是否有显著。当发现哪天显著了,就认为确实是由自己的策略起作用带来的。这是一个典型的偷瞄,提前去做决策的现象。我们在给定一个实验方案,比如规定实验要做满七天,把第七天的显著性作为判断标准,那么它的假阳性就是 5%。而这种每天关注的偷瞄,提前给实验结果做判断的做法,从实验的复盘上假阳性会达到 20%。在每天偷瞄的情况下,要定义一个合适的推全规则去控制假阳性,大概的方案就是针对不同的实验天数,分别需要有多少天的显著。

(3)CUPED 方法,是在业界比较常用且行之有效的提高指标灵敏的方法。在虎牙的主要应用效果,是把一些不显著的实验在实验期内变得显著。我们对效果进行了复盘,主要是集中在流量比较少的场景。

03结合场景服务扩展

这一章节将结合场景来介绍虎牙的实验平台是如何去做服务能力扩展的。



举一个拉活的例子,拉活就是把外部用户通过点击广告变成虎牙的活跃用户的过程,其目标就是做 DAU 的增量。



拉活比较关键的技术是 RTA(Real Time API)。RTA 可以解决人群包在更新延迟下,过滤非目标用户的问题。这里的非目标用户包括当日活跃过的用户和当日已点击的用户等。因为已活跃过的用户再拉活,是不贡献额外的 DAU 增量的,而已点击广告的用户也存在类似问题。

在接入了 RTA 技术之后,预期会有一些指标变化,比如重复点击次数、拉起率会下降,而核心指标如 ΔDAU 等则持平。我们希望有效降低重复点击次数,在降成本的基础上,保持原来的 DAU,从而提升整体场景的 ROI(投资回报率)。我们做的投放,每天都有一定的预算。除了关心这些指标之外,我们还会关注该策略是否会带来整体广告拉活量的大幅下降。



接入 RTA 后,过滤了非目标用户,一系列的指标都变成负向的,这是符合预期的。而我们关注的目标用户(人群包内没有启动过的用户)里大部分指标是持平的。这里出现了一个很诡异的指标,就是次留(次日留存)变成了负向。我们需要结合场景特性,分析指标下降是否有问题。接入 RTA 后,我们不仅过滤当日的目标用户,也过滤了次日的目标用户,也就是策略会存在当日拉活了,第二天还继续拉活的问题。第二天的重复拉活会导致次留指标的显著提升。所以我们针对这个实验调整了次留指标的口径,剔除拉活首启的用户,这样次留的负向就消失了,这里数据的正向有可能是因为它有一个自启动的过程。我们说明了负向来自于剔除次日的重复拉活带来,而不是拉起用户本身体验产生了变化。

通过实验拆解结合业务场景去做实验分析,可以形成解释性强的实验评估模板:一开始我们关注的指标是拉起率和活跃率;而在实验分析之后,我们会得到首启,次留的计算等一系列的指标,并逐渐固化为标准化的指标和 RTA 实验评估模板。



在拉活发展中期阶段,我们会结合技术做进一步提升的业务指标,这里主要指拉活的 ROI。拉活场景的目标是提升 ΔDAU。如果预算是无限的,那么我们的策略只要不引发用户负向的影响,也就是全量拉起就可以了。但在实际的业务场景下,拉活的预算往往是有限的,需要考虑在预算有限的情况下,拉什么用户做 DAU 的增量评估。我们关注的是不拉就不会来的用户,希望每次拉起能贡献当日的 DAU,甚至是多日的 DAU,这就是典型的 Uplift 问题。干预是是否投放广告,label 是活跃,或者多日的活跃天数。Uplift 的建模方式有两大类,Meta-Learner(S/T/R/X)与 Uplift NN。



在实际建模的时候,我们做了三个阶段的迭代。第一个是 XGB for ΔDAU 转化率;第二个是 XGB for 次留,把目标变成次留,期望它有多日活跃天的贡献;现在是做 NN * 次留预测。下面分享第三阶段的一个案例。

AUUC 是 Uplift 模型评估的一个核心指标。从图中可以看到 AUUC 的一个评估案例,这里任意一个 NN 模型的建模效果都好于XGB。但是实际应用效果上,为什么ΔDAU 的转化率反而会变低?我们可以关注一下具体的广告拉活的链路。我们建模的 label 是任务活跃,任务活跃=拉起 UV*ΔDAU 转化率,而 ΔDAU 转化率是通过实验去评估得出来的。在这个数学算式里面,AUUC 变高可能有两方面的原因。一个是拉起 UV 变高了,第二个可能是 ΔDAU 转化率变高了。在这里,AUUC 的提升代表的是 ΔDAU 的提升,但是不代表 ΔDAU 转化率的提升。所以在这个场景下,只看 AUUC 是不够的,还要结合具体场景的业务指标去判断 AUUC 的提升是否和目标指标的提升有一致性。

另外一个问题是为什么 NN 会比 XGB 效果好?这与投放策略有关。我们在做 Uplift 建模的时候,留了实验组和对照组。在人群包投放的过程中,人群结构会发生差异,导致实验组跟对照组的不同质。而 NN 的建模方式在消费上具有先天优势,这最终导致了这种结果。



Uplift 在多个场景得到了落地,包括个性化推送额度分配、视频混流、福利份额等,并在这些场景中都取得了一定的效果。



虎牙的一部分业务是不满足实验条件的。虎牙是一个典型的双边市场,一边是用户端,另外一边是主播端,主播端的改动就很难开展 AB 实验。



怎样做因果推断的效应评估呢?业界比较通用的是通过因果推断中基于大数据的方法,比如 PSM、Meta Learner 等,而这两个方法各有优缺点。虎牙以具体实验案例进行了 PSM 的科学性验证。PSM 的主要流程包括:首先计算倾向性评分,然后进行匹配,接着计算 SMD 平衡性检验,最后形成效益评估。我们期望 PSM 能够成为一种通用能力,通过把指标跟特征固化的方式来实现。用户可以通过实验平台自助匹配对照人群的方法来辅助实验,同时也可以扩展实验平台,接入更多的实验。从实际结果上可以看到指标的评估体系和实验结果的一致性。这里一致性指的是实验结果指标是正向且显著的,但是评估的结果则是持平或者是负向的,一致性较差。所以,即使 PSM 通过了平衡性检验,匹配以后的结果仍然不稳定,我们目前还在探索这个问题的解决方案。如果 PSM 能固化下来,将成为实验平台的有力补充。

我们在实践落地的过程中,不断地探索和改进效应评估方法。

(1)从目前的结果上看,多个模型的倾向性得分去建模的结果是大同小异的,所以这里要看如何提升倾向性得分的多样性。

(2)如果平衡性检验的通过并没有得到一致性的结果,也就是说不能科学检验匹配的好坏。我们需要考虑更丰富的检验方法(例如事后 AA),才能得到一个科学评估。



除了这种通用的基于大数据的方法之外,其实还有一些小而美的方法。上图是一个虎牙用户归因方法的案例,可以看到一个月内,用户呈现周一到周末的周期性波动,但是这个月的 DAU 的波动情况是很剧烈的。这里,我们有一个简单的归因方法:把活动用户跟非活动用户剥离出来之后,可以看到非活动用户有一个比较好的周期性规律,就能把活动用户的影响给摘出来。而这个归因方法,可以用到很多场景,如 DAU 预测、主播激励、内容价值评估等。在实际业务中,并不一定越复杂的方法越好,往往简单的方法可解释性更强,更符合业务感知。

04总结与回顾



我们的目标是帮助用户做自助实验。希望实验平台的能力能够支持整体的实验流程。在解决实验用户的基础实验需求之后,希望能聚焦更复杂更具价值的工作,深入业务去做数据驱动,并不断完善我们的武器库,去做一些专项的科学实验探索,解决更多的业务场景难题。

05问答环节

Q1:在没有开 AA 实验的情况下,怎样区分实验的效果是策略导致的,还是随机波动导致的?

A1:在不开 AA 的情况下,我们有一些比较,类似 PSM 提到的平衡性检验,有点像空跑 AA 的概念。因为在之前用户是存在的,哈希的分桶方法也是存在的,你可以观察它在实验之前的情况。但从实践上来讲,空跑 AA 是最严谨的,也是一个可供你参考和评估的方式。如果在空跑之前,即在实验开启之前,哈希下来的指标在核心指标上还是平的,我们可以认为它是比较有效的。当然,也可以考虑做一些反转实验来验证。

Q2:Uplift model 按实验来建模,如果 AB 实验已经做完了,那 Uplift model 的训练数据应该从哪里去获取?

A2:除了实验数据,还有一种比较常见的方式,就是从大盘获取数据,而不是通过实验数据去获取,也就是拿实际干预跟不干预的数据,通过模型(比如 update NN 的方式)去做偏差的消除。但建议你在实验结束之前,对比实验数据和大盘数据的建模结果,观察 uplift 建模的一致性。如果你觉得效果是 OK 的,然后你后面应用的时候应该没有什么大风险,可以考虑移除该实验。但如果你觉得现在的模型无法通过大盘实验数据达到相同的效果,建议根据业务的重要性去做相关的评估,看要不要下线这个实验。

Q3:归因方法应该如何在实际业务场景里面应用?

A3:简单地说一个场景,在虎牙的一个活动中,是以直播间的形式去做承载的。如果进行归因分析,这个用户的行为会归因到一个主播,对吧?以 DAU 预测为例,可以参考主播的开播计划,还有包括说一些赛事的开播计划,预估可能对用户的影响量是多少?哪些用户是因为这个内容来,如果这个内容不开了,对用户可能有多大的影响?大概是这么一个思路。

Q4:当策略需要观测多个指标的时候,AA 期间经常会出现分流不均的情况,一个指标它的概率可能是百分之 95% 没有 DIFF,那多个请求没有 DIFF 的概率大概就是 95% 的 n 次方。如何更加高效地保障这个 AA 的分流经营?

A4:首先我们要验的第一个是分流的科学性,就是你可以通过一些分流的结果去空跑,去取一些重置,去看分流科学性是否符合 t 检验的 95% 的置信区间。就是你定的这个阈值是否跟实际多重哈希出来结果是一致的。分流科学线得到保证之后,接下来的问题是,如果你希望多个指标无 DIFF 的话,那么多个指标不是多个组,是吧?多个指标其实也有多重检验的问题。对于多重检验,我偏向于先验实际分流的科学性。如果要考虑指标规则的话,需要提升每个指标的显著性判断阈值,去保证整体的 95%。

Q5:RTA 实验的例子中,如何利用实验数据和分析来进行更好的定向人群和出价策略的选择?

A5:最通用的方法是结合因果推断的方法。举个例子,拿投放组跟非投放组做个 Uplift 建模。通过一些模型分析方法,比如刚才说的相关系数,哪些是正相关的,包括哪些是重要的特征。可以根据特征把相应人群摘出来,针对人群做检验。包括行业里面也会有很多,比如 HTE 方法,去做这个相关数据的下钻。

Q6:根据以往的实验经验,影响 ΔDAU 转化率的一般有哪些因素?

A6:最实际的因素就是用户活跃度。从业务上理解,比如我一年没活跃过了,现在拉起了,拉起到 △DAU 转化率高吗?高,但是它拉起不一定有活跃,也就是不一定能拉起来,可能拉起过程中又流失了,还没有到打开 APP 那个环节。如果用最近的用户活跃度,拉起到活跃的转化率可能是高的,但是他当天有可能自己就会活跃。所以从业务理解上我判断答案是活跃度适中的那一部分用户转化率最高,这部分用户既能拉起又能提供活跃转化。

以上就是本次分享的内容,谢谢大家。




本文地址:https://www.6aiq.com/article/1702030211978
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出