KDD2020序列推荐论文
贡献:
本文提出了一种基于自注意网络(GeoSAN)的地理感知顺序推荐算法。该算法提出了一种新的基于重要性抽样的损失函数优化方法,通过强调信息负样本的使用来解决稀疏性问题;同时,为了更好地利用地理信息,GeoSAN使用基于自注意力机制的地理编码器表示每个GPS点的分层网络。此外,本文还提出了地理感知负样本采样器,以提高负样本的信息量。使用三个真实的数据集对所提出的算法进行评估,结果表明GeoSAN比最先进的序列定位推荐算法性能提高35%。
问题:
首先地理信息没有得到有效利用。GPS位置对于描述位置之间的物理临近性很重要,个人移动历史通常表现出空间聚类现象。因此,对GPS位置进行编码是必不可少的。
其次,这些方法可能会收到稀疏性问题的影响。因为用户通常很少访问不同的位置,但是在个别访问的位置,负面偏好的位置与潜在的正面位置混合在一起。BPR是随机取样,然而样本之间信息量是不同的,在损失函数中统一对待并不是最佳方案。
解决第一个问题:新型地理编码器嵌入位置的精确GPS:首先遵循平铺地图系统将世界地图切割成不同细节级别的相同大小的平铺(即网格),并使用四叉树键进行网格寻址。然后给定特定的细节级别,GPS点被映射到一个网格,由于像四叉树这样的栅格划分,每个栅格都可以用四叉树键来识别,该键可以解释为以4为底的数字。(例如埃菲尔铁塔,lat=48.858093,lon=2.294694,在第17层详细信息中被映射为具有四键”12022001101200033“的网格),直接嵌入四边形是直观而直接的,但网格之间的空间接近度仍未编码。因此使用n-gram(12022001使用trigrams之后得到:120-202-022-220-200-001)相当于被细分,可以更好的表征相似度。
为了解决稀疏性挑战:提出了一种基于重要性抽样的加权二元交叉熵损失,以便对信息量较大的负样本进行加权。为了进一步利用地理信息,我们提出了地理感知负样本,以便以更大的概率对更多信息丰富的负面位置进行采样,从而促进负样本的信息量。
模型
1.模型细节:
输入用户的移动轨迹S,具体表示为:
其中表示用户u在时间ti访问了具有精确位置pi(lat,lon),给定输入轨迹,用Pi+1预测下一个位置Li+1。
输入序列:除了最后一个轨迹之外的所有轨迹;
输出序列:除了第一个轨迹之外的所有轨迹。
2.模型构成:
该模型一共由四部分构成,分别是embedding,self-attenton 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作为输入),目的是捕捉长期相关性。输入E,通过三个矩阵(WQ,WK,WV),再输入到下一层。.
self-attention层输入矩阵的表示E,通过三个不同的矩阵转换
在自我注意层中使用的注意模块是缩放的点积注意:
FFN同样适用于每种行为特征,被用来赋予自我主义以非线性,并对维度之间的相互作用进行编码。FNN是一个两层前反馈网络,第i步的输出是:
3)Target-aware Attention Decoder
大多数现有的方法直接将编码器阶段的输出结果直接送到匹配模块,达不到最优解。因此本文加入解码层,用目标感知注意力解码器解码【公式(4)】。
解码层:
4)Matching
用匹配函数f计算每个候选位置的得分
计算偏好位置得分:
3.地理编码器
每个精确的位置都由经纬度表示,虽然他们是连续的,但是不适合直接输入学习系统。
原因:1.经纬度表示的范围很大,而人的活动空间可能只是整个地球表面很小的一部分
2.学习系统很难学习经纬度之间的强交互作用。
因此提出的地理编码器,首先将经纬度映射到网格中,然后用自关注网络编码网格的唯一id(quadkey)来嵌入位置的精确位置。
3.2.1地图网格和GPS映射
首先按照平铺地图系统将世界地图分层划分为网格。这些网格级别每增加就变成由四个网格组成的新网格。
假设在WGS(世界大地测量系统)84基准上,则在指定水平l的情况下,在球形投影平面中转换为笛卡尔坐标,计算公式:
只需要将笛卡尔坐标(x,y)除以256,即可实现从笛卡尔坐标(x,y)到栅格的映射。由于像四叉树这样的栅格划分,每个栅格都可以用四叉键来标识,该键可以解释为以4为底的数字,其长度等于详细程度。
这样通过使用经纬度来解决GPS映射问题,解决了两者之间的强相互作用的问题。网格中的不同位置与网格共享相同的四键,并且在emb直接忽略没有位置的网格,在某种程度上解决稀疏性问题。
如果将四键值直接emb,会出现(1.地图划分比较细的时候,容易出现稀疏性,2.无法很好表征相邻网格之间的相似性)因此使用n-gram,使词向量扩大n倍,相当于emb被细分,可以更好表征相似度。(12022001被n-gram之后得到:120-202-022-220-200-001)
将四键看作一个字符序列,然后应用自关注网络对四键字符序列进行编码,捕获序列相关性,然后通过平均池化聚合n-gram(n-gram是由n个单词组成的序列,这里把数字看作单词)表示序列。
1.网格中的不同位置与网格共享相同的四元密钥,没有位置的网格在嵌入时直接被忽略,因此稀疏性问题在一定程度上得到了解决
2.(如果直接将四键作为输入,会面临数据稀疏和没有建模物理临近性问题),因此将四键看作一个字符序列,然后应用自关注网络对四键字符序列进行编码,捕获序列相关性,然后通过平均池来聚合n-gram(n-gram是由n个单词组成的序列,这里把数字看做单词)表示序列。
4.损失函数
给定序列Su,在步骤i,候选位置j的偏好分数是Yi,j根据前人研究,当候选位置的数量变大时,优化交叉熵损失是无效的【公式(7)】。由于信息负样本缺失,二元交叉熵损失难以降低
因为负样本是从未交互过的位置中随机采样的,这样经过多轮训练,正样本很容易就区分出来。并且交叉熵损失很难充分利用大量的负样本。并且可以发现打分比较高的负样本贡献了较大的梯度,但是由于效率问题,根据偏好打分采样负样本也是不行的。因此以负概率的形式对负样本进行加权:
概率P是根据特定轨迹采样出的负样本是k的概率
其中T是临时参数,控制概率分布与均匀分布的差异。
该损失函数在计算梯度的时候是十分低效的。因此考虑P的计算期望:
‘
建议将分布近似为Q(k|i),可以很容易对齐进行采样。损失为:
数据集
结果
结论:本文提出了一个地理感知的自关注顺序位置推荐其。在该推荐器中,提出了一种新的基于重要性抽样的损失函数,使得信息负样本得到更好的利用。设计了一种新的地理编码器来融合地理信息,使得空间聚类现象和距离感知的位置转移能够被隐式的捕获。开发了地理感知负采样器,以提高负采样位置信息量。