一.论文题目与作者
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(如周五晚上在家,有一个候选的视频列表),返回给用户想看的一个视频列表。
-
数据偏差:
-
由于系统的选择使得某视频靠前,用户可能会点击该视频,尽管这不是用户最喜欢或者最需要的视频。当新的模型基于此来训练的时候,就会产生偏差。长期就会产生循环效应。
缓解偏差问题的常见做法:
-
在输入特征中引入位置特征,学习P(relevance|pos),预估当pos=1时的相关性P(relevance|pos=1)。即假设当pos=1的时候数据是无偏的。
-
从位置中学习偏移项。可以了解下逆倾向分数,inverse propensity score。
推荐系统需要考虑的因素:
-
多模态的特征空间通常包括:视频内容、视频缩略图、声音、标题、表述、用户特征等。包括两个难点:1)需要填补低层次内容特征与内容过滤的语义鸿沟;2)从items的稀疏分布中学习协同过滤。
-
可扩展性。可扩展性非常重要。推荐系统不仅需要学习数十亿个item和用户的表现形式,而且需要在打分过程中做到高效。
推荐系统两阶段:
-
召回
召回,即从巨大的子集中选出数百个候选项。召回的方式有很多,每一种召回方式捕捉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进行多次打分,以便在给定一组候选项的情况下,得到最佳排序列表,从而限制了它们的可扩展性。
四.网络结构
整体结构可以看作是Wide&Deep模型的扩展,浅层网络可以看作是Wide部分。
模型的输出分为两部分:
-
主模型中学到的各个意图;
-
浅层网络中学到的倾向分
目标包含两大类:
-
参与度
-
是否点击:二分类任务
-
观看时间:回归任务
-
满意度
-
是否点击喜欢:二分类任务
-
评分:回归任务
对于二分类任务,使用cross entropy loss;对于回归任务,使用squared loss。
通过多分类的任务,得到上述打分后,通过加权和得到最后的综合分数。权重是人工调整的,用于更好的平衡用户的参与度和满意度。
-
主模型
主模型使用MMoE网络。不同于使用硬参数共享的shared-bottom model结构,MMoE网络使用软参数共享的方式,建模任务的冲突与关系。具体细节与MMoE类似。
gate是通过softmax函数,对输入进行简单的线性变换得到的:
2.缓解偏差的浅层网络
很常见的一种现象是,用户会因为视频的位置更靠前,而去点击和观看该视频,而不是完全出于自己的实际需求。因此,浅层网络的目标是,缓解来自线上排序系统的偏差。
具体做法是:
在训练的时候,将与选择偏差相关的特征输入到浅层网络中,输出偏差项,将其加入到最后的输出中;
而在线上服务的时候,则去掉位置特征。
所有的impressions都会被使用,随机drop out 10%,防止模型过度依赖位置特征。
在浅层网络的输入中,除了位置特征,还会使用设备特征,是因为不同类型的设备会造成不同的位置偏差。
五.实验结果
本文没有给出离线的实验结果,就一起看一下线上的吧。
-
multi-task
验证MMoE结构的有效性和MMoE中experts的数量对最终实验结果的影响。
不同子任务对不同的experts的依赖程度。
2. position bias
随着位置越来越低,CTR显著降低。而更高位置的CTR更高,是由于推荐的item更加相关和位置更靠前的综合影响。
(强行理解一下,位置9的CTR低,可能并不是因为完全不相干,也有可能是位置更靠后,所以给位置9的位置偏差绝对值更大一些??
位置1的CTR高,同时位置会更好一些,也就是说,位置带来的副作用更少一些,所以位置偏差的绝对值要更小一些??
不知道是否正确。)
除了在Wide&Deep的框架下,使用浅层网络学习position bias外,还可以使用以下方式:
-
直接将input feature作为输入;
-
利用迁移学习,在dann中将预测位置作为辅助任务。
实验结果表明在Wide&Deep的框架下使用浅层网络的效果是最好的:
六.未来方向
-
探索更多更稳定的多任务学习的结构,例如SNR;
-
理解和学习因式分解,建模更多已知或未知的bias;
-
模型压缩。
七.总结
读完本文最大的收获就是了解排序中数据偏差带来的影响、召回等知识点。无心插柳。