核心要点

  • 两阶段:倒排(BM25)+ 向量混合召回 → L2R 模型精排

  • L2R 三种范式:pointwise(回归)/pairwise(RankNet)/listwise(LambdaMART)

  • 核心特征是 query-doc 相关性 + 用户点击行为(含位置偏置纠偏)

  • 离线用 NDCG/MAP/AUC,线上看点击率/首位点击/会话满意度并 A/B

标准回答

需求与指标

搜索要在「相关」与「用户满意」间平衡。离线用 NDCG/MAP 评排序质量,线上看 CTR、首屏点击率、改写率/无结果率,全部 A/B 验证。

整体架构

召回 → 精排(L2R)→ 重排。先用倒排(BM25/TF-IDF)+ 向量检索(语义召回,ANN,如 Qdrant)做混合召回取回候选,再用排序模型精排。

召回

文本侧倒排匹配解决精确/字面相关,向量侧解决语义相关,两路混合(Hybrid Search)提升召回完整性,必要时用 query 改写/纠错扩展。

排序(Learning to Rank)

三种范式:pointwise 把排序当回归/分类(预测单条相关度);pairwise 学文档对的相对顺序(RankNet);listwise 直接优化列表指标(LambdaMART/LambdaRank 对齐 NDCG)。工业界常用 GBDT(LambdaMART)或深度模型。

特征

query-doc 相关性(BM25、语义相似度、term 匹配)、文档质量(权威性/时效性)、用户行为(历史点击、点击率统计)、上下文。点击日志做训练标签时需做位置偏置纠偏。

评估与上线

离线 NDCG/MAP/AUC,线上 A/B 看点击与满意度指标,灰度放量并监控。

常见误区

⚠️ 常见踩坑

直接用原始点击当相关性标签而忽略位置偏置(排在前面的天然更易被点);以及只做语义召回不做字面倒排,导致精确查询(如型号、人名)召回不准。

追问

追问 1pointwise、pairwise、listwise 各自的优劣?

pointwise 简单、可直接复用分类回归框架,但忽略文档间相对关系;pairwise 建模文档对顺序,更贴合排序本质,但对噪声对敏感且没全局视角;listwise 直接优化列表级指标(如 NDCG),效果通常最好但实现复杂、训练成本高。工业界 LambdaMART 是 listwise 的常用落地。

追问 2点击日志做标签有什么坑,如何纠偏?

主要是位置偏置(position bias)和曝光偏置:用户更易点击靠前的结果,点击多不代表更相关。可用 examination 模型或 IPW(逆倾向加权)对点击做纠偏,或用交换实验/随机打散少量流量估计位置倾向,得到更无偏的相关性信号。

追问 3语义召回和倒排召回如何融合?

即 Hybrid Search。常见做法是两路各自取候选,用 RRF(倒数排名融合)或加权分数融合排序,再交给精排。倒排保字面精确性、向量保语义泛化,融合后召回更全;权重可按 query 类型(导航型 vs 探索型)动态调整。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。