第4章 相关性排序(BM25、TF-IDF、Learning to Rank)
核心命题:从经典统计排序到机器学习排序的演进路径,需掌握公式原理、特征设计、模型选型三个层次。
面试定位:基础必考(BM25/TF-IDF)+ 进阶必考(LTR),是衡量搜索算法基本功的重要章节。
高频面试问答卡片
问题:请推导BM25公式并说明其相比TF-IDF的改进点
- 考察点:公式记忆能力、信息检索理论基础、对超参数的理解
- 回答框架:写出完整公式→逐项解释→对比TF-IDF的缺陷→说明改进效果
- 示例回答:BM25得分=IDF·(tf·(k1+1))/(tf+k1·(1-b+b·dl/avgdl))。IDF平滑处理,k1控制词频饱和,b调节长度归一化。相比TF-IDF,BM25抑制高频词的过度影响,缓解长文档得分过高的问题。
- 可能追问:k1和b的常见取值范围?如何通过grid search调优?
- 避坑提醒:务必手写完整公式;不要混淆BM25与BM25F;IDF需说明有无平滑(如+1)
问题:在搜索排序中如何设计特征?请列举三类并说明其作用
- 考察点:特征工程经验、业务场景理解、特征有效性判断
- 回答框架:文本匹配特征→文档质量特征→用户行为特征→上下文特征,每类举1-2例
- 示例回答:①文本特征:query-标题BM25、余弦相似度;②质量特征:PageRank、文档发布时间;③行为特征:点击率、停留时长;④上下文特征:用户地理位置、设备类型。需归一化并经GBDT选择重要特征。
- 可能追问:如何处理冷启动商品(无行为特征)?特征缺失值用什么填充?
- 避坑提醒:避免只列特征名称,需说明每个特征对排序的具体影响;注意特征实时性要求
问题:请对比Pointwise、Pairwise、Listwise三种Learning to Rank方法
- 考察点:对LTR模型体系的理解、损失函数区别、工业落地选型
- 回答框架:定义三种方法→损失函数举例→优缺点对比→推荐场景
- 示例回答:Pointwise将排序转为分类/回归,忽略文档间相对顺序;Pairwise比较文档对,优化RankNet;Listwise直接优化NDCG等排序指标,如LambdaRank。工业搜索常用Listwise,效果最优,但训练代价高。
- 可能追问:LambdaRank如何实现NDCG可导近似?为什么Pairwise在精排中不如Listwise?
- 避坑提醒:不要混淆Pointwise与Pairwise;提到Listwise时需说明损失函数(如ListNet、LambdaRank)
项目案例模板:电商搜索相关性排序优化
面试要点:项目案例需突出量化指标(提升百分比)、技术选型理由(为什么用LambdaRank而不是pairwise)、以及解决冷启动/长尾的具体方案。避免过于理论化,重点讲落地细节。