赵炜琪:因果推断在快手推荐场景的应用探索

导读:推荐系统不可避免地存在偏差(bias)。一个用户无论是在刷视频、看资讯、还是在线购物等基于推荐的场景中作出的选择通常会产生各种偏差。比如用户会偏向点击位置靠前的内容,也会偏向于点击流行度比较高的内容;另外由于推荐系统给用户推荐的候选内容只占整体内容的一小部分,而用户的点击行为都是基于这样一小部分候选集进行的,所以这会产生选择偏差。

与此同时,用户交互日志是模型训练的基础,直接基于这部分观测日志数据作为训练模型的样本会导致训练的模型存在bias,导致给用户推荐的内容同样存在bias,进而整个系统会形成bias闭环,在影响用户体验的同时,不利于系统生态的建设。

因此我们尝试结合因果推断来解决推荐系统中的bias问题,本次分享的主题是因果推断在快手推荐场景的应用探索,旨在通过识别变量之间的因果关系来进行纠偏。

具体将围绕以下几点展开:

  • 背景介绍
  • 最新研究进展
  • 因果推断在快手的应用
  • 总结与思考

01
背景介绍

首先和大家分享下因果推断的背景。

赵炜琪:因果推断在快手推荐场景的应用探索

首先我们介绍一下因果推断的定义。因果推断主要研究如何更加科学得识别变量之间的因果关系,强调原因的唯一性。因果性和相关性是有一定的联系与区别的,从他们的定义来看:因果性指的是在改变X后Y随之也发生变化,我们称X是Y的因;相关性指在观测到的数据分布中,若果我们观测到了X的分布就可以推断出Y的分布。因此从定义可以得出,相关性是对称的,即若X和Y相关,则Y和X相关;但是因果性是非对称的。相关性不一定说明因果性,但是因果一般会在统计层面导致相关性。我们现有的机器学习中纯数据驱动的方法其实更多时候学习的是相关性,这就导致目前的深度学习模型的可解释性较差。如果我们引入因果性结合相关性一起建模,从理论上来说它的效果会比仅使用相关性建模要好,即会使模型的可解释性变好,模型的鲁棒性也有一定的提升。

赵炜琪:因果推断在快手推荐场景的应用探索

因果推断可以被总结为三个层次。从问题角度出发,首先,因果推断的第一个层次主要是探索变量之间的关系,即相关性。常规机器学习在应用中主要学习的就是变量之间的相关性。第二个层次是研究实施某种干扰的效果,这一层次在营销领域使用得较多,典型的例子是uplift model。举个例子,我们对某个地方或者某一群用户发放优惠券,我们考虑发多少优惠券、对哪些人发放优惠券,实施这一行为后产生的效果或者收益是否符合业务预期。这类方法被称为干扰或者干预。第三个层次是从结果考虑原因,被称为反事实推断,即如果我想得到某种结果我们应该做什么改变。现在大多数因果建模都是从这一层次来进行探索。

常用的因果推断方法如上图列举所示。首先是基于加权的方法,典型代表是IPW。第二类是基于匹配的算法,这里主要是无偏匹配。另外,还有基于树模型来做因果推断的方法,比如因果森林等。当然,还有很多其他类型的方法,由于这部分内容不是本次分享的重点,这里我就不一一列举了。

02
最新研究进展

接下来我选取几个代表性工作介绍一下因果推断在推荐系统中最新的研究进展。

赵炜琪:因果推断在快手推荐场景的应用探索

首先是在WWW21发表的DICE。DICE这一方法是基于causal embedding的解决方案。论文认为用户的交互行为可以被拆解为两部分:由于视频的流行度较高导致用户基于从众心理产生交互行为;用户的纯兴趣导致的交互行为。我们可以进一步抽象为基于interest和基于conformity的两部分表征。那么问题就转化为如何构建不同的数据集来分别学习interest和conformity的embedding。具体地,在构造数据集时可以使用三元组。当用户点击了一个postive item且它的流行度比negative item更小,就认为交互行为是基于兴趣的;如果点击的item的流行度大于negative item,那么这次交互是由从众心理和用户兴趣叠加而成的。

赵炜琪:因果推断在快手推荐场景的应用探索

基于上述想法,可以把数据分为O1和O2两部分,然后使用多目标学习的框架来分别学习interest embedding和conformity embedding。其中,DICE将两个embedding叠加在一起产生的向量表示作为主任务,其单独的2个embedding学习作为辅助任务。损失函数是将三个损失与一个正则项相加,其中discrepancy损失的目的是为了让两类embedding具有区分性。

赵炜琪:因果推断在快手推荐场景的应用探索

第二个工作是华为在Recsys21发表的一篇论文,它的基本思路也是使用了causal embedding方案进行建模。它的出发点是认为系统的feedback表征可以分为bias和unbias两部分,文章并没有指出bias具体是哪类bias,而是认为bias表征的是所有feedback bias。

赵炜琪:因果推断在快手推荐场景的应用探索

在训练的时候,论文分别训练两部分embedding;在infer的时候,仅仅使用无偏的embedding。具体来说,这篇工作从信息瓶颈的角度来构造损失函数。信息瓶颈类似于一个信息提取方式,该方法认为输入的信息包含很多噪声,因此使用信息瓶颈将信息进行压缩,使得最后得到的表征信息量足够大。在实现过程中基于互信息实现,其中,互信息的物理含义是度量两个变量之间的相关性,如果两个变量是强相关的,那么它们的互信息很大;反之,如果两个变量几乎相互独立,那么它们之间的互信息就很少。作者构造了上图所示的损失函数,它由四项组成。前两项属于信息瓶颈,它希望无偏表征不能过度拟合有偏输入变量x,同时希望无偏表征能尽可能拟合目标y。但无偏表征和输入不能完全不相关,所以这里在损失函数前添加了参数β进行控制。第三项表示无偏表征和有偏表征要保持一定程度的独立,使得它们有一定的区分性。第四项损失函数是基于bias对真实标签的预估也会有一定的辅助作用的想法。在推荐领域,bias不一定是完全有害的,其中一部分bias是有意义的,因此这里需要一个参数去控制bias的量级。文章通过KL散度以及一些理论推导将上述损失函数转化为信息熵的形式,使得模型可以通过最小化变换后的损失函数来学习无偏表征和有偏表征。

赵炜琪:因果推断在快手推荐场景的应用探索

下面介绍的两个工作从因果效应的角度来解决纠偏问题。首先是一篇发表在KDD21上的文章。它的基本想法与第一个工作相似,构造因果图的时候将点击行为分为K->Y的用户兴趣匹配、I->Y的物品流行度以及U->Y的用户从众心理。论文希望用户对item的点击预估是基于纯兴趣匹配,因此我们需要去除存在bias的边,即去除item流行度与用户从众性导致的bias。文章基于因果效应理论给出解决方案如下,其中TE是总效应、NDE是bias的直接效应,我们可以通过使用TE和NDE的差来得到无偏估计。事实上,NDE基于反事实假设的,即如果没有基于兴趣匹配的K->Y输入而只包含U的从众性和I流行度输入,那么最终模型的预估是怎么样的。

赵炜琪:因果推断在快手推荐场景的应用探索

模型建模方式也是多任务学习。在训练时,上图中间的模型作为主任务,左右两侧分别是一个user塔和一个item塔分别作为辅助任务。user和item塔分别学习用户特征和物品特征单独作用下的预估输出,它们的标签值与主任务使用的一致。根据前述公式推导,在最终推断时我们就需要将总效应TE减去NDE即可,最终得到的计算公式如上图所示。

赵炜琪:因果推断在快手推荐场景的应用探索

第四个工作和第三个工作解决方案相同,它解决的是“标题党”问题。当一个用户点击一个视频,他可能是被标题吸引进来,但实际上他对视频内容不感兴趣。当平台上这类视频特别多时是非常影响用户体验的。因此为了解决这个问题,文章构建了如上因果图,e代表标题,t代表视频的内容表征,u是用户表征,Y是交互表征。我们的目标是去除标题e对Y的边,使得user与item的匹配是基于纯兴趣匹配的。类似第三个工作,文章使用TE减NDE的方式进行推导,得到unbias的输出结果。另外,这篇工作也使用了多目标建模方式。

赵炜琪:因果推断在快手推荐场景的应用探索

下面介绍的工作使用了第三类解决方案,即采用后门机制结合贝叶斯概率模型来解决纠偏问题。这篇文章发表在SIGIR21上,解决的是传统流行度偏差问题。在推荐系统中,流行度会影响物品是否曝光,也会影响用户是否交互。作者认为流行度高代表的内容质量通常比较高,所以流行度到点击的边需要被保留。但是物品是否被曝光应该基于用户的真实兴趣,而与该物品的流行度无关,所以流行度到物品的边不应该存在,这条边是一个bias。文章的解决方案是使用了后门机制,使得最终的交互条件概率与流行度对内容是否曝光的条件概率无关。我们基于这个工作做了一些改进并落地,之后会详细介绍算法的原理。

03
因果推断在快手的应用

接下来介绍一下快手使用因果推断在推荐场景下的探索。

1. 流行度debias

赵炜琪:因果推断在快手推荐场景的应用探索

首先是流行度debias的工作。流行度偏差在推荐系统中十分常见,我相信大家在各个业务中也面临了同样的问题。头部效应严重就会导致热门内容曝光量较大,进而导致训练日志被热门内容主导,这对于长尾内容非常不友好。此外,模型会过度曝光头部的视频,因为有些头部的视频有可能已经处于衰退期,它的pxtr已经在下降,此时给予它太多曝光会导致低效率,浪费曝光流量。基于这两个问题,工业界有三种解决方案。首先是使用IPW,但这种方法依赖于流行度具体值,流行度值大小的变化使得权重值波动较大,所以模型的方差很大,训练很难收敛。第二个方法是使用causal embedding方案,这类方案需要划分出两种数据集。如最开始的causal embedding论文使用无偏数据集,但是无偏数据很贵,也有其他工作尝试基于观测数据进行处理后划分不同数据集,但人为划分数据也会引入其他一些偏差。第三种方式是直接通过加特征或者加debias塔的方案建模流行度对模型的影响,类似于之前youtube和google提出的建模方法,但是这种方式没有完美的理论支撑,而且bias特征很难与其他输入特征进行平衡(bias特征可能被其他特征淹没)。

赵炜琪:因果推断在快手推荐场景的应用探索

因此我们引入了因果推断的思想来进行debias。流行度偏差的核心问题是流行度偏差确实不利于学习用户真实兴趣,但流行度较高的视频其内容质量较好;另外用户有看热门的需求,比如大家打开微博、知乎或者脉脉等软件都会去看看热榜。我们的解决方案是在训练时去除流行度偏差对模型的负向影响,对应于因果图就是去掉Z到I的这条边。又由于流行度高的内容质量其实是不错的,因此在infer 时会保留Z到C这条边。

赵炜琪:因果推断在快手推荐场景的应用探索

接下来具体看一下训练的时候如何去消除流行度对模型的负向影响。结合上图的因果图来看,我们基于后门机制,使用一个do算子来表示消除流行度影响。具体推到过程如上图,在公式中,第一步到第二步利用了贝叶斯概率公式,第二步到第三步是源于我们使用do算子消除了I与Z的关系,所以U和I与Z是独立的,第三步到第四步是因为流行度的先验在两个因果图中是不变的。

赵炜琪:因果推断在快手推荐场景的应用探索

另外我们将用户、视频与视频流行度进行解耦,将P(C|U,I,Z)条件概率转化为匹配分与流行度的乘积。建模的数学公式如上图所示,其中ELU’是一个激活函数,流行度部分引入了γ参数进行控制,并引入了pair loss对模型进行训练。

赵炜琪:因果推断在快手推荐场景的应用探索

进一步,我们可以将P(C|U,I,Z)的解藕结果带入引入do算子的条件概率公式继续进行推导,最终的表达式如上图所示。我们可以发现最终的结果只与流行度的期望有关,而流行度这个单变量的期望是一个常数,对排序不产生影响。所以通过这个方法,我们已经将流行度对模型的影响消除了。

赵炜琪:因果推断在快手推荐场景的应用探索

在infer阶段,我们也使用了do算子,将流行度作为变量引入条件概率。具体地,我们针对流行度考虑了其变化趋势对推荐的影响。这么做是希望模型与item的生命周期进行结合,因为item的流行度变化是呈现从逐渐增加到逐渐降低的过程。最终的模型infer得分是匹配得分与流行度的乘积。

赵炜琪:因果推断在快手推荐场景的应用探索

我们对比了干预后流行度对item的影响变化,上图左侧是没有进行纠偏的推导,右侧是进行纠偏的推导。它们的主要差别在于因果图中Z对I的条件概率,进行纠偏操作后U,I与Z式独立的,进而就去除了流行度对item的曝光影响。

赵炜琪:因果推断在快手推荐场景的应用探索

在具体落地过程中,我们对模型进行了进一步改进。比如损失函数使用了pointwise来替代pairwise,当然这一选择是基于业务表现的。此外,我们使用RELU来替代ELU’,因为有大量工作证明RELU+BN的效果好于ELU’。我们还将流行度变化趋势从差值替换为计算梯度,这是因为差值对低流行度内容十分不友好。另外我们还把控了infer阶段注入流行有益部分的内容质量。

赵炜琪:因果推断在快手推荐场景的应用探索

从实验结果来看,曝光提升或者下降的case是符合预期的。具体地,曝光下降最快的case大多是一些猎奇的或者低质量的内容。从实验结果图来看,上图横轴从左至右分别代表的是曝光区间,越往右的曝光区间的曝光量越大。从图中可以看出,对比各曝光区间的曝光item数量,中长尾的曝光item数是增多的;对比各曝光区间的曝光量,中长尾item的曝光量也是提升的,而头部视频或者流行度较高视频的曝光量提升主要是因为infer的时候我们特意引入流行度导致。另外我们还针对效率进行可视化,发现中尾部的视频对应的pxtr的提升更大,这也符合我们的预期。

  1. 因果表征解耦
赵炜琪:因果推断在快手推荐场景的应用探索

第二个工作我们引入causal embedding思想,基于DICE针对落地进行了一些改进。具体地,我们将用户消费视频的行为拆解为基于兴趣(interest)以及基于从众心理(conformity)。在这样的假设下,主要问题就转化为如何构造训练两个embedding的数据集。

赵炜琪:因果推断在快手推荐场景的应用探索

首先,针对feedback相关的正负样本的构建,我们会去统计用户点击视频的reward,它是由用户观看时长和互动的综合打分进行定义的。对于conformity相关的正负样本的构建,我们使用like数进行定义,如果正样本的like数比较多那么就将其作为conformityembedding的训练集,如果一个正样本的like数小于负样本,但是它的reward更大,那么我们认为用户是基于兴趣去点击这个item的,从而得到interest embedding的训练集。我们使用like数的原因是源于我们认为用户是否喜欢一个视频最直观的感知就是点赞行为。

赵炜琪:因果推断在快手推荐场景的应用探索

在训练的时候,我们沿用了DICE的多任务训练范式,其中feedback loss作为主任务,同时使用如上所述定义的两个数据集分别对conformity和interest embedding进行训练。

赵炜琪:因果推断在快手推荐场景的应用探索

上图展示了我们的实验效果,可以发现两类embedding的可视化表明了它们之间有明显的区分性。我们也对conformity embedding和流行度的相关性进行了可视化,不同的颜色表示不同的流行度。我们也可以观察到不同流行度的item,他们的embedding也具有一定的区分性。

  1. 视频完播率debias
赵炜琪:因果推断在快手推荐场景的应用探索

第三个工作是基于视频完播率的debias。它的背景是源于我们在很多业务场景中,如单列短视频场景,视频是自动播放的,不需要用户点击。这种情况下会导致我们很难去定义什么样的播放时长可以作为正样本。比较直观的方法是人为设定一个阈值,但是这存在着一定的bias,比如对于长视频而言这种方式偏差很大。因此,我们使用播放完成率来衡量用户对于视频的偏好。但事实上,基于完播率的这种做法天然对短视频是友好的。如上图右侧所示,短视频的完播率比长视频高出许多。所以这导致我们去思考如何定义正负样本以及如何对不同长度视频的完播率进行消偏。

赵炜琪:因果推断在快手推荐场景的应用探索

首先,针对正负样本的定义,我们需要设定一个对于各长度视频均适用的判别方式。此外,它需要有一定的判别性,并且具有一定的物理意义。上图右侧是我们对某长度视频的完播率与对应播放日志数的关系图。我们可以看到它是一个明显的双峰分布,也就是说如果我们在双峰中间选择一个阈值对其进行切分是可以很容易地将正负样本区分开的。我们在实际使用时统计了对应视频时长下的平均完播率,使用在这个数值来作为切分阈值。

赵炜琪:因果推断在快手推荐场景的应用探索

第二个问题是对不同长度视频的完播率进行消偏。我们认为bias的本质是样本分布不均匀,而消偏可以通过一些加权的方法使得treatment和control组的分布差异尽量减小。这里我们使用了经典的IPW方法,具体来说,我们使用不同视频时长的完播率来定义IPW的权重,将其加入损失函数进行加权从而进行debias。

赵炜琪:因果推断在快手推荐场景的应用探索

最终的实验结果表明消偏后播放视频数以及完播数都有明显的提升,另外不同长度的视频对应的完播率也有上升。

04
总结与思考

最后,我来总结一下我们的工作并提出一些个人的思考。

首先,我们在快手推荐场景首次落地因果推断。上述工作是因果推断在快手推荐场景的一些成功的探索,它提供了一套纠偏框架落地的pipeline,除了传统的item侧消偏,我们对用户维度的纠偏并也取得了一定收益。目前,因果推断在推荐中的应用目前较少,从学术界也很难拿到可以落地的方法,而在营销领域有比较多的落地应用,这可能是因为在营销领域的场景中,它们的treatment很好定义,但是在推荐场景下就很难被定义。此外,推荐中使用的评估方法和因果评估不一致。推荐系统的评估注重排序,例如AUC等指标。

目前因果推断在推荐系统的应用存在以下三个问题:

对于一些bias如流行度、曝光偏差,我们需要掌握好debias的度;

现在的纠偏大多是大点进行的,缺少一套完整的纠偏系统,目前已有的一些工作很难在工业界进行落地;

因果推断对于解决信息茧房难题目前还很难去解决。我们现在的推荐系统更多还是迎合式的推荐,即我们会根据用户的喜好推荐内容,取悦用户,进而导致我们无法解决信息茧房的问题。如果我们的推荐策略由迎合式转变为引导式,即系统可以引导用户对item进行交互,那么我们可以在一定程度上解决信息茧房问题。

05
精彩问答

Q:如何验证学习到的interest embedding和conformity embedding的准确性?

A:我们是通过可视化来观察embedding是否符合我们的预期。从之前展示的embedding可视化结果图中我们可以发现,模型学习到的两类embedding在二维空间上可以被明显地区分,与此同时item的流行度与conformity embedding的相关性在流行度区间之间也具有区分性。

Q:Debias会不会在一定程度上对某些业务指标产生负作用?

A:Bias不一定全是对模型有害的,例如流行度其实对推荐是有收益的。假如你纠偏过度,那么实际上你会降低系统的整体收益的;与之相反,如果你纠偏不够的话有无法解决bias问题。这就是为什么因果推断很难在推荐中落地,因为这需要根据具体业务不断地对纠偏程度进行调整。

Q:点击行为和like行为都是非常稀疏的,那么对于长尾item应该如何进行纠偏?

A:我们针对流行度纠偏做了两个工作。第一个工作是基于后门机制,我们可以看到它对于中长尾item是有明显收益的。而第二个工作是从输出表征的角度进行纠偏的。我们可以看到这两个工作的出发点不一样,第一个工作是在系统层面建模debias,而第二个工作是从交互中建模用户不同的意图。针对长尾item的纠偏,我认为第一个工作的方法会对长尾item更友好并且更加可控。

今天的分享就到这里,谢谢大家。

本文经授权发布,不代表增长黑客立场,如若转载,请注明出处:https://www.growthhk.cn/mcn/kuaishou/58386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-02-21 15:59
下一篇 2022-02-21 16:18

增长黑客Growthhk.cn荐读更多>>

发表回复

登录后才能评论
特别提示:登陆使用搜索/分类/最新内容推送等功能 >>