[KDD'23] TWIN: TWo-stage Interest Network 论文精读

SIM 开创了 GSU+ESU 两级检索建模终身行为, 但 TWIN 指出它有个根本缺陷: 两阶段的相关性度量不一致.

  • ESU 用昂贵但精准的目标注意力 (Target Attention);
  • GSU 为了省算力, 用的却是另一套粗糙度量 (类目匹配 / 内积 / LSH 哈希).

结果: GSU 粗筛回来的 Top-100 里, 只有约 40 个命中 ESU 眼中真正的 Top-100 —— GSU 漏掉了 ESU 认为重要的行为, 上限被第一阶段卡死.

TWIN 的解法是让两阶段成为 “双胞胎”: CP-GSU 用与 ESU 完全相同的注意力 (结构 + 参数). 难点是 MHTA 太贵只能跑 100 个行为, TWIN 通过行为特征拆分 (固有特征预计算缓存 + 交叉特征压成 1 维偏置) 把它扩展到10410510^4 \sim 10^5 行为. 快手主流量上线.

#摘要

终身用户行为建模中, SIM、UBR4CTR 等两级级联框架达到 SOTA: 用简单快速的 GSU 从海量行为中检索与目标最相关的少量行为, 再用注意力 ESU 在这些 finalist 上做 Target Attention (TA). 但它们有个根本局限: GSU 与 ESU 的目标-行为相关性度量不一致, 导致 GSU 经常漏掉 ESU 高度认可的行为, 限制了整体 CTR 精度.

本文提出 TWIN (TWo-stage Interest Network): 其 Consistency-Preserved GSU (CP-GSU) 采用与 ESU 中 TA 完全相同的目标-行为相关性度量, 让两阶段成为 “双胞胎”. 为把昂贵的 TA 扩展到长达10410510^4 \sim 10^5 的序列, 设计了基于行为特征拆分的新注意力机制: 对视频固有特征, 用预计算与缓存策略简化线性投影; 对用户-物品交叉特征, 把每个压成注意力分中的一维偏置项. 两阶段一致性 + CP-GSU 中有效的 TA 度量带来了显著提升, 已部署于快手主流量 (3.46 亿日活).

#1. 引言与动机

终身行为建模的几条路线及其问题:

  • MIMN (记忆网络): 难扩展到10310^3 以上, 且对不同候选生成同一个 memory, 带噪声、损害 TA.
  • SIM / UBR4CTR (两级检索): UBR4CTR 用 BM25; SIM-Hard 选同类目行为, SIM-Soft 用预训练 embedding 内积. 两级设计是大进步, 但 GSU 计算负担仍重, 检索度量与 ESU 不同 → 两阶段不一致.
  • ETA / SDIM (端到端): ETA 用 LSH 哈希 + 汉明距离, SDIM 用多轮哈希碰撞采样. 优点是 End2End (两阶段共享 embedding), 但检索策略 (网络结构与参数) 仍不一致.

GSU 与 ESU 的不一致

图 1. 传统两级算法中 GSU 与 ESU 的不一致. 假设有个 “Oracle” (蓝) 能用与 ESU 相同的度量在全部10410^4-10510^5 行为上检索, 即找出 “真正的 Top-100”. 而 GSU (橙) 用低效且不一致的粗搜: 它返回的 Top-100 里 (x 轴), 只有 40 个命中真正的 Top-100 (y 轴). 这块不一致 (灰色) 就是改进空间.

TWIN 的核心思想: 把 TA 结构扩展到 GSU, 并把 ESU 的 embedding 与注意力参数同步到 GSU, 保持端到端训练. 这样实现了网络结构与模型参数双重一致, 相比 ETA / SDIM 有显著提升.

#2. TWIN 模型

TWIN 架构

图 2. 快手 CTR 系统中的 TWIN. 与传统两级算法不同, TWIN 在 CP-GSU 与 ESU 中采用完全相同的目标-行为相关性度量 —— 不仅网络结构相同 (左), 参数值也相同 (中下). 难点在于 MHTA 计算成本高, 原本只适用于 ESU (100 行为) 而非 CP-GSU (10410^4 行为). 解法: ① 对固有特征与交叉特征分别处理的高效特征拆分与投影 (右下); ② 把交叉特征压成偏置项, 简化目标注意力架构 (左).

整体 CTR 模型由三个中间模块拼接后送入上层 MLP:

  • TWIN: 一致性保持的终身行为建模, 含 CP-GSU (从数万行为粗筛 100 个) + ESU (在 100 个 finalist 上做精确 TA);
  • 短期行为建模: 对最近 50 个行为建模, 补充短期兴趣;
  • 其他任务建模: 性别/年龄/职业/地理, 视频时长/话题/热度, 上下文等.

#2.1 行为特征拆分与线性投影

MHTA 的瓶颈在于注意力分计算中对行为矩阵KK线性投影. TWIN 把长度LL 的行为序列特征矩阵KK 拆成两部分:

K[Kh    Kc]RL×(H+C)K \triangleq [\, K_h \;\; K_c \,] \in \mathbb{R}^{L \times (H + C)}

  • KhRL×HK_h \in \mathbb{R}^{L \times H} —— 物品固有特征 (video id、作者、话题、时长), 与具体用户/行为序列无关;
  • KcRL×CK_c \in \mathbb{R}^{L \times C} —— 用户-物品交叉特征 (点击时间戳、播放时长、点击页面位置、用户-视频交互).

固有特征KhK_h: 虽然维度HH 大 (每个 id 特征 64 维), 但固有特征在用户间共享, 配合缓存策略,KhWhK_h W^h 可由 “查表 + gather” 高效得到 (离线预计算).

交叉特征KcK_c: 不能缓存 (描述用户与视频的交互, 用户间不共享; 且每个视频每人最多看一次, 投影无重复计算). 于是简化投影权重 —— 给定JJ 个交叉特征 (每个 embedding 8 维,C=8JC = 8J):

KcWc[Kc,1w1c,  ,  Kc,JwJc]K_c W^c \triangleq \big[\, K_{c,1} \mathbf{w}^c_1, \;\ldots,\; K_{c,J} \mathbf{w}^c_J \,\big]

其中Kc,jRL×8K_{c,j} \in \mathbb{R}^{L \times 8} 是第jj 个交叉特征的切片,wjcR8\mathbf{w}^c_j \in \mathbb{R}^8 是其投影权重. 这把每个交叉特征压成 1 维 (KcWcRL×JK_c W^c \in \mathbb{R}^{L \times J}), 等价于把WcW^c 限制成分块对角矩阵.

复杂度: 原始 MHTA 投影是O(L×(H+C)×dout)O(L \times (H+C) \times d_{out}); TWIN 中KhWhK_h W^h 预计算后 gather 仅O(L)O(L),KcWcK_c W^c 降到O(L×C)O(L \times C). 由于CHC \ll HCdoutC \ll d_{out}, 正是这个加速让 MHTA 能在 CP-GSU 与 ESU 中一致地实现.

#2.2 TWIN 中的目标注意力

设目标物品固有特征为qRH\mathbf{q} \in \mathbb{R}^H, 经投影WqW^q 后, 目标与历史行为的相关性分αRL\boldsymbol{\alpha} \in \mathbb{R}^L 统一定义为 (CP-GSU 与 ESU 共用):

α=(KhWh)(qWq)dk+(KcWc)β\boldsymbol{\alpha} = \frac{(K_h W^h)(\mathbf{q}^{\top} W^q)^{\top}}{\sqrt{d_k}} + (K_c W^c)\,\boldsymbol{\beta}

固有特征做内积 (query 与 key), 交叉特征压成 1 维后作为偏置项,βRJ\boldsymbol{\beta} \in \mathbb{R}^J 是交叉特征相对重要性的可学习参数.

  • CP-GSU: 用α\boldsymbol{\alpha}L=104L = 10^4 的长期行为砍到 100 个最相关的;
  • ESU: 对 100 个 finalist 做加权平均池化:

Attention(qWq,KhWh,KcWc,KWv)=Softmax(α)KWv\text{Attention}(\mathbf{q}^{\top}W^q, K_h W^h, K_c W^c, K W^v) = \text{Softmax}(\boldsymbol{\alpha})^{\top} K W^v

ESU 的KWvK W^v 只在 100 个行为上做, 在线可高效完成, 无需像算α\boldsymbol{\alpha} (针对10410^4 行为) 时那样拆分KK.

多头: 采用 4 个头:

TWIN=Concat(head1,,head4)Wo,heada=Attention(qWaq,KhWah,KcWac,KWav)\text{TWIN} = \text{Concat}(head_1, \ldots, head_4)\, W^o, \quad head_a = \text{Attention}(\mathbf{q}^{\top}W^q_a, K_h W^h_a, K_c W^c_a, K W^v_a)

#2.3 在线部署与加速

部署于快手排序系统 (3.46 亿日活, 峰值 3000 万视频/秒):

  • 近线训练: 每天 460 亿条日志, 每条在 8 分钟内被采集预处理用于增量训练; 参数每 5 分钟同步到推理/服务系统.
  • 离线推理 (固有特征投影器): 用最新参数循环预计算 80 亿候选视频的KhWahK_h W^h_a (各 head), 每 15 分钟刷新一次, 把结果存入 KV embedding server. 80 亿 key 覆盖 97% 的在线请求.
  • 在线服务: 收到请求后查KhWahK_h W^h_a, 实时算α\boldsymbol{\alpha} 的其余部分, 选 Top-100 送 ESU. 这把 CP-GSU 的瓶颈 (10410^4 行固有特征的线性投影) 削减了 99.3%. 由于 ESU 只有 100 行为, 可用最新参数实时算, 其KhWhK_h W^h 甚至比 CP-GSU 更新更及时, 进一步提升效果.

#3. 实验

数据集: 快手工业数据集 (现有公开集行为太短 —— Amazon 人均 <10、Taobao ≤500). 3.46 亿日活, 人均近 6 个月看 14,500 个视频, 最大序列截断到 100,000.

Baseline: Avg-Pooling、DIN (仅最近 100 行为)、SIM Hard (37 类目)、ETA (LSH+汉明距离)、SDIM (哈希碰撞采样)、SIM Cluster (1000 簇) / SIM Cluster+ (10000 簇)、SIM Soft (内积). 两级模型 GSU 输入最近 10,000 行为, 检索 100 个给 ESU.

#3.1 离线整体性能 (RQ1)

表 4. 与 SOTA 对比 (5 天均值; 该数据集上 AUC/GAUC 提升 0.05% 即足以带来线上收益):

MethodAUCGAUC
Avg-Pooling0.78550.7168
DIN0.78730.7191
SIM Hard0.79010.7224
ETA0.79100.7243
SIM Cluster0.79150.7253
SDIM0.79190.7267
SIM Cluster+0.79270.7275
SIM Soft0.79390.7299
TWIN0.79620.7336
Improvement+0.29%+0.51%

TWIN 显著超过所有 baseline, 尤其是 GSU 不一致的两级 SOTA. 值得注意: SIM Soft (内积) 仍是 baseline 中最强的, 后续的 ETA / SDIM 并未真正超越它 —— 因为它们为了省算力牺牲了检索精度.

#3.2 一致性、序列长度与消融 (RQ2~4)

  • 为什么有效 (RQ2): TWIN 的 CP-GSU 命中 “真正 Top-100” 的比例远高于 SIM Hard/Soft, 接近 Oracle, 验证一致性是关键.
  • 序列长度 (RQ3): 序列从 10,000 增长时所有模型都提升, 且 TWIN 与 baseline 的差距随长度增大 —— 一致的 TA 能更好地利用更长历史.
  • 关键组件 (RQ4): 去掉参数一致性 (TWIN w/o Para-Cons)、去掉偏置项 (w/o Bias)、换回原始 MHTA (w/ Raw MHTA) 都会掉点或显著增加推理耗时, 证明特征拆分既保精度又提效率.

#3.3 在线 A/B (RQ5)

在快手三个核心场景 (精选页 Featured-Video Tab、发现页 Discovery Tab、上下滑 Slide Tab) 做严格 A/B. 短视频场景核心指标是 Watch Time (总观看时长, 0.1% 提升即显著). TWIN 在所有场景都明显超过 SIM Hard 与 SIM Soft, 带来可观业务收益.

#4. 总结

TWIN 解决了终身行为两级建模的一致性问题:

  • CP-GSU = ESU 的双胞胎: 两阶段共用完全相同的 TA (结构 + 参数), 让 GSU 检索出的正是 ESU 认为重要的行为, 最大化检索有效性.
  • 行为特征拆分: 固有特征预计算缓存 (O(L)O(L)) + 交叉特征压成 1 维偏置 (O(LC)O(LC)), 把 MHTA 从 100 行为扩展到10410510^4 \sim 10^5, 瓶颈削减 99.3%.

这是首个在两级终身行为建模中实现一致性的工作. 它直接补上了 SIM 的短板 —— SIM 为了上线选了系统友好但与 ESU 不一致的 hard-search, 而 TWIN 用工程优化把一致的 TA 真正搬到了第一阶段. 而当序列继续增长到全生命周期10610^6 时, 则由 TWIN-V2 用聚类压缩接力.

整条兴趣建模主线:

论文解决的问题
DIN (KDD’18)target-aware 注意力, 突破定长向量
DIEN (AAAI’19)兴趣随时间演化 (GRU + AUGRU)
SIM (CIKM’20)终身超长序列 (检索式 GSU+ESU)
TWIN (KDD’23)两级检索的一致性 (CP-GSU = ESU)
TWIN-V2 (CIKM’24)全生命周期10610^6 (聚类压缩)

#参考资料

  • TWIN: TWo-stage Interest Network for Lifelong User Behavior Modeling in CTR Prediction at Kuaishou (arXiv:2302.02352, KDD’23)
  • TWIN V2: Scaling Ultra-Long User Behavior Sequence Modeling (CIKM’24)
  • SIM: Search-based Interest Model (CIKM’20)
  • ETA: End-to-end Target Attention (arXiv:2108.04468)
  • DIN: Deep Interest Network (KDD’18)