【论文阅读】Modeling Spatio-temporal Neighbourhood for Personalized Point-of-interest Recommendation
Metadata
authors:: Xiaolin Wang, Guohao Sun, Xiu Fang, Jian Yang, Shoujin Wang container:: Proceedings of the Thirty-First International Joint Conference on Artificial Intelligence year:: 2022 DOI:: 10.24963/ijcai.2022/490 rating:: ⭐⭐⭐ share:: false comment:: 强调用户偏好,通过构建TKG图,以时间片的形式聚合K个用户/场所的邻居信息并打分,以此作为抽象表示。亮点主要在于聚合用户/场所邻居的方法。
前言
刚出炉的IJCAI 2022的一篇论文:Modeling Spatio-temporal Neighbourhood for Personalized Point-of-interest Recommendation
问题描述
Overview
论文根据实际生活,提出了3个点以强调用户偏好:
- Personal preference:不同用户对于同个场所存在偏好。例如在12:00,用户A将cafe当做dining palce,因为根据历史序列发现他在这个时刻经常访问sushi bar,pizzeria等场所;而用户B则将cafe当做social place,因为根据历史序列发现他在这个时刻经常访问go club,card room等场所。
- Dynamic preference:同一用户对于同一场所的偏好经常会发生变化。例如用户B在12:00将cafe当做social place,而在17:00则作为dining palce。
- Personal acceptance to distance/time:用户的选择会受到距离和时间的影响。例如,用户B相比于用户A有更高的概率访问位置 L,因为根据用户B之前的轨迹比用户A有更长的距离/时间间隔。
在以前的方法中,并没有捕捉到用户的动态偏好。同时以前的方法大多将用户到POI的距离/时间视为客观的因素,这忽略了个人对距离/时间的接受程度,从而限制了他们的推荐性能。
本论文为了克服现有的基于序列和基于Knowledge Graph (KG)的推荐方法的局限性,在POI推荐中引入了带有时间信息的知识图(称为TKG),包括用户和带有时间戳的位置。在TKG中,考虑了用户对位置的个人偏好,并使用了注意机制来衡量每个用户对距离和时间的接受程度。论文的主要贡献如下:
- 提出了一个时空图卷积注意力网络,通过学习TKG更好地学习用户偏好;
- 考虑了用户对地点的个人偏好;
- 使用注意力机制衡量每个用户对距离和时间的接受程度。
STGCAN
模型总体框架如下图所示:
Embedding Layer
在Embedding层,将 user U,location L,timestamps _T_分别进行Embedding。
其中timestamps 为hour of week。
Neighbour Aggregation Layer
User Neighbour Aggregation Layer
用户接受域(User-receptive-feld)是用来在TKG上聚合用户邻居实体以进行用户表示的。
如下图所示:
上面提到的接受域也就是寻找K个邻居的范围域。上图为3层的用户接受域。
然后,为了区分K个邻居实体与目标用户的相关性,用时空评分函数I进行评分:
其中γ为超参数。
最后,将计算的得到的K个时空评分通过softmax进行归一化。将这K个评分经过一个线性变换,最后的输出作为目标用户的表示。
在每一层接受域中,更新方程如下:
Location Neighbour Aggregation Layer
位置接受域(Location-receptive-feld)是为了聚合TKG上的邻居实体来进行位置表示。
与聚合用户邻居实体不同的是,聚合位置邻居实体时的时空评分函数III还通过GPS计算了不同位置之间的Haversine距离:
最后仍是与聚合用户实体类似的更新方程:
Spatial-Temporal Interval Aware Attention Layer
在邻居聚合之后,用户和位置的表示被输入到时空间隔感知注意层,这是一个测量空间距离和时间的注意层。
采用插值嵌入的方式,将时空间隔嵌入用户和位置的表示。
这里采用的方法和[[@luo2021stan]]比较像。
然后通过self attention将得到的时空间隔嵌入用户和位置的表示。
这里感觉说的不清不楚的,差值后如何使用,还有self attention也只是文字提了一嘴。还是说这里的attention只是下面的那两个全连接,没搞明白。
再次加入时间信息:
最后计算得到用户访问概率:
Neural Network Training
整体算法如下:
使用交叉熵损失函数计算损失,负样本为随机采样:
Experiments
Datasets
Result
Impact of embedding dimension
Impact of depth of receptive feld
Impact of neighbour entity size
总结
总的来说感觉模型本身并不复杂,但有些细节没搞明白,想去看代码结果代码也写得不清不楚,就只是把框架代码放了上来。感觉主要的亮点还是在聚合邻居节点的时候采用的方法,在时间维度上选取当前用户/POI的邻居,并且聚合也不是硬套GNN,而是简单的采用一个打分函数。另外就是attention层只看他描述的话感觉并不attention。
参考资料
- [1] Modeling Spatio-temporal Neighbourhood for Personalized Point-of-interest Recommendation