1. 研究背景与动机¶
推荐系统中,特征交互学习(feature interaction learning)是核心能力——多个特征的组合效应(如 app_id 与 hour_of_day 的交互)对预测用户行为至关重要。现有方法面临三大挑战:
- 特征空间巨大:Web-scale 应用中特征数量庞大,手工设计交互不可行
- Transformer 的同质性限制:vanilla Transformer 的 self-attention 中,所有特征共享同一组 Q/K/V 投影矩阵,无法捕捉特征间的异构语义(如 app_id 的嵌入包含应用性质、流行度、语言等信息,而 user_country 的嵌入包含地理偏好信息,二者交互时需要选择性提取不同维度)
- 推理延迟:Transformer 推理复杂度随输入长度二次增长,难以满足在线服务的低延迟要求
已有工作如 AutoInt 直接将 multi-head self-attention 用于特征交互,但由于共享 Q/K 投影,模型表达能力有限。DCN 通过 cross network 显式建模高阶交互,但缺乏注意力机制的可解释性。
2. 模型架构¶
2.1 整体框架¶
Hiformer 包含四个组件:Input Layer、Preprocessing Layer、Feature Interaction Layer(核心)、Output Layer。
Input Layer:包含类别特征(categorical features)、稠密标量特征(dense scalar features)和任务嵌入(task embedding,类似 CLS token)。
Preprocessing Layer:
- 类别特征:通过 embedding lookup 映射到 $d$ 维空间,$\mathbf{e}_i = \mathbf{x}_i^C \mathbf{W}_i^C$,其中 $\mathbf{W}_i^C \in \mathbb{R}^{V_i \times d}$
- 稠密标量特征:先聚合所有 $|\mathcal{D}|$ 个稠密特征,投影到 $n^\mathcal{D}$ 个嵌入($n^\mathcal{D} \ll |\mathcal{D}|$),使用 MLP 变换:
$$\mathbf{e}_i = \text{split}_i\Big(f_D\big(\text{concat}(\text{normalize}(\{x_i^\mathcal{D}\}))\big), \text{split\_size} = d\Big)$$
最终输入嵌入列表长度为 $L = |\mathcal{C}| + n^\mathcal{D} + T$(类别特征数 + 稠密嵌入数 + 任务嵌入数)。
Output Layer:仅使用任务嵌入经 MLP 输出最终预测。训练目标为 Binary Cross Entropy(Log Loss):
$$\ell = \frac{1}{N} \sum_i -y_i \log(p_i) - (1 - y_i) \log(1 - p_i)$$
2.2 Heterogeneous Attention Layer¶
核心创新:为每个特征学习独立的 Q/K/V 投影矩阵,替代 vanilla Transformer 中所有特征共享的 Q/K/V。
Vanilla Transformer(同质注意力)的注意力分数:
$$\text{Att}(i, j)^h = \frac{\exp(\phi_{i,j}^h(\mathbf{e}_i, \mathbf{e}_j))}{\sum_{m=1}^{L} \exp(\phi_{i,m}^h(\mathbf{e}_i, \mathbf{e}_m))} \tag{1}$$
其中所有特征对 $(i, j)$ 共享同一个相关性函数 $\phi^h$。
异构注意力层为每个特征对 $(i, j)$ 学习独立的 $\phi_{i,j}^h(\cdot, \cdot)$:
$$\phi_{i,j}^h(\mathbf{e}_i, \mathbf{e}_j) = \frac{\mathbf{e}_i \mathbf{Q}_i^h (\mathbf{e}_j \mathbf{K}_j^h)^T}{\sqrt{d_k}} \tag{2}$$
其中 $\mathbf{Q}_i \in \mathbb{R}^{d \times d_k}$,$\mathbf{K}_j \in \mathbb{R}^{d \times d_k}$ 分别是特征 $i$ 和 $j$ 的独立 query 和 key 投影。
输出计算:
$$\mathbf{o}_i = \text{concat}\Big(\big\{\sum_j \text{Att}(i,j)^h \mathbf{e}_j \mathbf{V}_j^h\big\}_{h=1}^H\Big) \mathbf{O}_j \tag{3}$$
其中 $\mathbf{V}_j \in \mathbb{R}^{d \times d_v}$,$\mathbf{O}_j \in \mathbb{R}^{Hd_v \times d}$。
同时设计了异构 FFN:
$$\text{FFN}_{\text{GELU}}^i(\mathbf{o}_i) = \text{GELU}(\mathbf{o}_i \mathbf{W}_1^i + \mathbf{b}_1^i) \mathbf{W}_2^i + \mathbf{b}_2^i \tag{4}$$
其中 $\mathbf{W}_1^i \in \mathbb{R}^{d \times d_f}$,$\mathbf{W}_2^i \in \mathbb{R}^{d_f \times d}$,$d_f = 4d$。
关键观察:可视化注意力模式(Figure 2)发现,vanilla Transformer 的注意力矩阵稀疏且呈强对角线模式(特征主要关注自身),而异构注意力层产生稠密的注意力模式,更好地捕捉特征间协作效应。
2.3 Hiformer:Composite 投影¶
在异构注意力层基础上进一步引入 Composite 投影,增强模型表达力。以 key 投影为例:
$$[\hat{\mathbf{k}}_1^h, \ldots, \hat{\mathbf{k}}_L^h] = \text{concat}([\mathbf{e}_1^h, \ldots, \mathbf{e}_L^h]) \hat{\mathbf{K}}^h \tag{5}$$
其中 $\hat{\mathbf{K}}^h \in \mathbb{R}^{Ld \times Ld_k}$。与异构注意力层中每个特征独立投影不同,Composite 投影先将所有特征嵌入拼接,再做整体投影。这使得 key/value 本身就编码了特征间的交互信息。
注意力分数变为:
$$\text{Att}_{\text{COMPOSITE}}(i,j)^h = \frac{\exp(\hat{\mathbf{q}}_i^h (\hat{\mathbf{k}}_j^h)^T / \sqrt{d_k})}{\sum_l \exp(\hat{\mathbf{q}}_i^h (\hat{\mathbf{k}}_l^h)^T / \sqrt{d_k})}$$
输出:
$$\hat{\mathbf{o}}_i = \text{concat}\Big(\big\{\sum_m \text{Att}_{\text{COMPOSITE}}^h(i,j) \hat{\mathbf{v}}_i^h\big\}_{h=1}^H\Big) \mathbf{O}_j \tag{6}$$
2.4 效率优化¶
计算复杂度分析:Hiformer 的 QKV 投影为 $3L^2d^2$,注意力计算 $2L^2d$,输出投影 $Ld^2$,FFN $8Ld^2$,总计 $O(L^2d^2 + L^2d + Ld^2)$。
低秩近似(Low-rank Approximation):Composite key 投影可分解为:
$$\hat{\mathbf{K}}^h = \mathbf{L}_k^h (\mathbf{R}_k^h)^T \tag{7}$$
其中 $\mathbf{L}_k^h \in \mathbb{R}^{Ld \times r_v}$,$\mathbf{R}_k^h \in \mathbb{R}^{Ld_k \times r_v}$,$r_v$ 为低秩近似的秩。Figure 3 的奇异值分析证实 $\hat{\mathbf{V}}^h$ 矩阵确实是低秩的。低秩近似将投影成本从 $O(L^2d \cdot d_k)$ 降至 $O(Lr_v(d + d_k))$。
模型剪枝(Model Pruning):由于输出层仅使用任务嵌入,最后一层可以只计算任务嵌入的 query,将最后一层复杂度从 $O(L^2)$ 降至 $O(L)$。
低秩近似后总复杂度:$O(L^2d + Ld^2)$,仍随 $L$ 二次增长,但常数大幅降低。
3. 实验设置¶
3.1 离线实验¶
数据集:Google Play 应用排序模型的线上日志数据。用户参与标签为二值(是否发生交互)。使用 35 天滚动窗口训练,第 36 天评估。包含 31 个类别特征和 30 个稠密标量特征(app ID、app title、user language 等),类别特征词表大小从数百到数百万不等。
评估指标:AUC 和归一化 LogLoss(以 1 层 Transformer 为基线)。在大规模数据集上,AUC 提升 0.001 即有统计显著性。
实现细节:
- 基于 TensorFlow 2 和 Model Garden
- 嵌入维度 $d = 128$,注意力头数 $H = 4$,FFN 隐藏层 $d_f = 512$
- HeteroAtt 和 Hiformer 中 $d_k = 16$,$d_v = 64$(非标准的 $d/H = 32$)
- TPU 训练,推理延迟基于 20 batch(batch size 1024)的离线模拟
- 所有延迟归一化到 1 层 Transformer + pruning 的基线
3.2 Baseline 模型¶
| 模型 | 描述 |
|---|---|
| AutoInt | multi-head self-attention + MLP |
| DLRM | factorization machine + MLP |
| DCN (DCN-v2) | cross network 显式建模有界阶特征交叉 |
| Transformer | vanilla multi-head self-attention |
| Transformer+PE | Transformer + 每特征 position embedding |
| HeteroAtt | 异构注意力层(本文提出) |
| Hiformer | Composite 投影 + 低秩近似 + 剪枝(本文提出) |
4. 实验结果¶
4.1 离线模型性能对比(Table 1)¶
| Model | Layer # | Parameter # | AUC (↑) | LogLoss (%, ↓) | Train QPS (↑) | Serving Latency (↓) |
|---|---|---|---|---|---|---|
| AutoInt | 1 | 12.39M | 0.7813 | -0.37096 | 5.45e6 | 2.28 |
| DLRM | - | 5.95M | 0.7819 | -0.47695 | 5.14e6 | 0.95 |
| DCN | 1 | 13.73M | 0.7857 | -0.79491 | 5.76e6 | 1.46 |
| Transformer | 1 | 0.74M | 0.7795 | 0 | 5.75e6 | 1.00 |
| Transformer | 2 | 0.84M | 0.7811 | -0.31797 | 4.12e6 | 3.03 |
| Transformer | 3 | 0.97M | 0.7838 | -0.45045 | 3.13e6 | 5.05 |
| Transformer+PE | 3 | 1.08M | 0.7833 | -0.39746 | 3.12e6 | 5.06 |
| HeteroAtt (ours) | 1 | 2.36M | 0.7796 | -0.05299 | 5.71e6 | 1.01 |
| HeteroAtt (ours) | 2 | 10.50M | 0.7856 | -0.82141 | 4.10e6 | 3.11 |
| Hiformer (ours) | 1 | 16.68M | 0.7875 | -0.87440 | 5.69e6 | 1.52 |
实验结论:
- Transformer+PE 与 vanilla Transformer 性能相近,说明简单添加位置编码不足以学习异构特征交互
- 2 层 HeteroAtt(AUC 0.7856)显著优于 3 层 vanilla Transformer(AUC 0.7838),验证异构注意力的有效性
- Hiformer 仅用 1 层即达到最优 AUC 0.7875,超越所有 baseline 包括 DCN(0.7857)和多层 Transformer
- Hiformer 的延迟仅为 1.52(归一化),远低于 2 层 Transformer 的 3.03
4.2 低秩近似效果(Table 2)¶
| Hiformer 设置 | Parameter # | AUC | Latency |
|---|---|---|---|
| low-rank approx. | 16.68M | 0.7875 | 1.52 |
| w/o low-rank approx. | 59.95M | 0.7882 | 3.35 |
实验结论:低秩近似带来 62.7% 的推理延迟节省,AUC 仅下降 0.0007,几乎无质量损失。这与 Figure 3 中观察到的 $\hat{\mathbf{V}}^h$ 矩阵低秩结构一致。
4.3 参数敏感性(Figure 5)¶
- $Hd_k$(query/key 维度):HeteroAtt 从 128 降到 64 无质量损失且节省 3% 延迟;Hiformer 因低秩近似,降低 $Hd_k$ 几乎不影响延迟
- $Hd_v$(value 维度):增大 $Hd_v$ 可提升模型质量但延迟显著增加;最终选择 $Hd_v = 256$
- $Hd_v$ 提供了独特的质量-延迟权衡手段,这在 DCN 等模型中不可用
4.4 在线 A/B 测试(Table 3)¶
在 Google Play 上进行 10 天在线实验,1% 用户流量对照组:
| Model | Layer Num | Engagement Metrics |
|---|---|---|
| Transformer | 1 | +0.00% |
| HeteroAtt (ours) | 1 | +1.27%* |
| HeteroAtt (ours) | 2 | +2.33%* |
| Hiformer (ours) | 1 | +2.66%* |
| DCN | 1 | +2.20%* |
(* 表示统计显著)
实验结论:
- 1 层 HeteroAtt 即带来 +1.27% 的显著提升,2 层进一步提升至 +2.33%
- Hiformer 仅 1 层即达到 +2.66% 的最优在线指标,超过 DCN 的 +2.20%
- 首次证明 Transformer-based 架构在工业推荐系统的特征交互建模上可超越 SOTA(DCN 等)
- Hiformer 已成功部署为 Google Play 的生产模型
5. 核心贡献总结¶
- 异构注意力层:为每个特征学习独立的 Q/K/V 投影矩阵,使 Transformer 能感知特征语义差异,是对 self-attention 的简单但有效修改
- Composite 投影:将所有特征嵌入拼接后整体投影为 K/V,进一步增强模型表达力
- 低秩近似 + 剪枝:有效降低推理延迟,使模型可部署于在线服务
- 首个在工业推荐系统中超越 SOTA 的 Transformer 特征交互模型,已部署于 Google Play