推荐系统学习笔记2:深度学习推荐模型入门
随着深度学习技术的快速发展,神经网络在推荐系统中的应用日益广泛。与传统方法相比,深度学习模型能够自动学习复杂的特征交互,处理高维稀疏特征,并捕获非线性关系。本文将介绍早期的深度学习推荐模型:AutoRec、Deep Crossing、Neural CF和PNN。
1. 深度学习推荐模型概述
1.1 从传统方法到深度学习
传统推荐方法(如协同过滤、矩阵分解)通常基于线性或浅层模型,存在以下局限性:
- 特征工程依赖:需要人工设计特征交互
- 非线性能力有限:难以捕获复杂的用户-物品关系
- 多源信息整合困难:难以有效结合用户画像、物品属性、上下文信息等
深度学习通过多层神经网络自动学习特征表示和交互,为推荐系统带来了新的可能性。
1.2 深度学习推荐模型的优势
- 表示学习能力:自动学习用户和物品的稠密向量表示
- 复杂模式捕获:通过多层非线性变换学习复杂的特征交互
- 多模态数据融合:能够处理文本、图像、音频等多种类型的数据
- 端到端学习:从原始特征到最终预测的完整优化
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 模型特点
- 端到端训练:无需人工特征工程
- 残差连接:缓解梯度消失问题,允许构建更深网络
- 高效的特征交互:通过多层网络自动学习任意阶特征交互
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:
- GMF部分:模拟传统矩阵分解 $\mathbf{p}_u \odot \mathbf{q}_i$
- MLP部分:学习非线性特征交互
- 结合方式:将两部分输出拼接后通过全连接层融合
4.4 模型优势
- 更强的表达能力:MLP可以学习任意复杂的交互函数
- 灵活性:可以整合额外的用户和物品特征
- 端到端优化:统一学习嵌入表示和交互函数
5. PNN:乘积神经网络
PNN(Product-based Neural Network)通过引入乘积层(Product Layer)显式地建模特征交互。
5.1 特征交互的重要性
在推荐系统中,特征之间的交互往往比单个特征更重要。例如:
- 用户性别和物品类别的交互
- 用户年龄和商品价格的交互
- 时间和地点的交互
5.2 PNN模型架构
5.2.1 输入层和嵌入层
与Deep Crossing类似,将特征转换为嵌入向量。
5.2.2 乘积层(Product Layer)
乘积层包含两部分:
- 线性部分:$l_z = \mathbf{W}_z \mathbf{z}$
- 二次部分:$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的变体
- IPNN:使用内积的PNN
- OPNN:使用外积的PNN
- PNN*:结合内积和外积
5.4 模型特点
- 显式特征交互:通过乘积层显式建模特征交互
- 高效计算:通过适当的优化,可以高效计算乘积操作
- 强表达能力:能够学习复杂的特征交互模式
6. 实验比较与性能分析
6.1 数据集
常用推荐系统数据集:
- MovieLens:电影评分数据
- Amazon Reviews:商品评论数据
- Criteo:广告点击率预测数据
- Frappe:移动应用使用数据
6.2 评估指标
- 评分预测:RMSE、MAE
- 点击率预测:LogLoss、AUC
- Top-K推荐:Precision@K、Recall@K、NDCG@K
6.3 性能比较
| 模型 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| AutoRec | 简单有效,参数量少 | 表达能力有限 | 小规模评分预测 |
| Deep Crossing | 端到端,自动特征工程 | 计算成本较高 | 大规模CTR预测 |
| Neural CF | 强非线性能力 | 需要大量数据 | 隐式反馈推荐 |
| PNN | 显式特征交互建模 | 实现较复杂 | 特征交互重要的场景 |
6.4 实际部署考虑
- 推理延迟:神经网络模型相比传统方法计算成本更高
- 模型更新:在线学习与批量更新的权衡
- 特征工程:虽然减少了人工特征工程,但仍需特征预处理
7. 总结与展望
本文介绍了四种早期的深度学习推荐模型:AutoRec、Deep Crossing、Neural CF和PNN。这些模型代表了深度学习在推荐系统领域的初步探索,为后续更复杂的模型奠定了基础。
7.1 关键进展
- 从线性到非线性:通过神经网络学习复杂的用户-物品交互
- 从人工特征工程到自动特征学习:减少对领域知识的依赖
- 从单一模型到混合架构:结合不同模型的优势
7.2 未来方向
- 注意力机制:学习不同特征的重要性权重
- 图神经网络:建模用户-物品交互图的结构信息
- 多任务学习:同时优化多个相关任务
- 可解释性:提高推荐结果的透明度和可信度
7.3 实践建议
- 从简单开始:先尝试传统方法,再逐步引入深度学习模型
- 重视特征工程:即使使用深度学习,好的特征仍然至关重要
- 考虑计算成本:在效果和效率之间取得平衡
- 持续迭代:根据业务反馈不断优化模型
参考文献
- 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).
- 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).
- 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).
- 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).
深度学习推荐模型仍在快速发展中,新的架构和技术不断涌现。在实际应用中,需要根据具体业务需求和数据特点选择合适的方法,并持续跟踪最新研究进展。