M7-048M7: Retrieval, Ranking & RecSys学习排序 (LTR)Medium
Mastery:
学习排序 (LTR): 解释排序特征的分类。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 查询特征、文档特征、查询-文档交互特征、上下文/用户特征;交互特征是核心(但计算成本高)。
📌 Key Takeaways
- •查询特征:长度、类型、是否含专名、时效需求
- •文档特征:长度、质量分、点击率、时效
- •交互特征:词匹配、BM25 分、嵌入相似度、语义匹配
- •上下文/用户:位置、设备、时间、用户历史
📐 Mathematical Derivations
数学机理:<strong>排序特征的四类</strong>——(1) <strong>查询特征(query-only)</strong>——(a) 查询长度、词数;(b) <strong>查询类型</strong>(导航型/信息型/事务型);(c) 是否含专有名词/数字/引号(精确匹配需求);(d) 查询的'时效需求'(是否含'最新'、'今天');(e) 查询的'语言'。<strong>作用</strong>——(i) 用于'查询分类'(决定检索策略);(ii) 作为排序特征(如'精确型查询更依赖词面匹配')。(2) <strong>文档特征(doc-only)</strong>——(a) 文档长度;(b) <strong>质量分</strong>(PageRank/权威性/内容质量模型);(c) <strong>历史行为</strong>(CTR、停留时长、转化率);(d) <strong>时效</strong>(发布时间);(e) <strong>类型</strong>(标题/正文/问答/商品页);(f) 文档的'语言'与'可读性'。<strong>作用</strong>——'质量/权威/时效'是相关性之外的独立信号。(3) <strong>查询-文档交互特征(query-doc)</strong>——<strong>核心特征</strong>:(a) <strong>词匹配</strong>(查询词在文档中出现的次数、位置、是否在标题);(b) <strong>BM25 分</strong>(稀疏检索分);(c) <strong>嵌入相似度</strong>(稠密检索分);(d) <strong>语义匹配特征</strong>(cross-encoder 的输出、BERT 的相似度);(e) <strong>查询词的覆盖度</strong>(多少查询词被满足);(f) <strong>短语匹配</strong>(是否含精确短语)。<strong>为什么最重要</strong>——因为它们直接衡量'文档是否满足查询';<strong>但计算成本高</strong>(需对每个候选算)→ 故常在'精排阶段'才计算(召回阶段用廉价的)。(4) <strong>上下文/用户特征(context/user)</strong>——(a) <strong>位置</strong>(但推理时不用,见位置偏置题);(b) <strong>设备</strong>(移动/桌面);(c) <strong>时间/地点</strong>;(d) <strong>用户历史</strong>(点击过的、偏好的);(e) <strong>会话上下文</strong>(前序查询)。<strong>作用</strong>——个性化与场景适配。<strong>特征工程要点</strong>——(a) <strong>归一化</strong>(不同特征的尺度差异大);(b) <strong>分桶/离散化</strong>(树模型友好);(c) <strong>交叉特征</strong>(如'查询类型 × 文档类型');(d) <strong>时序特征</strong>(近 1 天/7 天/30 天的统计);(e) <strong>避免特征泄漏</strong>(离线特征不能含'未来信息'——见训练-服务一致性问题)。<strong>特征重要性与选择</strong>——(a) 用 <strong>GBDT 的特征重要性</strong>(split gain)或 <strong>SHAP</strong> 分析;(b) 剔除'低重要性/高成本'的特征(省算力);(c) 剔除'冗余'特征(高相关)。(d) <strong>注意</strong>——特征重要性 ≠ 因果贡献(相关特征会'分摊'重要性)。<strong>与其他问题的关系</strong>——(a) 与'训练-服务一致性'(特征的计算需一致);(b) 与'位置偏置'(位置特征的陷阱);(c) 与'多目标'(不同目标需要不同特征)。<strong>实践建议</strong>——(a) <strong>分阶段用特征</strong>(召回用廉价特征、精排用交互特征);(b) <strong>特征归一化 + 分桶</strong>;(c) <strong>分析特征重要性</strong>(剔除低效特征);(d) <strong>防泄漏</strong>(时序特征需注意);(e) <strong>监控特征分布漂移</strong>。<strong>度量</strong>——(a) 特征重要性(gain/SHAP);(b) 加入/剔除特征后的 NDCG;(c) 特征的计算成本;(d) 特征覆盖率(缺失率)。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'交互特征最重要但最贵'</strong>——这解释了'为什么分阶段'(召回用廉价特征、精排用交互特征);面试中能指出这一点是深度理解的标志。② <strong>'位置特征的陷阱'</strong>——训练时可作特征,推理时必须不用(或用'位置无关'模型);否则引入偏置。③ <strong>'特征泄漏'是常见错误</strong>——离线特征含'未来信息'会导致离线虚高、线上崩盘。④ <strong>'特征重要性 ≠ 因果贡献'</strong>——相关特征会分摊重要性;故分析时需注意。⑤ <strong>'特征的成本'需权衡</strong>——高成本特征(如 cross-encoder 分)只在精排用;低效特征应剔除。⑥ <strong>面试要点</strong>——被问'排序有哪些特征',应给出'<strong>四类(查询/文档/交互/上下文)+ 交互特征是核心 + 分阶段使用 + 防泄漏</strong>'与'<strong>位置特征的陷阱</strong>';能指出'特征重要性≠因果'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕在召回阶段用昂贵的交互特征(延迟高)
- ✕用含未来信息的离线特征(泄漏)
🎯 Interviewer Follow-ups
- ?为什么交互特征最重要?
- ?如何避免'特征泄漏'?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.