神经网络与深度学习在推荐系统中的应用综述——从Wide&Deep到DCNv2:特征交互建模的演进之路

0 阅读19分钟

目录

  1. 引言
  2. 推荐系统基础
  3. 因子分解机(FM):特征交互的奠基
  4. Wide&Deep:深度学习推荐的开篇
  5. DeepFM:FM与DNN的深度融合
  6. DCN:显式高阶特征交叉
  7. xDeepFM:向量级的显式特征交叉
  8. DCNv2:低秩分解与SOTA性能
  9. 算法演进脉络与对比分析
  10. 相关算法扩展
  11. 业界应用实践
  12. 未来发展趋势
  13. 总结与展望
  14. 参考文献

1. 引言

1.1 推荐系统的重要性

推荐系统(Recommender System, RS)作为信息过载时代的核心技术,已成为现代互联网基础设施的关键组成部分。从电子商务平台的商品推荐、社交媒体的内容分发,到视频平台的个性化播放列表,推荐系统无处不在地影响着数十亿用户的日常体验。

根据Guo等人的综述[16],推荐系统的核心任务是预测用户对物品的反馈,包括点击率(Click-Through Rate, CTR)、转化率(Conversion Rate, CVR)等。准确的预测不仅直接影响用户体验,更与平台的商业收益密切相关。在广告系统中,CTR预测的准确性直接决定了广告的投放效率和平台收入;在电商系统中,推荐质量直接影响用户的购买转化率。

1.2 从传统方法到深度学习

推荐系统的发展经历了多个阶段:

协同过滤时代(1990s-2000s)

早期的推荐系统主要基于协同过滤(Collaborative Filtering, CF)技术,包括:

  • 基于用户的协同过滤(User-based CF)
  • 基于物品的协同过滤(Item-based CF)
  • 矩阵分解(Matrix Factorization, MF)[1]

这些方法虽然简单有效,但存在冷启动、稀疏性等问题,且难以利用物品和用户的丰富特征信息。

特征工程时代(2000s-2010s)

随着机器学习的发展,推荐系统开始引入更多的特征工程:

  • 逻辑回归(Logistic Regression, LR)
  • 梯度提升树(Gradient Boosting Decision Tree, GBDT)
  • 因子分解机(Factorization Machine, FM)[1]

因子分解机由Rendle在2010年提出,是特征交互建模的重要里程碑。FM通过将特征映射到低维隐向量空间,能够自动学习特征之间的二阶交互,有效解决了稀疏数据下的特征组合问题。

深度学习时代(2010s至今)

深度学习的兴起为推荐系统带来了新的机遇。2016年,Google提出的Wide&Deep[2]标志着深度学习推荐系统的开端。此后,一系列基于深度学习的模型相继提出,包括DeepFM[3]、DCN[4]、xDeepFM[5]、DCNv2[6]等,这些模型在特征交互建模方面不断取得突破。

1.3 特征交互的核心挑战

特征交互(Feature Interaction)是CTR预测等推荐任务的核心问题。在实际应用中,推荐系统通常包含数百甚至数千个特征,这些特征之间存在着复杂的交互关系。

低阶特征交互

低阶特征交互主要指二阶特征组合,例如:

  • 用户年龄与商品类别的组合
  • 用户地理位置与时间段的组合
  • 商品品牌与价格的组合

这些二阶交互可以通过FM等模型有效捕捉。

高阶特征交互

高阶特征交互指三个或更多特征的组合,例如:

  • 年轻女性用户在晚上浏览化妆品
  • 一线城市用户在周末购买高端电子产品

高阶交互的建模更加复杂,需要更强大的模型能力。

显式与隐式特征交互

  • 显式特征交互:通过特定的网络结构显式建模特征之间的交互关系,如FM、DCN的交叉网络
  • 隐式特征交互:通过神经网络自动学习特征交互,如DNN的隐藏层

理想的推荐模型应该能够同时建模显式和隐式的、低阶和高阶的特征交互。

1.4 本综述的结构

本综述将系统介绍神经网络和深度学习在推荐系统中的应用,重点围绕以下几个经典算法:

  1. Wide&Deep(2016):深度学习推荐的开篇之作
  2. DeepFM(2017):FM与DNN的深度融合
  3. DCN(2017):显式高阶特征交叉网络
  4. xDeepFM(2018):向量级的显式特征交叉
  5. DCNv2(2021):低秩分解与SOTA性能

我们将详细介绍每个算法的网络结构、数学公式、实验效果,分析它们的发展脉络和相互关系,并讨论这些算法在业界中的应用和未来的发展趋势。


2. 推荐系统基础

2.1 问题定义

点击率预测(CTR Prediction)是推荐系统中最基础也是最重要的任务之一。给定一个用户-物品对,CTR预测模型需要估计用户点击该物品的概率。

形式化定义

设输入特征为 x=[x1,x2,...,xn]x = [x_1, x_2, ..., x_n],其中 xix_i 表示第 ii 个特征。CTR预测模型的目标是学习一个映射函数:

y^=f(x)[0,1]\hat{y} = f(x) \in [0, 1]

使得预测值 y^\hat{y} 尽可能接近真实的点击率 y{0,1}y \in \{0, 1\}

特征类型

推荐系统中的特征通常分为两类:

  1. 类别特征(Categorical Features):如用户ID、物品ID、类别标签等,通常通过嵌入(Embedding)层转换为密集向量
  2. 数值特征(Numerical Features):如用户年龄、物品价格、统计计数等,通常需要归一化处理

2.2 评价指标

AUC(Area Under the ROC Curve)

AUC是CTR预测中最常用的评价指标,衡量模型区分正负样本的能力。AUC的取值范围为[0, 1],值越大表示模型性能越好。在工业实践中,AUC提升0.001通常被认为是显著的改进。

Log Loss(对数损失)

Log Loss衡量预测概率与真实标签之间的差异:

L=1Ni=1N[yilog(y^i)+(1yi)log(1y^i)]\mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} [y_i \log(\hat{y}_i) + (1-y_i) \log(1-\hat{y}_i)]

其他指标

  • GAUC(Group AUC):按用户分组计算AUC后平均,更准确地反映个性化效果
  • NDCG(Normalized Discounted Cumulative Gain):衡量排序质量
  • CTR(Click-Through Rate):实际点击率,反映业务效果

2.3 深度学习的优势

深度学习在推荐系统中的应用带来了多方面的优势:

1. 自动特征学习

传统方法需要大量的人工特征工程,而深度学习模型可以自动学习特征表示,减少了人工干预。

2. 强大的表达能力

深度神经网络具有强大的非线性建模能力,能够捕捉复杂的特征交互模式。

3. 端到端训练

深度学习模型可以端到端地训练,优化目标直接对应业务指标。

4. 多模态融合

深度学习便于融合多种类型的数据,如文本、图像、视频等。


3. 因子分解机(FM):特征交互的奠基

3.1 FM的提出背景

因子分解机(Factorization Machine, FM)由Steffen Rendle在2010年提出[1],是推荐系统中特征交互建模的奠基性工作。在FM之前,处理特征交互的主要方法是多项式回归(Polynomial Regression),但多项式回归在稀疏数据下存在严重问题。

多项式回归的问题

考虑二阶多项式回归:

y^=w0+i=1nwixi+i=1nj=i+1nwijxixj\hat{y} = w_0 + \sum_{i=1}^{n} w_i x_i + \sum_{i=1}^{n} \sum_{j=i+1}^{n} w_{ij} x_i x_j

其中 wijw_{ij} 是特征 xix_ixjx_j 交互的权重。在稀疏数据下,很多特征组合在训练集中从未出现或出现次数很少,导致对应的 wijw_{ij} 无法有效学习。

3.2 FM的数学公式

FM通过将交互权重 wijw_{ij} 分解为两个隐向量的内积来解决稀疏性问题:

y^=w0+i=1nwixi+i=1nj=i+1nvi,vjxixj\hat{y} = w_0 + \sum_{i=1}^{n} w_i x_i + \sum_{i=1}^{n} \sum_{j=i+1}^{n} \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_j

其中:

  • w0w_0 是全局偏置
  • wiw_i 是第 ii 个特征的一阶权重
  • viRk\mathbf{v}_i \in \mathbb{R}^k 是第 ii 个特征的隐向量
  • kk 是隐向量的维度
  • vi,vj=f=1kvi,fvj,f\langle \mathbf{v}_i, \mathbf{v}_j \rangle = \sum_{f=1}^{k} v_{i,f} \cdot v_{j,f} 是隐向量的内积

计算优化

FM的二阶交互项可以通过数学变换在 O(nk)O(nk) 时间内计算,而不是直接计算的 O(n2)O(n^2)

i=1nj=i+1nvi,vjxixj=12f=1k[(i=1nvi,fxi)2i=1nvi,f2xi2]\sum_{i=1}^{n} \sum_{j=i+1}^{n} \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_j = \frac{1}{2} \sum_{f=1}^{k} \left[ \left(\sum_{i=1}^{n} v_{i,f} x_i\right)^2 - \sum_{i=1}^{n} v_{i,f}^2 x_i^2 \right]

3.3 FM的优势

1. 解决稀疏性问题

即使特征组合 (i,j)(i, j) 在训练集中从未出现,只要特征 ii 和特征 jj 分别与其他特征有过交互,它们的隐向量 vi\mathbf{v}_ivj\mathbf{v}_j 仍然可以得到有效学习。

2. 线性时间复杂度

通过上述优化,FM的计算复杂度为 O(nk)O(nk),可以高效处理大规模数据。

3. 通用性

FM可以用于各种预测任务,包括回归、分类、排序等。

3.4 FM的局限性

尽管FM在特征交互建模方面取得了重要突破,但它也存在一些局限性:

1. 仅建模二阶交互

标准FM只考虑二阶特征交互,无法捕捉更高阶的交互模式。

2. 线性模型

FM本质上是线性模型,表达能力有限。虽然可以通过引入高阶FM(Higher-Order FM)来建模高阶交互,但计算复杂度会显著增加。

3. 缺乏非线性变换

FM没有引入非线性激活函数,无法学习复杂的非线性模式。

这些局限性为后续的深度学习模型提供了改进空间。


4. Wide&Deep:深度学习推荐的开篇

4.1 论文背景

Wide&Deep由Google的研究团队在2016年提出[2],发表在DLRS(Deep Learning for Recommender Systems)研讨会上。这篇论文是深度学习推荐系统的开创性工作,首次系统性地提出了结合记忆(Memorization)和泛化(Generalization)的推荐模型架构。

论文信息

  • 标题:Wide & Deep Learning for Recommender Systems
  • 作者:Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, et al.
  • 发表:DLRS 2016 / arXiv:1606.07792

4.2 核心思想

Wide&Deep的核心思想是结合两种不同类型的模型:

Wide部分(记忆能力)

Wide部分是一个线性模型,专注于记忆历史数据中的特定模式:

ywide=wwideTx+bwidey_{wide} = \mathbf{w}_{wide}^T \mathbf{x} + b_{wide}

Wide部分通过交叉特征(Crossed Features)来记忆特定的特征组合。例如,"AND(user_installed_app=netflix, impression_app=pandora)"这样的交叉特征可以记忆"安装了Netflix的用户很可能会点击Pandora"这一特定模式。

Deep部分(泛化能力)

Deep部分是一个深度神经网络,学习特征的低维密集嵌入,具有更好的泛化能力:

a(l+1)=f(W(l)a(l)+b(l))a^{(l+1)} = f(W^{(l)} a^{(l)} + b^{(l)})

其中 ff 是激活函数(通常使用ReLU),ll 表示层数。

联合训练

Wide&Deep将两部分联合训练:

P(Y=1x)=σ(wwideTx+wdeepTa(lf)+b)P(Y=1|\mathbf{x}) = \sigma(\mathbf{w}_{wide}^T \mathbf{x} + \mathbf{w}_{deep}^T a^{(l_f)} + b)

其中 σ\sigma 是sigmoid函数,a(lf)a^{(l_f)} 是Deep部分的最终输出。

4.3 网络结构

Wide&Deep的网络结构如下图所示:

输入特征
    |
    |---> Wide部分(线性模型 + 交叉特征)
    |         |
    |         v
    |     线性输出
    |
    |---> Deep部分(嵌入层 + DNN)
    |         |
    |         v
    |     嵌入向量
    |         |
    |         v
    |     全连接层
    |         |
    |         v
    |     非线性输出
    |
    v
  联合输出(加权求和 + Sigmoid)

Wide部分的交叉特征

交叉特征通过笛卡尔积生成:

ϕk(x)=i=1dxicki\phi_k(\mathbf{x}) = \prod_{i=1}^{d} x_i^{c_{ki}}

其中 cki{0,1}c_{ki} \in \{0, 1\} 表示是否参与交叉。

4.4 实验结果

数据集

论文在Google Play商店的应用推荐场景上进行了实验,数据集包含:

  • 5亿活跃用户
  • 100万应用
  • 数十亿训练样本

实验设置

  • Wide部分:包含用户已安装应用和曝光应用的交叉特征
  • Deep部分:32维嵌入,2层隐藏层(每层1024个神经元,ReLU激活)
  • 优化器:AdaGrad,学习率0.05

主要结果

模型离线AUC线上安装率
Wide(仅线性)-基准
Deep(仅DNN)-+2.4%
Wide&Deep-+3.9%

注: 表格中"-"表示原文未报告该指标。Wide&Deep相比仅使用Wide或Deep的模型,线上应用安装率提升了3.9%,证明了结合记忆和泛化的有效性。

4.5 Wide&Deep的影响

Wide&Deep的提出具有里程碑意义:

1. 开辟了深度学习推荐的新方向

Wide&Deep证明了深度学习在推荐系统中的有效性,引发了后续大量研究工作。

2. 提出了记忆与泛化的框架

记忆与泛化的二分法成为后续推荐模型设计的重要指导思想。

3. 工业界广泛应用

Wide&Deep在Google Play、YouTube等大规模推荐系统中得到应用,证明了其实用价值。

4.6 Wide&Deep的局限性

1. 特征工程依赖

Wide部分需要人工设计交叉特征,这需要领域知识且耗时。

2. 显式交互建模有限

Wide部分只建模人工指定的交叉特征,Deep部分的交互是隐式的,缺乏对特征交互的显式建模。

3. 二阶交互限制

Wide部分的交叉特征通常是二阶的,难以捕捉更高阶的交互。

这些局限性催生了后续的一系列改进工作。


5. DeepFM:FM与DNN的深度融合

5.1 论文背景

DeepFM由华为诺亚方舟实验室的Huifeng Guo等人在2017年提出[3],发表在IJCAI 2017上。这篇论文针对Wide&Deep需要人工设计交叉特征的问题,提出了用FM替代Wide部分的解决方案。

论文信息

  • 标题:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
  • 作者:Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, Xiuqiang He
  • 发表:IJCAI 2017 / arXiv:1703.04247

5.2 核心思想

DeepFM的核心思想是将FM和DNN进行端到端的联合训练,共享相同的输入嵌入:

FM部分(替代Wide)

yFM=w,x+i=1nj=i+1nvi,vjxixjy_{FM} = \langle \mathbf{w}, \mathbf{x} \rangle + \sum_{i=1}^{n} \sum_{j=i+1}^{n} \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_j

Deep部分

yDeep=WL+1aL+bL+1y_{Deep} = W^{|L|+1} \cdot \mathbf{a}^{|L|} + b^{|L|+1}

其中:

a(l)=ReLU(W(l)a(l1)+b(l))\mathbf{a}^{(l)} = \text{ReLU}(W^{(l)} \mathbf{a}^{(l-1)} + b^{(l)})

a(0)=[e1,e2,...,en]\mathbf{a}^{(0)} = [\mathbf{e}_1, \mathbf{e}_2, ..., \mathbf{e}_n]

联合输出

y^=σ(yFM+yDeep)\hat{y} = \sigma(y_{FM} + y_{Deep})

5.3 网络结构

DeepFM的网络结构如下图所示:

输入层(稀疏特征)
    |
    v
嵌入层(共享)
    |
    |---> FM部分
    |         |
    |         |---> 一阶项(线性)
    |         |
    |         |---> 二阶交互项(内积)
    |         |
    |         v
    |     FM输出
    |
    |---> Deep部分
    |         |
    |         v
    |     嵌入向量拼接
    |         |
    |         v
    |     全连接层(多个隐藏层)
    |         |
    |         v
    |     Deep输出
    |
    v
  联合输出(FM + Deep,Sigmoid)

关键创新:共享嵌入

DeepFM的关键创新是FM部分和Deep部分共享相同的特征嵌入。这种设计带来两个优势:

  1. 减少参数数量:避免为FM和DNN分别学习嵌入
  2. 联合优化:嵌入在FM的低阶交互和DNN的高阶交互之间共享信息

5.4 与Wide&Deep的比较

特性Wide&DeepDeepFM
Wide部分线性模型 + 人工交叉特征FM(自动学习二阶交互)
特征工程需要设计交叉特征无需人工特征工程
嵌入共享Wide和Deep使用不同嵌入FM和Deep共享嵌入
端到端训练

5.5 实验结果

数据集

论文在三个公开数据集上进行了实验:

  1. Criteo Dataset:业界标准的CTR预测数据集,包含4500万条广告点击记录
  2. Company Dataset:华为内部数据集
  3. MovieLens:电影评分数据集

实验设置

  • 嵌入维度:10
  • Deep部分:3层隐藏层,每层400个神经元,ReLU激活,Dropout率0.5
  • 优化器:Adam
  • 批量大小:128

Criteo数据集结果

模型AUCLog Loss
LR0.78230.4714
FM0.78630.4677
FNN0.78910.4653
PNN0.79150.4631
Wide&Deep0.79230.4623
DeepFM0.79420.4607

关键发现

  1. DeepFM在所有对比模型中取得最佳性能
  2. 相比Wide&Deep,DeepFM的AUC提升0.0019,Log Loss降低0.0016
  3. 消融实验显示,FM部分和Deep部分都对最终性能有贡献

5.6 DeepFM的影响

1. 消除了人工特征工程

DeepFM用FM自动学习二阶交互,消除了Wide&Deep中的人工交叉特征设计。

2. 共享嵌入的设计思想

共享嵌入成为后续许多模型的标准设计,如DCN、xDeepFM等。

3. 工业界广泛应用

DeepFM因其简洁有效的设计,在工业界得到广泛应用,成为CTR预测的重要baseline。

5.7 DeepFM的局限性

1. 仅显式建模二阶交互

FM部分只建模二阶交互,更高阶的交互需要通过Deep部分隐式学习。

2. Deep部分的交互不可解释

DNN学习的高阶交互是隐式的,难以理解和解释。

3. 特征交叉的粒度

FM在标量级(bit-wise)进行特征交叉,而非向量级(vector-wise)。

这些局限性催生了DCN等后续工作。


6. DCN:显式高阶特征交叉

6.1 论文背景

DCN(Deep & Cross Network)由斯坦福大学和Google的研究团队在2017年提出[4],发表在ADKDD 2017上。这篇论文针对DeepFM只能显式建模二阶交互的问题,提出了能够显式建模任意高阶交互的交叉网络。

论文信息

  • 标题:Deep & Cross Network for Ad Click Predictions
  • 作者:Ruoxi Wang, Bin Fu, Gang Fu, Mingliang Wang
  • 发表:ADKDD 2017 / arXiv:1708.05123

6.2 核心思想

DCN的核心思想是引入一个专门的交叉网络(Cross Network),通过特定的网络结构显式建模特征的高阶交互:

交叉网络

交叉网络由多层组成,每一层都在前一层的基础上增加高阶交互:

xl+1=x0xlTwl+bl+xl=f(xl,wl,bl)+xl\mathbf{x}_{l+1} = \mathbf{x}_0 \mathbf{x}_l^T \mathbf{w}_l + \mathbf{b}_l + \mathbf{x}_l = f(\mathbf{x}_l, \mathbf{w}_l, \mathbf{b}_l) + \mathbf{x}_l

其中:

  • x0\mathbf{x}_0 是输入向量(嵌入层的输出)
  • xl\mathbf{x}_lxl+1\mathbf{x}_{l+1} 分别是第 ll 层和第 l+1l+1 层的输出
  • wl\mathbf{w}_lbl\mathbf{b}_l 是第 ll 层的权重和偏置

多项式逼近的视角

交叉网络的设计灵感来自于多项式逼近。第 ll 层的输出包含了从1阶到 (l+1)(l+1) 阶的所有特征交互:

xl=x0+i=1lx0xiTwi\mathbf{x}_l = \mathbf{x}_0 + \sum_{i=1}^{l} \mathbf{x}_0 \mathbf{x}_i^T \mathbf{w}_i

展开后可以看到,xl\mathbf{x}_l 包含了 x0\mathbf{x}_0 的1阶项、2阶项、...、(l+1)(l+1) 阶项。

Deep部分

DCN的Deep部分与DeepFM类似,是一个标准的DNN:

hl+1=f(Wlhl+bl)\mathbf{h}_{l+1} = f(W_l \mathbf{h}_l + \mathbf{b}_l)

联合输出

y^=σ(wcrossTxL1+wdeepThL2+b)\hat{y} = \sigma(\mathbf{w}_{cross}^T \mathbf{x}_{L_1} + \mathbf{w}_{deep}^T \mathbf{h}_{L_2} + b)

6.3 网络结构

DCN的网络结构如下图所示:

输入特征(稀疏)
    |
    v
嵌入层(Embedding)
    |
    |---> 交叉网络(Cross Network)
    |         |
    |         |---> 第1层:x1 = x0 * x0^T * w0 + b0 + x0
    |         |---> 第2层:x2 = x0 * x1^T * w1 + b1 + x1
    |         |---> ...
    |         |---> 第L层
    |         |
    |         v
    |     交叉网络输出
    |
    |---> 深度网络(Deep Network)
    |         |
    |         |---> 全连接层1(ReLU)
    |         |---> 全连接层2(ReLU)
    |         |---> ...
    |         |
    |         v
    |     深度网络输出
    |
    v
  联合输出(拼接 + 线性 + Sigmoid)

6.4 交叉网络的特性

1. 有限阶数

ll 层的最高阶数为 l+1l+1,可以通过控制层数来控制最高阶数。

2. 参数高效

每层交叉网络只有 O(d)O(d) 个参数(dd 是输入维度),远少于标准DNN的 O(d2)O(d^2)

3. 残差连接

每层都包含残差连接(+xl+ \mathbf{x}_l),有助于梯度传播。

4. 显式交互

特征交互是显式计算的,具有更好的可解释性。

6.5 与DeepFM的比较

特性DeepFMDCN
显式交互仅二阶任意高阶
交互类型标量级(bit-wise)标量级(bit-wise)
参数效率中等高(每层O(d))
可解释性中等较好

6.6 实验结果

数据集

  • Criteo Display Ads Dataset:4500万条记录

实验设置

  • 嵌入维度:6
  • 交叉网络层数:6层
  • Deep网络:2层,每层1024个神经元
  • 优化器:Adam

主要结果

模型AUCLog Loss
LR0.78230.4714
FM0.78630.4677
Wide&Deep0.79230.4623
DCN0.79570.4597

注: 以上AUC数值来自各论文原始实验结果,由于实验设置(数据预处理、特征工程、超参数等)不同,直接比较可能不公平。DCN相比Wide&Deep,AUC提升0.0034,证明了显式高阶交互建模的有效性。

6.7 DCN的影响

1. 显式高阶交互建模

DCN开创了显式建模高阶特征交互的先河,为后续工作提供了重要思路。

2. 参数高效的设计

交叉网络的参数效率设计成为后续模型的重要参考。

3. 可解释性

显式交互提供了更好的可解释性,有助于理解模型的决策过程。

6.8 DCN的局限性

1. 标量级交叉

DCN的交叉操作是在标量级(bit-wise)进行的,而非向量级(vector-wise)。这意味着它不能充分利用嵌入向量的表达能力。

2. 表达能力受限

交叉网络的形式相对固定,可能限制了模型的表达能力。

3. 与Deep部分的交互有限

交叉网络和深度网络是并行结构,两者之间的交互有限。

这些局限性催生了xDeepFM等后续工作。


7. xDeepFM:向量级的显式特征交叉

7.1 论文背景

xDeepFM(eXtreme Deep Factorization Machine)由微软亚洲研究院的Jianxun Lian等人在2018年提出[5],发表在KDD 2018上。这篇论文针对DCN标量级交叉的问题,提出了在向量级(vector-wise)进行显式特征交叉的压缩交互网络(Compressed Interaction Network, CIN)。

论文信息

  • 标题:xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems
  • 作者:Jianxun Lian, Xiaohuan Zhou, Fuzheng Zhang, Zhongxia Chen, Xing Xie, Guangzhong Sun
  • 发表:KDD 2018 / arXiv:1803.05170

7.2 核心思想

xDeepFM的核心思想是引入压缩交互网络(CIN),在向量级进行显式的高阶特征交叉:

CIN的结构

CIN由多层组成,每一层都在前一层的基础上增加高阶交互:

Xh,k=i=1Hk1j=1mWijk,h(Xi,k1Xj,0)\mathbf{X}_{h,*}^k = \sum_{i=1}^{H_{k-1}} \sum_{j=1}^{m} \mathbf{W}_{ij}^{k,h} (\mathbf{X}_{i,*}^{k-1} \circ \mathbf{X}_{j,*}^0)

其中:

  • X0Rm×D\mathbf{X}^0 \in \mathbb{R}^{m \times D} 是输入矩阵(mm 个特征,每个特征 DD 维嵌入)
  • XkRHk×D\mathbf{X}^k \in \mathbb{R}^{H_k \times D} 是第 kk 层的输出
  • \circ 表示Hadamard积(逐元素相乘)
  • Wk,hRHk1×m\mathbf{W}^{k,h} \in \mathbb{R}^{H_{k-1} \times m} 是第 kk 层第 hh 个特征图的权重

CIN的直观理解

CIN的每一层通过以下步骤生成新的特征图:

  1. 外积操作:将前一层的特征图与输入层的特征图进行外积,生成中间特征
  2. 压缩求和:通过权重矩阵对中间特征进行加权求和,生成新的特征图
  3. 保持维度:输出特征图保持与输入相同的嵌入维度 DD

与DCN的关键区别

  • DCN:标量级交叉(bit-wise),xl+1=x0xlTwl+xl\mathbf{x}_{l+1} = \mathbf{x}_0 \mathbf{x}_l^T \mathbf{w}_l + \mathbf{x}_l
  • CIN:向量级交叉(vector-wise),Xk=Wk(Xk1X0)\mathbf{X}^k = \mathbf{W}^k \cdot (\mathbf{X}^{k-1} \circ \mathbf{X}^0)

7.3 网络结构

xDeepFM的网络结构如下图所示:

输入特征(稀疏)
    |
    v
嵌入层(Embedding)
    |
    |---> CIN(压缩交互网络)
    |         |
    |         |--->1层:X^1 = W^1 · (X^0 ∘ X^0)
    |         |--->2层:X^2 = W^2 · (X^1 ∘ X^0)
    |         |---> ...
    |         |---> 第k层
    |         |
    |         v
    |     各层输出拼接 -> 求和池化 -> CIN输出
    |
    |---> 传统DNN
    |         |
    |         |---> 全连接层1(ReLU)
    |         |---> 全连接层2(ReLU)
    |         |---> ...
    |         |
    |         v
    |     DNN输出
    |
    |---> 线性部分(一阶项)
    |         |
    |         v
    |     线性输出
    |
    v
  联合输出(拼接 + 线性 + Sigmoid)

三部分组成

xDeepFM包含三个部分:

  1. 线性部分:建模一阶特征
  2. CIN部分:显式建模高阶向量级特征交互
  3. DNN部分:隐式建模高阶特征交互

7.4 CIN的数学细节

第k层的详细计算

对于第 kk 层的第 hh 个特征图:

Xh,k=i=1Hk1j=1mWijk,h(Xi,k1Xj,0)RD\mathbf{X}_{h,*}^k = \sum_{i=1}^{H_{k-1}} \sum_{j=1}^{m} \mathbf{W}_{ij}^{k,h} (\mathbf{X}_{i,*}^{k-1} \circ \mathbf{X}_{j,*}^0) \in \mathbb{R}^D

向量化表示

定义 zk+1\mathbf{z}^{k+1} 为第 kk 层外积结果的向量化表示:

zi,jk+1=Xi,kXj,0RD\mathbf{z}_{i,j}^{k+1} = \mathbf{X}_{i,*}^k \circ \mathbf{X}_{j,*}^0 \in \mathbb{R}^D

则第 k+1k+1 层的输出可以表示为:

Xk+1=Wk+1zk+1\mathbf{X}^{k+1} = \mathbf{W}^{k+1} \mathbf{z}^{k+1}

空间复杂度

CIN的空间复杂度为 O(mHD+H2D)O(mHD + H^2D),其中:

  • mm:输入特征数量
  • HH:每层特征图数量
  • DD:嵌入维度
  • kk:CIN层数

7.5 与DCN的比较

特性DCNxDeepFM (CIN)
交叉粒度标量级(bit-wise)向量级(vector-wise)
交互类型线性组合外积 + 压缩
特征图数量固定(1个)可变(每层 HkH_k 个)
表达能力中等更强
计算复杂度O(d)O(d) 每层O(mHD)O(mHD) 每层

7.6 实验结果

数据集

  1. Criteo Display Ads Dataset
  2. Dianping Dataset:大众点评数据集
  3. Bing News Dataset:微软必应新闻数据集

Criteo数据集结果

模型AUCLog Loss
LR0.78230.4714
FM0.78630.4677
DeepFM0.79420.4607
DCN0.79570.4597
xDeepFM0.79680.4588

关键发现

  1. xDeepFM在所有对比模型中取得最佳性能
  2. 相比DCN,xDeepFM的AUC提升0.0011,证明了向量级交叉的优势
  3. 消融实验显示,CIN部分对性能提升贡献显著

7.7 xDeepFM的影响

1. 向量级特征交叉

xDeepFM开创了向量级显式特征交叉的先河,为后续工作提供了新的思路。

2. 显式与隐式的结合

xDeepFM同时包含显式(CIN)和隐式(DNN)的特征交互建模,证明了两者结合的有效性。

3. 特征图的概念

CIN引入的特征图概念影响了后续许多模型设计。

7.8 xDeepFM的局限性

1. 计算复杂度较高

CIN的计算复杂度为 O(kmHD)O(kmHD),当特征数量 mm 很大时,计算开销较大。

2. 参数调优复杂

CIN有多个超参数需要调优(层数、每层特征图数量等),增加了模型调优的难度。

3. 与DNN的融合

CIN和DNN是并行结构,两者之间的融合方式相对简单。

这些局限性催生了DCNv2等后续工作。


8. DCNv2:低秩分解与SOTA性能

8.1 论文背景

DCNv2(Deep & Cross Network V2)由Google的研究团队在2021年提出[6],发表在TheWebConf 2021上。这篇论文针对原始DCN表达能力受限的问题,通过引入低秩分解和更灵活的交叉机制,显著提升了模型性能。

论文信息

  • 标题:DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems
  • 作者:Ruoxi Wang, Rakesh Shivanna, Derek Cheng, Sagar Jain, Dong Lin, Lichan Hong, Ed Chi
  • 发表:TheWebConf 2021 / arXiv:2008.13535

8.2 核心思想

DCNv2的核心思想是通过以下改进提升DCN的表达能力:

改进一:矩阵形式的交叉

原始DCN使用向量形式的交叉:

xl+1=x0xlTwl+bl+xl\mathbf{x}_{l+1} = \mathbf{x}_0 \mathbf{x}_l^T \mathbf{w}_l + \mathbf{b}_l + \mathbf{x}_l

DCNv2将其扩展为矩阵形式:

Xl+1=X0(WlXl+bl)+Xl\mathbf{X}_{l+1} = \mathbf{X}_0 \odot (\mathbf{W}_l \mathbf{X}_l + \mathbf{b}_l) + \mathbf{X}_l

其中:

  • X0Rd×B\mathbf{X}_0 \in \mathbb{R}^{d \times B} 是输入矩阵(dd 维特征,BB 个样本)
  • XlRd×B\mathbf{X}_l \in \mathbb{R}^{d \times B} 是第 ll 层的输出
  • WlRd×d\mathbf{W}_l \in \mathbb{R}^{d \times d} 是权重矩阵
  • \odot 表示逐元素乘法(broadcasting)

改进二:低秩分解

为了减少参数数量,DCNv2对权重矩阵进行低秩分解:

Wl=UlVlT+Dl\mathbf{W}_l = \mathbf{U}_l \mathbf{V}_l^T + \mathbf{D}_l

其中:

  • UlRd×r\mathbf{U}_l \in \mathbb{R}^{d \times r}VlRd×r\mathbf{V}_l \in \mathbb{R}^{d \times r}rdr \ll d 是低秩
  • Dl\mathbf{D}_l 是对角矩阵(可选)

低秩分解将参数数量从 O(d2)O(d^2) 降低到 O(dr)O(dr)

改进三:堆叠交叉层

DCNv2可以堆叠多个交叉层,形成更深的交叉网络:

Xl+1=f(Xl,Wl)+Xl\mathbf{X}_{l+1} = f(\mathbf{X}_l, \mathbf{W}_l) + \mathbf{X}_l

改进四:与DNN的深度融合

DCNv2探索了多种交叉网络与DNN的融合方式:

  1. 并行结构(Stacked):交叉网络和DNN并行,输出拼接
  2. 串行结构(Stacked):交叉网络的输出作为DNN的输入
  3. 混合结构(Mixed):交叉层和DNN层交替

8.3 网络结构

DCNv2的网络结构如下图所示:

输入特征
    |
    v
嵌入层(Embedding)
    |
    v
特征拼接(Flatten)
    |
    |---> 交叉网络(Cross Network)
    |         |
    |         |---> 第1层:X1 = X0 ⊙ (U1·V1^T·X0) + X0
    |         |---> 第2层:X2 = X0 ⊙ (U2·V2^T·X1) + X1
    |         |---> ...
    |         |---> 第L层
    |         |
    |         v
    |     交叉网络输出
    |
    |---> 深度网络(Deep Network)
    |         |
    |         |---> 全连接层1(ReLU)
    |         |---> 全连接层2(ReLU)
    |         |---> ...
    |         |
    |         v
    |     深度网络输出
    |
    v
  输出层(拼接 + 线性 + Sigmoid)

8.4 低秩分解的详细公式

标准交叉层

Xl+1=X0(WlXl+bl)+Xl\mathbf{X}_{l+1} = \mathbf{X}_0 \odot (\mathbf{W}_l \mathbf{X}_l + \mathbf{b}_l) + \mathbf{X}_l

参数数量:d2d^2(忽略偏置)

低秩交叉层

Xl+1=X0(UlVlTXl+bl)+Xl\mathbf{X}_{l+1} = \mathbf{X}_0 \odot (\mathbf{U}_l \mathbf{V}_l^T \mathbf{X}_l + \mathbf{b}_l) + \mathbf{X}_l

参数数量:2dr2dr

rdr \ll d 时,参数数量显著减少。

带对角矩阵的低秩交叉层

Xl+1=X0(UlVlTXl+DlXl+bl)+Xl\mathbf{X}_{l+1} = \mathbf{X}_0 \odot (\mathbf{U}_l \mathbf{V}_l^T \mathbf{X}_l + \mathbf{D}_l \mathbf{X}_l + \mathbf{b}_l) + \mathbf{X}_l

其中 Dl\mathbf{D}_l 是对角矩阵,增加 dd 个参数。

8.5 与DCN和xDeepFM的比较

特性DCNxDeepFMDCNv2
交叉形式向量级向量级(特征图)矩阵级
低秩分解
参数效率中等可调(通过秩r)
与DNN融合并行并行多种方式
表达能力中等更强

8.6 实验结果

数据集

  1. Criteo Display Ads Dataset
  2. MovieLens 1M Dataset
  3. Google内部大规模数据集

Criteo数据集结果

模型AUCLog Loss
DeepFM0.79420.4607
DCN0.79570.4597
xDeepFM0.79680.4588
DCNv20.79750.4582

Google内部数据集结果

在Google的大规模工业数据集上,DCNv2相比DCN:

  • AUC提升:+0.0015
  • 训练速度:提升20%
  • 服务延迟:降低15%

关键发现

  1. DCNv2在所有对比模型中取得最佳性能
  2. 低秩分解在保持性能的同时显著减少了参数数量
  3. 串行融合方式(交叉网络输出作为DNN输入)效果最好

8.7 实用经验

论文还分享了在Web规模学习排序系统中的实用经验:

1. 低秩的选择

  • rr 通常选择为 d/4d/4d/2d/2 之间
  • 较小的 rr 减少参数但可能损失性能
  • 较大的 rr 增加参数但性能提升有限

2. 交叉层数

  • 通常2-4层交叉层足够
  • 更多的层数不一定带来性能提升

3. 与DNN的融合

  • 串行融合(Stacked)通常效果最好
  • 交叉网络的输出作为DNN的输入,让DNN进一步处理交叉特征

4. 训练技巧

  • 使用学习率衰减
  • 批量归一化有助于稳定训练
  • Dropout可以防止过拟合

8.8 DCNv2的影响

1. SOTA性能

DCNv2在多个数据集上取得了SOTA性能,成为CTR预测的重要baseline。

2. 低秩分解的应用

低秩分解的思想影响了后续许多模型设计,成为提升模型效率的重要手段。

3. 工业界落地

DCNv2在Google的大规模推荐系统中得到应用,证明了其在工业环境中的价值。


9. 算法演进脉络与对比分析

9.1 发展脉络图

FM (2010)
  |
  |---> 引入特征嵌入和隐向量内积
  |
  v
Wide&Deep (2016)
  |
  |---> 结合线性模型(记忆)和DNN(泛化)
  |---> 需要人工设计交叉特征
  |
  v
DeepFM (2017)
  |
  |---> 用FM替代Wide部分的线性模型
  |---> 消除人工特征工程
  |---> FM和DNN共享嵌入
  |
  v
DCN (2017)
  |
  |---> 引入交叉网络显式建模高阶交互
  |---> 参数高效的交叉层设计
  |
  v
xDeepFM (2018)
  |
  |---> 向量级(vector-wise)特征交叉
  |---> 压缩交互网络(CIN)
  |
  v
DCNv2 (2021)
  |
  |---> 矩阵级交叉 + 低秩分解
  |---> 更灵活的交叉-DNN融合
  |---> SOTA性能

9.2 核心创新对比

算法核心创新解决的问题局限性
FM隐向量内积建模二阶交互稀疏数据下的特征组合仅二阶、线性
Wide&Deep记忆+泛化双塔结构同时学习历史和泛化模式需要人工交叉特征
DeepFMFM+DNN共享嵌入消除人工特征工程仅显式二阶交互
DCN交叉网络显式高阶交互显式建模高阶交互标量级交叉
xDeepFMCIN向量级交叉向量级显式交互计算复杂度高
DCNv2低秩矩阵交叉表达能力+参数效率调参复杂

9.3 网络结构对比

特征交互的粒度演进

  1. 标量级(Bit-wise)

    • DCN:xl+1=x0xlTwl+xl\mathbf{x}_{l+1} = \mathbf{x}_0 \mathbf{x}_l^T \mathbf{w}_l + \mathbf{x}_l
    • 每个维度独立交叉
  2. 向量级(Vector-wise)

    • xDeepFM CIN:Xk=Wk(Xk1X0)\mathbf{X}^k = \mathbf{W}^k \cdot (\mathbf{X}^{k-1} \circ \mathbf{X}^0)
    • 保持嵌入向量的完整性
  3. 矩阵级(Matrix-wise)

    • DCNv2:Xl+1=X0(WlXl)+Xl\mathbf{X}_{l+1} = \mathbf{X}_0 \odot (\mathbf{W}_l \mathbf{X}_l) + \mathbf{X}_l
    • 批量处理,效率更高

显式与隐式交互的融合

算法显式交互隐式交互融合方式
DeepFMFM(二阶)DNN输出相加
DCN交叉网络(高阶)DNN输出拼接
xDeepFMCIN(高阶向量级)DNN输出拼接
DCNv2交叉网络(高阶矩阵级)DNN串行/并行/混合

9.4 性能对比

Criteo数据集上的AUC对比

算法AUC相比前代提升
LR0.7823-
FM0.7863+0.0040
Wide&Deep0.7923+0.0060
DeepFM0.7942+0.0019
DCN0.7957+0.0015
xDeepFM0.7968+0.0011
DCNv20.7975+0.0007

注: 以上AUC数值来自各论文原始实验结果,由于实验设置(数据预处理、特征工程、超参数等)不同,直接比较可能不公平。

观察

  1. 每代算法都有性能提升,但边际收益递减
  2. 从DeepFM到DCN的提升(+0.0015)大于从DCN到xDeepFM的提升(+0.0011)
  3. 最新的DCNv2提升较小,说明在Criteo数据集上已接近性能上限

9.5 计算效率对比

参数数量

算法参数复杂度主要参数来源
FMO(nk)O(nk)隐向量
DeepFMO(nk+dh)O(nk + dh)隐向量 + DNN
DCNO(nk+Ld+dh)O(nk + Ld + dh)隐向量 + 交叉层 + DNN
xDeepFMO(nk+LmHD+dh)O(nk + LmHD + dh)隐向量 + CIN + DNN
DCNv2O(nk+Ldr+dh)O(nk + Ldr + dh)隐向量 + 低秩交叉 + DNN

其中:

  • nn:特征数量
  • kk:嵌入维度
  • dd:嵌入层输出维度(d=nkd = nk
  • hh:DNN隐藏层大小
  • LL:交叉层数
  • mm:输入特征数
  • HH:CIN每层特征图数
  • DD:嵌入维度
  • rr:低秩

推理速度

在相同硬件条件下(相对速度,以FM为基准1.0):

算法相对速度主要开销
FM1.0嵌入查找 + 内积
DeepFM1.5+ DNN前向传播
DCN1.6+ 交叉网络
xDeepFM2.5+ CIN计算
DCNv21.8+ 低秩交叉

10. 相关算法扩展

10.1 NFM(Neural Factorization Machine)

论文信息

  • 标题:Neural Factorization Machines for Sparse Predictive Analytics
  • 作者:Xiangnan He, Tat-Seng Chua
  • 发表:SIGIR 2017 / arXiv:1708.05027

核心思想

NFM在FM的基础上,将二阶交互的结果输入到一个DNN中:

y^=f(Bi-Interaction(x))\hat{y} = f(\text{Bi-Interaction}(\mathbf{x}))

其中Bi-Interaction层计算:

fBI(Vx)=i=1nj=i+1nvivjxixjf_{BI}(\mathcal{V}_x) = \sum_{i=1}^{n} \sum_{j=i+1}^{n} \mathbf{v}_i \odot \mathbf{v}_j \cdot x_i \cdot x_j

特点

  • 比FM更强的表达能力
  • 比DeepFM更简洁的结构
  • 适合捕捉二阶交互后的非线性模式

10.2 AFM(Attentional Factorization Machine)

论文信息

  • 标题:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks
  • 作者:Jun Xiao, Hao Ye, Xiangnan He, Hanwang Zhang, Fei Wu, Tat-Seng Chua
  • 发表:IJCAI 2017 / arXiv:1708.04617

核心思想

AFM引入注意力机制,为不同的特征交互分配不同的权重:

y^=w0+i=1nwixi+i=1nj=i+1naijvi,vjxixj\hat{y} = w_0 + \sum_{i=1}^{n} w_i x_i + \sum_{i=1}^{n} \sum_{j=i+1}^{n} a_{ij} \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_j

其中注意力权重:

aij=exp(hTReLU(W(vivj)xixj))(i,j)Rxexp(hTReLU(W(vivj)xixj))a_{ij} = \frac{\exp(\mathbf{h}^T \text{ReLU}(\mathbf{W}(\mathbf{v}_i \odot \mathbf{v}_j)x_i x_j))}{\sum_{(i,j) \in \mathcal{R}_x} \exp(\mathbf{h}^T \text{ReLU}(\mathbf{W}(\mathbf{v}_i \odot \mathbf{v}_j)x_i x_j))}

特点

  • 自动学习特征交互的重要性
  • 提高模型可解释性
  • 减少噪声交互的影响

10.3 PNN(Product-based Neural Network)

论文信息

  • 标题:Product-based Neural Networks for User Response Prediction
  • 作者:Yanru Qu, Bohui Fang, Weinan Zhang, Ruiming Tang, Minzhe Niu, Huifeng Guo, Yong Yu, Xiuqiang He
  • 发表:ICDM 2016 / arXiv:1611.00144

核心思想

PNN在嵌入层之后引入乘积层(Product Layer),显式建模特征交互:

z=concat(z1,z2,...,zn,p1,p2,...,pn)\mathbf{z} = \text{concat}(\mathbf{z}_1, \mathbf{z}_2, ..., \mathbf{z}_n, \mathbf{p}_1, \mathbf{p}_2, ..., \mathbf{p}_n)

其中:

  • zi=ei\mathbf{z}_i = \mathbf{e}_i(线性部分)
  • pi\mathbf{p}_i(乘积部分)有多种形式:
    • IPNN:内积 pi,j=ei,ej\mathbf{p}_{i,j} = \langle \mathbf{e}_i, \mathbf{e}_j \rangle
    • OPNN:外积 pi,j=eiejT\mathbf{p}_{i,j} = \mathbf{e}_i \mathbf{e}_j^T

特点

  • 显式建模二阶交互
  • 多种乘积操作可选
  • 为DeepFM提供了设计灵感

10.4 FiBiNET(Feature Importance and Bilinear Interaction Network)

论文信息

  • 标题:FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction
  • 作者:Tongwen Huang, Zhiqi Zhang, Junlin Zhang
  • 发表:RecSys 2019 / arXiv:1905.09433

核心思想

FiBiNET结合了两个关键组件:

  1. SENET层:学习特征重要性,对特征进行加权
  2. 双线性交互层:建模特征之间的双线性交互

ei=eiSE(ei)\mathbf{e}_i^{'} = \mathbf{e}_i \cdot \text{SE}(\mathbf{e}_i)

pij=eiTWijej\mathbf{p}_{ij} = \mathbf{e}_i^{'T} \mathbf{W}_{ij} \mathbf{e}_j^{'}

特点

  • 显式建模特征重要性
  • 双线性交互比内积更灵活
  • 在多个数据集上取得SOTA

10.5 AutoInt(Automatic Feature Interaction Learning)

论文信息

  • 标题:AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks
  • 作者:Weiping Song, Chence Shi, Zhiping Xiao, Zhijian Duan, Yewen Xu, Ming Zhang, Jian Tang
  • 发表:CIKM 2019 / arXiv:1810.11921

核心思想

AutoInt使用多头自注意力机制自动学习特征交互:

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_k}}\right)\mathbf{V}

特点

  • 使用Transformer架构
  • 自动学习高阶交互
  • 可解释性强(注意力权重)

10.6 算法关系图

FM (2010)
  |
  |---> NFM (2017):FM + DNN
  |---> AFM (2017):FM + Attention
  |---> DeepFM (2017):Wide&Deep + FM
  |
Wide&Deep (2016)
  |
  |---> DeepFM (2017)
  |---> DCN (2017):Wide&Deep + Cross Network
  |
DCN (2017)
  |
  |---> xDeepFM (2018):DCN + Vector-wise CIN
  |---> DCNv2 (2021):DCN + Low-rank
  |
PNN (2016)
  |
  |---> 影响DeepFM设计
  |
Attention机制
  |
  |---> AFM (2017)
  |---> AutoInt (2019)
  |---> FiBiNET (2019)

11. 业界应用实践

11.1 Google的应用

YouTube推荐

Wide&Deep和DCN系列在YouTube的视频推荐系统中得到应用:

  • Wide部分捕捉用户的特定偏好模式
  • Deep/DNN部分学习泛化的兴趣表示
  • 交叉网络显式建模视频特征与用户特征的交互

Google Play应用推荐

Wide&Deep最初就是在Google Play的应用推荐场景中提出和验证的:

  • 每天服务数亿用户
  • 处理数百万应用
  • 显著提升应用安装率(+3.9%)

Google广告系统

DCNv2在Google的广告排序系统中得到应用:

  • 处理海量广告候选
  • 实时CTR预测
  • 相比DCN,训练速度提升20%,服务延迟降低15%

11.2 华为的应用

DeepFM由华为诺亚方舟实验室提出,在华为的多个业务场景中得到应用:

华为应用市场

  • 应用推荐排序
  • 游戏推荐
  • 相比传统LR+GBDT,CTR提升10%+

华为广告平台

  • 广告CTR预测
  • 广告CVR预测
  • 支持实时竞价(RTB)

11.3 微软的应用

xDeepFM由微软亚洲研究院提出,在微软的多个产品中应用:

Bing搜索引擎

  • 搜索广告CTR预测
  • 搜索结果排序

Microsoft Store

  • 应用推荐
  • 游戏推荐

11.4 国内互联网公司的应用

阿里巴巴

  • DeepFM、DCN用于淘宝商品推荐
  • xDeepFM用于广告CTR预测
  • 结合业务特点进行模型改造

字节跳动

  • DeepFM、DCN用于抖音视频推荐
  • 结合大规模稀疏特征进行优化
  • 发展出RankMixer等新一代模型

美团

  • DeepFM用于商家推荐
  • DCN用于外卖推荐
  • 发展出生成式推荐(MTGR)

京东

  • DeepFM、DCN用于商品推荐
  • 结合用户行为序列进行改进

11.5 开源实现

TensorFlow Recommenders

Google开源的TensorFlow Recommenders库提供了DCN的实现:

DeepCTR

DeepCTR是一个流行的深度学习CTR预测库,实现了包括DeepFM、DCN、xDeepFM等在内的多种模型:

PaddlePaddle

百度的PaddlePaddle深度学习框架也提供了这些模型的实现:

11.6 实际部署经验

特征工程

  1. 类别特征处理

    • 高频特征:直接嵌入
    • 低频特征:哈希或聚类
    • 冷启动:使用默认嵌入
  2. 数值特征处理

    • 归一化:Min-Max或Z-score
    • 分桶:将连续值离散化
    • 对数变换:处理长尾分布
  3. 交叉特征

    • 业务知识指导的人工交叉
    • 模型自动学习的隐式交叉

模型调优

  1. 嵌入维度

    • 通常10-64维
    • 高频特征用高维
    • 低频特征用低维
  2. 网络结构

    • DNN层数:2-4层
    • 隐藏层大小:128-1024
    • 激活函数:ReLU或Swish
  3. 正则化

    • Dropout:0.2-0.5
    • L2正则:1e-6到1e-4
    • 早停(Early Stopping)

训练优化

  1. 优化器选择

    • Adam:通用选择
    • AdaGrad:适合稀疏特征
    • SGD + Momentum:大批量训练
  2. 学习率调度

    • 指数衰减
    • 余弦退火
    • Warmup
  3. 批量大小

    • 通常128-2048
    • 大批量需要调整学习率

12. 未来发展趋势

12.1 大模型与Scaling Law

趋势描述

随着大语言模型(LLM)的成功,推荐系统也开始探索Scaling Law:

  • 模型规模从百万级向十亿级扩展
  • 数据规模从十亿级向万亿级扩展
  • 计算规模从单机向分布式集群扩展

代表工作

  1. HSTU/生成式推荐(Meta, 2024)

  2. RankMixer(字节跳动, 2025)

  3. Wukong(Meta, 2024)

对传统模型的影响

  • DeepFM、DCN等模型需要适配更大规模
  • 稀疏MoE成为扩展的重要手段
  • 硬件-算法协同设计变得更加重要

12.2 多模态推荐

趋势描述

推荐内容从单一文本向多模态发展:

  • 文本:标题、描述、评论
  • 图像:商品图片、视频封面
  • 视频:内容视频、广告视频
  • 音频:音乐、语音

技术挑战

  1. 特征融合

    • 不同模态的特征如何有效融合
    • 跨模态的交互建模
  2. 计算效率

    • 多模态特征提取的计算开销
    • 实时推荐的要求
  3. 对齐问题

    • 不同模态之间的语义对齐
    • 用户兴趣的多模态表达

相关技术

  • 视觉Transformer(ViT)
  • CLIP等多模态预训练模型
  • 多模态融合网络

12.3 序列建模与动态兴趣

趋势描述

用户兴趣是动态变化的,需要更好的序列建模:

  • 短期兴趣:当前会话的行为
  • 长期兴趣:历史累积的偏好
  • 兴趣演化:兴趣随时间的变化

技术方向

  1. Transformer架构

    • 自注意力机制捕捉序列依赖
    • 位置编码建模时序信息
  2. 图神经网络

    • 用户-物品交互图
    • 序列图建模
  3. 记忆网络

    • 外部记忆存储长期偏好
    • 注意力机制读取相关记忆

12.4 可解释性推荐

趋势描述

随着推荐系统影响的扩大,可解释性变得越来越重要:

  • 用户需要理解为什么被推荐
  • 监管要求算法的透明度
  • 调试和优化需要可解释性

技术方向

  1. 注意力可视化

    • 显示哪些特征对预测贡献最大
    • AutoInt、AFM等模型天然支持
  2. 知识图谱

    • 基于知识图谱的推理路径
    • 提供结构化的解释
  3. 因果推断

    • 区分相关性和因果性
    • 提供更 robust 的解释

12.5 联邦推荐

趋势描述

隐私保护要求推动联邦学习在推荐系统中的应用:

  • 数据不出本地
  • 模型参数共享
  • 保护用户隐私

技术挑战

  1. 非独立同分布(Non-IID)

    • 不同用户的数据分布差异大
    • 联邦聚合的困难
  2. 通信效率

    • 大规模模型的传输开销
    • 压缩和量化技术
  3. 安全性

    • 模型参数可能泄露隐私
    • 差分隐私保护

12.6 边缘推荐

趋势描述

将推荐能力下沉到边缘设备:

  • 减少云端计算压力
  • 降低服务延迟
  • 保护用户隐私

技术方向

  1. 模型压缩

    • 量化:FP32 -> INT8
    • 剪枝:去除冗余参数
    • 蒸馏:大模型教小模型
  2. 端云协同

    • 边缘做粗排
    • 云端做精排
    • 协同训练
  3. 轻量级模型

    • MobileNet风格的推荐模型
    • 针对移动设备优化

13. 总结与展望

13.1 核心贡献总结

本综述系统回顾了神经网络和深度学习在推荐系统中的应用,重点介绍了从Wide&Deep到DCNv2的演进历程:

1. 理论贡献

  • 特征交互建模框架:建立了从二阶到高阶、从标量级到向量级、从隐式到显式的特征交互建模体系
  • 记忆与泛化的统一:Wide&Deep提出的记忆+泛化框架成为推荐系统设计的重要指导
  • 参数效率设计:DCN和DCNv2展示了如何在保持性能的同时控制参数规模

2. 技术贡献

  • FM的深度学习扩展:DeepFM、NFM、AFM等将FM与DNN结合
  • 显式高阶交互:DCN、xDeepFM、DCNv2实现了显式的高阶特征交叉
  • 注意力机制:AFM、AutoInt等引入注意力提升模型表达能力

3. 实践贡献

  • 工业界验证:这些算法在Google、华为、微软等公司的大规模系统中得到验证
  • 开源生态:DeepCTR等开源库推动了技术的普及
  • 最佳实践:论文中分享的调参经验对实际应用具有指导意义

13.2 演进规律总结

通过回顾这些算法的发展历程,我们可以总结出以下规律:

规律一:从人工到自动

  • Wide&Deep需要人工设计交叉特征
  • DeepFM用FM自动学习二阶交互
  • DCN/xDeepFM/DCNv2自动学习高阶交互

规律二:从隐式到显式

  • DNN隐式学习交互
  • FM显式学习二阶交互
  • DCN系列显式学习高阶交互

规律三:从标量级到向量级

  • DCN在标量级交叉
  • xDeepFM在向量级交叉
  • DCNv2在矩阵级交叉

规律四:从简单到高效

  • 早期模型关注性能
  • 后期模型同时关注效率和性能
  • 低秩分解、剪枝、量化等技术被引入

13.3 当前挑战

尽管取得了显著进展,推荐系统仍面临诸多挑战:

1. 数据稀疏性

  • 长尾用户和物品的冷启动问题
  • 新用户/新物品的推荐
  • 负样本的选择偏差

2. 实时性要求

  • 用户兴趣的动态变化
  • 实时特征更新
  • 在线学习

3. 多目标优化

  • 点击率、转化率、停留时长等多目标
  • 目标之间的冲突与权衡
  • 帕累托最优

4. 公平性与偏见

  • 推荐结果的公平性
  • 算法偏见的检测与消除
  • 多样性与新颖性

13.4 未来展望

展望未来,推荐系统的发展将呈现以下趋势:

1. 大模型化

  • 模型规模将持续扩大
  • Scaling Law将成为重要指导
  • 稀疏MoE、模型并行等技术将更加重要

2. 多模态化

  • 文本、图像、视频、音频的融合
  • 跨模态推荐
  • 多模态预训练

3. 个性化深化

  • 从群体个性化到个体个性化
  • 上下文感知推荐
  • 情境感知推荐

4. 可解释性增强

  • 可解释的推荐模型
  • 因果推断的应用
  • 用户可控的推荐

5. 隐私保护

  • 联邦推荐
  • 差分隐私
  • 边缘计算

13.5 对研究者的建议

对于从事推荐系统研究的读者,我们提出以下建议:

1. 打好基础

  • 深入理解FM、Wide&Deep、DeepFM、DCN等基础模型
  • 掌握特征工程、模型调优等实践技能
  • 熟悉推荐系统的评价指标和业务场景

2. 关注前沿

  • 跟踪大模型、Scaling Law等最新趋势
  • 关注多模态、序列建模等热点方向
  • 阅读顶会论文(KDD、SIGIR、RecSys等)

3. 重视实践

  • 在实际数据集上复现经典模型
  • 参与开源项目(如DeepCTR)
  • 积累工业界经验

4. 跨学科学习

  • 学习因果推断、强化学习等相关领域
  • 了解隐私保护、公平性等社会问题
  • 关注硬件、系统等方面的进展

14. 参考文献

核心论文

[1] Rendle, S. (2010). Factorization machines. In ICDM (pp. 995-1000). IEEE.

[2] Cheng, H. T., et al. (2016). Wide & deep learning for recommender systems. In DLRS (pp. 7-10). ACM.

[3] Guo, H., et al. (2017). DeepFM: a factorization-machine based neural network for CTR prediction. In IJCAI (pp. 1725-1731).

[4] Wang, R., et al. (2017). Deep & cross network for ad click predictions. In ADKDD (pp. 1-7). ACM.

[5] Lian, J., et al. (2018). xDeepFM: Combining explicit and implicit feature interactions for recommender systems. In KDD (pp. 1754-1763). ACM.

[6] Wang, R., et al. (2021). DCN V2: Improved deep & cross network and practical lessons for web-scale learning to rank systems. In TheWebConf (pp. 1785-1797). ACM.

相关算法论文

[7] He, X., & Chua, T. S. (2017). Neural factorization machines for sparse predictive analytics. In SIGIR (pp. 355-364). ACM.

[8] Xiao, J., et al. (2017). Attentional factorization machines: Learning the weight of feature interactions via attention networks. In IJCAI (pp. 3119-3125).

[9] Qu, Y., et al. (2016). Product-based neural networks for user response prediction. In ICDM (pp. 1149-1154). IEEE.

[10] Huang, T., et al. (2019). FiBiNET: Combining feature importance and bilinear feature interaction for click-through rate prediction. In RecSys (pp. 169-177). ACM.

[11] Song, W., et al. (2019). AutoInt: Automatic feature interaction learning via self-attentive neural networks. In CIKM (pp. 1161-1170). ACM.

大模型与Scaling Law

[12] Guo, W., et al. (2024). Scaling New Frontiers: Insights into Large Recommendation Models. arXiv preprint arXiv:2412.00714.

[13] Zhai, J., et al. (2024). Actions Speak Louder than Words: Trillion-Parameter Sequential Transducers for Generative Recommendations. In ICML.

[14] Zhang, B., et al. (2024). Wukong: Towards a Scaling Law for Large-Scale Recommendation. In ICML.

[15] Zhu, J., et al. (2025). RankMixer: Scaling Up Ranking Models in Industrial Recommenders. In KDD. ACM.

综述与博客

[16] Zhang, S., et al. (2021). Deep learning for click-through rate estimation. arXiv preprint arXiv:2104.10584.

[17] 知乎专栏:白话推荐系统(三):一文看懂DCN-v2

[18] CSDN博客:万字详述推荐系统经典模型DCN, DCN_v2, PNN

[19] 腾讯云:推荐系统(十七)——kdd'17「谷歌」deep cross network(DCN)

开源资源

[20] TensorFlow Recommenders: Deep & Cross Network (DCN)

[21] DeepCTR: Easy-to-use, Modular and Extendible package of deep-learning based CTR models

[22] PaddleRec: 大规模推荐算法库