KDD 2022 | 短视频相关推荐新SOTA!快手&人大提出特征感知多样性重排算法
©作者 | papacai
单位 | 腾讯算法研究员
研究方向 | 推荐算法重排
论文标题:
Feature-aware Diversified Re-ranking with Disentangled Representations for Relevant Recommendation
收录会议:
KDD 2022
论文链接:
https://arxiv.org/pdf/2206.05020.pdf
现有的推荐流程中,当用户点击短视频上的“喜欢”按钮时,系统会给用户推荐更多相似的短视频。但是如果应用一直给用户推荐跟喜欢视频非常相似的内容,也会造成用户的视觉疲劳以及增加信息茧房,因此需要平衡考虑相关性和多样性,在满足用户正向偏好的基础上,挖掘用户更多兴趣。
本文实际上就是研究如何去平衡“相关推荐”中的相关性及多样性。这里的“相关推荐”需要单独来解释一下,因为初读论文的时候确实这个词给我带来了一些困惑。论文里的”相关推荐“任务,我的理解是在推荐中增加了主动信息获取,从而对主推荐流中的推荐结果进行干预。例如:当用户看完一个短视频时,他往往会想要继续观看和这个短视频相关的拓展内容。
然而,传统的推荐系统 feed 流难以提供这种深度的拓展功能。这是由于考虑到推荐系统多样性和兴趣试探的要求,很少会出现同一个主题或类目的短视频连续出现的情况。大家感兴趣可以去看下微信团队在 WSDM 2021 上介绍相关推荐的文章。
Real-time Relevant Recommendation Suggestion
https://dl.acm.org/doi/pdf/10.1145/3437963.3441733例如,在图 1 中被点赞的短视频带有一组语义标签 {sunset, train and sea},根据这些细粒度的语义标签(即特征)进行相关推荐将是非常有意义的。然而,现有的多样性推荐方法主要侧重于 item 的多样性,无法做到有效地捕捉特征级的多样性。此外,如果直接在现有方法中利用 side information 做特征维度的多样性推荐很可能拿不到很好的收益,因为大量的 side information 可能是冗余或者包含很多噪声的。
针对上述问题,我们设计了一个通用的重排框架(FDSB),以捕获相关推荐中的特征感知多样性。FDSB 框架包含两个模块,即解耦注意力编码器(disentangled attention encoder)和自平衡多元重排器(self-balanced multi-aspect re-ranker)。解耦注意力编码模块使用多头注意力从丰富的 item 特征中学习分离表征,学习到的分离表征为 item 特征提供了一个更紧凑的表示。对于自平衡多元重排模块,主要是提出了一种能够自适应平衡相关性和多样性的重排机制。
问题定义及核心思想
论文中首先将相关推荐任务定义为一个多因子排序问题,将用户的偏好得分、候选集与触发 item 的相关性以及返回推荐 item 集合的多样性综合考虑,最终获得一个更均衡的排序结果。我们可以定义 表示完整的推荐候选集合, 表示触发 item, 表示目标用户。这样,整个任务就可以描述为一个从推荐候选集 中按照下面公式 (1) 来选取条件子集 的过程:
公式 (1) 中的第一项代表用户对候选集合的偏好得分,可以利用当前已有的模型得到这个分数,第二项和第三项是本文研究的重点,即 trigger item 和已选集合的相关性以及在给定 trigger item 的条件下选出 item 集合的多样性。模型中对相关性和多样性的定义为:
从公式 (2) 来看,这里提出的方法相对于已有的相关性和多样性方法,主要的区别和创新在于除了 item 维度之外,引入特征维度,例如品牌、颜色等 side information 信息进行相关性和多样性的计算。也就是公式 (2) 中的 项和 项。这里其实在我自己工作的业务场景中也有过类似的实践并取得显著的收益,比如利用 MMR 或 DPP 进行多样性打散时如果使用跨域的 item 的 id embedding 做 concat 或者 pooling 相对于仅使用场景内输出的 id embedding 是会有提升的。
定义好了问题,之后就是如何去根据公式 (1) 去求解得到推荐结果了。从公式 (1) 中我们可以知道这是一个组合优化问题,即在给定约束下从集合 中获取子集 的过程,是一个 NP-Hard 问题。论文中将这个过程简化成了一个 greedy 的求解过程,具体的求解方法见公式 (3):
算法细节
2.1 解耦注意力编码器
上面提到了论文的创新在于计算相关性和多样性时引入了特征维度的信息,但在推荐系统中,item 通常具有大量丰富的 side information 特征 ,可以从不同维度来表征 item,这些特征通常是相关的或冗余的。
考虑到这个问题,论文中提出了一种解耦注意力编码器(DAE)来将这些特征进行解耦,学习 item 的分离表征 ,该模块是 FDSB 方法中进行相关性和多样性建模的基础。DAE 的整体架构如下图所示:
DAE 使用了 multi-head attention 的结构进行建模,以 item id 的 embedding 和特征投影向量作为 query 和 key,item 的原始特征作为 value 来进行多头注意力计算。特征投影以及注意力的计算参见公式 (4):
2.2 自平衡多元重排器
我们知道推荐结果的多样性和相关性在一定程度上是相互矛盾的,对于 FDSB 方法,主要困难也在于相关性和多样性之间的平衡,因为这两个因素本质上是矛盾的:触发 item 如果和候选 item 相关性越高,则增加该 item 后整个选中 item 集合的多样性越少,反之亦然。这个问题其实在多样性实践中是比较常见的(例如 MMR 和 DPP)。论文在 FDSB 方法中扩展了经典 MMR 框架,并设计一个自平衡多元重排器,能够自适应地调整多样性和相关性的权重。
2.3 分离表征自适应融合
自适应多元重排器引入了两个可学习的系数向量 和 自适应的融合不同的分离表征, 和 是 维系数向量,分别用来表示多样性系数向量和相关性系数向量。具体的定义见公式 (7):
式 (7) 中的 是一个 维向量,代表触发 item 和之前 个 step 选取的集合的累计相关性。向量 中的元素 根据公式 (8) 计算:
和 分别是已选集合和触发 item 根据公式 (4) 获得的分离表征。
2.4 贪心选择过程
我们来看下自平衡多元重排器是如何生成最终的结果的,这里采用了贪心的选择过程,在第 1 个选择 step,因为当前的已选择集合中还没有任何 item,因此当前 step 退化为单个 item 的相关性得分,计算方式如公式 (9):
在多样性得分公式中,采用了类似 MMR 中的计算方式,即减去所选物品和候选物品之间的最大相似度作为多样性得分。
算法时间复杂度为 ,其中 表示给用户推荐 item 的个数, 表示候选 item 的个数, 表示分离表征的维度。在实际生产环境中,表征相似性是通过向量内积来计算的,因此可以提前离线计算好,然后通过高效的向量化召回算法按照 ID 索引最相似的 embeddings,这样可以将算法的时间复杂度降到 。算法整体流程如下:
3.1 数据集
论文的数据集是在快手推荐页场景内通过采样部分活跃用户,按照 session 维度进行聚合后获得的样本。最终数据集的统计数据如下:
数据集构建这里会有一个疑问(作者或者知道的小伙伴看到可以告知):因为这里相关推荐是根据触发 item 进行后续推荐列表的生成,那么这里的 session 概念我理解是一次推荐产生的 N 个视频,这里的触发 item 在线 dump 特征应该也会一起落下来吧?然后这里触发 item 是按照时间序的最后一个正向 item 吗?
3.2 评估指标
论文里采用了 6 个评估指标,除了用来衡量准确性的 Recall、MRR 和 F-score 外,文中也定义了特征粒度的相关性评估指标 MFHR,主要用来衡量触发 item 和推荐 item 集合的相关性,具体定义方式见公式 (11):
其中 为推荐 item 集合, 和 分别代表推荐 item 和触发 item 的特征集合。MFHR 通过计算特征的平均命中率来衡量两个 item 间的相关性。为了衡量推荐 item 集合的特征感知多样性,论文里又引入了两个衡量指标 FCR 和 ILAD:
FCR 计算所有推荐 item 跟触发 item 的特征命中率。ILAD 用来表示单个用户维度的推荐列表的曝光多样性。
3.3 离线实验结果
3.4 线上部署和A/B测试
FDSB 框架的部署工作流如上图,可以看到整个部署流程分为离线和在线两部分,我们现在按照如何运转整个流程的思路介绍框架的部署流程。
整个 FDSB 框架应用于重排阶段,在线输入是来自按精排打分作为初始排序的 Top-N 列表,根据输入列表以 item id 为 key 获取 item 的特征(包含 id embedding 和 side information 特征),之后的 real-time rerank server 分别顺序执行 DAE 模块获取特征的分离表征和自适应多元重排器贪心的或取最终的推荐列表;这里有个待确认的地方,在 real-time rerank server 中的触发 item 如何选取?
如果在上一刷结果中,用户有多个正向 item,那么在贪心求解过程中,只能选取最后一个有正向行为的 item 作为触发 item,但这样做对于用户的正向兴趣满足并不及时;如果在用户实时有正向行为的 item 作为触发 item 进行后续的相关推荐,则会打乱已有的推荐流,也会增加系统的请求量。
在我们的推荐场景内,也有类似的方法,即我们根据 user 的实时正向行为,在当前视频后插入重新生成的一刷推荐结果,这一刷结果的生成方式就类似于本文的方法。不知论文中的机制是如何生效的?
在线 A/B 实验选取 MMR 作为 baseline,为了和离线实验保持一致,这里只使用短视频的 tag 作为 item 侧的 side information,使用观看时长,视频播放数,观看视频总标签数和相关性调查问卷四个指标来评估用户满意度和推荐多样性。从 7 天的 A/B 结果上看相比基线 MMR 方法各指标都有一定的提升。
总结
论文主要是针对相关推荐重排阶段提出了一个基于特征感知的多样性重排框架,并将其成功应用在了快手 APP 的相关推荐业务。FDSB 框架包括:用于从大量 item 特征中学习分离表征的解耦注意力编码器,和平衡相关性和多样性的自适应多元排序器。
针对 future work,论文中提到了两点:1)使用一个“端到端”的 ranking 模型,同时建模多样性和相关性;2)此外,我们还将考虑建模特征感知其他推荐任务或场景中的细粒度多样性。
总体来说,针对相关推荐目前确实公开能够获取的资料不多,本文针对该场景的多样性方法的 motivation 还是让人赞同的。论文中从算法复杂度和实现流程上相比于广泛采用的 DPP、MMR 改动并不大,因此也是一篇工程出发并能获取收益的文章。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧