首先来看一下快手冷启动要解决的问题。
短期来看,平台首先要让更多的新视频能够获得流量,也就是能够发得出去。同时也要让发出去的流量有比较好的效率。长期来看,我们也要去探索挖掘更多的高潜新视频,为整个热门池提供更多的新鲜血液,缓解生态的马太效应。提供更多的优质内容,带来用户体验的提升,同时也带来时长和 DAU 的增长。
通过冷启动来促进UGC作者获得互动反馈激励,以维持整个生产者的留存。在此过程中,有两个约束条件。首先,整体的探索成本和流量成本在大局中应相对稳定。其次,我们仅干预新视频低vv阶段的分发。那么,在这些约束条件下,我们如何实现整体收益的最大化呢?
视频的冷启动分发对其成长空间有着重要影响,尤其是当作品被分发给与其兴趣不匹配的人群时,会带来两个方面的影响。首先,作者的成长会受到影响,长期来看,他将无法得到有效的互动流量激励,从而导致他的投稿方向和意愿发生变化。其次,由于早期流量缺乏有效的转化率,系统会认为该内容质量不高,因此长期来看,它将无法获得足够的流量支持,从而无法实现成长
长此以往,生态就会陷入一个比较不好的状态。比如有一个本地美食的作品,它肯定有一个最适合的受众人群 A,他的动作率整体是最高的。而另外可能有一个完全不相关的人群 C,在投给这个人群的时候会有一定的挑选性,动作率可能会极低。当然还有第三种人群 B,该人群是一个兴趣非常广泛的人群,虽然这个人群流量很大,但是整体上这部分人群的动作率也是会偏低的。
如果我们能够尽早的触达核心人群A提升内容早期的互动率,就可以带来一个自然流量的撬动分发。但是如果我们早期过多地把流量给到了 C 人群或者 B 人群,就会导致整体的动作率偏低,就会限制他的成长。总而言之,提升冷启分发效率是完成内容成长的一个最重要的途径。为了完成内容冷启动效率的迭代,我们会建立一些中间过程指标和最终的长期指标。
重写后的内容为:过程指标主要分为两部分,一部分是新视频的消费表现,主要包括它们的流量动作率;另一部分是出坡指标,包括探索向、利用向和生态向。探索向是为了确保优质新视频不被忽视,主要观察曝光大于0、曝光大于100的视频数量的增长情况。利用向是观察高热优质新视频的高VV出坡视频数量的增长情况。生态向主要观察热门池的用户普及率。从长远来看,由于这是一个通过生态影响带来的长期变化,所以我们最终会通过Combo实验长期观察一些核心指标的变化趋势,包括APP时长、作者DAU和整体DAU
二、冷启动建模的挑战与解决方案
总的来说,内容冷启动存在三个主要困难。首先,内容冷启动的样本空间与真实求解空间之间存在巨大差异。其次,内容冷启动的样本非常稀疏,这会导致学习结果不准确,偏差非常大,尤其是在曝光偏差方面处于弱势。第三,视频成长价值的建模也是一个困难,这也是我们目前正在努力解决的问题。本文将重点介绍前两个方面的困难
在优化内容冷启动问题时,样本空间小于求解空间是一个非常突出的问题。尤其是在推荐内容冷启动方面,需要提高索引内容的触达率,让更多的视频有机会被展示出来
我们认为要解决这个问题,最重要的是在召回阶段提升视频的触达和透出效率。为了解决冷启动视频的召回触达率。业界普遍的做法是基于 Content-Based,包括属性倒排、基于语义相似度的一些召回方法,或者是基于双塔加泛化特征的召回模型,又或者是引入行为空间和内容空间的映射,类似于 CB2CF 的做法。
本次我们将重点介绍两个比较有意思的新方法,分别是基于图熵自增强的异构图网络和基于 I2U 的星河模型。在技术选型上,我们首先使用 GNN 作为内容冷启动 U2I 的 Base model。因为我们考虑到 GNN 整体上是归纳式的学习方法,它对于新增节点非常友好,提供了更加的灵活性。另外,GNN 中引入了更多的属性节点,是增强冷启动内容触达的一个重要手段。具体实践方面,我们也是会引入 user 节点、author 节点和 item 节点,并完成信息的聚合。引入了这种泛化属性节点后,新内容的整体触达率得到了极大的提升。但是泛化性过强的中间节点,例如 tag 类目也会引起视频的感知域不够个性化,带来过平滑的风险。从 case 回查上看,我们发现有些喜欢看羽毛球视频的用户,现有的这种 GNN 刻画方案容易引起羽毛球视频和其他乒乓球、足球等视频的区分能力不够好。
为了解决GNN建模过程中引入过多泛化信息带来的泛化过度问题,我们的思路主要是引入更细致化的邻居刻画方案,具体会在GNN中引入语义自增强边。从右下角的图可以看到,我们会基于冷门视频去寻找它在热门空间中的相似热门视频,然后将热门相似视频作为冷启连边的初始节点。在具体聚合的过程中,我们会根据图熵减小的原则,进行自增强边的构造和挑选。具体的挑选方案从公式可以看到,主要考虑了上面这个连边邻居节点和当前节点信息的描述。如果两个节点相似度越高,它们的信息熵会越小。下面的节点分母代表了邻居节点整体的感知域,也可以理解为在挑选的过程中,我们更希望寻找到一个感知欲比较强的邻居节点
在实践过程中,我们主要有两个技巧,一个是相似视频的特征域和 item id 的特征域要共享 embedding 空间,然后是自增强节点只保留热门视频,去除学习不充分节点引入的噪声。有了这个升级之后,泛化性整体上得到充分保证情况下,有效提升了模型的个性化程度,并带来了离线和在线的效果提升。
上述方法实际上都是从U2I视角来建模内容触达的一个提升,但是无法从根本上解决视频无法触达的问题
如果转化一下思路,从 item 的视角去寻找合适的人群,也就是切换到 I2U 的视角,理论上每一个视频都有获取流量的空间。
具体的做法是,我们需要训练一个I2U的检索服务,通过该检索服务动态地为每个视频检索兴趣人群。通过这种I2U的构图方式,反向构建U2I的倒排索引,最终根据用户的实时请求返回物品列表作为冷启动推荐列表
重写后的内容是:重点是训练一个I2U的检索服务,我们的初版是一个双塔模型。在实践过程中,为了避免用户过于集中的问题,我们首先会弃用uid,而使用action list和self-attention的方式有效地缓解用户聚集问题。同时,为了避免学习过程中item-id带来的学习曝光偏差,我们会弃用item-id,而引入更多的语义向量、类目、tag和AuthorID等这样的泛化特征来有效地缓解item-id的聚集。从用户的视角来看,引入了这种Debias的loss,然后引入batch内的负采样,更好地避免用户集中的问题
我们的首版实践是双塔的I2U模型,在实践过程中也发现了一些问题。首先,双塔模型存在用户和物品交互的局限性,整体的检索精度受到了限制。此外,还存在兴趣集中的问题,挂载在用户身上的内容往往兴趣非常集中,但事实上用户的兴趣是多峰分布的。我们还发现用户过于集中的问题,大部分的冷启动视频都被挂载在一些头部用户身上,这也是不够合理的,因为毕竟头部用户每天能消费的内容也是有限的
为了解决上面三个问题,新的解决方案是 TDM 建模和 TDM 分层检索方式。TDM 的一个好处是可以引入更加复杂的 user-item 交互模式,突破双塔的交互限制。第二个是使用类似于 DIN 的模式,可以减少对单峰兴趣的依赖。最后是 TDM 中引入分层检索可以非常有效地缓解挂载用户集中的问题。
另外,我们还有一个比较有效的优化点,就是给父节点增加子孙节点的聚合表示。这样可以增强父节点的特征泛化和判别精度。也就是说,我们会通过注意力机制将子节点聚合到父节点上,通过逐层传递,中间节点也能具有一定的语义泛化能力
在最终的系统实践过程中,除了I2U模型之外,我们还引入了U2U的兴趣拓展模块。也就是说,如果某些用户在冷启动视频中表现出色,我们会快速扩散该视频
具体与目前业界的一些方法是类似的,但是这里的U2U兴趣扩展模块主要有三个方面的优势。首先,TDM树结构相对比较固化,增加这种U2U模块可以更加贴近用户的实时偏好。其次,通过实时兴趣的扩散,我们可以突破模型的限制,通过用户的协同,将内容快速推广,带来多样性的提升。最终,这也能提升星河召回的整体覆盖率,这是我们在实践过程中的一些优化点
通过这些方案,我们能够有效地解决内容冷启动中样本空间和真实求解空间不一致的问题,从而显著提升冷启动的触达和覆盖效果
接下来介绍内容冷启动样本稀疏性导致学习不准确和偏差大的问题,这是一个最大的挑战。这个问题的本质是交互行为的稀疏性,我们把问题展开为三个方向。
首先,由于冷启动样本的曝光较少,导致item id的学习不充分,进而影响了推荐效果和推荐效率。其次,由于早期分发的不准确性,收集的标签存在较高的不确定性和低置信度。第三,目前的训练范式在不进行纠偏的情况下,会将热度信息引入item的嵌入中,导致冷启动视频可能被低估,从而无法得到充分的分发
我们主要从四个方向去解决这个问题。第一个是泛化,第二个是迁移,第三个是探索,第四个是纠偏。泛化更多是从泛化特征的角度来完成建模和升级。迁移主要是想把冷门和热门的视频当做两个域,将热门视频域或者全量信息域的信息进行有效迁移来辅助冷门视频的学习。探索主要是引入探索和利用的思想,就是在早期 label 不准确的情况下,我们希望在建模的过程中就引入探索的思想,从而缓解冷启阶段的不置信 label 带来的负面影响。热度纠偏是目前比较火的一些方向,我们主要通过门控和正则 loss 的方式来约束热度信息的使用。
下面具体介绍我们的工作。
首先,泛化是解决冷启动问题时非常常用的方法。然而,在实践中我们发现,与标签和类别相比,引入一些语义嵌入也是非常有用的。但是直接将语义特征加入整体模型的收益是有限的。由于视频语义空间和行为空间存在差异,我们是否可以通过视频语义的共性信息来近似表示新视频在行为空间中的位置,以辅助泛化。之前我们提到了一些方法,例如CB2CF,它将泛化信息与真实行为空间进行映射学习。然而,我们并没有采用这种方法,而是根据视频的语义向量找到与目标项相似的项列表。首先,它与用户的长期和短期兴趣行为共享行为空间,同时我们会对相似项列表进行聚合,模拟候选视频在行为空间中的表示。实际上,这种方法与我们之前提到的图召回中引入与候选项相似连边的方法是相似的,而且效果非常明显,在离线AUC上提升了0.35PP
第二个是探索,就是新视频早期分发不准会导致后验 CTR 均值偏低,而这种均值偏低也会导致模型认为视频本身可能质量比较差,最终冷启动内容的探索性就受到了限制。那么能否建模 PCTR 的不确定性,减缓冷启阶段label的绝对利用和信任。我们尝试着将一次请求的 CTR 预估转变为一个 Beta 分布的预估,在线兼顾使用期望和方差。具体在实践过程中,我们会预估 Beta 分布的一个 α 和 β,具体在 loss 设计是预估的值和真实 label 的均方差的期望值。我们把期望值展开之后会发现需要得到预估值平方的期望和预估值的期望。而这两个值我们通过预估出来的 α 和 β 可以有效的计算出来, loss 也就生成了,然后我们就能够训练 Beta 分布,最后把 Beta 分布的预估值增加一个队列平衡探索与利用。其实我们在低 vv 阶段使用 Beta 的 loss 在 AUC 上有一定的提升,但并不是特别明显。但我们把贝塔分布在线使用能够在整体动作率持平的情况下,使得 0vv 的内容有效透出率增长22%。
接下来介绍的是对偶域迁移学习框架。整体的思想是,冷启动内容通常是高度倾斜的长尾分布,也是流行性偏见中的弱势群体。如果我们只使用冷启动样本,可以一定程度上缓解流行性的偏差,但是会丢失大量的用户兴趣,导致整体的精度下降。
我们目前已有的一些尝试,大多数是通过高热样本的一些欠采样,或者逆频率加权或者泛化特征的方式来侧重冷启样本的学习,但是往往忽略了冷启动早期行为样本与热门视频的在行为空间上的一个内在共性。
所以我们在设计过程中会把全量样本和冷启样本分为两个域,就是上图中的全量域和冷启域,全量域对所有的样本都生效,冷启域只针对冷启条件的样本才生效,然后增加双边的冷热知识域的迁移模块。具体的是会对 user 和 item 分别建模,从全域的样本塔到冷启样本塔的网络映射,从而在模型层面捕捉隐式的数据增强,提升冷启动视频的表示。在 item 侧我们会保留全量所有冷启样本,此外,也会对一些高热的视频根据曝光量进行采样,保证冷热域分布的相似性,最终能够确保整个映射的知识迁移的平滑。
此外我们还增加了一个独有的对偶流行度门控机制,引入一些流行性特征,用它去辅助冷热视频域的融合配比。一方面,新视频在不同的生命周期下冷启表达利用率的配比可以得到有效的学习和分配。另一方面,在用户侧也学习了不同活跃用户对冷启视频的敏感度。在实践过程中,离线效果无论在低 vv 阶段还是 4000vv 的 AUC 都有一定的提升。
最后介绍一个在纠偏方面的工作,也就是热度纠偏。推荐系统经常会面临着热度的偏差,整体上是高爆品的狂欢。现有的模型范式拟合的目标是全局的 CTR,推荐热门可能获得整体 loss 更低,但也会将一些热度的信息注入到 item embedding 中,引起高热视频被高估。
一些现有的方法过于追求无偏估计,但实际上会导致一些消费损失。那么我们是否可以将一些项目嵌入与热度信息和真实兴趣信息解耦,有效地利用热度信息和兴趣信息进行在线融合,这可能是一种更合理的方法。在具体实践中,我们参考了同行的一些做法
重点主要是两个模块,一个是做了输入内容热度和兴趣的正交约束,比如输入的是 item id、author id 等特征,会生成两个表征,这两个表征一个是热度表征,一个是真实兴趣表征,求解过程中会做一个正则约束。第二个是我们会将一些 item 的纯热度信息也生成 embedding 作为视频的纯热度表征,纯热度表征会根据视频的真实热度表征去做一个相似性约束,这样就可以得到刚才说到的热度表征和兴趣表征,他们一个是表达热度信息,一个是在表达兴趣信息。最后会基于这两个表征在线添加一个有偏估计和无偏估计的队列做乘法公式融合。
最后来分享一下对未来工作的展望。
首先,我们需要更加精细化地建模和应用人群扩散模型,尤其是实时性方面,包括目前的相似人群扩散。我们已经在冷启动阶段实施了一些相似人群扩散方案,例如U2U的一个扩散应用,我们希望能够进一步提升其精细化程度
第二个是纠偏的方案,目前的因果模型在冷启动纠偏中也是有很多的研究,我们也会在这个方向做持续的研究和探索,特别是对于曝光的纠偏,还有热度的纠偏,第三个是在样本选择上,高热样本对于冷启的推荐还是有更大的价值的,能否在高热样本空间中挑选出一些更有价值的样本,给他们以不同的权重来提升冷启模型的推荐效率。
第三个是视频的长期成长价值的刻画,每个视频都需要经历冷启-成长-稳定-衰落的过程,如何在建模视频的时候更加关注它的长期收益,也就是成长空间,特别是在撬动价值方面,如何建模不同的单次分发对未来成长的价值差异,这也是一项非常有意思的工作。
最后一个是通过数据增强的方案,无论是样本还是对比学习的方案,我们都希望引入一些这方面的工作提升冷启推荐的效率。
A1:I2U 模型会在离线过程中不断在索引库中寻找与之最相似的用户,然后根据找到的最相似用户和物品,将其转化为用户-物品对,最终得到用户对物品列表的聚合结果,并将其存储在 Redis 中供线上使用
A2:分享中已经提到了几个方法,从根本上来说,我们还是从泛化、探索和纠偏的角度去解决。比如 item id 如何初始化,使得它有更好的初始点,同时做一些泛化特征的引入,把泛化特征映射到行为语义空间。然后通过 Beta 分布来提升探索性;还有就是通过引入纯内容塔,去除 pid 等存在强记忆的特征,从而引入无热度偏差的纯泛化预估,还有就是纠偏的工作,希望在学习的过程中将热度因子单独学习和约束,提供纯兴趣标准和热度标准,线上合理的分配热度标准的使用力度。当然除了这些方法之外我们也尝试从数据增强缓解冷启动内容的稀疏性,还有从迁移学习的角度去使用热门的内容辅助冷启动内容的学习。
A3:优普率其实是一个人工参与度非常高的工作,我们不可能完全用 model 去评估一个视频的优普率。如果我们能够用模型来评估一个内容,比如曝光量达到5万的视频,整体优普率会有人工参与,它一定会推送给审核人员来审核哪些是优普。
以上是快手内容冷启动推荐模型的实际应用的详细内容。更多信息请关注PHP中文网其他相关文章!