PinFM:Foundation Model for User Activity Sequences¶
保真度:核心机制复现。NTL/MTL/FTL 对比预训练、预训练后下游微调、candidate early fusion、Candidate ID Randomization、backbone 低学习率和 DCAT 均实际执行;省略 Pinterest 多 action/surface 语料、fresh-item age dropout、分布式 20B embedding、int4 与 Triton kernel。
论文信息¶
| 项目 | 内容 |
|---|---|
| 论文链接 | arXiv 2507.12704 |
| 公司/机构 | |
| 首次公开日期 | 2025-07-17(arXiv v1) |
| 原文开源代码 | 否:论文未提供官方/作者代码(核查日期:2026-08-09) |
| Adapter | pinfm |
| 本地复现代码 | src/auto_research/reproductions/pinfm/ |
原始论文总结¶
背景与主要改动¶
PinFM 把“先在跨场景用户行为上预训练,再接入各排序模型微调”的 Foundation Model 范式带到工业推荐。decoder-only backbone 学习 next/multi/future token;下游把候选追加到用户序列做 early fusion。DCAT 利用同一请求的候选共享用户历史,把 context self-attention 只算一次,然后让候选对缓存的 context KV 做 cross-attention。
flowchart LR
U["跨场景用户 ID 序列"] --> P["Decoder-only pretraining"]
P --> L["NTL + MTL + FTL"]
L --> W["Pretrained backbone"]
W --> C["一次 context self-attention + KV cache"]
I["候选 ID + 内容特征"] --> X["Candidate cross-attention"]
C --> X
X --> R["下游排序 loss + NTL 微调"]
原论文关键图¶
原论文 Figure 2(关键图):展示原论文提出的核心架构、主要模块及其连接关系。图片来自原论文,版权归原作者所有;点击图片可查看来源。
核心公式¶
预训练表征为
单个未来物品使用 InfoNCE:
\(L_{NTL}\) 预测下一 token,\(L_{MTL}\) 预测未来窗口,\(L_{FTL}\) 从下游固定长度位置预测后续窗口。DCAT 对去重 context 计算并缓存 \(K_u^l,V_u^l\),候选层执行:
本实现保留这一数学分解并在全库评估中真实复用 context KV,不以普通 pooled Transformer 代理。
论文离线与线上效果¶
- 离线:Homefeed Save HIT@3 中 PinFM-base +2.91%、GraphSAGE-LT +3.76%;加入 CIR、age dropout 与 GraphSAGE-LT 后,28 日内新物品 Save HIT@3 +17.72%。
- 在线:95% 置信水平显著;Homefeed sitewide/surface/fresh Saves +1.20%/+2.60%/+5.70%,I2I sitewide/surface Saves +0.72%/+2.09%。
- 效率:DCAT serving throughput +600%、training throughput +200%;int4 A/B 相对全精度业务指标中性。这些基础设施结果未在本地冒充复现。
本地复现与两轮迭代¶
本地对照口径:基线是 scratch DCAT;实验组是预训练后微调的 PinFM;按 validation 选中的配置在 test NDCG@10 -3.57%,head share -55.40pt。第二轮 test 的偶然 +1.54% 未被选用,不能当作主结果。
MovieLens-100K,932 个有效用户、1,682 个物品,时间顺序 leave-two-out、全库排序;两个模型均为 165,426 参数。scratch DCAT 直接做下游训练;PinFM 先做 NTL+MTL+FTL,再以 backbone 1/10 学习率微调。Apple MPS,种子 42/43/44。
| Round | Pretrain / finetune | Validation conclusion | Test NDCG change |
|---|---|---|---|
| 1(保留) | 160 / 160 | PinFM 0.01318 vs scratch 0.01409(-6.46%) | -3.57% |
| 2 | 240 / 320 | PinFM 0.01765 vs scratch 0.02020(-12.66%) | +1.54% |
第二轮测试集:
| Model | Hit@10 | NDCG@10 | Head share@10 |
|---|---|---|---|
| Scratch DCAT | 0.03004 ± 0.00303 | 0.01343 ± 0.00170 | 0.75569 |
| PinFM | 0.02682 ± 0.01139 | 0.01295 ± 0.00648 | 0.20165 |
两轮都没有验证 validation 相关性收益,因此按 validation 选择退化较小的 160/160,而没有采用 test 偶然为正的长训练轮次。所选配置 test -3.57% 且方差较高,不能判定稳定相关性提升;同时 head share 降低 55.40 个百分点,说明预训练显著改变了长尾覆盖。MovieLens 缺少论文决定迁移价值的跨 surface、多 action、亿级 ID 语料,继续堆 step 更可能过拟合,因此停止迭代。
审计指标见 metrics/movielens-100k-seeds42-44.json。
