zl程序教程

您现在的位置是:首页 >  工具

当前栏目

排序层-深度模型-2017:NeuralCF【CF与深度学习的结合】【局限:基于协同过滤的思想进行构造的,没有引入更多其他类型的特征】

学习排序 基于 进行 类型 模型 深度 没有
2023-09-27 14:20:39 时间

沿着协同过滤的思路, 发展出了矩阵分解技术,将协同过滤中的共现矩阵分解为用户向量矩阵和物品向 量矩阵。其中,用户u 隐向量和物品i 隐向量的内积,就是用户u 对物品i评分 的预测。

沿着矩阵分解的技术脉络,结合深度学习知识,新加坡国立大学的研究 人员于2017年提出了基于深度学习的协同过滤模型NeuralCF。

一、从深度学习的视角重新审视矩阵分解模型

Deep Crossing模型中,Embedding层的主要作用是将 稀疏向量转换成稠密向量。

事实上,如果从深度学习的视角看待矩阵分解模型, 那么矩阵分解层的用户隐向量和物品隐向量完全可以看作一种Embedding方法。最终的“Scoring层”就是将用户隐向量和物品隐向量进行内积操作后得到“相 似度”,这里的“相似度”就是对评分的预测。

综上,利用深度学习网络图的方 式来描述矩阵分解模型的架构,如图3- 8所示。
在这里插入图片描述
在实际使用矩阵分解来训练和评估模型的过程中,往往会发现模型容易处于 欠拟合的状态,究其原因是因为矩阵分解的模型结构相对比较简单,特别是“输 出层”(也被称为“Scoring层”),无法对优化目标进行有效的拟合。这就要求模 型有更强的表达能力,在此动机的启发下,新加坡国立大学的研究人员提出了 NeuralCF 模型。

二、NeuralCF模型的结构

如图3-9所示,NeuralCF用 “多层神经网络+输出层”的结构替代了矩阵分 解模型中简单的内积操作。这样做的收益是直观的:

  • 一是让用户向量和物品向量 做更充分的交叉,得到更多有价值的特征组合信息;
  • 二是引入更多的非线性特征, 让模型的表达能力更强。

在这里插入图片描述
以此类推,事实上,用户和物品向量的互操作层可以被任意的互操作形式所 代替,这就是所谓的“广义矩阵分解”模 型 ( Generalized Matrix Factorization )。

原始的矩阵分解使用“内积”的方式让用户和物品向量进行交互,为了进一 步让向量在各维度上进行充分交叉,可以通过“元素积”(element-wise product, 长度相同的两个向量的对应维相乘得到另一向量)的方式进行互操作,再通过逻 辑回归等输出层拟合最终预测目标。NeuralCF中利用神经网络拟合互操作函数的 做法是广义的互操作形式。在介绍PNN模型、Deep&Cross模型的章节中,还会 介绍更多可行的互操作形式。

再进一步,可以把通过不同互操作网络得到的特征向量拼接起来,交由输出 层进行目标拟合。NeuralCF的论文中给出了整合两个网络的例子(如图3-10所示)。可以看出,NeuralCF混合模型整合了上面提出的原始NeuralCF模型和以 元素积为互操作的广义矩阵分解模型。这让模型具有了更强的特征组合和非线性 能力。

在这里插入图片描述

三、NeuralCF模型的优势和局限性

NeuralCF模型实际上提出了一个模型框架,它基于用户向量和物品向量这两 个 Embedding层,利用不同的互操作层进行特征的交叉组合,并且可以灵活地进 行不同互操作层的拼接。从这里可以看出深度学习构建推荐模型的优势一利用 神经网络理论上能够拟合任意函数的能力,灵活地组合不同的特征,按需增加或 减少模型的复杂度。

在实践中要注意:并不是模型结构越复杂、特征越多越好。一是要防止过拟 合的风险,二是往往需要更多的数据和更长的训练时间才能使复杂的模型收敛, 这需要算法工程师在模型的实用性、实时性和效果之间进行权衡。

NeuralCF模型也存在局限性。由于是基于协同过滤的思想进行构造的,所以 NeuralCF模型并没有引入更多其他类型的特征,这在实际应用中无疑浪费了其他 有价值的信息。此外,对于模型中互操作的种类并没有做进一步的探究和说明。 这都需要后来者进行更深入的探索。