目录
1.背景
- 当前问题:策略复杂,并不能很好的兼顾基于精排后分数和多样性的重排策略,是否影响当前模型的预估排序
- MMR算法可以结合产品运营的约束条件,实现商品的auto打散操作
- MMR算法实现简单,复杂度低,不过多依赖服务端的性能,基于滑动窗口的方案可扩展性强,并可兼顾rank分数,实现一种业务规则下的自动化打散策略。
2.提升多样性的算法
根据上图,粗排和精排之后,需要根据分数进行后处理,如果不需要多样性,只需要按照分数进行到排序就可以,但是往往为了多样性,比如精排的后处理称作rerank
粗排后也需要后处理,便于提升用户的加购率和留存
2.1 相似度的度量
2.1.1 基于物品属性的标签
类目,品牌,关键词等:
一级类目,二级类目,品牌
物品i:美妆,彩妆,香奈儿
物品j:美妆,香水,香奈儿
相似度:sim1(i,j)=1,sim2(i,j)=0,sim3(i,j)=1
然后对3个相似度进行求加权和
2.1.2 基于物品向量表征【后期迭代方向】
基于召回的双塔模型学到的物品向量
2.2 MMR多样性算法
2.2.1 概括
推荐系统和搜索引擎重排中常用的MMR算法,它根据精排打分和物品相似度,从n个物品中选出k个价值高,且多样性好的物品。Maximal
Marginal Relvance(MMR)
假设精排给n个候选物品打分,rank之后的分数为
数学公式: $ reward_{1},reward_{2},…,reward_{n} $
把第i和第j个物品的相似度记作sim(i,j)
重排,从n个物品中选出k个,既要有高精排分数,也要有多样性,作为最后曝光的物品
2.2.2 MMR多样性算法
计算集合R中每个物品数学公式: $ i $的Marginal Relvance分数:
数学公式: $MR_{i}=\theta\cdot reward_{i}-(1-\theta)\cdot\max_{j\in S}{sim(i,j)} $
Maximal Marginal Relvance(MMR)
数学公式: $ argmax_{i\in R}{MR_{i}} $
其中:数学公式: $ i\in R,j\in S $
如果i与某个已选中的物品特别相似,那么第二项就越大,对i起抑制作用,不利于i被选中。
数学公式: $ \theta $是[0,1]之间的参数,平衡物品价值(rank分数)和多样性。数学公式: $ \theta $越大,则物品价值对排序的影响越大。
MMR就是对MR分数求最大化,对于所有未选中的物品,计算集合R中每个物品i的Marginal Relvance分数
MMR多样性算法具体实现
- 已选中的物品S初始化为空集,未选中的物品R初始化未{1,…,n}
- 选择精排分数rewardi最高的物品,从集合R移到S
- 做k-1轮循环:选出k个物品
a.计算集合R中所有物品的分数{MRi}i属于R
b.选出分数最高的物品,将其从R移到S
2.2.3 MMR算法的拓展
问题:随着已选中的物品越多,即集合S越大,越难找出物品i,使得i与S中的物品都不相似
设sim的取值范围是[0,1]。当S很大时,多样性分数maxsim(i,j)总是约等于1,导致MMR算法失效。
解放方案:设置一个滑动窗口W,比如最近选中过的10个物品,用W代替MMR公式中的S
3.业务规则下的多样性算法
一般的的业务规则参考:
比如
规则1:最多连续出现k篇某种笔记
最多连续出现k=5篇图文笔记,最多连续出现k=5篇视频笔记。
如果排i到i+4的全都是图文笔记,那么排在i+5的必须是视频笔记。
规则2:
每k篇笔记最多出现1篇某种笔记
运营推广笔记的精排分数会乘以大于1的系数(boost),帮助笔记获得更多曝光
为了防止boost影响体验,限制每k=9篇笔记最多出现1篇运营推广笔记。
如果排名第i位是运营推广笔记,那么排在i+1到i+8的不能是运营推广笔记。
规则3: 前t篇笔记最多出现k篇某种笔记
排名前t篇笔记最容易被看到,对用户体验最重要(若产品的top4为首屏)
小红书推荐系统有带电商卡片的笔记,过多可能会影响体验。
前t=1篇笔记最多出现k=0篇带电商卡片的笔记
前t=4篇笔记最多出现k=1篇带电商卡片的笔记。
3.1 MMR+重排规则
3.2 多样性定量评估指标
4. 参考文献:
推荐系统应该如何保障推荐的多样性?
推荐多样性重排算法之MMR
工业界的推荐系统-多样性
5. 讨论TODO项:
- 回收商品流推理100->200的rank指标效果,决定是否推全及分析原因
- 多样性IPV指标统计+完善,增加去年9-12月份窗口的IPV波动
- MMR+重排策略的方向以及可行性没有问题,需要探究分析要不要去做?
- 推动召回日志的解析进度加快,recall,rank的分析依赖召回日志的分析
6. 探究分析
6.1 衡量商品多样性有哪些指标,并不是IPV值,如果只用IPV指标评估
- 用户反馈(喷产品经理)后台里关于多样性的反馈数量,这个指标至少是越少越好的,是一个非常可以量化的指标。不过这个信号太稀疏了,不足以从中提取有统计意义的信息。倒是有可能发现一些明显的 bad case 或者 bug。
比如:商品类别明显扎堆,品牌扎堆 - 用户的点击率、阅读时长、留存、分享、互动数据。这是推荐系统的 ground truth,如果你可以建立这些 ground truth 和多样性之间的关系,那显然可以去做一些工作。
多样性打散简介提升商品的点击率,加购率以及GMV