本篇主要对 《Session-Based Recommendations With Recurrent Neural Networks》提到的采样和损失函数进行了优化,产生了较好的效果。
1. 采样
Mini-batch based negative sampling
2. 损失函数
2.1 Categorical cross-entropy
当存在一个 时,
趋近于
,
未定义,造成结果不稳定。针对这个问题论文提出了2种代替
的计算方式:
-
,其中
。
2.2 Ranking losses: TOP1 & BPR
TOP1
BPR
其中, 为负样本量大小,
为 item
k
的分数,i
代表正样本,j
代表负样本。
这两种损失函数主要缺点是会发生梯度消失的现象,如当 时,
和
都会趋近于
,从而导致梯度消失;同时对负样本取平均值会加速这种梯度消失的现象(样本量越多,平均值越小)。
2.3 Ranking-max loss function family
为了克服随着负样本量的增加而导致的梯度消失现象,论文提出了基于 pairwise 的 listwise 损失函数框架:
-
TOP1-max
其中 maxsoft score 相当于权重,当
较小时,
也会较小(趋近于 0),样本
类似于被忽略,所以不会减少整体的梯度。
-
BPR-max
这里的梯度信息可以看做是单个梯度的加权平均值,相当于权重。当
较小时,权重分布较为均匀,实际得分高的将会得到更多关注;当
较大时,得分高的才会产生较大的权重,从而得到更多关注。这有利于模型的训练。
TOP1-max 和 BPR-max 的梯度信息均和 softmax score 成比例,这意味着只有 score 较大的 item 会被更新,这样的好处在于模型训练过程中会一直推动 target 往排序列表的顶部前进,而常规的 TOP1 和 BPR 在 target 快接近顶部的时候,平均梯度信息更小了,更新几乎停滞,这样很难将 target 推至顶部。
- BPR-max with score regularization
受 TOP1 添加正则项的启发,对 BPR 添加正则项,同样能提高模型的表现。
其中,为正则项参数。