STAN: Spatio-Temporal Attention Network for Next Location Recommendation
STAN:基于时空注意力网络的下一个兴趣点推荐
论文背景
STAN: Spatio-Temporal Attention Network for Next Location Recommendation
STAN:基于时空注意力网络的下一个兴趣点推荐
WWW 21
PDF
现有问题
0、1、2分别代表家、工作地、商场,3、4、5、6分别代表餐馆。虽然3、4、5、6时间和空间都不连续,但它们是有关联的。现有文献很少关注这种非相邻位置和非连续签到的情况。
说明和定义
用户U=${u_1, u_2, …, u_U}$
兴趣点L=${l_1, l_2, …, l_L}$
时间T=${t_1, t_2, …, t_T}$
用户轨迹$tra(u_i) = (r_1, r_2, …, r_{m_i})$
架构
STAN包括多模态嵌入模块、一个自注意力聚合层、一个注意力匹配层、一个平衡采样器。
多模态嵌入模块
该模块分为两部分:轨迹嵌入层和时空嵌入层。
用户轨迹嵌入层
使用了用户、地理位置、时间,嵌入向量记为$e^u$、$e^l$、$e^t$。时间戳被分为7*24=168个维度。所以,$e^u$、$e^l$、$e^t$的维度是U,L和168。
输出$e^r = e^u + e^l + e^t$
时空嵌入层
创造了两种矩阵,轨迹时空关系矩阵$△^{t, s}$和候选关系矩阵$N^{t, s}$。前者将两个轨迹间的时间差和地理距离作为关联信息,后者将轨迹中的兴趣点与候选集中可能的预测兴趣点采用同样的信息关联起来。使用线性插值方法。
这一层将这两种矩阵进行映射和求和,得到最终的嵌入表示E(△)和E(N)。
自注意力聚合层
这一层是用来考虑轨迹中有不同距离和时间间隔的两次兴趣点签到的关联程度的。自注意力层可以捕捉长时依赖并为轨迹中的兴趣点分配不同的权重。将轨迹E(u)和时空关系矩阵E(△)通过自注意力聚合层,计算得到新的序列S表示。
注意力匹配层
这一层的作用是根据用户轨迹的最新表示在L中召回最合适的兴趣点候选。
A(u) = Matching(E(l), S(u), E(N)),得到的是概率。
$Matching(Q, K, N) = Sum(softmax(\frac{QK^T+N}{\sqrt{d}}))$
这个公式减少了其它自注意力模型中的PIF信息。
平衡采样器
因为正负样本不均衡,优化交叉熵损失不再有用。本文修改了交叉熵损失公式中负样本数量,对于每个正样本$a_k$,需要同时计算L-1个负样本,这称为作为平衡采样器。
实验
数据集:Gowalla, SIN, TKY, NYC.
输入:$(u_i, l_k, t_k)$, $(l_k, lon_k, lat_k)$
输出:候选兴趣点概率值
基线
- STRNN
- DeepMove
- STGN
- ARNN
- LSTPM
- TiSARec
- GeoSAN
性能
贡献点
- 提出STAN,一种时空双向注意力模型,全面考虑了聚合相关联位置的时空效应。第一个将非相邻位置和非相邻签到时间的兴趣点的时空联系应用在兴趣点推荐中。
- 使用简单的线性插值技术替代GPS网格进行空间离散化,它能恢复空间距离和反映时空偏好,而不仅仅是聚合邻居。
- 提出了一种双向注意力架构用于PIF(personalized item frequency),第一层聚合了轨迹信息中相关的兴趣点用于更新表示,那么第二层就可以给全部的签到信息匹配目标。
- 在四个真实世界数据集上性能比SOTA模型超过10%。
代码
https://github.com/yingtaoluo/Spatial-Temporal-Attention-Network-for-POI-Recommendation