Where to Go Next: Modeling Long- and Short-Term User Preferences for Point-of-Interest Recommendation
下一步去哪儿:用户长短期偏好建模用于兴趣点推荐
论文背景
Where to Go Next: Modeling Long- and Short-Term User Preferences for Point-of-Interest Recommendation
下一步去哪儿:用户长短期偏好建模用于兴趣点推荐
AAAI 2020
PDF
CODE
问题提出
现有的基于RNN的方法在对用户的短期偏好建模时,要么忽略了用户的长期偏好,要么忽略了最近访问的兴趣点之间的地理关系,从而使得推荐结果不可靠。(所有基于RNN/LSTM的短期偏好建模方法都存在不能对两个非连续兴趣点之间的关系建模的缺点。)
为此,提出LSTPM(Long- and Short-Term Preference Modeling)架构。
架构
它包含三个部分:长期偏好建模、短期偏好建模和预测模块。
长期偏好建模
核心:使用非局部神经操作(nonlocal neural operation)建模长期偏好。
以前的做法是直接用LSTM建模签到序列,但是对时间戳的认识不够深。比如人们会在中午时间去餐馆,在晚上去酒吧。所以本文提出了融合时间戳去捕捉时间敏感的属性。论文将一周分成48个段slot(24个工作日段和24个周末段)。计算每两个时间段之间用户签到的兴趣点集合相似性。重合的兴趣点越多,相似性越高。
所以历史签到轨迹就可以用这些时间段的兴趣点来表示,从而可以给这些时间段加权重。时间越近影响越大。
同时,地理方面计算了各轨迹的中心,计算中心与最近轨迹相似度,得出距离加权公式。
关键理解:非局部神经操作是什么意思呢?
这个基本想法来自计算机视觉任务,论文Non-local Neural Networks它主张在输入信号的每一个位置的表示都通过全部位置的特征加权求和来对非局部的、长范围的依赖进行建模。
f
用来度量输出位置和周围其他位置的尺度(例如相似度),g
是在位置j对于输入信号的表示(如卷积操作)。对于non-local behaiver来说,上式中的j
是取遍所有可能的邻居,而对于local操作,如3*3的卷积来说,j
只是取了周围8个像素点。
所以这里借鉴这个思想,将每个轨迹S都和历史轨迹和当前轨迹进行了分数计算,并除以标准化因素(全部特征求和)。
短期偏好建模
核心:使用联合方式的地理扩张LSTM建模短期偏好。
RNN本身只能用于序列建模,所以有人提出了跳步RNN。但是跳步RNN总是事先定义好和固定好的。所以提出geo-dilated LSTM根据地理和时间因素,来自动决定使用哪些相关输入。
直观地,我们的地理扩张LSTM首先从当前轨迹中挑选poi作为输入,其具有由地理相关性确定的不同跳跃长度,然后通过扩展LSTM方案学习短期用户偏好。具体的算法论文给出了伪代码。
关键理解:那它究竟是怎么自动确定跳跃长度的呢?
如上图所示,标准的LSTM序列是从l1->l2->l3->l4->l5。但是加入地理距离后发现,对于l3的前面两个兴趣点l1和l2来说,l1到l3的距离比l1到l2的距离要近,所以留下{l1, l2}路径。依次类推,留下{l1, l2}{l2, l5}路径,也就是两跳。所以,将LSTM设计为两跳。
最后的表示,是标准LSTM和geo-dilated LSTM的平均向量。
预测
将长短期偏好联结起来,设置一个W全部兴趣点的可训练投影矩阵参数。预测的是下一个时间段t内目标用户最可能访问的兴趣点。损失函数是负对数似然函数。
实验
数据集
Foursqure, Gowalla
基线
- LSTM
- Time-LSTM
- ST-RNN
- TMCA
- CARA
- DCRF
- DeepMove
- STGN
评价指标
- 召回率Recall
- NDCG
性能
基线对比
消融实验
参数分析
跳数自动化
贡献点
- 提出LSTPM框架解决上述存在的问题。
- LSTPM受非局部操作(nonlocal operations)和dilated RNNs的启发,在构建长期偏好时,设计了非局部操作网络结构来探索历史和最近轨迹的时空联系。在克服RNN在短期用户偏好建模的限制时,提出geo-dilated RNN来全面探索非连续兴趣点间的地理联系。
- 在真实世界数据集上效果超过SOTA模型。
参考资料
https://blog.csdn.net/py184473894/article/details/85322937
https://zhuanlan.zhihu.com/p/85776086