整个粗排模块上线后,我们关注的两类指标:互动类指标和播放类指标,都有非常明显的正向提升,具体的指标提升幅度可以参考上图的在线实验结果。
一般,粗排模块的表现和实际场景有较大的相关性:在候选集非常大的推荐场景下,粗排到精排间的漏斗有好几个量级,这时粗排模块会带来非常显著的收益;在候选集比较小的推荐场景下,从召回到精排间的漏斗不是很大,这时粗排的收益可能就比较有限。
进而,考虑做进一步优化。
5. 还有哪些需要考虑?
首先,上述粗排蒸馏过程本质上是pointwise,但通过上报精排日志可以拿到精排模型给出的完整再推荐列表,用pairwise学习精排排出来的序,可以进一步逼近精排结果,能更多的提取精排传递出的信息。
其次,前面虽然不断地用teacher模型和student模型描述整个过程,但实际效果上student模型不一定低于teacher模型。换一个角度,student模型其实是基于teacher模型做进一步训练,所以student模型的表征能力有可能超过teacher模型。事实上,如何让student模型通过反复的蒸馏,效果超过teacher模型,在模型蒸馏领域也有许多相关方法。
最后,粗排到底是召回的延伸,还是精排的压缩跟前置?虽然召回和精排都是一个检索的过程,但二者实际侧重点还有一些不同,比如,召回在多样性上有更多的考量,精排更强调排序次序的精准性,而粗排处于这两个环节之间,如何利用粗排模块更好地平衡召回和精排?通常而言,会考虑设计多样性调节算法解决这一问题。
04
多样性调节算法设计
1. 推荐多样性的意义
多样性的概念在推荐系统里常被提到,在不同视角下,推荐多样性对应着不同的问题。
- 在系统角度下,多样性是一种popularity bias,即流行度的偏置。流量在UGC作品上的分布,体现了系统层面的多样性:一个多样性弱的系统,更像是中心化分发的,只分发非常头部、非常类似的一部分作品;而一个多样性强的系统,则是一个去中心化分发的,会更多地兼顾中长尾内容流量的供给。实际上,在推荐系统中普遍会遇到如下问题:如果没有对推荐系统做额外的干预和纠偏,不可避免地会使推荐系统往多样性弱的方向发展。从数据层面解释,有丰富数据的那部分内容会在推荐过程被反复加强,使整个推荐循环链路越缩越小,马太效应越来越严重。对于一个ugc平台,需要考量生产者或创作者的利益,而这种聚集在部分创作者身上的马太效应是我们不愿意看到的。
- 在用户角度下,多样性就是Explore&Exploit问题,对用户做兴趣的探索与聚焦。如果多样性弱,推荐的item同质化严重,都很像,那么推荐系统可能没办法发现用户的真实兴趣,因为系统可能都没给用户推荐过这类item;如果多样性强,那么用户的推荐流里的内容会很不一样,坏处可能是用户在持续消费过程的兴趣聚焦程度不同,比如用户看了五个item,明明对其中某一两个item更感兴趣,但和这一两个item相似的item的后续推送密度却跟不上,这对用户体验是有损的。如果不做额外的优化,用户角度的多样性会越来越小,因为通常选用的pointwise模型会导致同质化的现象,比如说用户喜欢的item是乐器类的,则pointwise在每一个单点上的预估都觉得乐器是最好的,最后可能连续给用户推了5个乐器,在单点上收益最高不代表用户对整个推荐结果 ( 5~10个item ) 的满意度是最高的,所以这里也需要做多样性控制,提升用户的满意度。
2. 多样性控制的方案路线
在具体实现上,多样性有三个主流的技术方案:规则打散、embedding打散和DPP,下面会详细介绍:
- 基于规则打散,比如从item里抽象出发布作者、标签、伴奏等特征,基于这些特征去做一个session内的频控。这种方法的好处是易实现,缺点也非常明显,该方案本质上是进行枚举加排列组合,扩展性非常差,永远没办法枚举所有可能的情况,枚举出来的情况不一定能真实表征两个item间的相似或差异程度有多大。
- 基于embedding打散,一个连续值的方案。好处是它可以基于embedding对候选集做离散性的评估,相当于此时可以用向量化的方式表达item。缺点在于它虽然可以衡量离散性或多样性,但难以衡量相关性,从而无法实现联合的收益评估。事实上,多样性只是我们的一个目标,相关性也很重要,如果推了很多不同的东西,但和用户不怎么相关,可能会适得其反。
- DPP概率模型,本质上是一种集合选择技术,选择出一个子集使得多样性和相关性联合建模的收益最大。直观理解,先基于多样性和相关性构建一个矩阵,该矩阵行列式的物理含义是矩阵中各向量张成的平行多面体体积的平方,这样就把问题转换成了一种可度量的方式:要想同时最大化多样性和相关性,只需要最大化平行多面体的体积。
通常,从平台生态控制的角度,类似DPP的控制算法需要贯穿整个推荐链路。在粗排和精排之后,都需要DPP环节,后续会介绍DPP算法的具体实现。
3. DPP 技术细节