一、背景
推荐系统传统的解决方案对数据的时间效应和因果属性缺乏处理,典型情景如:
- 用户对电影的看法是随时间变化的,这种变化会使得一些垃圾电影变为流行电影
- 季节时令性:浪漫喜剧,圣诞电影,夏日大片等类型的movie的季节性尤其突出。
- 用户兴趣:这个变化因素就更多了,通常很难显式建模。
二、亮点
- 使用两个LSTM网络来建模动态的user state和item state
- 同时,考虑到用户长期兴趣和item静态特征等固定属性,还使用矩阵分解建模用户和item的静态潜在属性
- 由于每个评分 r i j r_{ij} rij都取决于user state RNN和item state RNN,但是通过2个序列的反向传播在计算上是禁止的。因此本文提出了一种交替子空间下降策略。
三、模型具体结构
以用户序列为例,给定M部电影,
x
t
∈
R
M
x_t ∈ R^M
xt∈RM 表示用户在t时刻的rating vector,其中,如果用户在时间步t用分数k评价项目j,则
x
t
j
=
k
x_{tj}=k
xtj=k,否则
x
t
j
=
0
x_{tj}=0
xtj=0。此外,使用
τ
t
τ_t
τt,
τ
t
−
1
τ_{t−1}
τt−1表示在t及t-1时刻的状态,并使用
1
n
e
w
b
i
e
=
1
1_newbie=1
1newbie=1表示用户是新用户。
用户LSTM模型的输入为:
每一步LSTM为:
即使用户和item状态可能是time-varying,但是仍然应该有一些固定的组件编码固定的属性,例如个人资料、用户的长期偏好或item属性类型等。为了实现这一点,我们分别用stationary向量
u
i
,
m
j
u_i, m_j
ui,mj来补充time-varying向量
u
i
t
,
m
j
t
u_{it}, m_{jt}
uit,mjt。则:
其中,
u
i
,
m
j
u_i, m_j
ui,mj是矩阵分解得到的结果,而
u
i
t
,
m
j
t
u_{it}, m_{jt}
uit,mjt是LSTM建模得到的结果。
四、交替子空间下降策略
由于每个评分 r i j r_{ij} rij都取决于user state RNN和item state RNN,但是通过2个序列的反向传播在计算上是禁止的。因此本文提出了一种交替子空间下降策略。也就是说,仍然一次反向传播用户所有ratings的梯度以及更新用户序列参数,但是假设item状态是固定的,因此不需要将梯度传播到这些item序列中。然后在更新用户序列和item序列之间进行交替。