来源 | 韬韬笔记
作者 | 罗颖韬
本文对中科院自动化所和华盛顿大学的研究人员合作发表在WWW 2021的论文《STAN: Spatio-Temporal Attention Network for Next Location Recommendation》进行解读。
基于地点的移动端服务商,譬如Yelp、Uber,要从大量的用户签到和轨迹信息中学习用户的行程习惯,对用户下一个访问地点进行预测,并以此为用户的下一步行程需求进行规划和推荐。然而,现有模型对时空信息的利用存在局限性,譬如只利用前后一步的时间和空间差[1,2],人为划分空间区域[3]或者只聚合距离较近的地点[4],并对访问地点的频率不加考虑。本文旨在提出一种基于注意力机制的神经网络架构,考虑用户访问轨迹中每个访问点相较于整个过往访问轨迹的时空关系,以此对不相邻非连续但功能相近的访问点进行关联,打破以往仅仅关联连续、相邻访问点的限制。
1 问题背景和主要贡献
地点序列推荐任务过去主要依赖于马尔可夫模型和循环神经网络。最近两年,随着神经网络的发展,注意力机制和图模型逐渐被用在地点序列推荐任务中,其预测精度和召回率相较于过去的模型获得显著的提高。然而,当下的模型仍有以下三个局限:1)空间上不相邻且时间上非连续的访问点可能是功能相关的,然而过去的绝大多数模型只考虑空间上处于一个区域且时间上前后邻近的访问点的时空关联;2)空间上划分区域的方法使得模型对空间距离不敏感,不可避免地丢失了空间差信息和不相邻点的关联信息;3)过去模型没有充分考虑用户访问频率。
我们不妨截取真实数据中一位用户的轨迹片段进行可视化,以说明为何不相邻非连续的访问却有可能是时空和功能上高度相关的。在上图中,我们用0-6这7个阿拉伯数字分别表示7个地点,用一个时间轴将该用户访问的顺序和时间表示出来;其中,虚心坐标0、1、2分别代表家、公司、商场(根据GPS定位查找得出),而实心坐标代表餐馆。可以看到,这位用户总在周末逛商场、在工作日去公司,并且有就近就餐的习惯。显然,在这里,用户总在餐点去餐馆打卡,而不同的餐馆虽然相互地理位置和时间上不相邻,却反映类似的功能,因此在时空上呈现明显的关联性。这种关联性可以有效地帮助我们推断用户在某个具体的时空点如何规划下一步访问计划。
本文提出一种新的地点序列推荐的模型,STAN,即时空注意力网络:
- STAN是第一个将用户访问轨迹中每个访问点相较于过往访问轨迹的直接时空差纳入地点序列推荐的模型,让STAN具备从全局轨迹层面上聚合时空不相邻访问点的能力。
- 离散化嵌入空间与时间差值时,STAN建立单位时间空间向量,使用插值方法替换空间网格划分区域的方法,对时空关联差值大小更加敏感。
- STAN采用一种双层注意力架构:前一层聚合轨迹内相关访问点以更新地点表示;后一层根据当前时空点和轨迹内访问点的时空关联召回候选集中的地点。相同的地点可能在轨迹内重复出现,因此重复召回考虑了用户的访问频率。
- STAN使用了平衡的样本采集器,缓解了正负样本不均衡问题。
- STAN与其他State-Of-The-Art模型在四个真实数据集上的对比和消融实验表明,STAN可以有效提升召回率9-17%左右,并且提出的每一个架构改进均有提升效果。
2 问题定义
1、历史轨迹
在我们考虑的问题中,每一个用户 的轨迹 是由一连串的访问点 组成的,其中每个访问点包含有用户、地点序号、时间,即 。我们可将用户、地点和时间的集合表示为
。每个地点对应一个单独的经纬度坐标,因此我们可以直接通过 函数求得每两个地点 和 之间的地理距离 。由于每个用户的到访记录序列均不相同,且长短不一,数据预处理阶段我们截取一个最大长度为 的序列 ;如果 则截取最近的 个访问点,如果 则向原序列右边补零(不参与计算)。
2、轨迹时空关联矩阵
我们可以将两点之间的时间差和地理距离作为直接时空关联信息,其中序列中第 个点和第 个点之间的时间差和空间距离分别表示为
。计算轨迹内每个访问点之间的时空关联,分别得到时间矩阵 和空间矩阵 。
3、候选时空关联矩阵
除了轨迹内部的时空关联,我们还可以将轨迹中每个访问点与候选集中可能的下一点间的时空关联信息用于下一点预测,其中轨迹中第 个点和候选集中第 个点之间的时间差和空间距离分别表示为
。计算轨迹内每个访问点之间的时空关联,可以分别得到时间矩阵 和空间矩阵 。
4、下一地点预测
给定用户轨迹 ,地点集合 ,轨迹时空关联矩阵 和候选时空关联矩阵 ,我们的目标是精准预测下一个访问点的地点序号 。
3 模型与方法
模型总共由四个模块组成:嵌入模块,自注意力聚合层,注意力匹配层,平衡采样器。
1、嵌入模块
1.1 用户轨迹嵌入层
我们用三个独立的嵌入层将用户、地点、时间转换为潜表示 。用户和地点的嵌入输出维度都由超参数 决定,而输入维度由集合的尺寸决定。时间的嵌入输入维度是由其一周中的具体小时时间戳决定的;由于一周有7x24=168小时,所以时间输入维度是168。用户轨迹嵌入层的最终输出是三个嵌入层结果的求和,即 。对每个用户序列 ,我们将其嵌入表示写为
。
1.2 时空嵌入层
我们提出时间和空间差的单位嵌入层 ,将每个小时和每一百米作为基本单元,映射到一个维度为 的欧氏空间。对于每两个访问点之间的时间差和空间差的嵌入表示,我们可以计算其真实差值乘以单位嵌入表示,而不是对每一个的时间差和空间差单独作为嵌入维度。这样做的好处是,在时空嵌入的过程中,我们仍然可以保持对差值的敏感度,大大减少计算量(输入维度仅为2)。 的计算方式可以表达为:
经过嵌入得到的
再经过求和,可以得到最终的轨迹嵌入 和候选嵌入 。
2、自注意力聚合层
该模块的作用是聚合轨迹内相关的访问点并且以此更新每个访问点的表示。这里使用的自注意力机制可以捕捉长期记忆,并且,每一个访问点对当前点的影响和时空关联均会被考虑。给定非零长度为 的轨迹的 和 ,该层首先构建一个mask矩阵 ,其左上角元素 为1,其余元素为0;并同时构建参数矩阵 ,计算出该层输出 :
3、注意力匹配层
该模块的作用是从候选地点集合中召回最有可能下一步访问的地点。给定用户轨迹更新后的表示 ,地点集合的嵌入表示 和候选时空关联矩阵 ,该层计算每个候选地点为下一个访问点的概率:
其中, 操作符是对最后一个维度的加权求和,因此 。
4、平衡采样器
中只有一个正样本,其他均是负样本,正负样本的不均衡可能导致全样本的损失函数失效。这里我们不妨在每次计算损失函数时只采样部分负样本,在参数更新的过程中,更倾向于”奖励得到正确的结果“而不是”避免得到错误的结果“。考虑超参数 表示负样本数,可以将损失函数改写为:
4 实验
1、对比实验
这里我们考虑四个真实数据集:Gowalla, SIN, TKY和NYC,如图。
划分数据集时,我们主要考虑因果关系避免穿越现象:即只使用过往的访问点来预测当前访问点的下一步,而不能使用未来的数据。对于一个长度为 的用户访问序列,可以得到 个训练数据,以最开始的 个数据为输入序列,以第 个访问地点为标签。而验证数据集则是以最开始的 个数据为输入序列,以第 个访问点为标签。最后,以最后一个访问点为标签,构建测试数据集。
我们选取了近三年尤其是最近一年的最先进的模型作为基线:
1)STRNN,一种基于RNN的考虑前后一步时空差的推荐系统;
2)DeepMove,一种结合RNN和Attention的考虑周期性的系统;
3)STGN,一种加入时间和距离差的门结构的新型RNN推荐系统;
4)ARNN,一种考虑语义和用图聚合近邻空间信息的LSTM推荐系统;
5)LSTPM,一种将长期记忆和短期记忆相结合的序列推荐系统;
6)TiSASRec,一种考虑各访问点之间时间差的自注意力推荐系统;
7)GeoSAN,一种使用人为网格进行空间离散化的自注意力系统。
我们采用召回率作为评估推荐效果的指标:Recall@5和Recall@10。Recall@k是计算概率最大的前k个样本中出现真实标签的比例,值越高代表模型的效果越好。从图中可以看到,STAN的效果比过去最好的模型的召回率高9-17%不等,有非常明显的提升。这里的召回率使用的是不同种子十次训练完毕后的召回率平均值。
2、消融实验
我们考虑消融以下模块以判断其对推荐效果的提升程度:
1)SIM,即使用轨迹内访问点之间空间距离差求和构建轨迹矩阵和候选矩阵;
2)EWSI,即此前的工作TiSASRec提出的矩阵元素单独计算的空间矩阵构建;
3)TIM,即使用轨迹内访问点之间时间差求和构建轨迹矩阵和候选矩阵;
4)EWTI,即此前的工作TiSASRec提出的矩阵元素单独计算的时间矩阵构建;
5)BS,即使用平衡采样器改进损失函数。
实验表明,采样器的提升大约在5-12%,用空间和时间差作为信息提供了4-8%左右的提升;使用直接的矩阵计算和矩阵元素单独计算并没有太大差别,但更加省时。如果,将所有1-5的模块都排除,-ALL的效果仍然比基于RNN的模型要好,因为它考虑了访问频率。
3、稳定性实验
我们考虑修改嵌入维度和采样器中负样本数量这两个超参数对推荐效果的影响,以判断STAN在不同超参数下的稳定性。如图,Gowalla作为一个大数据集,比较容易受到过低嵌入维度的影响,但对负样本数量增加不敏感;其它数据集对维度和样本量都不敏感,除了SIN数据集对于负样本量的增加不是非常稳定。总体来说,STAN对于超参数的变化并不是非常敏感,多数时候超参数的一步变化只对模型效果有0.1-0.5%的影响。
4、解释性实验
我们考虑可视化自注意力聚合层中的相关性矩阵,即query和key相乘经过softmax得到的矩阵;以第一部分问题背景的案例图为例,STAN不仅会将地理距离较近的访问点聚合起来作为相关,而且将不相邻非连续但功能相近的访问点聚合起来。STAN具备自动从时空关系中挖掘相关联访问点的学习能力。
5 总结
本文提出了一种时空注意力网络STAN,能够有效学习不相邻非连续访问点之间的时空关联,用单位时空离散化替代空间网格,通过双层结构设计考虑用户访问频率。本文在四个真实数据集上用对比、消融、稳定性、解释性实验分析了该方法的实际效果,发现STAN能够有效提高目前已知最好模型的推荐效果和召回率达9-17%。
原文链接:https://arxiv.org/abs/2102.04095
Github链接:https://github.com/yingtaoluo/Spatial-Temporal-Attention-Network-for-POI-Recommendation