【论文阅读】DynaPosGNN:Dynamic-Positional GNN for Next POI Recommendation
【论文阅读】DynaPosGNN: Dynamic-Positional GNN for Next POI Recommendation
Metadata
authors:: Junbeom Kim, Sihyun Jeong, Goeon Park, Kihoon Cha, Ilhyun Suh, Byungkook Oh
container:: 2021 International Conference on Data Mining Workshops (ICDMW)
year:: 2021
DOI:: 10.1109/ICDMW53433.2021.00012
rating:: ⭐⭐
share:: true
comment:: 模型完全采用 GNN 进行 Embedding,同时待预测 POI 的访问时间也作为参数进行输入,与传统的 POI 预测问题有些出入。
前言
随着基于位置的社交网络(Location-Based Social Network)的快速发展, 海量的签到数据被用于挖掘用户的行为模式以实现兴趣点(Point-of-Interest) 推荐。 兴趣点推荐不但可以提高用户体验,增加用户粘性,还能为商家带来潜在的商业利益,已成为推荐系统中最重要的研究方向之一。
2021 年发表在 ICDM 上的一篇论文:DynaPosGNN: Dynamic-Positional GNN for Next POI Recommendation
问题描述
(next POI recommendation)给定大小为的用户集合和大小为的 POI 集合。
对于每个用户都有一个 POI 行动轨迹序列,对应的访问时间序列为。
当前目标用户,他的行动轨迹为,对应的访问时间为。
一般的,我们的任务是预测用户的下一个访问地点,即next POI(Point-of-Interest) recommendation。
对于当前目标用户,可知用户在时刻位于地点,我们的任务是预测用户在时刻的下一个访问地点。
预备知识
动态图
一句话概括:节点特征和边特征随着时间而变化的图
一个动态网络可以表示为图,其中集合,集合,其中为图中的节点,分别表示边出现和消失的时间。
GNN
在现实世界中更多的数据表示并不是序列或者平面这种简单的排列,而是表现为更为复杂的图结构,如社交网络、人际关系、分子结构等。
Graph Neural Network(GNN)是一种基于图结构的神经网络。
其实传统的神经网络也是可以处理图数据,只需要进行前期合理的 Embedding 即可。GNN 其实是一种特征提取算法,也可以理解为 Embedding 算法,它通过在整张图上传递、聚合信息,从而进行特征提取。
更多关于 GNN 的知识可以看我的另一篇文章:简单理解图神经网络 GNN
Overview
模型的主要框架是 GNN,并且构建了两张动态图User-POI Graph和 POI-POI Graph。
Contribute:
- 考虑用户在特定场合,特定时间的下一个 POI 访问,同时将访问下一个 POI 的时间作为考虑。
- 使用多重图表示用户访问 POI 的历史记录,将访问时间作为边的权值,构建了 User-POI graph 和 POI-POI graph 用于特征提取。
DynaPosGNN
Dynamic Graphs
为了更好地利用用户 POI 的访问信息,论文根据 POI 访问序列构建了两张图: User-POI Graph 和 POI-POI Graph。
- User-POI Graph(UPG):无向动态多重图。包含所有用户节点和 POI 节点,如果用户在时间访问,那么就会在这两个节点之间添加权值为的边。表示在时间之前的 UPG 子图。
- POI-POI Graph(PPG):有向动态多重图。包含所有 POI 节点,如果用户之前位于,在时刻访问,那么就会在这两个节点之间添加权值为的边。表示在时间之前的 PPG 子图。
Factors
在User-POI Graph和 POI-POI Graph中,记录了所有的信息,论文中提出了 4 个因子,来更好地提取历史记录的特征。
-
Time interval between current and prediction time
当前时间和预测时间的时间差。
由于可能非常大,因此处理为。
-
Time interval between current and past record
当前时间和过去记录的时间差。
由于可能非常大,因此处理为。
-
Hour time difference between prediction time and past record
小时差。由于用户在一天内的活动可能是非常规律的,很可能在相似的时间访问相同的地点。对于两个不同的 Hour time,,定义:
-
Geographical distance
地理距离。
由于可能非常大,因此处理为。
半正矢公式(Haversine)是一种根据两点的经度和纬度来确定大圆上两点之间距离的计算方法。
Architecture
DynaPosGNN Layer
整体模型架构并不复杂,这里简单进行说明。就像前面说的,你可以把 DynaPosGNN Layer 理解为一个 Embedding 的过程。输入为,UPG/PPG,POI Embedding。
首先是利用之前提到的 4 个因子计算当前节点与邻居节点的关系:
使用多层感知机 Multi-Layered Perceptron(MLP)进行训练:
其中为:
GNN Aggregate
在 GNN 聚合时,由于 User-POI Graph 和 POI-POI Graph 存在差异,因此略有不同。具体来说,User-POI Graph 使用全部的边;而 POI-POI Graph 使用出边。
Output
经过 DynaPosGNN Layer 之后,我们得到了和,即 UPG 和 PPG 的向量表示。为了加强时间学习,论文又添加了时间信息,得到最终的 POI 预测结果:
EXPERIMENT
数据集
- Foursquare:New York City (FS-NYC), Tokyo (FS-TKY)
- Gowalla: San Francisco (GW-SF), Austin (GW-AUS)
评价指标
HR@K: 目标 POI 是否在前 k 个推荐列表中
NDCG@K: 根据目标 POI 在前 k 个推荐中的排名来衡量推荐的质量。
对比实验
消融实验
总结
总体看下来,一些细节的地方没怎么讲,感觉亮点还是在上。我们一般总是将 POI 访问序列看做一个整体,直观的根据序列预测下一个访问地点。这篇论文感觉就是进一步强调了用户的当前访问点以及当前访问时间;同时也将待访问时间纳入考虑,其实也就是不同时间范围的预测。