-
AutoRec模型
前置知识:推荐算法学习笔记1.1:传统推荐算法-协同过滤算法AutoRec模型通过引入自编码器结构,将共线矩阵中的用户向量(基于用户的U-AutoRec)或物品向量(基于物品的I-AutoRec)嵌入到低维空间后还原,从而使模型可以估计未知的用户评分。其公式如下所示:
h ( r ; W , b , V , μ ) = f ( W g ( V r + μ + b ) ) h(\mathbf{r};\mathbf{W,b,V},\boldsymbol{\mu})=f(\mathbf{W}g(\mathbf{Vr+}\boldsymbol{\mu}+\mathbf{b})) h(r;W,b,V,μ)=f(Wg(Vr+μ+b))
其训练的损失函数如下所示:
m i n W , b , V , μ λ 2 ( ∥ W ∥ F , ∥ V ∥ F ) + ∑ i = 1 N ∥ r i − h ( r i ; W , b , V , μ ) ∥ 2 2 min_{\mathbf{W,b,V},\boldsymbol{\mu}} \frac{\lambda}{2}(\|\mathbf{W}\|_F,\|\mathbf{V}\|_F)+\sum_{i=1}^{N}\|\mathbf{r}^i-h(\mathbf{r}^i;\mathbf{W,b,V},\boldsymbol{\mu})\|_2^2 minW,b,V,μ2λ(∥W∥F,∥V∥F)+i=1∑N∥ri−h(ri;W,b,V,μ)∥22
m其网络结构如下所示:
在《深度学习推荐系统》书中,把输出层描述成多分类层是存在歧义的。原论文中输出层实际的激活函数为 f ( x ) = x f(x)=x f(x)=x。
该模型的训练以及推荐过程如下(以U-AutoRec为例):
输入所有用户向量 R = { r i ∣ i = 1 , 2 , . . N } \mathbf{R} = \{\mathbf{r}^i|i=1,2,..N\} R={ri∣i=1,2,..N}进行模型训练。推理时输入用户向量 r i \mathbf{r}^i ri,得到预测向量 r ^ i \hat{\mathbf{r}}^i r^i,其中对于物品 I t e m k Item_k Itemk,用户的预测评分为 r ^ i [ k ] \hat{\mathbf{r}}^i[k] r^i[k]。
总结:
- 优点:通过从所有物品向量(或用户向量)中学习到核心的低维表示,从而在输入含未知取值的物品向量(或用户向量)时,可以估计未知取值的得分,从而提高泛化能力。
- 缺点:结构比较简单,存在表达能力不足的问题,另一方面只使用了共现矩阵的信息, 没法利用用户和物品的特性。