1、介绍
协同过滤(collaborative filtering)模型的目的是,利用关于用户对于项目的喜好(例如星级评分)来提供个性化推荐。由于Netflix大赛,提出了一系列的不同的协同过滤模型,受欢迎的模型有矩阵分解(matrix factorisation)和邻域模型(neighbourhood models)。这篇论文提出了AutoRec,一种基于自动编码器范式(autoencoder paradigm)的新的协同过滤模型。我们对这种范式的兴趣源自于最近在视觉和语言方面深度神经网络模型取得了成功。我们认为AutoRec具有代表性,并且有计算上的优势,超过了现存的基于神经网络方法的协同过滤,从经验上来看,也表现得比当今最先进的方法好。
2、AutoRec方法
在基于排序的协同过滤上,我们有m个用户,n个项目,和一个能看到部分user-item评分的矩阵
U
∈
R
m
×
n
U\in \mathbb{R}^{m \times n}
U∈Rm×n。能部分看到的向量
r
(
u
)
=
(
R
u
1
,
…
…
,
R
u
n
)
∈
R
n
\textbf{r}^{(u)}=(R_{u1},……,R_{un})\in \mathbb{R^n}
r(u)=(Ru1,……,Run)∈Rn代表每一个user
u
∈
U
=
{
1
,
…
…
,
m
}
u \in U=\{1,……,m\}
u∈U={1,……,m}。同样地,能部分看到的向量
r
(
i
)
=
(
R
1
i
,
…
…
,
R
m
i
)
\textbf{r}^{(i)}=(R_{1i},……,R_{mi})
r(i)=(R1i,……,Rmi)代表每一个item
i
∈
I
=
{
1
,
…
…
,
n
}
i \in I=\{1,……,n\}
i∈I={1,……,n}。在这个工作中,为了达到推荐的目的,我们要设计出一个基于item(user)的自动编码器,这个编码器可以把部分观察到的
r
(
i
)
(
r
(
u
)
)
\textbf{r}^{(i)}(\textbf{r}^{(u)})
r(i)(r(u))作为输入,把它投射到一个低维度的潜在(隐藏)空间,然后在输出空间中重构
r
(
i
)
(
r
(
u
)
)
\textbf{r}^{(i)}(\textbf{r}^{(u)})
r(i)(r(u)),从而预测出丢失的评分。
形式上,给定一组
R
d
\mathbb{R}^d
Rd中的向量
S
\textbf{S}
S和一些
k
∈
N
+
k \in \mathbb{N_+}
k∈N+,那自动编码器就是
θ
m
i
n
∑
r
∈
S
∥
r
−
h
(
r
;
θ
)
∥
2
2
(
1
)
\underset{min}{\theta}\sum _{\textbf{r} \in \textbf{S}}\left \| \textbf{r}-h(\textbf{r};\theta) \right \|_2^2(1)
minθr∈S∑∥r−h(r;θ)∥22(1)
其中,
h
(
r
;
θ
)
h(\textbf{r};\theta)
h(r;θ)是
r
∈
R
d
\textbf{r}\in \mathbb{R}^d
r∈Rd的重构
h
(
r
;
θ
)
=
f
(
W
⋅
g
(
Vr
+
μ
)
+
b
)
h(\textbf{r};\theta)=f(\textbf{W}\cdot g(\textbf{Vr}+\mathbf{\mu})+\textbf{b})
h(r;θ)=f(W⋅g(Vr+μ)+b)
f
(
⋅
)
g
(
⋅
)
f(\cdot)g(\cdot)
f(⋅)g(⋅)是激活函数。在这里,
θ
=
{
W
,
V
,
μ
,
b
}
\theta = \{\mathbf{W,V, \mu,b}\}
θ={W,V,μ,b},其中
W
∈
R
d
×
k
\textbf{W} \in \mathbb{R}^{d \times k}
W∈Rd×k和
V
∈
R
k
×
d
\textbf{V} \in \mathbb{R}^{k \times d}
V∈Rk×d是变换(Transformations),
μ
∈
R
k
\mu \in \mathbb{R}^k
μ∈Rk和
b
∈
R
d
\mathbf{b} \in \mathbb{R}^d
b∈Rd是偏移量(biases)。这个目标对应于一个单独的、K维隐藏向量的自联想神经网络(Auto-Associative Neural Network )。参数
θ
\theta
θ使用反向传播来进行学习。
图1 基于用户的自动编码模型。我们用极板表示法表示神经网络有n个副本(copies)(每一个item一个),其中,用
W
\textbf{W}
W和
V
\textbf{V}
V连接所有的副本。
在图一中,根据公式1,基于item的自动编码模型将自动编码器应用于向量集
{
r
i
}
i
=
1
n
\{r^i\}^n_{i=1}
{ri}i=1n,并且有两个重要的变动。一个是,我们认为每个
r
(
i
)
r^{(i)}
r(i)仅在反向传播期间通过更新与所观察到的输入相关联的权重来观察到部分,这在矩阵因子分解(Matrix Factorisation)和RBM(受限玻尔兹曼机,Restricted Boltzmann Machine)方法中很常见。另一个是,其次,我们对学习的参数进行正则化,以防止对观察到的评分过度拟合。形式上,基于item的自动编码模型的目标函数是,其中,正则化强度( regularisation strength)
λ
>
0
\lambda>0
λ>0:
m
i
n
θ
∑
i
=
1
n
∥
r
i
−
h
(
r
i
;
θ
)
∥
O
2
+
λ
2
⋅
(
∥
W
∥
F
2
+
∥
V
∥
F
2
)
,
(
2
)
\underset{\theta}{min}\sum_{i=1}^{n}\left \| \textbf{r}^i-h(\textbf{r}^i;\theta) \right \|^2_{\mathcal{O}}+\frac{\lambda}{2}\cdot (\left \|\textbf{W} \right\|^2_F+\left \|\textbf{V} \right\|^2_F),(2)
θmini=1∑n∥∥ri−h(ri;θ)∥∥O2+2λ⋅(∥W∥F2+∥V∥F2),(2)
其中
∥
⋅
∥
O
2
\left \|\cdot \right \|^2_{\mathcal{O}}
∥⋅∥O2意味着我们只考虑观察到的评级的贡献。(
∣
∣
A
∣
∣
F
=
(
∑
i
=
n
n
∑
i
=
n
n
∣
a
i
j
∣
2
)
1
2
||A||_F = \big(\sum_{i=n}^n\sum_{i=n}^n|a_{ij}|^2\big)^{\frac{1}{2}}
∣∣A∣∣F=(∑i=nn∑i=nn∣aij∣2)21)基于user的自动编码模型是由向量
{
r
(
u
)
}
u
=
1
m
\{ \textbf{r}^{(u)}\}_{u=1}^m
{r(u)}u=1m得到的。总的来说,基于item的自动编码模型(I-AutoRec)需要估计
2
m
k
+
m
+
k
2mk+m+k
2mk+m+k个参数。给定学习参数
θ
^
\hat{\theta}
θ^,基于item的自动编码模型对user
u
u
u和item
i
i
i的预测的评分为
R
^
=
(
h
(
r
(
i
)
;
θ
^
)
)
u
,
(
3
)
\hat{R}=(h(\textbf{r}^{(i)};\hat{\theta}))_u,(3)
R^=(h(r(i);θ^))u,(3)图1展示了模型,阴影节点对应于观察到的评分,实体连接对应于为输入
r
(
i
)
r^{(i)}
r(i)更新的权重。
(a)
Model | ML-1M | ML-10M |
---|---|---|
U-RBM | 0.881 | 0.823 |
I-RBM | 0.854 | 0.825 |
U-AutoRec | 0.874 | 0.867 |
I-AutoRec | 0.831 \textbf{0.831} 0.831 | 0.782 \textbf{0.782} 0.782 |
(b)
f(·) | g(·) | RMSE |
---|---|---|
Identity | Identity | 0.872 |
Sigmoid | Identity | 0.852 |
Identity | Sigmoid | 0.831 \textbf{0.831} 0.831 |
Sigmoid | Sigmoid | 0.836 |
(c)
model | ML-1M | ML-10M | Netflix |
---|---|---|---|
BiasedMF | 0.845 | 0.803 | 0.844 |
I-RBM | 0.854 | 0.825 | - |
U-RBM | 0.881 | 0.823 | 0.845 |
LLORMA | 0.833 | 0.782 \textbf{0.782} 0.782 | 0.834 |
I-AutoRec | 0.831 \textbf{0.831} 0.831 | 0.782 \textbf{0.782} 0.782 | 0.823 \textbf{0.823} 0.823 |
表格1:(a)对比了U/I-AutoRec和RBM的RMSE值。(b)为I-AutoRec模型选择了线性和非线性的激活函数得到的RMSE,数据集是 Movielens 1M 。(c)比较了基于Moivelens和Netflix数据集上的RMSE的值。I-RBM经过一周的训练不收敛。LLORMA的结果是从[2]论文中拿过来的。
AutoRec与现有的CF方法截然不同。与基于RBM的CF模型(RBM-CF)相比,存在一些差异。首先,RBM-CF提出了基于受限Boltzmann机器的生成概率模型,而AutoRec是基于自动编码器的判别模型。其次,RBM-CF通过最大化log似然来估计参数,而AutoRec直接最小化RMSE, RMSE是评分预测任务的典型评判标准。第三,训练RBM-CF需要使用对比散度(contrastive divergence),而训练AutoRec需要相对较快的基于梯度的反向传播。最后,RBM-CF仅适用于离散评分,并为每个评分值估算一组单独的参数。对于 r r r个可能的评分,这意味着基于user(item)的RBM有 n k r nkr nkr或( m k r mkr mkr)个参数(For r r r possible ratings, this implies n k r nkr nkr or ( m k r mkr mkr) parameters for user- (item-) based RBM. )。AutoRec与 r r r无关,因此需要更少的参数。更少的参数使AutoRec具有更少的内存占用和更少的过拟合倾向。此外,当MF学习线性潜在表示时,AutoRec可以通过激活函数g(·)来学习非线性潜在表示。
3、实验评估
在这个部分,我们基于数据集Movielens 1M, 10M 和Netflix,对AutoRec、RBM-CF、Biased Matrix Factorisation (BiasedMF)以及Local Low-Rank Matrix Factorisation (LLORMA) 进行评估和比较。接下来,我们对没有训练观察的测试user或item使用默认评分3。我们将数据随机分为90%-10%的训练测试集,并保留10%的训练集用于超参数优化。我们重复上面的的过程5次并得到一个平均的RMSE。在每个实验中,RMSE上95%的置信区间为±0.003或更小。对于所有基线,我们调整正则化强度
λ
∈
{
0.001
,
0.01
,
0.1
,
1
,
100
,
1000
}
\lambda \in\{0.001,0.01,0.1,1,100,1000\}
λ∈{0.001,0.01,0.1,1,100,1000}和适当的潜在维度
k
∈
{
10
,
20
,
40
,
80
,
100
,
200
,
300
,
400
,
500
}
k\in\{10,20,40,80,100,200,300,400,500\}
k∈{10,20,40,80,100,200,300,400,500}。
挑战训练自动编码器是目标的非凸性。我们发现弹性传播(resilient Propagation,RProp)可以有与L-BFGS相当的性能,同时速度更快。因此,我们使用RProp进行所有后续实验:都是基于item或user的自动编码,使用RBM或AutoRec哪个更好?表1(a)显示基于item的(I-)方法,对于RBM和AutoRec都表现得更好;这可能是因为每个item的平均评分数量远远超过每个user的评分数量;用户评级数量的过拟合(high variance)导致基于user的方法的预测并不可靠(也就是说用户个人的偏好喜爱程度不同对于电影的评分是不一样的,不够客观)。I-AutoRec优于所有RBM变体。
AutoRec性能如何随线性和非线性激活函数
f
(
⋅
)
f(\cdot)
f(⋅),
g
(
⋅
)
g(\cdot)
g(⋅)而变化?表1(b)表明隐藏层中的非线性(通过
g
(
⋅
)
g(·)
g(⋅))对于I-AutoRec的良好性能至关重要,表明其相对于MF方法的潜在优势。Rectified Linear Units(ReLU)比sigmoids表现得要差。所有其他的AutoRec实验中使用identity作为
f
(
⋅
)
f(\cdot)
f(⋅)的函数,sigmoid作为
g
(
⋅
)
g(\cdot)
g(⋅)的函数。
图2 Movielens 1M上的I-AutoRec的RMSE因隐藏单元k的数量而不同
AutoRec的性能如何随隐藏单元的数量而变化吗?在图2中,我们可以评估AutoRec的性能随着隐藏单元数量的变化而变化。我们注意到性能随着隐藏单元数量的增长而趋向于稳定,但是(再增加)回报(returns)就递减。所有其他的AutoRec实验都使用
k
=
500
k=500
k=500。
AutoRec在所有基线上的表现如何?表1(c)显示AutoRec始终优于所有基线,除了与Movielens 10M上的LLORMA得到了相当的结果。LLORMA的竞争性能很有意义,因为后者涉及加权50个不同的局部矩阵分解模型,而AutoRec仅通过一个神经网络自动编码器使用一个单个的潜在表示。
AutoRec的深度扩展有帮助吗?我们整出了一个深度版本(deep version)的I-AutoRec,它有三个隐藏层(500,250,500),每个都有一个sigmoid激活。我们使用贪婪的预训练,然后通过梯度下降进行调整。在Movielens 1M上,RMSE从0.831降低到0.827,表明可以通过深度AutoRec进一步改进。致谢NICTA由澳大利亚政府资助,由通信部和ARC通过ICT卓越中心计划代表。该研究部分得到了ARC DP140102185的支持。
4、参考文献
[1] Y. Koren, R. Bell, and C. Volinsky. Matrix factorization techniques for recommender systems. Computer, 42, 2009.
[2] J. Lee, S. Kim, G. Lebanon, and Y. Singer. Local low-rank matrix approximation. In ICML, 2013.
[3] M. Riedmiller and H. Braun. A direct adaptive method for faster backpropagation learning: the rprop algorithm. In IEEE International Conference on Neural Networks, 1993.
[4] R. Salakhutdinov, A. Mnih, and G. Hinton. Restricted Boltzmann machines for collaborative filtering. In ICML, 2007. [5] B. Sarwar, G. Karypis, J. Konstan, and J. Riedl. Item-based collaborative filtering recommendation algorithms. In WWW, 2001.