从信息瓶颈视角聊聊推荐系统
2025-9-7
| 2026-11-11
字数 3741阅读时长≈ 10 分钟
信息瓶颈(Information Bottleneck, IB)理论,就是那个Hinton说要听一万遍的理论,可以用来解释深度学习。其核心是,在不损失预测能力的前提下,最大限度“忘掉”输入里与目标无关的细节。用公式描述就是:
这里 是输入, 是目标, 是中间表示(各层模型参数与激活)。含义:让表示 尽量压缩输入——减小 ,同时保留对预测有用的信息——增大 。
用IB理论的视角来看推荐系统,理解推荐系统逐步演化成了多阶段(召回、粗排、精排、重排)的”信息瓶颈“,换一个视角给老问题一个新的解释,也是很有趣的。
类比深度学习的解释,推荐系统的每一个阶段可以看做一个信息瓶颈,都是在尽量压缩输入的同时,保留对目标预测有用的信息。每个阶段(phase)写作:
是推荐系统的 即用户、物品和上下文记录,包括曝光(impression)和反馈(engagement)。 是系统的学习目标,当系统产生推荐结果,用户的正向行为反馈,也拆解成了推哪个能被覆盖(召回),推哪个点击率多少(排序)。 就是我们推荐系统的模型参数,这里是广义的,包括深度学习的模型参数和ID的embedding、双塔的 向量表征、稀疏矩阵邻接关系(I2I)。 代表互信息, 衡量“知道 Y 之后,对 X 的不确定性减少了多少“,刻画相关性的强度。
每一个阶段 ,传递的重要信息是数量为 的物品集合 ,这是IR(Information Retrieval) 的视角,推理时不断地精简候选集合,采用更复杂参数 的模型。
IB视角下,更多在考虑训练,每一个阶段 的机器学习,就是针对推理物品集合 的压缩编码 ,它要提升与最终用户反馈的 的相关性,但尽可能少的记住原始的输入 。前者很好理解,对应我们的对比学习目标,各种率的交叉熵损失;后者不好理解,是因为它并没有显式的出现在算法的损失定义中,增强 时,相当于增大过拟合风险、增加信息茧房(feedback loop和SSB,Sample Selection Bias)。
Feedback loop(反馈闭环):模型→曝光→用户行为→日志→再训练→新模型,模型影响数据分布,数据又反过来影响模型的动态过程,容易形成“越推越像”的放大效应。 SSB(样本选择偏置):训练/评估只看“被曝光”的样本,而未曝光的数据缺失且是 非随机缺失,导致估计偏差。 Feedback loop是个动态过程,SSB是它的截面里问题。
对于一个图片分类任务识别狗来讲,增加 意味着可能记住了更多目标无关的噪声,比如狗旁边的红房子,而对于推荐系统来讲,就是对于某个用户记住了特定的物品,或拟合在了曝光集合上,失去了泛化性。
多阶段系统的意义?换个视角
传统IR视角下,多阶段是在给定算力/延迟预算下做分层筛选,先用便宜模型高召回出候选,再用昂贵模型精排以近似最优,本质是资源优化。
IB视角下,每一层都会减少对输入 X 的记忆,同时尽量保留对目标 Y 有用的信息。也就是把与 Y 无关的细节逐级丢掉,逐级“控 、保 ”:
  • 召回:强瓶颈,极大压低 ;自身 弱,用增大候选数 来找“信息拐点”(Recall@k 的边际收益接近 0 的点),把 问题丢给排序解决。
  • 粗排:在较小候选上,提高 的同时适度增加 ,把集合 “净化”成弱 、强相关( )的 ,交给精排。
  • 精排:在小集合上用高容量模型,把 吃满,高容量的模型也带来了 上升,但候选集合 已经被”净化过“来规避影响。
召回核心是降低
召回与排序相比,要处理的集合更大,这一步的每个物品平均参数量来看,召回远小于排序,它是一个信息瓶颈,它把全集物品I压成“Top-N 索引集合”这一极短的表示 。学习 的同时,小参数空间本身避免了对输入X的刻画能力过强,反而”因祸得福“,节省算力的同时避免了过度记忆。
召回阶段常见的算法协同过滤(CF)过滤了什么?用“群体共现”把庞杂的用户/物品细节压到共享的低维结构里,过滤掉个体偶然性,只保留与偏好有关的模式;这正对应“降低 的同时尽量保住 ”。
比如I2I,个体噪声与偶然点击:与很多人共同出现的模式被保留,孤立、少见的个体化信号被平均掉(低通滤波);双塔或MF,高频细节/ID 记忆被矩阵分解把数据投到低秩或平滑的子空间,弱化只对单个 (user,item) 成立的微小偏差。
双塔、MF建模的时候,为什么不能只用曝光正负例?今天已经是个常识了,但是最早做双塔的人会自然地拿排序样本去做建模,然后会发现得到的候选集合完全不相关。一般,可以解释成SSB(Sample Selection Bias)的问题,这套样本是受控于曝光的,也就是只能处理被系统层层过滤后的强相关样本(难负例),反而无法处理候选集合中大量没见过的样本。
IB视角下,定义 作为真正的Ground Truth,系统感知到的 , 是样本选择。使用曝光样本训练,提升 时,也提升 ,输入 和 强相关,即这一步与召回极致最小化 相悖。
如果只用曝光空间的反馈 来训练 ,也就是丢失了 的部分,并且强化了 ,这就是为什么召回要用全域的正反馈,它最容易缓解SSB的手段。
One Epoch问题:在大规模推荐/广告点击预估里,模型只要把训练数据完整扫一遍(one epoch)通常就达到最好的泛化;从第二遍起继续训练会迅速过拟合、验证/线上指标下降。
从IB的视角来看,第一个epoch有效的提升了 ,第二个epoch对 的增量已经不大,反而因为推荐系统大量使用了记忆性的ID特征, 能不断地提升,造成了过拟合。
它把稀疏样本里的偶然点击/噪声直接记到具体的 (user,item) 或小簇里—— 暴涨,但这些细节对看不见的新pair并不泛化;没有新的数据进来,只是把那一次的偶然性“雕得更深”,等价于给噪声更大的权重——在独立、零均值的条件下,噪声会相互抵消”,一旦噪声相关/重复,它就不会抵消,而是像“稳定结构”一样被模型当成信号。
排序能打全库么?排序的SSB问题
一般我们的排序模型是建立在SSB(Sample Selection Bias)之上的,它并没有能力处理全部的集合。上面提到的例子,用曝光正负例训练一个双塔模型,它通过ANN召回的结构是毫无相关性的。
日志里只记录“被展示过的 (user,item)”及其反馈,且“是否被展示”取决于旧模型与用户行为,多轮反馈下形成Feedback Loop。在IB理论里,沿用上面的 。如果前链路没有将候选 筛选到和SSB建模的分布一致,反而引入了排序无法处理的样本,导致效果下降。
所以候选集合 不是越大越好,一般精排受到性能限制, 还不足够大,增加 一定范围内效果持续提升,拐点问题不常见。但在粗排上十分明显,提升召回进粗排的打分候选,假如粗排的构建采用了和精排一样的loss和样本空间,那么 就有一个拐点,一定量之后不相关的噪声增多,精排无法处理,反而收益转为负向。它取决于召回结果的相关性(这里有一个假设, 的样本部分基本是用户强相关的),相关性高则 的拐点到来的晚一些,这也是I2I召回为主的业务场景粗排可以扩展到上万仍有收益,但双塔/隐式表征召回的业务场景, 容易观察到明显的拐点的原因。
一般的处理方案,召回把控好相关性,避免无关噪声随 快速增加,减少拐点过早到来,使得扩展打分条数大范围内有益;粗排引入基于负采样的类召回loss,但这并不是缓解SSB问题,而是把没见过的样本( )当成0来处理,反而有可能加剧SSB问题( 丢失 )。所以它的正例必须是全域正例,也就是对齐了使用全域正例的召回,使得 只剩下用户没有在APP中表达的部分。
但是这也值得讨论(埋个坑):召回没有足够的降低 ,使得粗排必须承担起这一点,是对的么。
Cascade与粗精一致性
粗排与精排的一致性越高越好么?上面讨论了,排序没有处理全库的能力,倘若粗排与精排100%一致,也就是精排自己去打粗排的候选,对比了纳入了全域正例的粗排,在有SSB问题的前提下,可能拐点 提前到来,反而更差。
一致性的收益来自于,粗排的参数 太小, 偏弱。通过Cascade或蒸馏来增强 拿到收益。
用精排的top-n作为正例,粗精排尾部/分层采样做负例,构建一个模型。它的语义是在选择哪个物品能被精排打分靠前,我们说它存在feedback loop问题,会加剧SSB。
IB视角下,Cascade在学习精排时,越来越记住选择机制, 上升,也就隐含着 上升,它违背了每一个信息瓶颈的核心目标。
在IB视角下,一个好的粗排,应该包含下面这些条件:
  • 高 ,最好逼近精排,loss和样本空间相同,问题只有参数 较小,蒸馏是一个好的方案,当然把精排当作reward model,也是一种隐式的蒸馏。
  • 低 ,能力介于召回和精排之间,通过负采样避免把处理不了的样本送给精排,能处理很大的候选集合 ,不过早出现收益负向拐点;通过全域正例引入,缓解SSB问题。
精排的局限与重排的希望
这里说的精排特指最常见的Point-Wise建模在场景曝光集合上的排序模型。
精排最大的局限就是SSB(Sample Selection Bias),它给精排带来了一个不符合预期的inductive bias,在被看见的世界里学会解释:更信任头部、版位、旧策略;对长尾/新物/冷启动保守外推,并在全量分布上产生系统性校准偏差。
应对SSB有一些纠偏方案(如IPS),但在精排上都没有变成普适基线。反而是(启发式)重排里,一些简单的多样性/发现性/疲劳度/冷启动策略,在源头上增加了曝光样本的丰富度,避免精排完全控制整个系统,进而缓解了Feedback Loop。
一个model-base的list-wise端到端生成式重排,除了list-wise上解决position bias,学习物品之间的影响,也要能够有效地打破Feedback Loop,缓解排序的SSB问题。
从经验上讲,基于RL的生成策略本身带着探索性,实践上也表明当目标是最大化session价值或用户长期价值的时候,它能自然地产生多样性,再加上现在LLM领域RL在序列生成上的发展,生成式的重排有潜力极大地改善SSB问题,把探索和利用更高效地结合,改变排序的样本空间,拉高推荐系统的潜在上限。
当重排足够重,和精排产生了足够多的重复计算(如超长历史序列),精排和重排就有必要做一个合并了,这也是一个有意思的话题。
  • 推荐系统
  • 深度学习
  • 推荐系统的道法术器:自然模态与LLM为师时隔一年,贴一下当时的生成式推荐精读笔记
    Loading...
    目录