10 月 20 日,信息检索和数据挖掘领域的顶级会议之一 CIKM 2022 公布论文奖项,快手社区科学团队获得了应用研究方向「最佳论文奖」。

获奖论文《Real-time Short Video Recommendation on Mobile Devices》针对短视频推荐场景,传统服务端部署的推荐系统在决策时机和实时特征利用方面的不足问题,通过在移动客户端部署推荐系统来实时响应用户反馈,提高推荐结果的精准度,从而提升用户体验。论文提出的方案 100% 流量部署到了快手短视频推荐生产环境,影响了日均超过 3.4 亿用户的体验,是端上智能在大规模推荐场景落地的创新实践。

论文链接:https://dl.acm.org/doi/10.1145/3511808.3557065
以下为作者团队对论文工作的详细解读:
背景
近年来,越来越多的用户通过短视频应用来学习和娱乐,并且可以通过丰富的反馈来表达对视频内容的兴趣,比如点赞、收藏、分享等(如图1所示)。

决策机会角度:服务端只有在接收到客户端的请求时才有机会调整后续推荐内容,而无法对用户的实时反馈马上做出响应。即使用户对某类内容表现出了明显的偏好或厌恶,客户端也没办法对候选中的类似内容做提前或者打压操作。 特征时效性角度:用户的反馈必需回传到服务端才能被利用,整个链路延迟通常长达几十秒甚至几分钟,对特征的时效性有很大的影响。同时,有一些客户端独有的特征,比如当前时刻下,设备的网速、每个候选视频的预加载时长等,在服务端是无法获取的,但这些因素也会对用户体验造成影响。
系统框架

服务端的推荐系统。这部分就是传统的推荐系统,通常包括召回、排序、重排等环节,最终输出几十个左右的候选视频。一些服务端能获取到的特征也会被抽取出来,随着候选视频一起发送到客户端。 模型训练系统。这个模块负责训练拼接训练样本,并训练端上重排模型。训练过程中会定期导出 checkpoint,并转换成 TFLite 格式下发到客户端。 客户端推荐系统。这是整个系统的核心模块,负责客户端的特征收集,以及根据用户行为触发候选视频重排。
端上重排模型
服务端的精排模型是一个非常复杂的超大规模千亿参数模型,在精排模型的预估值中已经蕴含了输入特征中的精华信息,客户端的重排模型可以直接将其作为输入,减少重复计算,也省去了搭建一套类似pipeline的训练和预测资源开销。同时,拆分部署的架构会增加维护的复杂性,比如客户端的模型更新受到很多限制,可能同时存在非常多的模型版本,需要保证服务端参数和客户端参数的一致性,这些也会带来更多的资源开销。 客户端能获取的实时特征都是比较小规模,并且有明确含义的,比如用户的反馈、网速信号等,这些特征也不需要太复杂的网络结构来学习。 精排模型用到了用户的长期行为序列,能学到用户的长期兴趣,和客户端侧重于用户实时兴趣感知的模型正好互补。
模型输入特征分成3类:
精排模型预估分。前面提到过,精排模型用到的特征和模型结构都很复杂,因此其预估分有很丰富的信息量,这也决定了精排的预估分是非常重要的输入特征。同时精排模型用到了视频 id、用户 id等记忆性特征,以及非常长的用户历史行为序列,因此很擅长捕捉用户的长期兴趣,和客户端侧重用户实时反馈的重排模型正好互补。 视频静态属性。为了减少参数量,我们主要选择视频的类别、时长等维度比较低的属性,整体 id 特征的取值数量不超过 10000。 客户端特征。用户在观看视频的过程中,客户端会收集用户反馈、观看时长等信息,并组织成按观看时间排序的序列格式,同时也会收集当前的网速、视频预加载时长等客户端独有的特征,作为端上重排模型输入。
候选视频精排pXTR和观看历史视频pXTR的差。不同用户天然存在的 bias 会导致用户间的 pXTR 并不直接可比,比如有些用户 pXTR 会整体偏高或偏低,由于端上重排模型中没有用到 uid 等特征,直接用pXTR作为特征会干扰模型学习。通过 pXTR 之差可以消除这种 bias,并且以最近看过的视频 pXTR 为锚点,可以感知用户的实时兴趣偏好。 上次视频曝光时间之差。通常来说离当前时间越近的视频影响越大。 视频曝光位置之差。用户观看视频的速度通常变化较大,此时曝光位置之差比曝光时间之差会更稳定。两者结合起来可以建模视频在时间和空间上的互相影响。



个视频的概率,用来作为折扣因子,引入后续内容的 reward。
,
是不同目标的权重,
是候选集合的某个排列。
个视频,因此每次排序只需要确定
的顺序即可(沉浸式上下滑场景
)。在离线实验中,我们还观察到,beam search 每一步得到的
个序列,它们的 ListReward 的差别随着搜索步数增加会单调递减。利用这个特性,我们定义了 beam search 的稳定性,并提出自适应搜索步数的 beam search(图4),可以将 beam search 的时间复杂度从
进一步降低到
,其中
是beam size,
是候选视频数量,
是实际的搜索步数,
。最终的 context-aware 生成式重排算法如图 5 所示。

实验





候选集合大小会周期性变化。当服务端的候选集合刚下发到客户端时,候选空间最大,随着视频逐渐曝光,候选数量慢慢变小,潜在的收益空间也逐渐收缩,直到接收到下一次候选集合。 服务端排序效果的周期性变化。服务端每次接收到客户端的请求时,可以利用最近的用户行为,推荐更好的内容,此时排序效果是最好的,随着用户在客户端持续观看视频,变化的上下文使得服务端的排序逐渐变得不够准确,这也存在周期性的变化。

总结
文章转载自快手技术团队,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




