论文|AGREE-基于注意力机制的群组推荐( 三 )


{ e 1 = R e L U ( W 1 e 0 + b 1 ) e 2 = R e L U ( W 2 e 1 + b 2 ) . . . e h = R e L U ( W h e h ? 1 + b h ) \left\{\begin{} e_1 = ReLU(W_1 e_0 + b_1) \\ e_2 = ReLU(W_2 e_1 + b_2) \\ ... \\ e_h = ReLU(W_h e_{h-1} + b_h) \end{}\right. ????????e1?=ReLU(W1?e0?+b1?)e2?=ReLU(W2?e1?+b2?)...eh?=ReLU(Wh?eh?1?+bh?)?
其中:
最后一层输出 e h e_h eh?可以经过下面的公式转化为预测分:
{ r ^ i j = w T e h , i f e 0 = φ p o o l i n g ( u i , v j ) y ^ i j = w T e h , i f e 0 = φ p o o l i n g ( g l ( j ) , v j ) \left\{\begin{} \hat{r}_{ij} = w^T e_h, if e_0 = \ _{} (u_i, v_j) \\ \hat{y}_{ij} = w^T e_h, if e_0 = \ _{} (g_l(j), v_j) \end{}\right. {r^ij?=wTeh?,ife0?=φ?(ui?,vj?)y^?ij?=wTeh?,ife0?=φ?(gl?(j),vj?)?
其中
这里需要强调的是 , 我们针对用户-物品和群组-物品两个预测任务共享了隐藏层 , 因为群组的向量是通过用户的向量汇聚而成的 , 他们在同一个向量空间中 , 且有利于两个任务的相互补充 。
2.4、模型优化 目标函数
群组推荐本质也是做排序 , 所以这里使用的方法(关于、、的区别可以参考:怎么理解基于机器学习“四大支柱”划分的学习排序方法) 。
用户-物品:
L u s e r = ∑ ( i , j , s ) ∈ O ( r i , j , s ? r ^ i , j , s ) 2 = ∑ ( i , j , s ) ∈ O ( r ^ i , j ? r ^ i , s ? 1 ) 2 L_{user} = \sum_{ (i,j,s) \in O} (r_{i,j,s} - \hat{r}_{i,j,s}) ^2 = \sum_{ (i,j,s) \in O} ( \hat{r}_{i,j} - \hat{r}_{i,s} -1) ^2 Luser?=(i,j,s)∈O∑?(ri,j,s??r^i,j,s?)2=(i,j,s)∈O∑?(r^i,j??r^i,s??1)2
其中:
这里认为有行为交互分值为1 , 没有交互分值为0 , 所以 r i , j , s = r i , j ? r i , s = 1 r_{i,j,s} = r_{i,j} - r_{i,s} = 1 ri,j,s?=ri,j??ri,s?=1 , 又因为用户-物品的损失函数中为平方和 , 所以最后形式转为了 ( r ^ i , j ? r ^ i , s ? 1 ) ( \hat{r}_{i,j} - \hat{r}_{i,s} -1) (r^i,j??r^i,s??1) 。

论文|AGREE-基于注意力机制的群组推荐

文章插图
同样 , 群组-物品的损失函数为:
L g r o u p = ∑ ( l , j , s ) ∈ O ′ ( y l , j , s ? y ^ l , j , s ) 2 = ∑ ( l , j , s ) ∈ O ′ ( y ^ l , j ? y ^ l , s ? 1 ) 2 L_{group} = \sum_{ (l,j,s) \in O'} (y_{l,j,s} - \hat{y}_{l,j,s}) ^2 = \sum_{ (l,j,s) \in O'} ( \hat{y}_{l,j} - \hat{y}_{l,s} -1) ^2 ?=(l,j,s)∈O′∑?(yl,j,s??y^?l,j,s?)2=(l,j,s)∈O′∑?(y^?l,j??y^?l,s??1)2
优化技巧
主要是在模型设计和训练上 , 有以下几点:
1、mini-batch 。需要注意的首先需要将训练集进行 , 即混洗 , 保证数据之间是无序的 。
2、pre- 。神经网络对于相关的初始化值是比较敏感的 , 因此在AGREE模型中 , 对网络的初始值进行了初始化 , 初始化的方法是去除了AGREE中的机制 , 将得到的相关参数复用在AGREE中 , 而且在预训练模型中使用的是Adma优化方法 , 因为速度较快 , 而在AGREE模型中使用的则是SGD(关于SGD可参考:梯度算法之批量梯度下降 , 随机梯度下降和小批量梯度下降) 。
3、 。由于神经网络的拟合能力强 , 为了提升模型的泛化能力 , 这里采用了深度学习中比较常见的机制 , 不仅在第一层中去除了 p p % p , 而且隐藏层也进行了剔除 。另外需要注意的是在训练的时候需要进行 , 但是在预测的时候不需要 。
3、实验效果
实验采用的数据集有两个:
这两个数据集都只有正样本 , 因此从缺失的数据中进行随机负采样构建负样本 。而且适当的调整正负样本的比例能够增强实验的效果 , 所以论文中选择的负样本的采样率在4~6之间 。