你有考虑过推荐系统的多样性层面是怎么设计的吗?
推荐系统中精排模块是对各个item进行精准预估,而在之后的重排阶段则会整体考虑推荐的N条内容间的关系,给出listwise粒度上最优的推荐序列。
多样性是重排阶段的一个排序策略,已经有文献指出多样性和准确性并非完全矛盾。因为,用户没有点击并不一定是 ctr 预估不准确,而是用户已经点击了类似的东西,这才导致了下一条内容没有点击。所以存在多样性与精确性同时提升的空间。
MMR(Maximal Marginal Relevance)是一种简单、易于实现的多样性控制算法,非常适合快速上线,作为baseline,探索多样性对系统整体的收益空间。
MMR
MMR全称为最大边缘相关模型,同时将相关性和多样性进行衡量。因此,可以方便的调节相关性和多样性的权重来满足偏向“需要相似的内容”或者偏向“需要不同方面的内容”的要求。
MMR公式如下:
其中R是输入的列表,Di是集合R的成员,S是当前返回的结果集。Sim1(Di,Q)代表query与文档之间的相关度,推荐中一般是精排的预估ctr值。Sim2(Di,Dj)代表文档与文档之间的相似度,用来控制最终结果的多样性。
参数 λ调节相关性(相关性=精确性)和多样性之间的偏重程度,一般是通过线上真实流量探索出最优参数设定。
MMR组成最终列表是一个贪心的过程,每次选一个当前最优的文档D加入最终列表S,但不能保证是整体最优。
公式中有两层循