推荐系统学习笔记2:AutoRec、Deep Crossing、Neural CF、PNN
Keep Team Lv4

推荐系统学习笔记2:深度学习推荐模型入门

随着深度学习技术的快速发展,神经网络在推荐系统中的应用日益广泛。与传统方法相比,深度学习模型能够自动学习复杂的特征交互,处理高维稀疏特征,并捕获非线性关系。本文将介绍早期的深度学习推荐模型:AutoRec、Deep Crossing、Neural CF和PNN。

1. 深度学习推荐模型概述

1.1 从传统方法到深度学习

传统推荐方法(如协同过滤、矩阵分解)通常基于线性或浅层模型,存在以下局限性:

  1. 特征工程依赖:需要人工设计特征交互
  2. 非线性能力有限:难以捕获复杂的用户-物品关系
  3. 多源信息整合困难:难以有效结合用户画像、物品属性、上下文信息等

深度学习通过多层神经网络自动学习特征表示和交互,为推荐系统带来了新的可能性。

1.2 深度学习推荐模型的优势

  1. 表示学习能力:自动学习用户和物品的稠密向量表示
  2. 复杂模式捕获:通过多层非线性变换学习复杂的特征交互
  3. 多模态数据融合:能够处理文本、图像、音频等多种类型的数据
  4. 端到端学习:从原始特征到最终预测的完整优化

2. AutoRec:基于自编码器的推荐模型

AutoRec(Autoencoder for Recommendation)是较早将深度学习应用于推荐系统的模型之一,它使用自编码器架构重构用户评分。

2.1 自编码器原理

自编码器是一种无监督神经网络,由编码器和解码器两部分组成:

  • 编码器:将输入数据映射到低维隐空间表示
  • 解码器:从隐空间表示重构原始输入

目标是最小化重构误差:
$$
\mathcal{L} = \sum_{i=1}^n | \mathbf{x}_i - g(f(\mathbf{x}_i)) |^2
$$

2.2 AutoRec模型架构

AutoRec有两种变体:

  • I-AutoRec:以物品为输入,重建物品的评分向量
  • U-AutoRec:以用户为输入,重建用户的评分向量

I-AutoRec公式
$$
\hat{r}(i) = h(\mathbf{W}_2 \cdot g(\mathbf{W}_1 \mathbf{r}^{(i)} + \mathbf{b}_1) + \mathbf{b}_2)
$$

其中:

  • $\mathbf{r}^{(i)} \in \mathbb{R}^m$:物品i的评分向量(m个用户的评分)
  • $\mathbf{W}_1, \mathbf{W}_2$:权重矩阵
  • $\mathbf{b}_1, \mathbf{b}_2$:偏置向量
  • $g, h$:激活函数

2.3 训练与优化

目标函数
$$
\min_{\theta} \sum_{i=1}^n \sum_{u=1}^m I_{ui} (r_{ui} - \hat{r}_{ui})^2 + \lambda |\theta|_F^2
$$

其中$I_{ui}$是指示函数,当用户u对物品i有评分时为1。

特点

  • 简单有效,参数量较少
  • 能够学习物品的潜在表示
  • 对稀疏数据有一定鲁棒性

3. Deep Crossing:深度特征交叉模型

Deep Crossing是微软在2016年提出的深度点击率预测模型,首次将深度残差网络应用于推荐系统。

3.1 模型架构

Deep Crossing包含四个主要组件:

3.1.1 嵌入层(Embedding Layer)

将高维稀疏的类别特征转换为低维稠密向量:
$$
\mathbf{e}_i = \mathbf{W}_i \mathbf{x}_i
$$
其中$\mathbf{x}_i$是第i个特征的one-hot向量。

3.1.2 堆叠层(Stacking Layer)

将所有嵌入向量拼接在一起:
$$
\mathbf{x}_0 = [\mathbf{e}_1^T, \mathbf{e}_2^T, \dots, \mathbf{e}_k^T]^T
$$

3.1.3 残差层(Residual Layer)

使用残差单元学习特征交互:
$$
\mathbf{x}_{l+1} = \mathbf{x}_l + \mathbf{W}_l \cdot \text{ReLU}(\mathbf{W}’_l \mathbf{x}_l + \mathbf{b}_l)
$$

3.1.4 评分层(Scoring Layer)

输出预测值:
$$
\hat{y} = \sigma(\mathbf{w}^T \mathbf{x}_L + b)
$$

3.2 模型特点

  1. 端到端训练:无需人工特征工程
  2. 残差连接:缓解梯度消失问题,允许构建更深网络
  3. 高效的特征交互:通过多层网络自动学习任意阶特征交互

3.3 实际应用

Deep Crossing在微软的Bing搜索引擎广告点击率预测中取得了显著效果提升。

4. Neural CF:神经协同过滤

Neural CF将神经网络与协同过滤相结合,使用多层感知机(MLP)学习用户和物品的交互函数。

4.1 传统矩阵分解的局限性

传统矩阵分解使用内积计算用户和物品的交互:
$$
\hat{r}_{ui} = \mathbf{p}_u^T \mathbf{q}_i
$$
内积假设用户和物品向量的各个维度是独立且线性可加的,这限制了模型的表达能力。

4.2 Neural CF模型架构

4.2.1 输入层

用户u和物品i的one-hot编码。

4.2.2 嵌入层

将用户和物品映射到稠密向量:
$$
\mathbf{p}_u = \mathbf{P}^T \mathbf{x}_u, \quad \mathbf{q}_i = \mathbf{Q}^T \mathbf{x}_i
$$

4.2.3 神经协同过滤层

将用户向量和物品向量拼接后输入MLP:
$$
\mathbf{z}_1 = \phi_1([\mathbf{p}_u, \mathbf{q}_i])
$$
$$
\mathbf{z}_2 = \phi_2(\mathbf{z}_1)
$$
$$
\dots
$$
$$
\mathbf{z}L = \phi_L(\mathbf{z}{L-1})
$$

4.2.4 输出层

预测评分:
$$
\hat{r}_{ui} = \sigma(\mathbf{h}^T \mathbf{z}_L)
$$

4.3 广义矩阵分解(GMF)和MLP的结合

Neural CF的一个扩展是结合广义矩阵分解和MLP:

  1. GMF部分:模拟传统矩阵分解 $\mathbf{p}_u \odot \mathbf{q}_i$
  2. MLP部分:学习非线性特征交互
  3. 结合方式:将两部分输出拼接后通过全连接层融合

4.4 模型优势

  1. 更强的表达能力:MLP可以学习任意复杂的交互函数
  2. 灵活性:可以整合额外的用户和物品特征
  3. 端到端优化:统一学习嵌入表示和交互函数

5. PNN:乘积神经网络

PNN(Product-based Neural Network)通过引入乘积层(Product Layer)显式地建模特征交互。

5.1 特征交互的重要性

在推荐系统中,特征之间的交互往往比单个特征更重要。例如:

  • 用户性别和物品类别的交互
  • 用户年龄和商品价格的交互
  • 时间和地点的交互

5.2 PNN模型架构

5.2.1 输入层和嵌入层

与Deep Crossing类似,将特征转换为嵌入向量。

5.2.2 乘积层(Product Layer)

乘积层包含两部分:

  1. 线性部分:$l_z = \mathbf{W}_z \mathbf{z}$
  2. 二次部分:$l_p = \mathbf{W}_p \mathbf{p}$

其中$\mathbf{p}$通过特征向量的乘积计算得到。

5.2.3 乘积操作类型

内积(Inner Product)
$$
g_{inner}(\mathbf{f}_i, \mathbf{f}_j) = \langle \mathbf{f}_i, \mathbf{f}_j \rangle
$$

外积(Outer Product)
$$
g_{outer}(\mathbf{f}_i, \mathbf{f}_j) = \mathbf{f}_i \mathbf{f}_j^T
$$

外积能够捕获更丰富的特征交互信息,但计算复杂度较高。

5.2.4 隐藏层和输出层

将线性部分和二次部分拼接后输入全连接网络。

5.3 PNN的变体

  1. IPNN:使用内积的PNN
  2. OPNN:使用外积的PNN
  3. PNN*:结合内积和外积

5.4 模型特点

  1. 显式特征交互:通过乘积层显式建模特征交互
  2. 高效计算:通过适当的优化,可以高效计算乘积操作
  3. 强表达能力:能够学习复杂的特征交互模式

6. 实验比较与性能分析

6.1 数据集

常用推荐系统数据集:

  1. MovieLens:电影评分数据
  2. Amazon Reviews:商品评论数据
  3. Criteo:广告点击率预测数据
  4. Frappe:移动应用使用数据

6.2 评估指标

  1. 评分预测:RMSE、MAE
  2. 点击率预测:LogLoss、AUC
  3. Top-K推荐:Precision@K、Recall@K、NDCG@K

6.3 性能比较

模型 优点 缺点 适用场景
AutoRec 简单有效,参数量少 表达能力有限 小规模评分预测
Deep Crossing 端到端,自动特征工程 计算成本较高 大规模CTR预测
Neural CF 强非线性能力 需要大量数据 隐式反馈推荐
PNN 显式特征交互建模 实现较复杂 特征交互重要的场景

6.4 实际部署考虑

  1. 推理延迟:神经网络模型相比传统方法计算成本更高
  2. 模型更新:在线学习与批量更新的权衡
  3. 特征工程:虽然减少了人工特征工程,但仍需特征预处理

7. 总结与展望

本文介绍了四种早期的深度学习推荐模型:AutoRec、Deep Crossing、Neural CF和PNN。这些模型代表了深度学习在推荐系统领域的初步探索,为后续更复杂的模型奠定了基础。

7.1 关键进展

  1. 从线性到非线性:通过神经网络学习复杂的用户-物品交互
  2. 从人工特征工程到自动特征学习:减少对领域知识的依赖
  3. 从单一模型到混合架构:结合不同模型的优势

7.2 未来方向

  1. 注意力机制:学习不同特征的重要性权重
  2. 图神经网络:建模用户-物品交互图的结构信息
  3. 多任务学习:同时优化多个相关任务
  4. 可解释性:提高推荐结果的透明度和可信度

7.3 实践建议

  1. 从简单开始:先尝试传统方法,再逐步引入深度学习模型
  2. 重视特征工程:即使使用深度学习,好的特征仍然至关重要
  3. 考虑计算成本:在效果和效率之间取得平衡
  4. 持续迭代:根据业务反馈不断优化模型

参考文献

  1. Sedhain, S., Menon, A. K., Sanner, S., & Xie, L. (2015). Autorec: Autoencoders meet collaborative filtering. In Proceedings of the 24th International Conference on World Wide Web (pp. 111-112).
  2. Shan, Y., Hoens, T. R., Jiao, J., Wang, H., Yu, D., & Mao, J. (2016). Deep crossing: Web-scale modeling without manually crafted combinatorial features. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (pp. 255-262).
  3. He, X., Liao, L., Zhang, H., Nie, L., Hu, X., & Chua, T. S. (2017). Neural collaborative filtering. In Proceedings of the 26th International Conference on World Wide Web (pp. 173-182).
  4. Qu, Y., Cai, H., Ren, K., Zhang, W., Yu, Y., Wen, Y., & Wang, J. (2016). Product-based neural networks for user response prediction. In 2016 IEEE 16th International Conference on Data Mining (ICDM) (pp. 1149-1154).

深度学习推荐模型仍在快速发展中,新的架构和技术不断涌现。在实际应用中,需要根据具体业务需求和数据特点选择合适的方法,并持续跟踪最新研究进展。