Fork me on GitHub

快手短视频推荐中的因果推断实践

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

导读 本文将分享因果推断技术在快手短视频推荐中的应用。

主要包括以下几大部分:

  1. 快手单列短视频推荐场景

  2. 因果推断技术与模型表示

  3. 观看时长预估与因果推断技术

  4. 未来展望

  5. 问答环节

分享嘉宾|林肖博士 快手科技 高级算法专家

编辑整理|王振甲

内容校对|李瑶

出品社区|DataFun


01快手单列短视频推荐场景

1. 关于快手



*数据取自于2023年二季度

快手是一个国民级的短视频和直播社区应用,其 MAU 和 DAU 在今年第二季度创下了新高。快手的核心理念是观察并分享每个普通人的生活。在快手的 APP 中,短视频场景主要有单列和双列两种。目前,单列的流量较大,其体验主要是沉浸式的上下滑动。双列的呈现形式与信息流类似,用户需要从屏幕上出现的几个内容中选择感兴趣的点击观看。推荐算法是快手业务生态中的核心,在流量分发和提升用户体验方面发挥了重要作用。

2. 快手单列短视频推荐场景



快手短视频推荐场景中,以单列为主要形式。用户通过上下滑动的行为模式浏览视频,视频一旦被滑到即自动播放,无需用户先选择再点击触发播放。此外,用户反馈形式非常丰富,包括关注、点赞、评论分享和进度条拖动等,随着业务发展,互动形式也日趋多样化。优化目标包括长期目标和短期目标,长期目标包括优化用户体验和留存 DAU 等,短期指标则涵盖了用户的各种正向反馈。

推荐系统的建立基于机器学习和深度学习,日志主要来源于用户实际行为产生的特征和反馈。然而,日志存在局限性,只能反映用户当前兴趣的有限信息,而真实姓名、身高体重等隐私信息无法获取。同时,推荐算法是基于以前的日志学习训练得到的,再去为用户推荐,存在自循环的特点。此外,由于受众广泛且差异大,视频数量庞大且更新频繁,推荐系统容易出现各种偏差,如流行度偏差、长短视频曝光偏差等。在短视频推荐中,利用因果推断技术进行偏差建模有助于纠偏并提升推荐效果。

02因果推断技术与模型表示

接下来分享我们与兄弟团队在因果推断和模型表示方面的工作。

1. 背景



推荐系统通常通过交互日志进行模型学习。用户的反馈可能来自于对内容的喜好,但我们也注意到用户存在从众心理。例如,在选择电影时,除了个人喜好,用户还可能受到作品获奖情况或周围人的影响。这种从众心理在不同用户之间存在差异,有的用户比较有主见,而有的用户可能更易受他人或热度的影响。因此,在用户交互归因上,除了考虑用户的兴趣,还要考虑从众心理。

现有工作大多将流行度视为静态偏差,如电影的流行度仅与 item 相关,且在建模用户与 item 评分时未考虑用户间的偏差。流行度通常被作为一个单独的评分项,与 item 的曝光次数相关,而对流行度较低的 item 偏差较少。这种建模方式是静态的,并且与 item 相关。随着因果推断技术在推荐领域的应用,一些研究尝试通过解耦表示来处理这个问题,考虑用户选择 item 时的从众心理差异。与现有方法相比,我们的方法能够更准确地建模用户的从众心理差异,从而更有效地纠偏并提升推荐效果。

2. 相关工作



在 Webconf2021 的一篇论文中,用户交互被建模为既受用户对 item 的兴趣影响,又受 item 对用户在选择 item 时的从众心理程度影响。因果关系图如左图所示,关系相对简单。在具体建模时,user 和 item 的表示被拆分为兴趣表示和从众性表示。对于兴趣表示,构建了一个兴趣 loss;对于从众性表示,构建了一个 confirmation loss;针对反馈行为,构建了一个 click loss。由于表示结构的拆分,interest loss 被用作监督信号来学习 interest 表示,而 confirmation loss 用于建模从众心理表示。Click loss 与两个因素相关,因此通过连接和交叉来构建。整个处理方式既清晰又简单。

在构建 interest loss 和 confirmation loss 时,该研究还运用了因果推断中的一些概念和技术。例如,如果一个不流行的视频或商品获得了正向交互,则很可能是由于用户真正喜欢它。这可以通过反向验证来确认:如果一个商品既不流行,同时用户又对其不感兴趣,则不太可能有正向交互。至于 click loss,则采用了一种常见的处理方式,即 pairwise loss。关于 colliding effect,感兴趣的读者可以查阅论文以获取更详细的构建方式。



在解决推荐系统中的复杂性问题时,有研究从模型表示入手,旨在区分用户对 item 的兴趣和从众心理。然而,实际应用中存在一些问题。推荐系统中的视频数量庞大,曝光量分布不均,头部视频曝光次数多,长尾视频曝光次数少,导致数据稀疏。稀疏性给机器学习模型带来学习困难。

为解决这一问题,我们引入了对比学习进行样本增广。具体而言,除了用户与 item 的正向交互外,我们还选取了用户行为范围内的其他视频作为负样本进行扩充。同时,我们沿用了因果图来设计模型,将 user 和 item 侧的 interest 和 conformity 表示拆分。该模型与传统的 DICE 的主要区别在于学习 interest 和 confirmation 的 loss 时采用了对比学习加样本增广的方法,并针对 interest loss 和 confirmation loss 分别构建了归一化的 item popularity 的 ratio 指数项。通过这种方式,可以更好地处理数据稀疏问题,并更准确地建模用户对不同流行度 item 的兴趣和从众心理。

3. 总结



该工作基于短视频交互中的兴趣和从众心理叠加作用,采用了因果推断技术与 causal embedding 手段来实现结构表示的解耦。同时,考虑到实际系统中长尾视频样本稀疏问题,采用对比学习和样本增广方法缓解稀疏性。该工作结合线上表示模型与因果推断,实现了一定的 conformity 解耦效果。在离线和在线实验中,该方法表现良好,并成功应用于快手推荐 LTR 实验,带来了一定的效果提升。

03观看时长预估与因果推断技术

1. 观看时长重要性



在短视频推荐业务中,观看时长是一个重要的优化目标,它与用户留存、DAU 和回访率等长期指标密切相关。为了提升用户体验,我们需要关注在给用户推荐视频时的中间行为指标。经验表明,观看时长是一个非常有价值的指标,因为用户的注意力有限。通过观察用户观看时长的变化,可以更好地理解哪些因素影响了用户的观看体验。

视频长度是影响观看时长的重要因素之一。随着视频长度的增加,用户的观看时长也会相应增加,但过长的视频可能会导致边际效应递减,甚至观看时长会略有下降。因此,推荐系统需要找到一个平衡点,以推荐适合用户需求的视频长度。

为了优化观看时长,推荐系统需要预测用户的观看时长。这涉及到回归问题,因为时长是一个连续值。然而,时长相关工作较少,可能是因为短视频推荐业务相对较新,而推荐系统研究的历史较长。

在解决观看时长预估问题时,可以考虑视频长度以外的其他因素,例如用户兴趣、视频内容质量等。通过综合考虑这些因素提高预测的准确性,并为用户提供更好的推荐体验。同时,我们也需要不断迭代和优化推荐算法,以适应市场的变化和用户需求的变化。

2. D2Q



在 KDD212 会议上,我们提出了一种解决短视频推荐中时长预估问题的新方法。该问题主要源于因果推断中的 duration bias 自我强化现象。为了解决这一问题,我们引入了因果图来描述用户、视频和观看时长之间的关系。

在因果图中,U 和 V 分别代表用户和视频的特征表示,W 代表用户观看视频的时长,D 代表视频的长度。我们发现,由于推荐系统的自循环生成过程,duration 不仅与观看时长直接相关,还会影响视频表示的学习。

为了消除 duration 对视频表示的影响,我们运用 do calculus 进行了推导。最终的结论表明,为了通过后门调整解决这个问题,最简单直接的方法是为每一种 duration 的视频对应的样本单独估计观看时长。这样就能消除 duration 对观看时长的放大效应,从而有效地解决因果推断中的 duration bias 问题。这种方法的核心思想是消除 d 到 v 的误差,从而实现对 bias amplification 的缓解。



在解决短视频推荐中的时长预估问题时,我们采用了基于因果推断的方法,以消除 d 到 v 的误差并实现对 bias amplification 的缓解。为了处理 duration 作为连续变量以及视频数量分布的问题,我们对推荐池中的视频根据 duration 进行分组,并使用分位数进行计算。每个分组内的数据被拆分后,用于训练组内的模型。在训练过程中,回归的是每个 duration 分组内视频时长对应的分位数,而不是直接回归时长。这样可以降低数据的稀疏性并避免模型过拟合。在线上推理时,对于每个视频,首先找到其对应的分组,然后计算出对应的时长分位数。通过查表,可以根据分位数找到实际的观看时长。这种方法简化了线上推理过程,提升了时长预估的准确性。综上所述,我们的方法通过消除 d 到 v 的误差,有效解决了短视频推荐中的时长预估问题,为优化用户体验提供了有力支持。



在解决短视频推荐中的时长预估问题时,我们还引入了参数共享的方法来降低技术难度。在拆分训练过程中,一种理想的方式是实现数据、特征和模型的完全分离,但这样会带来部署成本的增加。因此,我们选择了更为简便的方式,即共享底层特征的 embedding 和中间层的模型参数,仅在输出层进行拆分。为了进一步扩大 duration 对实际观看时长的影响,我们引入了一个残差连接,将 duration 直接连接到输出预估时长的分位数的部分,从而增强了 duration 的影响力。这种方法降低了技术难度,并有效地解决了短视频推荐中的时长预估问题。




在实验中,主要使用了快手发布的公开数据集。通过对比几种方法可以看到,直接回归和时长加权模型的表现各有千秋。时长加权模型在推荐系统中并不陌生,其核心思想是将观看时长作为正样本的权重纳入模型中。而 D2Q 和 Res-D2Q 则是两种基于因果推断的模型结构,其中 Res-D2Q 引入了残差连接。通过实验,我们发现将视频按照 duration 分组至 30 组时能达到最佳效果。与朴素的回归模型相比,D2Q 方法有显著提升,并能在一定程度上缓解 duration bias 自循环放大问题。然而,从时长预估问题的角度来看,挑战仍未完全解决。

3. TPM



时长预估问题作为推荐系统中的核心问题,具有其独特的特点和挑战。首先,回归模型无法反映推荐结果的顺序关系,使得即使在回归误差相同的情况下,实际推荐结果也可能大相径庭。此外,预估模型除了要保证预估值的准确性,还需要考虑模型给出的预估值的置信度。一个值得信赖的模型不仅应给出准确的预估值,还应以高概率给出该预估值。因此,在解决时长预估问题时,我们不仅要关注回归的精准度,还要考虑模型的置信度,以及预估值的顺序关系。



在观看行为中,用户连续观看视频的行为存在条件依赖关系。具体来说,如果观看整个视频是一个随机事件,那么先看完 50% 的视频也是一个随机事件,它们之间存在严格的条件依赖关系。解决偏差放大问题在观看时长预估中非常重要,而 D2Q 方法很好地解决了这一问题。相比之下,我们提出的 TPM 方法旨在全面覆盖所有时长预估问题。



TPM 方法的主要思想是将时长预估问题转化为离散的搜索问题。通过构建一个完全的二叉树,将时长预估问题转化为若干个互相有条件依赖的分类问题,然后使用二分类分类器解决这些分类问题。通过不断地向下进行二分搜索,确定观看时长在每个有序区间内的概率,最终形成观看时长的一个多项分布。这种方法能够有效地解决不确定性建模问题,使预估时长的均值与真实值尽可能接近,同时减小预估时长的方差。整个观看时长的问题或者预估过程就可以逐渐通过不断地解决互相依赖的二分类问题来求解。这种方法为解决时长预估问题提供了一种新的思路和框架,能够提高预估准确性和置信度。



在介绍 TPM 的建模关键时长思路时,展示了 TPM 与 D2Q 的后门调整之间的无缝连接。这里通过一个简单的因果图,将用户和 item 侧的特征与混杂因子进行关联。为了实现 TPM 里面的后门调整,需要为每个混杂因子取值的样本构建一个对应的模型,并为每个混杂因子构建一个对应的 TPM 树。完成这两个步骤后,TPM 就能与后门调整进行无缝连接。这种连接方式使得模型能够更好地处理混杂因子,提高预测准确性和置信度。



具体的解决方法是,针对每个深层次的混杂因子构建一个对应的模型,与 D2Q 一样,这也会带来数据稀疏和模型参数过多的问题,需要 share-bottom 的处理,将每个混杂因子的样本都整合到一个相同的模型中,但模型的底层 embedding 表示、中间参数等都是共享的,只是在输出层部分与实际的节点和干扰因子取值相关。在训练时,只需要找到每条训练样本对应的真实叶子节点即可进行训练。而在预估时,由于不知道观看时长属于哪个叶子节点,因此需要进行从顶到底的遍历,将观看时长所处每个叶子节点的概率和对应叶子节点的期望时长进行加权求和,以得到实际的观看时长。这种处理方式使得模型能够更好地处理混杂因子,提高预测准确性和置信度。




在快手公开数据集和 CIKM16 关于停留时长的数据集上,我们进行了实验,对比了 WLR、D2Q 和 OR 等方法,结果显示TPM具有显著的优势。每个模块都有其特定的作用,我们也进行了缺省实验,实验结果表明每个模块都发挥了作用。我们还在线上实验了 TPM,实验条件是将快手的精选流量均匀划分为十组,20% 的流量作为基线和在线实验组进行对比。实验结果显示,TPM 在排序阶段能够显著提升用户的观看时长,同时其他指标基本持平。值得注意的是,负向指标如用户短波的数量也有所下降,我们认为这与时长预估的准确性和预估不确定性降低有一定的关系。观看时长作为短视频推荐平台的核心指标,TPM 的引入对于提升用户体验和平台指标具有重要意义。



总结一下这部分的介绍。在短视频推荐平台中,观看时长是核心指标。解决此问题有两个层面需要考虑:一是偏差问题,包括 duration bias 和 popularity bias,这需要在整个系统链路日志到训练的自循环中解决;二是时长预估问题,这本身是一个连续值的预测问题,通常对应回归问题。然而,对于特殊的时长预估回归问题,需要采用特定的方法处理。首先,针对偏差问题,可以通过后门调整来缓解,具体做法是将 duration 进行分组,为每个组设计对应的模型进行回归。其次,处理时长预估的回归问题,可以采用树结构分解时长预估,将其分解成若干个层次化的有序区间,通过树的遍历过程,从顶到叶子节点的路径进行问题的拆解和解决。在预估时,通过树的遍历来进行时长预估。这种处理方式能够更有效地解决时长预估的回归问题,提高预测准确性和置信度。

04未来展望



随着技术发展的加速,我们所处的世界变得越来越复杂。在快手的短视频推荐场景中,推荐系统的复杂性也日益凸显。为了更好地进行推荐,我们需要深入研究因果推断在推荐系统中的应用。首先,我们需要定义一个具有业务价值的问题,例如观看时长预估。然后,我们可以从因果推断的角度来认识和建模这个问题。通过因果调整或因果推断的方法,我们可以更好地分析和解决偏差问题,如 duration bias 和 popularity bias。此外,我们还可以利用技术手段,如机器学习和运筹优化,来解决系统复杂性和场景分布性等问题。为了实现高效的解决方案,我们需要找到一个系统化、自动化的方式去解决问题。这样不仅可以提高工作效率,还可以为业务带来持续的价值。最后,我们需要关注技术的可扩展性和成本效益,以确保解决方案的可行性和可持续性。

综上所述,因果推断在推荐系统中的应用是一个具有挑战性和潜力的研究方向。通过不断探索和实践,我们可以不断提升推荐系统的效果,为用户带来更好的体验,并为业务创造更大的价值。

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

05问答环节

Q1:TPM 相对于 D2Q,在回归的时候做了一些改进,能更好地利用时长的依赖关系。想问下这里的依赖关系是指什么?

A1:从头节点走到叶子节点可以视为类似 MDP 的持续决策过程。条件依赖意味着下一层的决策是基于上一层的结果。例如,为了达到叶子节点也就是区间[0,1],必须先经过中间节点,也就是区间[0,2]。这种依赖关系在实际上线预估时,通过每个只解决特定节点是否要走到下一个叶子节点的分类器得以实现。这就像在猜年龄的例子中,首先询问年龄是否大于 50 岁,然后根据回答再问是否大于 25 岁。这里隐含了一个条件依赖关系,即小于 50 岁是回答第二个问题的前提。

Q2:采用树模型,会给模型训练以及线上推断的开销会带来困难吗?

A2:在 TPM 和 D2Q 的优势对比中,主要优势在于问题的拆分。TPM 更好地利用了时序信息,并将问题拆分为若干个样本相对均衡的二分类问题,这有助于模型训练和学习的可学习性。相比之下,回归问题可能会受到离群点等异常值的影响,带来较大的学习不稳定性。在实际应用中,我们进行了大量的实践工作,包括样本构造和 TF 图节点 label 的计算等。线上部署时,我们使用一个模型,但其输出维度是中间节点分类器的数量。对于每个视频,我们只选择 duration group 中的一个,并计算对应的分类器的输出。然后通过循环计算叶子节点上的分布,最后进行加权求和。虽然模型结构相对简单,但每个 duration group 和每个非叶子节点的分类器可以共享底层 embedding 和中间层,因此在前向推理时,除了输出层外,它与普通模型没有太大差异。

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




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