M7-064M7: Retrieval, Ranking & RecSysDeep Recommendation ModelsHard
Mastery:
Deep Recommendation Models: 解释推荐中的特征与嵌入设计要点。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 嵌入维度按基数定(基数^0.25);高频特征需更强正则;连续特征分桶;共享嵌入;注意'特征穿越'与'多值特征'。
📌 Key Takeaways
- •嵌入维度:按类别基数定(经验:基数^0.25,或 8~64)
- •多值特征(用户看过的多个物品)需池化/注意力
- •连续特征分桶;高频特征强正则(防过拟合)
📐 Mathematical Derivations
数学机理:<strong>嵌入设计的要点</strong>——(1) <strong>嵌入维度</strong>——(a) <strong>经验公式</strong>:d ≈ k^0.25(k 为类别基数);或直接用固定值(8~64);(b) <strong>原则</strong>——基数大(如 user_id 百万级)用更大维度;基数小(如性别)用小维度;(c) <strong>注意</strong>——维度太大易过拟合(尤其低频类别)。(2) <strong>高频 vs 低频特征</strong>——(a) <strong>高频特征</strong>(如'物品 id',出现百万次)——<strong>易过拟合</strong>(嵌入被反复更新到'记住训练数据');故需<strong>更强的正则</strong>(如'自适应正则'——按出现频率调整正则强度,DIN 的做法);(b) <strong>低频特征</strong>(如'长尾物品')——嵌入<strong>训练不足</strong>(更新次数少);故需 (i) 与内容特征共享(如物品的类别/属性);(ii) 用'哈希嵌入'(把 id 映射到桶);(iii) 用'预训练嵌入'(从其他任务迁移)。(3) <strong>连续特征处理</strong>——(a) <strong>分桶(离散化)</strong>——把连续值分成桶、每桶一个嵌入;<strong>优点</strong>——能建模非线性;<strong>缺点</strong>——边界处的信息丢失(可用多个粒度的分桶);(b) <strong>直接输入</strong>(归一化后)+ 与嵌入拼接;(c) <strong>对数变换</strong>(重尾特征);(d) <strong>分位数分桶</strong>(每桶样本数相近)。(4) <strong>多值特征(multi-valued)</strong>——(a) <strong>用户历史行为</strong>(多个物品)——需<strong>池化</strong>(sum/mean/max)或<strong>注意力</strong>(DIN)或<strong>序列模型</strong>(SASRec);(b) <strong>物品的多标签</strong>;(c) <strong>变长序列</strong>——需截断/补齐(或变长处理)。(5) <strong>共享嵌入</strong>——(a) <strong>跨任务共享</strong>(CTR/CVR 塔共享用户/物品嵌入——见 ESMM);(b) <strong>跨场景共享</strong>(多场景推荐);(c) <strong>与'内容特征'共享</strong>(物品 id 嵌入与类别嵌入);(d) <strong>好处</strong>——省参数、缓解稀疏、互相促进。(6) <strong>'特征穿越(feature crossing)'</strong>——(a) <strong>手工交叉</strong>(Wide&Deep);(b) <strong>自动交叉</strong>(FM/DeepFM/DCN);(c) <strong>注意</strong>——交叉特征能捕捉'组合效应',但也易过拟合(高基数交叉)。<strong>其他要点</strong>——(a) <strong>缺失值</strong>(作为独立类别);(b) <strong>特征归一化</strong>(连续特征);(c) <strong>时间特征</strong>(周期性编码:sin/cos);(d) <strong>序列特征</strong>(时间间隔);(e) <strong>'特征穿越/泄漏'</strong>(不能用'未来信息')。<strong>与'训练-服务一致性'的关系</strong>——嵌入与特征的计算需在离线/线上一致。<strong>实践建议</strong>——(a) <strong>嵌入维度按基数调</strong>(先试经验公式);(b) <strong>高频特征强正则</strong>(自适应正则);(c) <strong>低频特征靠共享/内容特征</strong>;(d) <strong>连续特征分桶</strong>;(e) <strong>多值特征用池化/注意力/序列模型</strong>;(f) <strong>共享嵌入</strong>(跨任务/场景);(g) <strong>防泄漏</strong>。<strong>度量</strong>——(a) AUC/GAUC;(b) 嵌入的'使用率'(低频嵌入的覆盖率);(c) 在线指标。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'高频特征需更强正则'是易被忽视的要点</strong>——高频嵌入易过拟合(反复更新);面试中能指出这一点是深度理解的标志。② <strong>'低频特征靠共享/内容特征'</strong>——这是缓解'长尾物品嵌入训练不足'的实用手段。③ <strong>'嵌入维度按基数定'</strong>——经验公式(k^0.25)是起点;实际需调。④ <strong>'连续特征分桶能建模非线性'</strong>——但边界信息丢失;故可用多粒度。⑤ <strong>'共享嵌入的互相促进'</strong>——跨任务/场景共享可缓解稀疏(与 ESMM/MMoE 同源)。⑥ <strong>面试要点</strong>——被问'推荐的特征与嵌入怎么设计',应给出'<strong>嵌入维度(按基数)+ 高频强正则 + 低频靠共享 + 连续分桶 + 多值用注意力/序列 + 共享嵌入</strong>';能指出'高频特征易过拟合'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕高频特征不做额外正则(过拟合)
- ✕低频物品只靠 id 嵌入(训练不足)
🎯 Interviewer Follow-ups
- ?为什么高频特征要更强正则?
- ?什么是'特征穿越'?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.