5024.大模型-模型优化-Ranking-00.概述

在信息检索(IR)和推荐系统中,Ranking(排序) 是决定用户体验的核心环节。它不仅仅是给文档打分,更是将海量数据转化为用户可感知的有序列表的过程。
根据技术演进的脉络,主流 Ranking 技术主要分为 传统算法 和 机器学习排序 (LTR) 两大阵营。

核心架构

核心架构:从“投票”到“学习”

传统排序算法 (Traditional)

基于图论或统计学规则,强调网页质量与权威性。

  • PageRank: Google 的基石,通过链接投票衡量网页重要性。
  • TF-IDF: 基于关键词频率与逆文档频率的文本匹配度计算。
  • BM25: 现代搜索引擎召回阶段的标准算法,结合了词频饱和度和文档长度惩罚。

PageRank

Google 在 1998 年提出的革命性算法,解决了早期搜索引擎“关键词堆砌”的问题。是 Google 的基石,通过链接投票衡量网页重要性。

1
2
3
核心思想:民主表决 (Democratic Voting)
阻尼因子:d (通常取 0.85)
公式:PR(A) = (1-d) + d * Σ(PR(Ti)/C(Ti))

LambdaRank

微软研究院提出的列表级排序算法,是目前的工业界标配。

  1. 梯度构造 (Gradient Construction)
    计算每个文档位置的变化对最终评估指标(如 NDCG)的梯度影响(Lambda 值)。
  2. 模型训练 (Model Training)
    使用梯度提升树(GBDT,如 XGBoost/LightGBM)来拟合这些梯度,从而直接优化 NDCG 指标。

机器学习排序 (LTR,Learn to Rank)

这是目前大厂(如 Baidu, Google, ByteDance)的主流方案。LTR 将排序问题转化为一个监督学习问题,核心在于如何定义损失函数。利用历史点击/转化数据训练模型,预测用户偏好。

逐点法 (Pointwise)

原理:将排序问题转化为单个文档的打分任务。通常使用线性回归模型

假设我们有 $n$ 个搜索结果,每个结果有 $m$ 个特征,特征向量表示为 $\mathbf{x}i = [x{i1}, x_{i2}, \cdots, x_{im}],i = 1, 2, \cdots, n$。相关性得分表示为 $y_i$​。线性回归模型的公式为:
$y_i = \mathbf{w}^T\mathbf{x}_i + b$
其中,$\mathbf{w} = [w_1, w_2, \cdots, w_m]^T$ 是权重向量,bbb 是偏置项。

输入:Query + Document。
输出:该文档的相关性得分(Score)。
缺点:忽略了文档间的相对关系,可能导致同一 Query 下所有文档得分都很高但无区分度。

逐对法 (Pairwise)

原理:关注文档对之间的胜负关系(A 是否比 B 更相关)。通常使用排序支持向量机(RankSVM)。
对于两个搜索结果 $\mathbf{x}_i$​ 和 $\mathbf{x}_j$​,如果 $\mathbf{x}_i$​ 比 $\mathbf{x}j$​ 更相关,则 $y{ij} = 1$;否则 $y_{ij} = -1$。RankSVM的目标是找到一个超平面 $\mathbf{w}^T\mathbf{x} + b = 0$,使得不同相关性的结果对能够被正确分类。

输入:Query + (Doc A, Doc B)。
输出:判断 A 应该排在 B 前面的概率。
优势:直接优化了排序的相对顺序,效果优于 Pointwise。
代表:RankNet, LambdaMART

列表法 (Listwise)

原理:直接优化整个文档列表的排序质量。常用的是LambdaRank算法。其目标是最小化一个排序损失函数(如 NDCG)。
输入:Query + Document List。
输出:优化后的文档排序。
优势:考虑了全局排序效果,效果优于 Pointwise 和 Pairwise。
代表:LambdaRank, ListNet

常见框架

LightGBM:是一个快速、高效的梯度提升框架,支持Learning to Rank任务。
XGBoost:也是一个强大的梯度提升库,可用于排序学习。
RankLib:是一个专门用于Learning to Rank的开源库,提供了多种排序算法的实现。

评估指标

如何知道排序好不好?我们需要量化指标。

  • Precision@K: 前 K 个结果中有多少是相关的(准确率)。
  • Recall@K: 所有的相关结果中有多少出现在了前 K 个(召回率)。
  • NDCG@K (Normalized Discounted Cumulative Gain): 考虑了位置权重(越靠前越重要)且进行了归一化,是衡量排序质量的“黄金标准”。
指标 核心逻辑 特点 适用场景
NDCG@K 计算 DCG(折损累计增益)并除以 IDCG 进行归一化。 极度重视 Top-1, Top-2 的位置,受理想最大值影响大。对长尾敏感。 推荐系统、问答系统(用户只看前几条)。
MAP@K 先计算每个 Query 的 AveP(平均精度),再对所有 Query 取平均。 对长列表(Top-K 大)更友好,强调在不同截断长度下的综合表现。只关注是否出现,不关注位置(即便在k的尾部) 搜索、推荐系统、问答系统(用户只看前几条)、多标签分类。

NDCG@K

NDCG (Normalized Discounted Cumulative Gain) 是推荐系统和信息检索中衡量排序质量的“黄金标准”。它解决了 DCG(折损累计增益)无法跨不同查询长度进行比较的问题,通过将实际得分归一化到 [0, 1] 区间来实现这一目标。
不同于普通评估方法的二分类,NDCG 可以对文档的相关性进行进一步的分级。

核心公式与逻辑

NDCG 的计算核心在于两个步骤:

  • 首先计算实际排序下的 $DCG$,
  • 然后计算理想排序下的 $IDCG$,
  • 取比值,进行标准化 $NDCG = DCG/IDCG$。
  • 可以看到评价的核心就是DCG。针对不同的排序计算DCG越接近 IDCG结果越好。而为了量化评估不同数据集合的排序效果,所以引入了标准化的过程。

DCG@k计算逻辑

  1. 定义每个文档的相关度。为每个文档分配一个相关性评分 rel_i​(如 0, 1, 2, 3…)。这是评价的基础。
    $$DCG_k=\sum_{i=1}^k (2^{rel_i}-1) * \frac{1}{log_2(i+1)}$$
    其中,$2^{rel_i}-1$是计算每个文档的绝对相关性(绝对指的是排序无关)。在使用中可以根据业务场景进行转换计算方式
    $\frac{1}{log_2(i+1)}$ 则是考虑排序位置后进行的加权(排序靠后的影响降低),越靠前的文档权重越高。第一个权重为1,排第三的权重为0.5,排第七的权重为0.33,以此类推。
    只要我们知道了理想排序(相关性高的排在前面),和实际排序(排序策略的结果)后,就可以带入共识计算 对应的DCG@K。然后进行标准化结果。

MAP (Mean Average Precision)

MAP (Mean Average Precision) 是衡量排序质量的另一座高峰。虽然它与 NDCG 都是“位置敏感”的指标,但它们的计算逻辑和侧重点截然不同。

核心逻辑和计算方式

MAP 的计算可以拆解为两个步骤:AveP (单次查询) -> MAP (全局平均)。

  • Step 1: 计算 AveP (Average Precision)
    对于每一个查询 $q$,遍历检索结果列表前 K 个检索结果:
    当遇到一个相关文档时,计算当前的 Precision(已检出的相关文档数 / 已检出的文档总数)。将这个 Precision 值累加。
    最终,AveP = 累加的 Precision 和 / 相关文档总数。
    $$AveP =\frac{1}{K} \sum_{k=1}^K(\frac{RelatedDocNum_{topk}}{k} I_k) $$
    $I_k$ 是一个指示器,用于指示当前文档是否相关。如果相关,$I_k=1$;否则,$I_k=0$。
  • Step 2: 计算 MAP
    将所有查询的 AveP 值求平均。
    $$MAP=\frac{1}{Q} * \sum_{q=1}^QAveP(q)$$
    其中 Q 是查询的数量,再一次方法评估种,我们需要评估计算多个不同的查询,而不是一个查询,Q指的是每个独立的查询结果。

HR(Hit Ratio)命中率

$$ HR@K=\frac{NumberOfHits@K}{TotalTargetItems} ​$$
分母是所有测试集合,分子表示每个用户top-K列表中属于测试集合个数的和
举例:有3个用户,三个用户在测试集中的商品个数为$6,8,10$,得到的top5商品在测试集中的商品个数分别为$2,3,4$,那么
$HR@5=\frac{2+3+4}{6+8+10}=0.375$

MRR(Mean Reciprocal Rank,MRR) 平均倒数排名

关注推荐的项目是否靠前,每个关注检索结果越靠前,倒数值越大。所有结果都在前面可以获得最大的MRR值。
$$ MRR=\frac 1N\sum_{i=1}^N\frac 1{p_i} $$​
N: 预期目标点击的总数
$p_i$​:$item_i$在推荐列表中出现的位置,如果没有出现就是 $p_i\rarr\infty$

排序算法优劣

相比直接使用规则系统,LTR 有以下优势:

优势 劣势
效果显著:相比纯规则系统,LTR 能大幅提升点击率和转化率。 冷启动难:新物品没有历史数据,难以获得高排名。
适应性强:可以处理复杂的非线性特征交互。 数据稀疏性:用户只点击第一个结果,导致负样本(未点击的高质量文档)难以获取。
可解释性:模型参数可以解释为特征的重要性,方便理解和调试。 计算成本:深度学习排序模型(Deep Ranking)推理耗时较长。
可扩展性:可以集成新的特征或模型,适应不断变化的需求。
-------------本文结束感谢您的阅读-------------