论文阅读笔记:Geography-Aware Sequential Location Recommendation
文章目录
一、需要解决的问题
针对地理信息不能有效利用和数据稀疏问题,提出了一种基于自关注网络的地理软件顺序推荐器,用于位置推荐。
地理信息为什么重要:个人移动历史通常表现出空间聚集现象,因此需要对位置的精确GPS位置进行编码;
数据稀疏的原因:用户通常会访问少量不同的位置,负面偏好的位置会与潜在的正面位置混合在一起;通常使用BPR损失[25]或二元交叉熵损失进行优化。但样本之间的信息量是不同的,因此在这些损失函数中平等对待它们不是最佳的方法。
解决方法:
地理信息不能有效利用问题:
在GeoSAN模型输入中,除了用户、位置和实践信息之外;为了解决第一个问题,嵌入了位置的精确GPS和一个新颖的地理编码器。
数据稀疏问题:
提出了一种基于重要性抽样的加权二元交叉熵损失,使信息负样本具有更大的权重;
提出了地理感知的负样本,以更大的概率对更多信息的负位置进行采样,提高负样本的信息量。
二、创新点
1、提出了新的损失函数,解决稀疏性问题解释如何解决
2、使用地理编码器来表示分层网格
3、提出具有地理意识的负样本
三、主要贡献
四、模型
1.模型细节
输入用户的移动轨迹,具体表示为:
其中:
表示用户u在时间ti访问了具有精确位置pi=(纬度= αi,经度= βi)的位置li。给定输入轨迹,用Pi+1预测下一位置Li+1。
输入序列:除了最后一个轨迹之外的所有轨迹;
输出序列:除了第一个轨迹之外的所有轨迹。
2.模型构成
该模型一共由四部分构成,分别是embedding、self-attention Encoder、Target-aware Attention Decoder和Matching。
1)embedding
输入序列首先被转换成固定长度为m的序列,m是最大长度,如果长度大于m则切分成子序列,小于m则用0填充。
将用户,时间,每个行为的的位置和用编码器编码的精确位置编码成向量。
注:
由于Self-Attention Encoder不能像RNN那样捕捉序列中的相对位置,我们将位置嵌入P加入E,即E = E + P。
2)Self-Attention Encoder.
每个自关注块由一个自关注层和一个点状前馈网络(FFN)组成;
用self-attention编码器变换序列表示矩阵E,目的是捕捉长期相关性。输入E,通过三个矩阵(Q,K,V),再输入到下一层。
3)Target-aware Attention Decoder
大多数现有的方法直接将编码器阶段的输出结果直接送到匹配模块,达不到最优解。因此本文加入解码层,用目标感知注意力解码器解码【公式(4)】。
4)Matching
用匹配函数f计算每个候选位置的得分
3.Geography Encoder
每个精确的位置都由经度和纬度表示,虽然他们是连续的,但是不适合直接输入学习系统。
原因是:1、精度和维度表示的范围很大(整个地球表面),人们的活动空间可能只是整个地球表面很小的一部分;
2、其次是学习系统很难学习经纬度之间的强交互作用。
因此提出地理编码器,首先将纬度和经度映射到网格中,然后用自关注网络编码网格的唯一id (quadkey)来嵌入位置的精确位置。
1、网格中的不同位置与网格共享相同的四元密钥,没有位置的网格在嵌入时被直接忽略,因此稀疏性问题在一定程度上得到了解决。
2、(如果直接将四键作为输入,会面临数据稀疏和没有建模物理邻近性问题)因此,将四键看做一个字符序列,然后应用自关注网络对四键字符序列进行编码,捕获序列相关性,然后通过平均池来聚合n-gram(n-gram是由n个单词组成的序列,这里把数字看做单词)表示序列。
4、损失函数
给定序列Su,在步骤i,候选位置j的偏好分数是Yi,j根据前人研究,当候选位置的数量变大时,优化交叉熵损失是无效的【公式(7)】。由于信息负样本缺失,二元交叉熵损失难以降低
5.公式梳理
self-attention层输入矩阵的表示E,通过三个不同的矩阵转换
在自我注意层中使用的注意模块是缩放的点积注意:
FFN同样适用于每种行为表征,被用来赋予自我注意以非线性,并对维度之间的相互作用进行编码。FNN是一个两层前馈网络,第i步的输出是
解码层:
计算偏好位置得分:
将经纬度转换成笛卡尔坐标:
二元交叉熵损失函数:
对未访问的位置进行加权,给偏好得分位置较大的地方赋予较大的权重:
总结
这篇文章提出了一个地理感知的自关注顺序位置推荐器。在该推荐器中,提出了一种新的基于重要性抽样的损失函数,使得信息负样本得到更好的利用,并设计了一种新的地理编码器来融合地理信息,使得空间聚类现象和距离感知的位置转移能够被隐式捕获。开发了地理感知阴性样本,以提高样本阴性位置的信息量。