推荐系统玩家 之 AutoRec模型

AutoRec模型是一个单隐层神经网络推荐模型,可以说是最简单的神经网络的模型。它的原理也不复杂,可以看做是MLP(多层感知机)DNN(深度神经网络)的简化,其中最主要的是结合了自编码器(AutoEncoder)和协同过滤(Collaborative Filtering)的思想。那么这篇文章就从以下几点来介绍下AutoRec模型:

  • AutoRec的基本原理
  • AutoRec的模型结构
  • AutoRec的优缺点

1.AutoRec的基本原理

我们在开篇的时候提到过,AutoRec的思想是自编码器(AutoEncoder)协同过滤(Collaborative Filtering)的结合。协同过滤想必大家都非常熟悉,那么什么是自编码器呢?

自编码器是一个能够完成数据“自编码”的模型:将数据以向量的形式作为输入,通过自编码器,得到的输出尽可能和输入接近。这个概念和矩阵分解非常的相似,矩阵分解就是将评分矩阵分解成两个矩阵,通过训练拟合原有的评分,最后通过两个矩阵相乘的形式得到一个满秩的矩阵,也就是可以对未知的评分进行预测。

自编码器的思想与矩阵分解有着异曲同工之妙,其重建函数为 h(r;\theta) ,其损失函数为:

\mathop{\min}_{\theta}\sum_{r \in S}||r-h(r;\theta)||_{2}^2 \tag{1} \\

其中,S为所有数据向量的集合, \theta 为参数。

在完成了自编码器的训练后,我们就可以利用自编码器来生成输出向量,因为模型对已有的数据进行了拟合,有了很好的泛化能力,因此就具备了预测确实数据的能力。

那么AutoRec正是这种思想的延伸(敲黑板):

AutoRec模型就是个典型的自编码器,它利用了协同过滤的共现矩阵,完成物品向量或用户向量的自编码。然后再利用自编码的结果得到用户对物品的预测评分。

举个“栗子”:

假设我们有 m 个用户, n 个物品。评分矩阵则为 m\times n 维。?代表着用户未对该物品评分。

用户和物品的评分共现矩阵

那么,以Item-based场景下的AutoRec为例,对于物品 i ,所有 m 个用户对于物品 i 的评分可以形成一个 m 维的向量: r^{(i)}=(R_{1i},...,R_{mi}) 。未评分的物品值,可以用默认值或者平均分代替。我们的目标就是构建一个函数h(r;\theta),使得重建函数生成的评分向量和原评分向量的平方残差和最小,也就是最小化我们上面提到的损失函数。

那么,这个重建函数的结构是什么样的呢?

2. AutoRec的模型结构

AutoRec模型的结构图

由上图可以看出,AutoRce模型是一个单隐层神经网络结构。输入层是物品的评分向量 r ,通过权重矩阵 V 到达隐藏层。隐藏层再通过权重矩阵 W 到达输出层。我们的目的就是通过训练模型,找到合适的 VW ,使得输入值和输出值的误差最小。

那么AutoRec模型的具体形式则为:

h(r;\theta) = f(W\cdot g(V_r+\mu )+b) \tag{2}\\

其中, f(\cdot),g(\cdot) 为输入层和输出层的激活函数。

同时,为了防止过拟合,加入 L2 正则化项后,AutoRec的损失函数的具体形式则为:

\mathop{\min}_{\theta}\sum_{i=1}^{n}{||r^{(i)}-h(r^{(i)};\theta)||_{O}^2}+\frac{\lambda}{2}\cdot (||W||_{F}^2+||V||_{F}^2) \tag{3} \\

至此,我们就介绍完了AutoRec模型的原理,我们仅需要利用误差的反向传播法就可以完成模型的训练。

我们总结下AutoRec模型的推荐过程

  1. 输入物品 i 的评分向量 r^{(i)} . 即,所有用于对于物品 i 的评分。
  2. 模型的输出 h(r;\theta) 就是所有用户对物品 i 的评分预测
  3. 根据预测评分和真实评分的误差进行训练,最小化损失函数,得到最终的模型
  4. 模型的输出h(r;\theta) 就是所有用户对物品 i 的最终评分预测
  5. 其中,第 u 维就是用户 u 对于物品 i 的预测评分 \hat R
  6. 根据预测评分就可以进行排序和推荐

3. AutoRec模型的优缺点

优点:

  • 是一个简单的单隐层神经网络模型
  • 具有一定的泛化能力和表达能力
  • 是深度学习的基础

缺点:

  • 比较简单,表达能力相对不足


顺便说下,通过最近很火的Chat-GPT,可以更好地学习AutoRec和复现代码。

我是通过以下链接购买的, 可以加客服咨询下。



上一篇:

编辑于 2023-03-31 10:21・IP 属地澳大利亚