推荐中的多样性与生态建设

01

为什么推荐需要多样性

之前在写召回文章时也提到过“信息茧房“,由于推荐算法对人兴趣的预估愈发精准,导致推荐内容虽然更准了,但是容易造成相似内容扎堆,也就是很多人吐槽的“我昨天看了几个美食视频,结果今天给我疯狂只推美食”;那么这种现象会造成什么后果呢?

  • 从用户体验来看,容易造成审美疲劳和新鲜感下降,进而造成消费下降和流失
  • 从数据收集来看,用户的兴趣被局限,进而无法获得用户对于更多内容的样本,得不到用户级别更广泛兴趣的训练数据
  • 从模型拟合来看,整个大盘的数据分布bias会更加严重,导致模型泛化性变差
  • 从作者角度来看,多样性不足+bias严重导致A品类的作者天生就比B品类更容易分发消费,打击部分作者积极性
  • 从内容生态来看,内容同质化+作者流失最终导致内容品类匮乏

以上持续恶性循环,最终就会导致产品凉掉。总结下来,我们不希望推荐算法让用户的推荐视野变窄,进而伤害了用户体验(尤其是兴趣宽泛、偏逛、需求不明确的用户),以及作者体验(尤其是小众作者),最终导致产品GG。

但是我们要记住:多样性不是我们的目的,我们的终极目的仍然是提高用户留存。

02

如何评估推荐多样性

多样性是很长期的工作,一般来说在做生态项目时,都伴随着短期消费核心指标波动甚至微负,长期拿到显著核心收益的情况,比如说更少的用户投诉、更多的时长、点击甚至留存。

我们的信念是:多样性—>系统生态更好—>作者留存—>用户消费和留存

但是我们不能再依赖短期的点击率/人均停留时长等指标来直接评估我们模型策略是利是弊,肯定需要制定一系列新的指标。具体指标得结合业务去设定,像电商、广告、信息流肯定有区别的,但一般都可以从【个人】+【系统】两个大的维度来评估,以信息流产品为例

【个人】强调的是用户体感,包括不限于

  • 单个用户一刷内多样性
  • 单个用户跨刷多样性
  • 两个用户彼此的差异性
  • 单个用户N天内消费的密集性/覆盖度
  • 用户兴趣的迁移程度

【系统】强调的是生态建设,包括不限于

  • 人均消费的品类数

  • 品类渗透情况

  • 小众作者的发文情况

03

如何提高推荐多样性

一谈到多样性可能很多人都会提到 重排+打散 ,确实基于规则的打散和基于listwise的重排都是提高多样性的有效方法,但要想真正发挥多样性的潜力,就必须全链路优化。举个最简单的例子,如果召回回来的全都是 二次元 和 影视拆条 ,那不管如何打散都不可能给你推荐出来 小姐姐跳舞 或者 美食摊店 。

既然推荐系统本身就包括召回-粗排-精排-重排几个关键环节,就可以都针对性做一些工作,比如

3.1 召回

由于不同召回策略在 多样性、新颖性、覆盖率 等指标上存在较大差异,所以思路可以是两种,一种是通过改进数据流+结构提高模型的多样性,并替换线上召回模型(难度大一些,但是资源消耗少);第二种就是加新的召回专门负责兴趣探索(会挤占quota和ps资源)

  • 热度降权

比如协同过滤中加一个热度的惩罚项

  • 召回频控

对于具有相同属性的Item,比如作者、类别等,短时间内控制推荐的次数。这里的"短时间",在不同业务场景不同Item类型都是不一样的,比如用户一次请求、用户session会话周期等。单路召回内部,或者多路召回merge时做一些多样性策略,还能缓解quota问题。

  • 多兴趣召回

比如阿里的MIND

论文地址

,论文提出单一的向量无法准确表达出用户多种多样的兴趣,除非把这个向量长度变得特别大,如果单个兴趣向量没法做到将所有的用户兴趣点覆盖,那么就多搞几个向量,几个向量同时来表示用户的兴趣点。

  • 兴趣探索召回

一些非模型的召回可以很简单达到这个目的,比如离线统计后验然后加一路redis召回,或者写个新的候选表复用主召回模型。

也可以固定坑位做EE,最简单的就是多臂老虎机原理,选择合适的reward然后根据"臂"的权重分布随机抽样下一次选择的“臂“,这里的臂可以是视频的category。

3.2 排序

  • 粗排后打散

如果粗排有截断,粗排打散再进精排可以缓解精排quota问题

  • 精排从point-wise过渡到list-wise

point-wise毕竟只考虑了单个item的预估分,而list-wise会考虑一刷整体的收益

  • 长期兴趣

除了召回外,精排也可以充分发挥超长行为序列的优势,提高长期/常尾兴趣的排出率,比如阿里妈妈的论文SIM就是超长行为序列的利用。

  • 重排&混排

比如最简单的MMR提高多样性

  • 多目标融合调优

如果只考虑ctr那么天然适合标题封面党,只考虑finish会利于短且内容密集的视频,staytime利于中长影视,以上还只是用户层面的;如果在融合公式加上作者侧、内容测、长期的指标,也会利于生态建设

3.3 规则&产品

  • 一些机制策略

作者/品类等规则打散;热度内容的deboost;长尾内容的boost等。核心是通过大量快速的abtest迭代测试找到靠谱可行的策略

  • 消重与频控

这块需要提及的是为了避免用户短时间内看到相同/相似的item,客户端、服务端的窗口是不同的,服务端窗口更短。而像相关等场景其窗口和频控严格程度与feed是完全不同的。

  • 其他场景引入

比如搜索进推荐,或者长尾场景的消费进主场景

04

结语

  • 多样性是手段而不是目的,我们的终极目的还是用户消费和留存,只是多样性/兴趣探索作为一种手段能在链路上助于生态+作者,进而影响用户消费罢了

  • 多样性是一个很长期的工作,短期内不能仅靠用户核心指标来判断自己策略是否正确,有的时候需要看信仰做事,然后长期观察AA变化

  • 老板如果就看短期收益,那么你做多样性大概率不对你老板的胃口; 而如果你遇到的都是眼光比较长远的老板/产品/运营,并且真的要好好做生态建设,最重要的就是指标链路建设,只有指标设对了才能不断AB快速验证你的想法,并且观测其对整个产品的影响

  • 不要追求模型的fancy,很多时候一些产品思维+规则就能对生态起到很大的影响

往期推荐

KDD'21 FaceBook | MixGCF:基于图的负采样方法

SIGIR'21 微软|基于自监督图学习的召回方法

推荐系统交流群:联系作者--备注“研究方向-公司或学校”

picture.image

picture.image

扫描获取更多精彩

点个在看你最好看

picture.image

0
0
0
0
评论
未登录
暂无评论