【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems

Unsupervised Proxy Selection for Session-based Recommender Systems
SIGIR 2021

找了一圈也没见有人分享这篇论文的解读,斗胆把个人的理解记录下来,如有不足之处欢迎指教!

代码地址:https://github.com/Junsu-Cho/ProxySR

Problem:
由于(匿名)会话推荐任务中没有提供用户相关的信息,因此现有的SRS推荐模型虽然已经能有效对会话中的短期兴趣(short-term interest)进行建模,但没有充分捕捉用户的整体兴趣(the user’s general interest)

本文引入度量学习的思想,通过构建session的代理(proxies)来模拟会话中的用户整体兴趣,并通过无监督的方式为输入的会话选择一个合适的proxy,将其与从该会话提取的短期兴趣结合,用于next item prediction。

ProxySR模型设计的初衷来源于以下总体兴趣的特征:

  1. 多个会话可能具有相似的用户总体兴趣(比如,这多个会话是由同一个用户创建的,且该用户具备稳定的总体兴趣)
  2. 除了短期兴趣外,总体兴趣也可以弥补会话推荐中丢失的信息,以帮助预测下一个交互的item

Method:

ProxySR的总体框架:【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第1张图片
1. Proxy Selection
该部分介绍了如何为输入模型的session s选择一个合适的proxy。
首先,模型通过一个encoder network来生成一个概率(logits of the probabilities),encoder network如下:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第2张图片
编码网络用于获得输入序列的序列模式,此处是将item embedding(I_s,j)和a learnable positional embedding(E^P_j)相加之后输入两层前馈神经网络( point-wise feed-forward networks),得到每个item的特征后求均值作为logits。
之后,将得到的logits通过添加了温度参数的softmax得到概率分布 ∈ R^:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第3张图片

其中,K 表示预先定义好的proxies的数量,_j表示第j个proxy的概率,为温度参数,越小,得到的越趋向于one-hot编码(越来越尖锐);越大,中的各个元素越趋近于1/K(越来越平滑),因此本文为设置了较大的初值,这样初始阶段loss值很大,避免陷入局部最优,然后随着迭代次数逐渐变小(降温过程),使得模型收敛:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第4张图片

关于温度参数的直观理解可以参考

最后,获得session s的proxy embedding p^(s):
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第5张图片

2. Short-term Interest Encoder

该部分用于获得session s的短期兴趣s^(s)。
具体来说就是将session s的序列输入了一个encoder network,输出其短期兴趣s^(s):
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第6张图片
这里encoder network采用的是self-attention network,其中位置编码采用的逆序编码,其他应该都很熟悉了,不多解释:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第7张图片
3. Combination
该部分将为session s选择好的proxy p(s)和其短期兴趣s(s)结合到一起,获得会话s的最终表示,然后再用该表示计算该session和目标item i之间不相似的得分(这里借鉴了TransE、TransH的思想,讲真翻译这句话的时候我还挺迷的)。
作者认为,将选择出的proxy和short-term interest简单相加无法建模三元组间复杂的关系。此处举例说明:
情景1:如果同一个item与两个不同和短期兴趣、同一个selected proxy相关,那么模型可能会认为这两个不同的短期兴趣是相似的,即 if p + s(1) ≈ I and p + s(2) ≈ I, then s(1) ≈ s(2)
情景2:如果两个不同的item与同一个proxy相关,且分别与两个相似的短期兴趣相关,那么模型会认为这两个不同的item是相似的,即 if p + s(1) ≈ I(1) and p + s(2) ≈ I(2) where s(1) ≈ s(2), then I(1) ≈ I(2)
因此,作者借鉴TransH的思想,将短期兴趣和目标item的embedding投影到超平面(hyper plane),以捕获三元组间复杂的关系:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第8张图片
然后计算session s和目标item之间的不相似得分:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第9张图片
4. Training
采用hinge loss(感觉更像triplet loss)来训练模型:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第10张图片
可以看出,该损失函数希望拉大负样本对之间的距离,拉近正样本对之间的距离。当负样本对之间的距离比正样本对之间的距离大m时,loss为0。(也就是模型拟合的差不多了,不用继续更新了)
关于公式的理解可以参考

最后加上正则化项:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第11张图片
5. Another Real-world Case: User Semi-supervision
作者还考虑了当数据集中存在部分用户信息的时候,如何利用这些用户信息进行半监督学习。就是在生成proxy的概率分布时加入user bias 啦:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第12张图片
Experiments:
实验主要包含两个任务:
1)next unseen item recommendation
2)next item recommendation with repetitive consumption

与baseline的对比:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第13张图片
加入一定比例用户信息进行半监督学习后在lasfm数据集上的表现:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第14张图片
消融实验:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第15张图片
超参实验:
探究预先定义proxies的个数K对实验结果的影响:
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第16张图片
研究模型生成的proxies:
1)研究Proxies中编码的信息:
用Proxy学习到的user embedding作为HRNN模型 user embedding的输入,从而验证模型的有效性。
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第17张图片
2)proxies的可视化
【会话推荐论文阅读】Unsupervised Proxy Selection for Session-based Recommender Systems_第18张图片
该图包含了随机抽取的10个用户在RetailRocket数据集上的的session表示,相同颜色的圆圈表示来自同一个用户,对于ProxySR来说每个圆圈表示一个proxy(我咋觉得每个圆圈表示的session呢…)。
观察图(b)可以看出:
1)有些proxy是由多个用户的会话选择的,这是因为多个用户可能有相似的一般兴趣。(五彩斑斓的那一坨子)
2)多个proxies被相同用户的session选择,说明proxy可以对比用户一般兴趣更细粒度的信息进行建模。(相同颜色的圈圈聚在一起,说明多个proxy被相同用户的session选择)

你可能感兴趣的:(深度学习,机器学习,推荐系统)