面试官你好,刚才问的ROl问题,我觉得本质是生成式推荐在探索和利用之间的失衡问题。模型为了追求短期指标,比如点击率,很容易陷入重复推荐、过拟合和多样性不足的陷阱。
具体来说,Repetition就是模型像个复读机,反复推同一个作者或者同一类内容,比如你在小红书刷到一篇穿搭笔记,后面连续几条都是类似的。Overfitting是说模型对训练集里的热门物品过度拟合,冷门或者新内容基本没机会露脸,长尾物品召回特别差。多样性不足就是推荐结果同质化严重,用户被困在信息茧房里,平台流量分配也不均衡。
这三个问题会互相强化。重复推荐会让用户疲劳,点击率可能虚高但满意度下降;过拟合加剧马太效应,新创作者很难成长;多样性不足直接拉低长期留存。所以缓解方法不能只治一个,得组合着来。
我重点讲两个阶段的常用手段。训练阶段,一个是负采样优化,不能简单随机采样,得增加难负样本,或者按流行度降权采样,让模型别只盯着热门。另一个是数据增强,对用户历史序列做随机mask或者reorder,强迫模型学会更鲁棒的兴趣表征。但这里有个前提,数据增强不能破坏序列的时序依赖,否则模型学到的模式是错的。
解码阶段,我会优先用Top-p采样或者Nucleus采样,引入随机性避免贪婪解码,这比固定Top-k更灵活。如果还嫌不够,可以上MMR,也就是最大边际相关,在相关性和多样性之间做平衡。但MMR的计算开销不小,实时场景下得离线预计算候选集。
后处理[[重排]]里,行列式点过程也就是DPP,是业界比较成熟的方案。它建模物品间的相似度矩阵,然后选出一个既相关又多样的子集。但DPP的矩阵分解如果数据稀疏,效果会打折。另一个简单的做法是[[滑动窗口]]去重,过滤掉近期已经曝光的内容。
落地的时候,我会特别关注一个风险:如果只靠后处理去重,模型可能会陷入“去重-重新推荐-再去重”的死循环,因为模型本身没变,只是把重复的过滤掉了,但下次它还是会推类似的。所以必须训练和解码一起优化,也就是在训练阶段就引导模型生成多样化的输出。
举个例子,在小红书场景,我们最怕的是同一博主刷屏和跨类目发现不足。所以一般是DPP重排加曝光过滤,再配合探索流量扶持,比如给新内容一些保底曝光。但DPP的相似度矩阵怎么定义很关键,用内容标签还是用向量相似度,效果差别很大,这个我后面可以展开聊。
所以我的结论是,ROl问题没有银弹,我会把训练阶段的负采样优化和解码阶段的Top-p采样看作基础配置,然后根据业务特点叠加DPP或者MMR。核心思路是让模型在利用已有知识的同时,保留足够的探索空间,这样用户满意度才能长期稳住。