1. 问题与动机
ChronicleRec 研究的是长期用户兴趣如何进入在线排序。工业系统通常有两条路线:按候选从历史里取相关行为,或者提前把历史压成少量向量。前者让同一用户的历史随候选重复计算;后者若把所有查询 token 堆在序列末尾,并允许它们读取全部历史,容易得到彼此相似的全局摘要。作者因此把目标改为保留时间结构的用户表示:每个摘要应明确对应历史中的一个时间位置。
论文的动机有实证支持。KuaiRand 上只看最近 100 个行为的 Short-Attn GAUC 为 0.5307,全历史注意力为 0.5601,说明短窗口确实丢失可预测信号。但全注意力训练消耗 49.1 GB 显存和 2997.0 分钟,直接扩展历史成本很高。该工作的对象是 CTR/CVR 用户建模,不是生成物品 ID;即便使用预训练、token 和 Transformer,也应归入个性化赛道。
对社区 UGC 搜索而言,长期主题、作者偏好可能补足当前查询的歧义,但必须保留 query 的主导作用。论文没有直接验证搜索 nDCG,广告收益只能支持用户表示的价值,不能证明跨业务迁移必然成立。
2. 方法详解
输入为按时间排列的行为 embedding 和有效位置 mask。压缩器不读取候选物品,因此对同一用户可以只计算一次,再由不同候选共享缓存结果。第一步按远、中、近三个区间做不同强度的聚合:近期保留原始分辨率,中期适度合并,远期强力合并。窗口内只对有效行为求平均,分母至少为 1;空窗口继续标记为无效,避免左侧 padding 进入用户表示。
正文给出的默认设置为保留最近 100 条行为,中段长度 400,池化 kernel/stride 为 8/4,远段为 10/10。由于窗口对应关系可以预先确定,实现上用向量化 gather 和 pooling,减少动态切分成本。这一步不是等距抽样:它明确把更多表示容量留给近期行为。
第二步把 11 个可学习查询 token 插入压缩后的时间序列,靠近现在的锚点更密。四层、四头因果 Transformer 只允许每个位置读取自己及其之前的内容。查询位置的输出就是 Chronicle Tokens。对于短历史用户,遥远锚点之前可能全是 padding,作者仍保留 self-position 可见,防止 attention softmax 接收到整行无效输入。该细节应在复现时显式检查。
第三步采用多时间跨度分支。各分支分别遮蔽最近 0、100、300、600、1000 个行为,每个分支有自己的查询 token 与编码器,从而迫使部分分支仅依靠更久远的历史。分支权重依次为 1.0、0.5、0.4、0.3、0.2,输出加权后拼接。Chronicle Alignment 用各分支的轻量 target-attention head 预测当前标签,损失为归一化分支权重加权的 BCE 之和;推理时去掉辅助预测头。
最后使用共享排序头读取这些 token:候选 embedding 作为查询提取兴趣向量,再与候选表示拼接送入 MLP。compress-only 模式只用压缩记忆;hybrid 模式把它作为近期原始行为的前缀。训练先进行对齐预训练,再加载到排序模型,压缩器可以冻结或继续微调。
实验模型维度为 64,视频、作者、标签 embedding 维度分别为 64、16、16,dropout 为 0.1,预测头为两层四头注意力。Adam 学习率为 0.001,weight decay 为 0.000001;KuaiRand/AdLive batch size 分别为 256/512,最多训练三个 epoch 并早停。论文给出显存与时间对比,但正文没有明确 GPU 型号,不能据此推算本地机器的绝对训练时长。
3. 核心技术贡献
第一,压缩输出保留了时间锚点。末尾查询即使数量很多,也可能反复提取同一段最强信号;交错查询配合因果 mask,让不同位置有不同的历史可见范围。AdLive 上交错因果配置 GAUC 为 0.8034,末尾因果为 0.7890,差值 0.0144,说明仅换注意力方向而不改变 token 放置并不足够。
第二,远近历史的容量分配进入了结构。近细远粗池化既减少计算,也避免平均压缩把最近兴趣抹平;移除此模块后 AdLive GAUC 从 0.8034 降到 0.7958。这里的改进不是单纯增加参数,而是在共享排序头条件下改变历史如何被编码。
第三,多跨度监督使远期信息承担独立预测责任。对部分分支遮蔽近期窗口,可减轻所有分支都依赖最近点击的倾向;去掉多分支后 GAUC 为 0.7962,去掉 Chronicle Alignment 后降到 0.7948,是所列消融中降幅最大的情况。该结果支持“压缩旧历史时仍要对齐当前决策”,而不是只重建历史本身。
第四,压缩结果可以跨候选缓存。它把昂贵的用户历史理解与在线候选相关性计算分开,允许接入既有排序模型。线上实现把 Chronicle Tokens 同时加入 MixFormer 的非序列与序列通路,不需要整体替换主干。
4. 实验结果分析
以下为正文表 2 的用户分组 GAUC。两套数据都保留相同预测头,主要比较历史编码策略。
| 方法 | KuaiRand | Tencent AdLive |
|---|---|---|
| Short-Attn | 0.5307 | 0.7950 |
| VISTA | 0.5518 | 0.7995 |
| ChronicleRec | 0.5536 | 0.8010 |
| Hybrid-ChronicleRec | 0.5541 | 0.8030 |
| Multi-ChronicleRec | 0.5580 | 0.8034 |
| Full-Attn | 0.5601 | 0.8071 |
多分支模型在 KuaiRand 上距全注意力仅 0.0021,但没有超过全注意力;应把结论表述为以较低成本接近上界,而非全面优于所有基线。AdLive 上 hybrid 到多分支只增加 0.0004,提示分支收益可能依数据而变,不能不看成本直接采用最大配置。
KuaiRand 包含 27,285 位用户,约 3.22 亿交互,原始平均历史长度约 11,812;训练却截断到 2048。AdLive 有 199,914 位采样用户、约 2.14 亿交互,训练上限为 4000。这里的“终身”是建模目标,并不意味着实验完整读取了所有历史。两套离线任务使用点击标签,线上则为朋友圈广告 pCVR,指标与场景并非完全一致。
消融中,移除近期感知合并、因果 mask、多分支、深监督、对齐目标,AdLive GAUC 分别下降 0.0076、0.0074、0.0072、0.0039、0.0086。另一个诊断遮蔽最近 1000 个行为后,KuaiRand GAUC 仍有 0.5499,高于只读最近窗口的 0.5307。这支持远期偏好具有独立信号,但两种设置的输入信息量不同,不应理解为远期行为一般比近期行为更重要。
效率表中基础 ChronicleRec 为 28.0 GB、620.3 分钟,多分支为 34.8 GB、855.1 分钟。约 4.8 倍训练加速对应基础版本相对全注意力,不能附到多分支最佳精度上作为同一配置的联合成绩。线上七天 A/B 的 GMV 相对提升为 1.61%,95% 区间为 0.678%–2.547%;作者报告该区间排除零,但未给出可迁移到其他平台的延迟绝对值。
5. 局限与未来方向
正文没有独立的 limitations 章节,也没有明确列出完整未来工作计划。作者明确展示的边界包括:压缩表示仍未达到全注意力精度,多分支会增加显存和训练时间,近期行为仍是最强预测信号。这些结果限定了方法适用范围,不能把压缩解释成无损替代。
以下是本次阅读提出的复现问题,而非作者已经验证的结论。首先,用户缓存的刷新频率、增量更新成本和陈旧缓存造成的精度损失没有充分量化;其次,token 可缓存不代表线上没有网络传输、存储和候选注意力成本;最后,页面含有未清理的会议模板与图注占位文字,作者单位也未清晰呈现,复现应以公式和实验表为依据,不据占位模板判断正式发表会议信息。
6. 工业实践意义
社区搜索可以先把历史阅读、点击、收藏按时间编码成用户侧 token,再在已有相关性排序上增加候选感知分支。第一轮实验宜比较近期 100 条、均匀压缩、近细远粗压缩三个配置,在相同候选、相同预测头、相同训练时段下观察 nDCG 与 CTR;只有基础压缩确有收益,再增加分支和对齐预训练。
评估应按历史长度、用户活跃度、兴趣漂移程度分桶。短历史用户要检查全 padding 与 self-position 的数值行为;突然改变兴趣的用户要检查旧偏好是否压过当前查询;长期活跃用户则重点观察多分支是否降低兴趣摘要冗余。相关性分数、长期偏好分数和当前 query 信号的融合需要独立调试,不能只追逐点击。
上线前应测量 token 缓存体积、更新周期、缓存命中率、P99 延迟,以及模型版本变更时的表示兼容性。正文在线 GMV 结果证明该路径在一个大规模广告系统上可行,但没有证明任意 UGC 搜索平台都能复制收益。更稳妥的工程目标是把长期历史的候选级重复计算改成用户级复用,并在相关性护栏下验证增益。
来源:论文全文,重点依据第 3 节、第 4 节与表 1–6。上述业务迁移方案为本次阅读的建议。