← Back to list
HiFormer

Hiformer: Heterogeneous Feature Interactions Learning with Transformers for Recommender Systems

判别式推荐 Google
Abstract 7 Reading 7 Rating —
2023-11-10
Huan Gui, Ruoxi Wang, Ke Yin, Long Jin, Maciej Kula, Taibai Xu, Lichan Hong, Ed H. Chi
Google DeepMind, Google Inc
提出异构注意力层和Composite投影机制,使Transformer架构能感知特征语义差异,首次在工业级推荐系统中超越SOTA特征交互模型
transformer feature-interaction industrial ad-rec

1. 研究背景与动机

推荐系统中,特征交互学习(feature interaction learning)是核心能力——多个特征的组合效应(如 app_id 与 hour_of_day 的交互)对预测用户行为至关重要。现有方法面临三大挑战:

  1. 特征空间巨大:Web-scale 应用中特征数量庞大,手工设计交互不可行
  2. Transformer 的同质性限制:vanilla Transformer 的 self-attention 中,所有特征共享同一组 Q/K/V 投影矩阵,无法捕捉特征间的异构语义(如 app_id 的嵌入包含应用性质、流行度、语言等信息,而 user_country 的嵌入包含地理偏好信息,二者交互时需要选择性提取不同维度)
  3. 推理延迟: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. 核心贡献总结

  1. 异构注意力层:为每个特征学习独立的 Q/K/V 投影矩阵,使 Transformer 能感知特征语义差异,是对 self-attention 的简单但有效修改
  2. Composite 投影:将所有特征嵌入拼接后整体投影为 K/V,进一步增强模型表达力
  3. 低秩近似 + 剪枝:有效降低推理延迟,使模型可部署于在线服务
  4. 首个在工业推荐系统中超越 SOTA 的 Transformer 特征交互模型,已部署于 Google Play