推荐算法特征交叉技术

FM、DCN、PPNet 与特征交互方法

📸 Posted by iStar on March 27, 2025

摘要:本文介绍推荐系统中特征交叉的核心技术,包括 FM 因式分解机、DCN 深度交叉网络、LHUC(PPNet)、SENet 与 Bilinear 交叉等。


一、为什么需要特征交叉?

线性模型中,特征之间是独立的,无法捕捉交互关系。例如:

  • “用户是男性” + “物品是美妆” → 可能不买
  • “用户是女性” + “物品是美妆” → 很可能买

单个特征无法表达这种组合效应,必须进行特征交叉


二、FM(Factorized Machine)因式分解机

2.1 核心思想

在二阶特征交叉中,如果直接为每对特征分配一个权重,参数量是 $O(n^2)$,不可接受。

FM 的解决方案:用低秩矩阵分解来表示特征交互:

\[\hat{y}(x) = w_0 + \sum_{i=1}^{n} w_i x_i + \sum_{i=1}^{n} \sum_{j=i+1}^{n} \langle v_i, v_j \rangle x_i x_j\]

其中 $v_i \in \mathbb{R}^k$ 是特征 $i$ 的隐向量,参数量从 $O(n^2)$ 降为 $O(nk)$。

2.2 历史地位

  • FM 是特征交叉的奠基性工作
  • 后续很多模型(FFM、DeepFM 等)都是在此基础上演进
  • 现在已被更复杂的深度模型取代,但思想仍然重要

三、DCN(Deep & Cross Network)

3.1 交叉网络

DCN 提出了一种显式交叉层,可以自动学习任意阶的特征交叉:

交叉网络

交叉层的公式:

\[x_{l+1} = x_0 \cdot x_l^T \cdot w_l + b_l + x_l\]

其中 $x_0$ 是初始输入,$w_l$ 和 $b_l$ 是第 $l$ 层的参数。

优点:相比全连接网络,交叉网络能更高效地学习特征交互,且阶数随着层数自动增长。

3.2 Deep & Cross 架构

深度交叉网络

DCN 将交叉网络深度网络并行:

  • 交叉网络(Cross Net):学习显式的高阶特征交叉
  • 深度网络(Deep Net):学习隐式的复杂模式
  • 两者输出拼接后送入最终预测层

DCN-v2 进一步改进了交叉层的表达能力和效率。


四、LHUC(PPNet)

4.1 核心思想

LHUC(Learning Hidden Unit Contribution)通过动态门控控制网络中每个神经元的贡献:

\[\text{output} = \sigma(s) \cdot \text{hidden}\]

其中 $s$ 是从场景/用户特征学习到的缩放因子。

4.2 PPNet 中的应用

PPNet 将 LHUC 应用到精排场景中:

  • Gate Net:根据用户/场景特征生成门控信号
  • Tower Net:被门控信号调制的预测网络
场景特征 → Gate Net → 门控权重 s
                       ↓
基础特征 → Tower Net → σ(s) * hidden → 输出

限制:LHUC/PPNet 只能用于精排阶段,因为:

  1. 计算开销较大
  2. 需要丰富的场景特征
  3. 召回/粗排阶段没有足够的时间和特征支持

五、SENet 与 Bilinear 交叉

5.1 SENet

SENet(Squeeze-and-Excitation Network)最初是 CV 领域的注意力机制,后被引入推荐系统:

  1. Squeeze:对特征做全局池化,得到特征的统计信息
  2. Excitation:通过全连接层学习每个特征的权重
  3. Scale:用学习到的权重对原始特征重新加权

在推荐系统中,SENet 可以自适应地调整特征的重要性

5.2 Bilinear 交叉

Bilinear 交叉通过双线性变换捕捉特征间的交互:

\[f_{ij} = x_i^T W x_j\]

其中 $W$ 是可学习的双线性矩阵。相比简单的逐元素相乘(Hadamard Product),Bilinear 交叉能捕捉更复杂的交互模式。

SENet + Bilinear 的组合(如 FLEN 等模型)在工业推荐系统中取得了显著效果。


六、特征交叉技术对比

方法 交叉阶数 参数量 适用场景
FM 二阶 O(nk) 传统推荐、基线模型
DCN 任意阶 O(L·n) 精排模型
LHUC/PPNet 隐式 中等 精排(需场景特征)
SENet + Bilinear 二阶+注意力 中等 精排/粗排

七、总结

特征交叉是推荐模型从”线性”走向”智能”的关键。技术演进路径:

FM(二阶分解) → DCN(显式高阶) → SENet(自适应加权) → LHUC(动态门控)

实践建议

  1. 精排场景优先使用 DCN-v2DeepFM
  2. 有丰富场景特征时加入 PPNet/LHUC
  3. 粗排场景选择轻量级方案,避免过度交叉

相关文章