目录 · 6 节
1问题与动机(约 320 字)2方法详解(约 640 字)3核心技术贡献(约 420 字)4实验结果分析(约 640 字)5局限与未来方向(约 280 字)6工业实践意义(约 420 字)1. 问题与动机(约 320 字)
Meta 广告推荐的核心矛盾是 用户历史长(O(100K) events / 365 天)但绝大多数事件对当前 ad 请求无效。论文用三组定量证据建立动机:
- Attention 检索准确度退化:Transformer 在长上下文里出现 "needle-in-the-haystack" 衰减,单条相关事件被海量噪声淹没;
- O(n²) attention 复杂度:百万级序列在实时排序里 "computationally intractable";
- 滚动窗口的灾难性遗忘:Meta 实测,30 天窗口训出的模型在 6 个月前的模式上 预测能力损失 >50%。
LastN 这种线性扩窗只能延缓问题,CVR NE 在 ~180 天后饱和、CTR NE 在 ~70 天后饱和——继续加历史既贵又不涨点。Memento 把"长历史建模"问题重新定义为 RAG 风格的检索问题:user 历史是文档库,ad 请求是 query,按相关性按需检索 top-K 注入模型。
2. 方法详解(约 640 字)
MMR 检索核心:
MMR = arg max[α·SimUU(Dᵢ,Q) + β·SimUA(Dᵢ,Q) - (1-α-β)·max SimUU(Dᵢ,Dⱼ)]
三路相似度:SimUU 是历史 user-state vs 当前 user-state、SimUA 是历史 user-state vs target ad、最后一项是已选历史之间的多样性惩罚。调参显示 MMR@0.5 with (α=0.3, β=0) 优于纯多样性,β=0.95 反而退化——平衡比单维更重要。
Temporal Chunking:365 天历史按 7 天 epoch 切块,把单 user O(100K) embeddings 压成约 50K,~50% 压缩零损失。
INT8 NormInt8 量化:8-bit 整型把每 user 存储从 701K float-eq 压到 50K,14× 压缩 同时保留模型质量。
Asynchronous Serving:
- 索引构建与重建完全离线,与在线 serving 解耦;
- query 构造与模型计算并行;
- 检索本身预算 sub-10ms,对端到端延迟 negligible。
两条互补应用:
(a) Representation Memento(推理时):检索历史 user embedding 做特征增强。提出 Ember 架构 两个变体:
- Ember-Affine:用 context 做元素级 affine 调制;
- Ember-Quadratic:在压缩前用 Quadratic Neural Network 显式做 cross-feature 交互。
(b) Data Memento(训练时):检索历史训练样本 (user, ad, label) 做第二轮 rehearsal。参数全量重置 比 0.1× embedding shrink 高 0.04% NE;MMR 选 25–50% 历史训练数据,比统一扩量更高效。
3. 核心技术贡献(约 420 字)
- 算法层重定义:第一次把 "长用户历史建模" 形式化为 文档检索问题,MMR 同时兼顾 user-user 相似度、user-ad 相关度、多样性。和直接堆 attention 的 LastN/SIM 形成范式之差。
- 双应用框架(Representation + Data Memento):一条做在线特征增强(解决覆盖率/稀疏性)、一条做离线 rehearsal(解决灾难性遗忘)。两个机制互补、不冲突,可单独或联合上量。
- 基础设施协同设计:temporal chunking + INT8 量化 + 异步检索三件套带来 5-10× 资源效率,把 "365 天历史" 从理论变成可上线。
- 生产规模验证:在 Facebook Feed/Reels(CTR +1%)和 Offsite Conversion(CVR +1.2%)上量,QPS 无显著回归。这种规模下能撬动 1% 是巨额收益。
4. 实验结果分析(约 640 字)
数据:~50B 训练样本、~1B 评估样本。Baseline 是 LastN 线性扩窗。指标是 Normalized Entropy (NE, 越低越好)。
离线 NE 主结果:
| 配置 | CTR NE | CVR NE | 关键发现 |
|---|---|---|---|
| RAG vs LastN (365 天) | +0.25–0.30% gain | +0.25–0.30% gain | RAG 跨过 LastN 饱和点 |
| LastN 饱和点 | ~70 天 | ~180 天 | CVR 需要更长 retention |
| Representation Memento (V1-TQ-Ember) | -0.25% | -0.26% | 最佳推理时配置 |
| Data Memento (DM-MMR25-RS) | N/A | -0.195% | CVR 训练时部署 |
NE -0.25% 在 Meta 广告大盘是非常大的数字,文章特地强调:LastN 在 70 天后涨幅趋零,Memento 在 365 天位置仍能拿 +0.25% 增益,说明真正的 bottleneck 不是模型容量而是 "哪些历史进入模型"。
效率消融:
- 存储压缩 14×(701K → 50K floats/user);
- 检索 sub-10ms;
- 在线 QPS 增加 <<5%(统计不显著);
- 整体资源效率 5-10× over linear scaling。
调参洞察:
- MMR@0.5 with (α=0.3, β=0) 优于纯 diversity baseline;
- β=0.95(user-ad 强相关)反而降效,说明三维平衡比单维更优;
- MMR 数据选择比随机采样高 0.07% NE。
线上 A/B:
- Facebook Feed/Reels:CTR +1%;
- Offsite Conversion:CVR +1.2%;
- 部署粒度:V1-LITE(180 天)、V1-FULL(30+ embedding 源、360 天 + Ember)、Data Memento(CVR-only、360+ 天、25-50% 下采样)。
5. 局限与未来方向(约 280 字)
作者明确或隐含的局限:
- Data Memento 仅在 CVR 上量:CTR 模型受算力/存储预算限制无法用 Data Memento,因为 CTR 训练样本量是 CVR 的数十倍;
- 检索算法待升级:当前 MMR 是无监督的,作者明确表示后续会研究 supervised retrieval,把 ad ranker 的反馈信号引入到检索器;
- 公开数据不可用:评估完全基于 Meta 内部数据,复现门槛极高;
- 平台绑定:依赖 Meta 的 VectorDP 向量库和内部事件聚合系统,迁移到非 Meta 基础设施需要重写。
笔者补充:MMR 的 α/β 是手调超参,未做端到端学习;Ember-Quadratic 的算力代价随 embedding 源数量线性涨,30+ 源场景下离线训练成本可能成为新瓶颈。
6. 工业实践意义(约 420 字)
- 范式更新:把 "长序列建模" 从 attention 工程问题改写成 RAG 检索问题,是 2024-2026 周期 RAG 反哺推荐系统 最完整的工业范例。对所有受 SIM/ETA 类终身行为框架制约的团队都值得借鉴。
- 量化落地的具体配方:7 天 epoch chunking + INT8 + async serving 三件套,14× 存储压缩 + sub-10ms 检索 + QPS 不退化,可以直接照搬到自家长行为系统。
- 训练时 rehearsal 是被低估的机制:Data Memento 用 25-50% 历史样本做第二轮训练就拿到 -0.195% CVR NE,比离线扩量更高效。绝大多数推荐团队都没用这种思路。
- 对社区搜索的迁移:UGC 平台用户长期浏览/点击/搜索历史天然适合 Memento 套路。可以:(a) 把用户 query 历史 + 帖子历史按 7 天 chunking、(b) INT8 存到向量库、(c) 当前 query 时用 MMR 检索 top-K 历史,作为个性化重排的辅助特征。比起 SFT 一个 50K-token 历史窗口的 LLM 现实得多。
- 延迟可控:sub-10ms 检索说明 Memento 完全可以在精排前置链路使用,不一定只能用在召回。
- 建议 PoC 路径:先做 Representation Memento V1-LITE(单一 embedding 源 + 180 天),验证 NE 收益后再做 V1-FULL,最后引入 Data Memento。