M7-065M7: Retrieval, Ranking & RecSysDeep Recommendation ModelsHard
Mastery:

Deep Recommendation Models: 解释深度推荐中的长序列建模与两阶段检索(SIM)。

📐 Mathematical Definition
SIM: GSU (general search unit)→top-k→ESU (exact search unit)\text{SIM}:\ \text{GSU (general search unit)}\to\text{top-}k\to\text{ESU (exact search unit)}
⚡ Executive Summary
Core Concept: 用户历史可达数千条,注意力成本 ∝ 序列长度;SIM 先用'通用兴趣'粗筛 top-k、再精算注意力。

📌 Key Takeaways

  • •
    问题:真实用户历史常数百到数千条,DIN 式注意力成本 ∝ 长度
  • •
    SIM:两阶段——GSU 用通用兴趣粗筛出与候选相关的 top-k
  • •
    ESU 只对这 k 条精算注意力;把 O(L) 降到 O(L+k)

📐 Mathematical Derivations

数学机理:<strong>长序列建模的困难</strong>——(1) <strong>规模</strong>——真实场景(电商/短视频)中用户历史可达<strong>数百到数千</strong>条;而 DIN 式的注意力需要对<strong>所有</strong>历史条目计算注意力(复杂度 O(L·d))→ L 大时延迟不可接受。(2) <strong>截断的损失</strong>——最简单的做法是'只保留最近 N 条';<strong>问题</strong>——(a) 丢失长期兴趣(半年前买过的东西可能仍相关);(b) 对'复购/周期品类'不利。(3) <strong>SIM(Search-based Interest Model,阿里 2020)</strong> 的两阶段——(a) <strong>GSU(General Search Unit)</strong>——用<strong>廉价</strong>方法从全部 L 条历史中<strong>粗筛</strong>出与候选物品相关的 <strong>top-k</strong>(如 k=50~200);方法有两种:(i) <strong>'硬'检索</strong>——用<strong>物品的类别/属性</strong>做匹配(如'候选是手机 → 筛出所有电子产品历史');(ii) <strong>'软'检索</strong>——用<strong>预计算的物品嵌入</strong>做 ANN(候选嵌入 → 检索最相似的历史条目);(b) <strong>ESU(Exact Search Unit)</strong>——只对<strong>这 k 条</strong>做<strong>精确的注意力</strong>(DIN 式),得到用户表示;(c) <strong>复杂度</strong>——从 O(L) 降到 <strong>O(L_g + k)</strong>(L_g 为 GSU 的检索成本、k 为 ESU 的注意力成本);(d) <strong>关键</strong>——GSU 用'廉价的相关性'替代'精确的注意力'(用'相似度'近似'注意力权重')。(4) <strong>为什么有效</strong>——(a) 保留<strong>全部历史</strong>(不像截断);(b) 只对'相关的少数'做精确计算(省算力);(c) 实证上显著优于'截断'与'直接注意力'。<strong>其他长序列方法</strong>——(a) <strong>UBR4CTR</strong>(用聚类 + 线性注意力);(b) <strong>ETA / SDIM</strong>(用'局部敏感哈希'做快速匹配);(c) <strong>两阶段检索 + 序列模型</strong>(GSU + SASRec);(d) <strong>分块 + 稀疏注意力</strong>;(e) <strong>分层聚合</strong>(先按类别聚合、再注意力)。<strong>与'序列推荐'的关系</strong>——(a) <strong>序列推荐(SASRec)</strong> 建模'顺序'(用自注意力);(b) <strong>长序列兴趣建模(SIM)</strong> 解决'规模'(用两阶段检索);(c) 两者可结合(GSU 检索 + 序列编码)。<strong>评估</strong>——(a) AUC/GAUC;(b) 延迟(长序列的关键);(c) 与'截断基线'的对比;(d) k 的大小对效果与延迟的影响。<strong>实践建议</strong>——(a) <strong>历史很长(>200)</strong> → 用 SIM 类两阶段;(b) <strong>GSU 用'类别匹配 + 嵌入检索'</strong>(兼顾精确与泛化);(c) <strong>k 按延迟预算调</strong>(50~200);(d) <strong>与序列模型结合</strong>(顺序信息);(e) <strong>对比'截断基线'</strong>(验证两阶段的价值)。<strong>度量</strong>——(a) AUC/GAUC;(b) 延迟(P99);(c) k 的敏感度;(d) 与截断的对比。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'真实历史很长、注意力成本 ∝ 长度'是长序列建模的根本困难</strong>——面试中能指出这一点(并给出'数百到数千条'的量级)是深度理解的标志。② <strong>'截断会丢长期兴趣'</strong>——尤其对'复购/周期品类';故两阶段检索优于截断。③ <strong>'GSU 用廉价相关性替代精确注意力'</strong>——这是 SIM 的核心思想(用相似度近似注意力权重)。④ <strong>'复杂度从 O(L) 降到 O(L_g+k)'</strong>——这是可落地的关键。⑤ <strong>'与序列模型结合'</strong>——GSU 检索 + SASRec 编码;兼顾规模与顺序。⑥ <strong>面试要点</strong>——被问'用户历史很长怎么办',应给出'<strong>两阶段(GSU 粗筛 top-k → ESU 精算注意力)+ 与截断基线的对比</strong>'与'<strong>截断会丢长期兴趣</strong>';能给出复杂度对比是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    只截断最近 N 条(丢失长期兴趣)
  • ✕
    对所有历史直接做注意力(延迟不可接受)
🎯 Interviewer Follow-ups
  • ?
    为什么长序列不能直接截断?
  • ?
    GSU 如何做'快速粗筛'?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM7-064: Deep Recommendation Models: 解释推荐中的特征与嵌入设计要点。📋Back to BankNext →M7-066: Cold Start & Long-Tail Distribution: 解释冷启动的三种类型与应对。