[论文笔记]Recommending what video to watch next: a multitask ranking system

一.论文题目与作者

Zhao Z ,  Chi E ,  Hong L , et al. Recommending what video to watch next: a multitask ranking system[C]// the 13th ACM Conference. ACM, 2019.

二.创新点

挑战:在Youtube中,有多个影响排序的目标相互竞争。并且,在用户的反馈中,包含隐式的选择偏差。

目标包含两大类:

1.参与度:用户是否点击、与推荐的视频的参与度,如停留时长

2.满意度:用户是否喜欢视频、给视频的打分

在本文中,使用MMoE结构,来优化多个排序目标。同时,在Wide&Deep框架下,额外添加一个浅层网络,接收与位置相关的输入,再输出偏移项,来缓解数据的偏差问题。

通读下来,本文网络结构的创新倒是寥寥,但是涉及很多推荐中的实际问题,如数据偏差、多模态特征处理、point-wise/pair-wise/list-wise等打分方式,倒是让人开眼界不少。

三.推荐相关知识

论文中关于什么是推荐、什么是数据偏差的解释:

  • 个性化的视频推荐系统:

  • 给定query(用户的观看历史)和context(如周五晚上在家,有一个候选的视频列表),返回给用户想看的一个视频列表。

  • 数据偏差:

  • 由于系统的选择使得某视频靠前,用户可能会点击该视频,尽管这不是用户最喜欢或者最需要的视频。当新的模型基于此来训练的时候,就会产生偏差。长期就会产生循环效应。

缓解偏差问题的常见做法:

  1. 在输入特征中引入位置特征,学习P(relevance|pos),预估当pos=1时的相关性P(relevance|pos=1)。即假设当pos=1的时候数据是无偏的。

  2. 从位置中学习偏移项。可以了解下逆倾向分数,inverse propensity score。

推荐系统需要考虑的因素:

  1. 多模态的特征空间通常包括:视频内容、视频缩略图、声音、标题、表述、用户特征等。包括两个难点:1)需要填补低层次内容特征与内容过滤的语义鸿沟;2)从items的稀疏分布中学习协同过滤。

  2. 可扩展性。可扩展性非常重要。推荐系统不仅需要学习数十亿个item和用户的表现形式,而且需要在打分过程中做到高效。

推荐系统两阶段:

  1. 召回

召回,即从巨大的子集中选出数百个候选项。召回的方式有很多,每一种召回方式捕捉query视频和候选视频在某一个方面的相似性。

1)匹配query视频的主题;

2)匹配经常和query视频同时看的视频;

3)给定用户的浏览历史,生成个性化的视频;

4)生成感知上下文的候选视频。

2. 排序

从数百个候选项中生成排序列表。对用户最有用的item会被排在最前面(highest utility)。

本文采用point-wise方法,对每个候选视频进行预测。

point-wise与pair-wise和list-wise的区别:

  • point-wise:对每个候选视频进行预测;

  • pair-wise:对一对候选视频进行预测;

  • list-wise:对多个候选视频进行预测。

与point-wise不同,pair-wise或list-wise是对两个或多个候选项对排序进行预测,可以潜在地改进推荐项目的多样性。本文是基于在线服务的考虑,使用point-wise排序。对于在线服务,point-wise排序对大量的候选视频是最简单和有效的。相比之下,pair-wise或list-wise需要对pairs或lists进行多次打分,以便在给定一组候选项的情况下,得到最佳排序列表,从而限制了它们的可扩展性。

四.网络结构

[论文笔记]Recommending what video to watch next: a multitask ranking system

整体结构可以看作是Wide&Deep模型的扩展,浅层网络可以看作是Wide部分。

模型的输出分为两部分:

  1. 主模型中学到的各个意图;

  2. 浅层网络中学到的倾向分

目标包含两大类:

  1. 参与度

  2. 是否点击:二分类任务

  3. 观看时间:回归任务

  4. 满意度

  5. 是否点击喜欢:二分类任务

  6. 评分:回归任务

对于二分类任务,使用cross entropy loss;对于回归任务,使用squared loss。

通过多分类的任务,得到上述打分后,通过加权和得到最后的综合分数。权重是人工调整的,用于更好的平衡用户的参与度和满意度。

  1. 主模型

主模型使用MMoE网络。不同于使用硬参数共享的shared-bottom model结构,MMoE网络使用软参数共享的方式,建模任务的冲突与关系。具体细节与MMoE类似。

[论文笔记]Recommending what video to watch next: a multitask ranking system

gate是通过softmax函数,对输入进行简单的线性变换得到的:

[论文笔记]Recommending what video to watch next: a multitask ranking system

2.缓解偏差的浅层网络

[论文笔记]Recommending what video to watch next: a multitask ranking system

很常见的一种现象是,用户会因为视频的位置更靠前,而去点击和观看该视频,而不是完全出于自己的实际需求。因此,浅层网络的目标是,缓解来自线上排序系统的偏差。

具体做法是:

在训练的时候,将与选择偏差相关的特征输入到浅层网络中,输出偏差项,将其加入到最后的输出中;

而在线上服务的时候,则去掉位置特征。

所有的impressions都会被使用,随机drop out 10%,防止模型过度依赖位置特征。

在浅层网络的输入中,除了位置特征,还会使用设备特征,是因为不同类型的设备会造成不同的位置偏差。

五.实验结果

本文没有给出离线的实验结果,就一起看一下线上的吧。

  1. multi-task

验证MMoE结构的有效性和MMoE中experts的数量对最终实验结果的影响。

[论文笔记]Recommending what video to watch next: a multitask ranking system

不同子任务对不同的experts的依赖程度。

[论文笔记]Recommending what video to watch next: a multitask ranking system

2. position bias

随着位置越来越低,CTR显著降低。而更高位置的CTR更高,是由于推荐的item更加相关和位置更靠前的综合影响。

[论文笔记]Recommending what video to watch next: a multitask ranking system

(强行理解一下,位置9的CTR低,可能并不是因为完全不相干,也有可能是位置更靠后,所以给位置9的位置偏差绝对值更大一些??

位置1的CTR高,同时位置会更好一些,也就是说,位置带来的副作用更少一些,所以位置偏差的绝对值要更小一些??

不知道是否正确。)

除了在Wide&Deep的框架下,使用浅层网络学习position bias外,还可以使用以下方式:

  1. 直接将input feature作为输入;

  2. 利用迁移学习,在dann中将预测位置作为辅助任务。

实验结果表明在Wide&Deep的框架下使用浅层网络的效果是最好的:

[论文笔记]Recommending what video to watch next: a multitask ranking system

六.未来方向

  1. 探索更多更稳定的多任务学习的结构,例如SNR;

  2. 理解和学习因式分解,建模更多已知或未知的bias;

  3. 模型压缩。

七.总结

读完本文最大的收获就是了解排序中数据偏差带来的影响、召回等知识点。无心插柳。

上一篇:怎么用Gitee上传文件


下一篇:Magical Triangles