1. 推荐系统重排技术概述
在推荐系统的完整流程中,重排(Re-ranking)阶段扮演着至关重要的角色。当系统通过召回和精排阶段筛选出候选物品后,重排负责对这些物品进行最后的顺序调整,以优化用户体验和业务指标。不同于精排阶段主要关注单个物品的点击率或转化率预测,重排更注重物品序列的整体质量,特别是多样性和新颖性等关键指标。
推荐系统的多样性问题源于用户兴趣的广泛性和推荐算法天然的"马太效应"。如果仅依赖精排分数进行展示,系统往往会过度推荐相似的热门内容,导致用户体验单调乏味。这种现象在电商推荐中表现为同一品类商品扎堆出现,在内容平台则体现为同质化内容泛滥。重排技术的核心目标就是打破这种"信息茧房",在保证推荐相关性的前提下,提升结果的丰富度。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 相似性度量方法
2.1 基于物品属性的相似性计算
最直观的相似性度量方式是利用物品的显式属性标签。在电商场景中,这些属性可能包括:
- 类目层级(如电子产品→手机→智能手机)
- 品牌信息(Apple、华为、小米等)
- 价格区间(0-1000元、1000-2000元等)
- 关键词标签("全面屏"、"5G"、"大电池"等)
属性相似性的优势在于计算简单、解释性强。例如,可以定义两个商品的相似度为它们共同属性标签的加权和。但这种方法也存在明显局限:依赖人工定义的标签体系,难以捕捉细粒度差异,且无法处理属性缺失的情况。
2.2 基于向量表征的相似性计算
更先进的相似性度量依赖于物品的向量化表征。常见方法包括:
-
双塔模型向量:来自召回阶段的物品embedding,但这类向量通常偏向热门物品,对长尾物品表征不足
-
内容特征向量:
- 文本特征:通过TF-IDF或BERT等模型从商品标题、描述中提取
- 图像特征:使用CNN等视觉模型从商品主图中提取
- 多模态融合:结合图文特征的联合表征
实践中,基于内容的向量表征往往能提供更细粒度的相似性判断。例如,两款手机可能属于相同类目和品牌,但通过图像特征可以区分它们在外观设计上的差异。
2.3 多模态表征学习
现代推荐系统中的物品往往包含多种模态的内容。以小红书笔记为例,每条笔记都包含图文信息。CLIP(Contrastive Language-Image Pretraining)是当前最有效的多模态预训练方法之一,其核心思想是通过对比学习对齐图文表征空间。
CLIP的训练过程采用典型的对比学习框架:
- 正样本对:同一笔记中的图片和文本
- 负样本对:某图片与其他随机笔记的文本
通过最大化正样本对的相似度、最小化负样本对的相似度,模型学习到高质量的跨模态表征。这种方法的优势在于:
- 无需人工标注,直接利用平台原生内容作为训练数据
- 学到的表征可以同时服务于搜索和推荐场景
- 对长尾内容也有较好的表征能力
在实际部署时,CLIP模型通常作为基础特征提取器,其输出的embedding会进一步与业务场景finetune。例如,可以加入用户行为数据对模型进行微调,使相似性度量更符合真实用户感知。
3. 多样性优化算法
3.1 最大边际相关性(MMR)算法
MMR是最经典的多样性重排算法,其核心思想是在每一轮选择时,平衡物品本身的质量(精排分数)和与已选物品的差异性。算法公式表示为:
MR_i = θ·reward_i - (1-θ)·max_{j∈S} sim(i,j)
其中:
- reward_i:物品i的精排分数
- sim(i,j):物品i与j的相似度
- θ:调节参数,控制相关性与多样性的权衡
MMR的具体实现步骤如下:
-
初始化:
- 已选集合S = ∅
- 候选集合R = 全部n个物品
-
首轮选择:
- 选择精排分数最高的物品加入S
- 从R中移除该物品
-
迭代选择:
- 对于R中每个物品,计算MR分数
- 选择MR分数最高的物品加入S
- 从R中移除该物品
- 重复直到选出k个物品
MMR的时间复杂度为O(nk),适合中小规模候选集。但该算法存在明显的"多样性衰减"问题:随着已选集合S增大,新物品与S中至少一个物品的相似度会趋近1,导致多样性项失去区分度。
3.2 滑动窗口优化
为解决MMR的多样性衰减问题,滑动窗口策略只考虑最近选中的w个物品(而非全部已选物品)来计算多样性惩罚。改进后的MR分数为:
MR_i = θ·reward_i - (1-θ)·max_{j∈W} sim(i,j)
其中W是滑动窗口内的物品子集,通常取w=5-20。这种方法:
- 保持了局部多样性,避免全局相似性饱和
- 允许相似物品间隔出现,更符合自然浏览体验
- 计算复杂度降至O(nw),w远小于k
滑动窗口大小w是需要精心调节的超参数。过小的窗口会导致多样性不足,过大的窗口又可能引起推荐跳跃感。实践中可以采用动态窗口策略,根据用户类型和场景自适应调整。
3.3 业务规则约束
除算法多样性外,实际推荐系统还需要满足各种业务规则。常见约束类型包括:
-
连续性约束:
- "最多连续出现5篇图文笔记"
- "禁止连续3个同类商品"
-
频次约束:
- "每10条内容最多1条广告"
- "前5条中电商卡片不超过2条"
-
位置约束:
- "首屏必须包含1个活动入口"
- "前3条不得出现低质内容"
在MMR框架下融入业务规则的方法:
- 在每轮选择前,先用规则过滤候选集R得到R'
- 只在合规物品R'上计算MR分数
- 选择最高分的合规物品
这种硬约束方法简单有效,但可能导致某些情况下无法选出物品(如规则冲突时)。更高级的做法是将规则转化为软约束,通过惩罚项而非完全过滤来实现。
4. 行列式点过程(DPP)
4.1 基本概念与数学原理
行列式点过程(Determinantal Point Process)提供了一种基于几何直观的多样性度量方式。其核心思想是用矩阵行列式衡量向量集合的"体积",从而量化多样性。
在二维空间中,两个向量v1,v2张成的平行四边形面积为:
area = ||v1||·||v2||·sinθ = √(||v1||²||v2||² - (v1·v2)²)
这个面积在向量正交时最大,平行时为0。推广到高维空间,k个向量v1,...,vk∈R^d张成的超平行体体积为:
vol(P) = √det(A), 其中Aij = vi·vj
行列式det(A)的性质完美匹配多样性需求:
- 当向量正交时,A是对角阵,det(A)最大
- 当向量线性相关时,det(A)=0
- 介于两者之间时,det(A)反映向量的"分散程度"
4.2 DPP在推荐中的应用
将DPP应用于推荐重排,优化目标为:
max θ·(∑ reward_j) + (1-θ)·log det(A_S)
其中:
- 第一项保证推荐结果的相关性
- 第二项促进多样性
- θ控制两者权衡
这个组合优化问题理论上需要枚举所有C(n,k)种可能,实际采用贪心算法近似求解:
- 初始化S=∅
- 每轮选择使目标函数增幅最大的物品
- 重复直到选出k个物品
贪心算法虽然不能保证全局最优,但在实践中表现良好,且有以下理论保证:对于单调子模函数,贪心算法能达到(1-1/e)≈63%的最优解。
4.3 高效实现与工程优化
直接实现DPP的复杂度主要来自:
- 计算n×n相似矩阵A:O(n²d)
- 每轮迭代计算行列式:O(k⁴)(暴力法)
通过以下技术可以大幅降低计算成本:
Cholesky分解优化:
利用矩阵分解A=LL^T,其中L是下三角矩阵。行列式可简化为:
det(A) = ∏ L_ii²
每次新增物品时,通过增量更新Cholesky因子,可将单轮复杂度从O(k³)降至O(k²)。整体复杂度优化为O(n²d + nk²),使其适合工业级应用。
正定性保证:
理论上,Gram矩阵A=V^TV总是半正定的。为避免数值问题,实践中会加入微小扰动:
A ← A + εI, ε=1e-6
这相当于在原始向量上添加一个微小正交分量,确保矩阵严格正定。
滑动窗口DPP:
与MMR类似,DPP也可以结合滑动窗口策略,只考虑最近w个物品的多样性:
log det(A_S) → log det(A_W)
这解决了长期多样性衰减问题,同时减少计算量。
5. 技术选型与实践建议
5.1 算法对比与选型指南
| 算法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| MMR | 实现简单,计算高效 | 多样性衰减明显 | 中小规模候选集,对实时性要求高 |
| 滑动窗口MMR | 解决衰减问题,保持局部多样性 | 窗口大小敏感 | 内容流推荐,需要自然过渡 |
| DPP | 理论优雅,多样性质量高 | 计算复杂度较高 | 对多样性要求严格的场景 |
| 规则引擎 | 解释性强,确保硬性要求 | 灵活性差 | 必须遵守的业务规则 |
实际系统通常会组合多种方法:
- 先用业务规则过滤不合规内容
- 在小规模候选集上运行DPP
- 对DPP结果应用滑动窗口平滑
5.2 参数调优经验
-
相似性权重θ:
- 初始值建议设为0.7-0.8(偏重相关性)
- 通过A/B测试观察指标变化
- 不同用户群体可采用不同值(如新用户θ调低)
-
滑动窗口大小w:
- 内容推荐:w=5-15
- 商品推荐:w=3-8
- 可基于session长度动态调整
-
向量表征选择:
- 图文内容优先使用CLIP等多模态模型
- 纯文本内容可用BERT+finetune
- 商品推荐可结合用户行为embedding
5.3 常见问题排查
-
多样性不足:
- 检查相似性计算是否合理(可视化样本向量)
- 适当降低θ值
- 验证业务规则是否过度限制
-
推荐质量下降:
- 检查精排分数与相似度的量级是否匹配
- 尝试对reward和sim做标准化
- 增加相关性项的权重
-
性能瓶颈:
- 对大规模候选集先做粗筛
- 采用近似最近邻(ANN)加速相似度计算
- 对DPP使用Cholesky优化
6. 前沿发展与未来方向
推荐系统重排技术仍在快速发展,一些新兴方向值得关注:
-
端到端多样性学习:
传统方法将相关性预测和多样性优化分开处理。新趋势是设计端到端模型,直接优化多样性感知的目标函数,如:- 在损失函数中加入多样性正则项
- 使用强化学习框架,将多样性作为奖励信号
-
个性化多样性:
不同用户对多样性的需求和敏感度存在差异。个性化多样性策略包括:- 基于用户画像动态调整θ参数
- 学习用户特定的多样性偏好模式
- 根据用户疲劳度自适应调节
-
跨场景联合优化:
当用户在平台内多场景流转时,需要考虑全局多样性而非单点优化。技术方案包括:- 跨场景状态共享
- 长期多样性记忆机制
- 基于用户旅程的序列建模
-
可解释多样性:
让用户理解为什么推荐某些内容,提升信任感。例如:- 可视化多样性影响因素
- 提供"换一换"的明确理由
- 多样性维度的显式控制
在实际业务中落地这些新技术时,仍需牢记推荐系统的核心目标:在满足业务需求的同时,为用户创造真实价值。最好的重排策略往往是那些能够巧妙平衡各方诉求的解决方案,而非单纯追求技术复杂度。
