authors:: Yingtao Luo, Qiang Liu, Zhaocheng Liu container:: Proceedings of the Web Conference 2021 year:: 2021 DOI:: 10.1145/3442381.3449998 rating:: ⭐⭐⭐ share:: false comment:: 通过双层Attention的方式,对Attention公式进行修改,聚合时间以及距离信息。通过线性插值代替 GPS 网格进行空间/时间离散化。
仍然是 POI 推荐的一篇论文。
2021 年 WWW 上的一篇论文:STAN: Spatio-Temporal Attention Network for Next Location Recommendation
现有问题:
对于第一个问题,论文给出了这样一个例子:下图中,0,1,2 分别代表家,工作单位,商场;3,4,5,6 代表餐厅。在这个例子中,用户实际上已经对非相邻的餐厅进行了两次非连续的访问。也就是所谓的非相邻位置和非相邻访问。
这篇论文利用,通过双层 Attention,首先聚合了相关的位置,对不同的访问赋予不同的权重,然后通过第二个 Attention 考虑 PIF 从候选位置中召回。
主要贡献:
分别给定用户集合
,时间集合T=
每个用户的 check-in 轨迹可以表示为:
其中
。
轨迹时空关系矩阵。轨迹时间关系矩阵为访问轨迹上的两个 POI 之间的访问时间间隔,轨迹空间关系矩阵为访问轨迹上的两个 POI 之间的球面距离:
论文中将两个矩阵写在一起了,其实是两个矩阵。
候选时空关系矩阵。候选时间关系矩阵为,候选空间关系矩阵为所有候选位置
与访问轨迹上的位置
之间的球面距离:
候选时间关系矩阵没有很懂,看代码里好像是用户访问轨迹上 POI 两两之间的访问时间间隔。这两个矩阵貌似和代码里的都有差别。
首先对 user,POI,time 进行 Embedding,其中 time 为 hour of week。之后再将三者相加:
以每小时和每一百米作为基本单位,对时空关系矩阵进行嵌入,映射到一个欧氏空间。
此外,论文也提出了一种插值嵌入的方法:
经过求和得到最终的嵌入:
首先是第一个 Attention,主要用用来考虑轨迹中有不同距离和时间间隔的两次 check-in 的关联程度,对轨迹内的访问分配不同的权重,具体来说:
其中,
其中
为 mask 矩阵。
第二个 Attention 的作用是根据用户轨迹,在候选位置中召回最合适的 POI,并计算概率。
其中,
因为正负样本不均衡,优化交叉熵损失不再有用。这篇论文将交叉熵损失中使用的负样本数量设置为超参数sss,在训练的每一步随机采样负样本,称为平衡采样器。
总体来说还是比较经典的一个方法吧,在很多其他论文的 Baseline 里都能看到,算是基于 Attention 的方法里比较好的一个模型了。