读书笔记1:《SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS》

先来理解一下Session-Based Recommendation的定义。它的中文翻译是基于会话的推荐。

关于会话我的理解是:就像在网上下一个大文件(如果对方服务器支持断点重传),我们可以每天抽出多段时间去下载。每天抽出的多段时间中的一段开始到暂时的时间就可以看成是一个会话。用户的整个记录就是用户每天的签到会话组成。

我觉得:固定的时间窗口内的签到行为(我自己的定义,\狗头),较短时间内的连续签到行为(引用1中的定义),前后两次签到不超过时间阈值t(deepmove和airbnb的论文中会话的定义)的都叫做一个会话。

 

下面按照论文的顺序给出简短的总结:

abstract:

 

introduce:

related work:

experiment:

 

3.1.3: 排名损失

推荐系统的核心是基于相关性的项目排序,虽然可以将推荐任务转化为分类任务,但是基于排名的损失方法总是显示出较好的表现。

作者提到了3种损失,pointwise,pairwise,listwise损失函数。并在这一结提到了自己设计的损失函数(TOP1),这个损失函数可以看出是bpr损失的改进。

下面我介绍下这三种损失,之后再介绍下TOP1损失函数。

pointwise :代表的有MSE(均分误差),MSE主要用于显式数据(含有用户的评分1-5),crossentorpy(交叉熵损失,分类常用),用于隐式数据(用户交互过产品,但是没有表现出喜爱或者厌恶),这类损失主要是最大化的拟合user-item矩阵。目标是使矩阵分解得到的user-item尽可能地逼近原始矩阵内的数值(显式评分或者隐式矩阵)。

 

pairwise:很多,这些损失的目标是我们不需要拟合原始矩阵,只要知道他们之间的相对位置给出推荐就行。代表的有BPR损失,需要知道用户访问的一个项目和未访问的一个项目,该损失目标是使用户访问过得项目的偏好要大于未访问过得项目。

BPR损失公式如下,目标是使下面损失最小化:

\begin{equation} L_{s}=-\frac{1}{N_{s}} \dot \sum^{N_{s}}_{j=1}log(\sigma(\hat r_{s,i}-\hat r_{s,j})) \end{equation} $N_{s}$是采样数量,$\hat r_{i,j}$,$\hat r_{s,j}$是对应的评分,其值是用户与项目低纬向量表示的乘积得到。

 

个人总结:BPR损失并不是总是优于pointwise,此论文中也有体现,可能很好可能很坏。通常情况下,当数据集很少的时候pointwise表现较好,当数据集数量很大的时候BPR损失较好。

引用1:“最后我们来讨论一下我阅读本文时最为疑虑的地方吧,为什么使用pair-wise的损失函数,要比point-wise的损失函数更好呢?这主要还是看场景吧。比如在电商领域、外卖点餐的时候,我们可能很多东西都喜欢,但是只会挑选一个最喜欢的物品进行点击或者购买。这种情况下并不是一个非黑即白的classification问题,只是说相对于某个物品,我们更喜欢另一个物品,这时候更多的是体现用户对于不同物品的一个相对偏好关系,此时使用pair-wise的损失函数效果可能会好一点。在广告领域,一般情况下用户只会展示一个广告,用户点击了就是点击了,没点击就是没点击,我们可以把它当作非黑即白的classification问题,使用point-wise的损失函数就可以了。

不过还是要提一点,相对于使用point-wise的损失函数,使用pair-wise的损失函数,我们需要采集更多的数据,如果在数据量不是十分充足的情况下,point-wise的损失函数也许是更合适的选择。”

 

 

listwise:用户访问过得兴趣点也有排序。用到了多个item计算损失进行优化。

 

回到正题,TOP1(作者提出的损失函数):作者的思想是,用了两个约束条件,(1)一是一般的BPR损失想法,(2)二是在(1)的基础上让未交互的项目的兴趣尽可能接近为0.

TOP1公式为:

\begin{equation} L_{s}=\frac{1}{N_{s}} \dot \sum_{j=1}^{N_{s}} \sigma(\hat r_{s,j}-\hat r_{s,i})+\sigma(\hat r^{2}_{s,j}) \end{equation} 其中$N_{s}$为负采样总数,i,j分别为用户访问过和未访问过的项目。目标是使上面损失最小化。

 

 

 

 

 

conclusion:

 

 

引用1:https://cloud.tencent.com/developer/article/1424502

 

 

 

 

 

 

 

 

 

 

 

引用1:https://cloud.tencent.com/developer/article/1424502

你可能感兴趣的:(读书笔记1:《SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS》)