论文地址:AutoRec: Autoencoders Meet Collaborative Filtering
一、概述
将自编码器(AutoEncoder)的思想和协同过滤结合:
- 是个标准的自编码器
- 利用协同过滤中的共现矩阵,完成物品向量或用户向量的自编码
- 利用自编码的结果得到用户对物品的预估评分
自编码器是什么?
-
目标
- 自编码器的作用是将向量 r \bm{r} r作为输入,通过重建函数,使得得到的输出向量尽可能接近本身
-
定义
- 设自编码器的重建函数为 h ( r ; θ ) h(\bm{r};\theta) h(r;θ)
- 目标函数如下,其中
S
S
S为所有输入向量的集合
m i n θ ∑ r ∈ S ∣ ∣ r − h ( r ; θ ) ∣ ∣ 2 2 min_{\theta}\sum_{\bm{r}\in S}||\bm{r}-h(\bm{r};\theta)||_2^2 minθr∈S∑∣∣r−h(r;θ)∣∣22
-
作用
- 完成数据压缩和降维:重建函数的参数数量远小于输入向量的维度
- 泛化:输出向量不完全等同于输入向量,具备一定的缺失维度的预测能力
二、结构
- 假设有 m m m 个用户, n n n 个物品
-
R
m
×
n
R_{m\times n}
Rm×n 为用户的评分矩阵
- 每个用户 u ∈ U = { 1 , ⋯ , m } u\in U = \{1,\cdots, m\} u∈U={1,⋯,m} 可以被该用户对于 n n n个物品的评分表示: r u = ( R u 1 , R u 2 , ⋯ , R u n ) \bm{r}^{u} = (R_{u1},R_{u2},\cdots,R_{un}) ru=(Ru1,Ru2,⋯,Run)
- 每个物品 i ∈ I = 1 , ⋯ , n i \in I={1,\cdots,n} i∈I=1,⋯,n 可以被该物品得到的 m m m个用户的评分表示为: r ( i ) = ( R 1 i , R 2 i , ⋯ , R m i ) \bm{r}^{(i)}=(R_{1i}, R_{2i}, \cdots, R_{mi}) r(i)=(R1i,R2i,⋯,Rmi)
- AutoRec解决的问题就是
- 设计一个 u s e r − b a s e d user-based user−based 或者 i t e m − b a s e d item-based item−based的自编码器:
- 将 r u \bm{r}^{u} ru/ r i \bm{r}^{i} ri 映射到一个低维的隐含空间
- 再在输出空间重建 r u \bm{r}^{u} ru/ r i \bm{r}^{i} ri
- 通过自编码器重建的输出向量,来预测某个用户对于某个物品的评分
i t e m − b a s e d item-based item−based 的 A u t o R e c AutoRec AutoRec 结构如下图所示:
-
r ( i ) r^{(i)} r(i) 为输入
-
h ( r ; θ ) h(\bm{r};\theta) h(r;θ)为网络输出的重构之后的 r ( i ) r^{(i)} r(i) :
h ( r ; θ ) = f ( W ⋅ g ( V r + μ ) + b ) h(\bm{r};\theta)=f(W\cdot g(V\bm{r}+\bm{\mu}) +\bm{b}) h(r;θ)=f(W⋅g(Vr+μ)+b)- f ( ⋅ ) f(\cdot) f(⋅), g ( ⋅ ) g(\cdot) g(⋅) 为激活函数, θ = W , V , μ , b \theta = {W, V,\bm{\mu}, \bm{b}} θ=W,V,μ,b
- 隐层的维度为 k k k
- W ∈ R m × k W \in R^{m\times k} W∈Rm×k, V ∈ R k × m V \in R^{k\times m} V∈Rk×m
- μ , b \bm{\mu},\bm{b} μ,b 为 b i a s bias bias, μ ∈ R k \bm{\mu} \in R^{k} μ∈Rk, b ∈ R m \bm{b} \in R^{m} b∈Rm
-
为防止过拟合,加入 L 2 L2 L2 正则化,目标函数如下:
m i n θ ∑ i = 1 n ∣ ∣ r ( i ) − h ( r ( i ) ; θ ) ∣ ∣ o 2 + λ 2 ⋅ ( ∣ ∣ W ∣ ∣ F 2 + ∣ ∣ V ∣ ∣ F 2 ) min_{\theta}\sum_{i=1}^{n}||r^{(i)}-h(r^{(i)};\theta)||_{o}^{2} + \frac{\lambda}{2}\cdot(||W||^2_F+||V||_F^2) minθi=1∑n∣∣r(i)−h(r(i);θ)∣∣o2+2λ⋅(∣∣W∣∣F2+∣∣V∣∣F2)
模型推荐过程
- 当输入物品 i i i 的评分向量为 r ( i ) \bm{r}^{(i)} r(i),模型的输出向量 h ( r ( i ) ; θ ) h(\bm{r^{(i)}};\theta) h(r(i);θ) 就是所有用户对于物品 i i i 的评分预测
- 第
u
u
u 维就是用户
u
u
u 对于物品
i
i
i 的预测
R
^
u
i
\hat{R}_{ui}
R^ui:
R ^ u i = ( h ( r ( i ) ; θ ) ) u \hat{R}_{ui} = (h(\bm{r^{(i)}};\theta))_u R^ui=(h(r(i);θ))u - 相较于 i t e m − b a s e d item-based item−based A u t o R e c AutoRec AutoRec, u s e r − b a s e d user-based user−based A u t o R e c AutoRec AutoRec 的优势在于只需要一次模型推断就可以重建用户对所有物品的评分向量,但是用户向量的稀疏性可能会影响模型效果
三、AutoRec的特点和局限性
- 丛神经网络出发,使用单隐层的AutoEncoder重建用户或者物品评分,具有一定的泛化和表达能力
- 模型简单,表达能力不足
- 拉开了使用深度学习解决推荐系统问题的序幕