推荐系统行为序列建模-GRU4Rec
《SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS》论文基于单次会话session进行推荐。
1.模型结构
整体结构比较简单,通过RNN的堆叠来抽取序列信息
- input:单次会话的点击序列 [ x 1 , x 2 , . . . x n ] [x_1, x_2,...x_n] [x1,x2,...xn]
- output:时间节点i之后的下一个被点击item x i + 1 x_{i+1} xi+1
初始embedding是对会话点击序列的编码,通过最后一层GRU后,获得对当前会话序列的整体建模 w 1 w_1 w1,之后可以视为与候选item编码构成的矩阵 w 2 w_2 w2作用得到对各候选item的推荐倾向
2.优化
为了加速训练,作者提出了两个trick:
2.1 SESSION-PARALLEL MINI-BATCHES
GRU4Rec聚焦于单个Session的演变,碎片化Session没有意义
为了保证Session内的连续性和Session间的独立性:
- 同一Mini-batch并行运算,不同的按序串行
- 切换Session时,重置GRU隐变量(如 i 1 , 3 i_{1,3} i1,3到 i 5 , 1 i_{5,1} i5,1时)
2.2 SAMPLING ON THE OUTPUT
item数量太多负采样困难,选取了同一个batch 中其他 Session 下一个点击的 item 作为负样本,局部负采样
3.Loss
BPR:
−
1
N
s
∑
j
=
1
N
s
l
o
g
(
σ
(
r
^
s
,
j
>
r
^
s
,
i
)
)
-\frac{1}{N_{s}}\sum_{j=1}^{N_{s}}log(\sigma(\hat{r}_{s,j} > \hat{r}_{s,i}))
−Ns1∑j=1Nslog(σ(r^s,j>r^s,i))
TOP1:
−
1
N
s
∑
j
=
1
N
s
σ
(
r
^
s
,
j
>
r
^
s
,
i
)
+
σ
(
r
^
s
,
j
2
)
-\frac{1}{N_{s}}\sum_{j=1}^{N_{s}}\sigma(\hat{r}_{s,j} > \hat{r}_{s,i}) + \sigma(\hat{r}_{s,j}^2)
−Ns1∑j=1Nsσ(r^s,j>r^s,i)+σ(r^s,j2)