有效
基于时空嵌入Self-Attention的用户轨迹位置预测方法
王爽、李安良、刘胜楠、张思远
东北大学
王
王爽机构 暂无
技术领域 暂无
李
李安良机构 暂无
技术领域 暂无
刘
刘胜楠机构 暂无
技术领域 暂无
张
张思远机构 暂无
技术领域 暂无
摘要
本发明提供一种基于时空嵌入Self‑Attention的用户轨迹位置预测方法,涉及用户位置预测和时空数据挖掘技术领域。该方法首先从原始签到记录的用户历史轨迹中读取所有用户标识、POI标识、访问时间、POI的地理位置信息;计算所有POI之间的空间距离成本及每一用户的所有轨迹点之间时间间隔以及时间戳信息;然后基于用户历史轨迹建立时空嵌入Self‑Attention模型,得到用户下一个访问点概率分布;建立的时空嵌入Self‑Attention模型同时考虑到POI的地理位置信息和用户历史访问POI的时间信息对于用户下一次访问行为的影响。本发明方法显著提高了轨迹预测模型的训练速度,大大缩短轨迹模型训练时间,同时也提升了模型的预测精度。
1.一种基于时空嵌入Self-Attention的用户轨迹位置预测方法,其特征在于:包括以下步骤:步骤1、从原始签到记录的用户历史轨迹中读取所有用户标识、POI标识、访问时间、POI的地理位置信息;所述用户轨迹是由多个轨迹点按照用户访问时间组成的一个序列,每个用户轨迹点包含POI地理位置信息和访问时间信息;步骤2、对用户轨迹信息进行筛选并对每个用户历史轨迹信息划分成多条子轨迹,对于每个轨迹点记录POI地理位置和用户访问时间信息;步骤3、利用POI地理位置信息,计算所有POI之间的空间距离成本;利用每一用户轨迹点的访问时间信息,计算每一用户的所有轨迹点之间时间间隔以及时间戳信息;步骤4、基于用户历史轨迹建立时空嵌入Self-Attention模型,得到用户下一个访问点概率分布,具体方法为:步骤4.1、对用户的每个POI进行嵌入,进而对用户轨迹点进行编码表示;步骤4.2、使用距离代价函数计算POI间空间距离;同时计算用户轨迹点时间间隔;步骤4.3、使用嵌入表示计算用户轨迹的地点注意力值;步骤4.4、使用POI间空间距离和用户轨迹点时间间隔分别计算用户轨迹的空间注意力值和时间注意力值;步骤4.5、将用户轨迹的地点注意力值和空间注意力值以及时间注意力值使用线性函数连接,计算出用户轨迹的总注意力值,进而得到用户前L个轨迹点编码的特征矩阵;步骤4.6、重复步骤4.3-步骤4.5h次,得到h个空间上的轨迹点编码的特征矩阵,进而得到时空嵌入Self-Attention的用户轨迹表示;步骤4.7、将时空嵌入Self-Attention的用户轨迹表示输入到前馈神经网络,得到用户下一个访问点概率分布;所述步骤4.1的具体方法为:对于一条长度为L的用户轨迹,使用编码后的POI向量对用户的轨迹数据进行表示,表示为X u =x 1 ,x 2 ,..,x L ,其中x i ={p i ,(latitude,longitude) i ,t i },x i 包括三个部分:p i =p i W p 表示用户轨迹中第i个POI的嵌入向量, p i 是第i个POI的one-hot编码, 是POI编码矩阵,每一列表示一个POI的编码向量,d p 是POI的嵌入维度,V={v 1 ,v 2 ,...,v |V| }表示POI集合,|V|是POI集合大小,表示POI个数;(latitude,longitude) i 是第i个POI的经纬度坐标,即POI的地理位置信息,t i 表示用户访问第i个POI的时间戳;所述步骤4.2的具体方法为:计算所有POI之间的空间距离并保存在矩阵D中,然后通过索引的方式查询;给定两POI点v i 和v j ,两POI点的空间距离d(v i ,v j )通过以下公式计算:其中, R为地球半径,可取平均值6371km, 表示v i 和v j 两POI点的纬度,Δλ表示v i 和v j 两POI点经度的差值;设操作D[·]为从矩阵D中索引的操作,给定输入X u 的索引结果为D u ,如下公式所示:D u =D[X u ]用户轨迹点时间间隔如下公式所示:其中, 为用户u访问第i个POI和第j个POI的时间间隔,t i 、t j 分别用户u访问第i个POI和第j个POI的时间戳;所述步骤4.3的具体方法为:通过一个非线性变换将自注意力函数的查询query,键key和值value投射到同一空间上,进而计算query、key和value的值Query、Key和Value,如下公式所示:Query=ReLU(P u W Q )Key=ReLU(P u W K )Value=ReLU(P u W V )其中,P u =[p 1 ,p 2 ,...,p L ] T 表示用户u的轨迹序列的轨迹编码矩阵, 和 分别是query,key和value的权重矩阵,RELU是非线性激活函数;d Q =d K =d V 分别表示query,key和value的维度,d=d p ;计算用户轨迹的地点注意力值,如下公式所示:其中, 为用户轨迹的地点注意力值,Query和Key T 通过点积操作“·”计算相似度;步骤4.4所述计算用户轨迹的空间注意力值如公式所示:其中, 为空间注意力值矩阵,ε为距离阈值,如果地点序列中第i个POI所在地理位置和序列中第j个POI所在地理位置之间距离 小于距离阈值ε,则 为1;除此之外, 对角线上的元素全部设为0;计算的用户轨迹的时间注意力值如下公式所示:T u =[t 1 ,t 2 ,...,t L ] T其中, 为用户轨迹的时间注意力值矩阵,MinMaxNorm(·)函数将时间特征进行离差标准化,取值映射到[0,1], 定义的是将T u 映射到 的一个操作,T u 表示用户u访问POI的时间戳;步骤5、使用步骤3处理后的每一用户轨迹序列的80%当作训练数据,20%当作测试数据;使用训练数据对时空嵌入Self-Attention模型进行训练;使用测试数据对时空嵌入Self-Attention模型进行测试;步骤6、将某用户历史轨迹信息数据进行编码处理后,输入时空嵌入Self-Attention模型中,模型给出用户下一次访问地点的概率分布,即下一次访问地点Top-k的概率值,实现对用户轨迹位置的预测。
2.根据权利要求1所述的基于时空嵌入Self-Attention的用户轨迹位置预测方法,其特征在于:所述对用户轨迹信息进行筛选并对每个用户历史轨迹信息划分成多条子轨迹的具体方法为:移除签到记录少于10条记录的用户,并对连续签到记录时间大于72小时的记录划分成多条子轨迹,移除少于5条记录的子轨迹,并移除子轨迹数量小于2的用户。
3.根据权利要求1所述的基于时空嵌入Self-Attention的用户轨迹位置预测方法,其特征在于:所述步骤4.5的具体方法为:使用参数β,γ连接用户轨迹的空间注意力矩阵和时间注意力矩阵,并与地点注意力值连接,得到用户轨迹的总注意力值矩阵,如下公式所示:其中,S u 为用户轨迹的总注意力值矩阵,表示和每个轨迹点的状态相关程度;再使用softmax函数将用户轨迹的总注意力值映射到[0,1],然后和value值做点积,得到用户前L个轨迹点编码的特征矩阵,如下公式所示:A u =softmax(S u )·Value其中,A u 是用户u前L个轨迹点编码的特征矩阵,表示当前时刻轨迹点状态跟前L个时刻的轨迹点状态相关。
4.根据权利要求3所述的基于时空嵌入Self-Attention的用户轨迹位置预测方法,其特征在于:所述步骤4.6的具体方法为:在不同的h个空间上设计h次attention,得到多个轨迹点编码的特征矩阵,如下公式所示:最后,将h次attention结果拼接然后线性转换得到多次attention后的时空嵌入Self-Attention的用户轨迹Traj u ,如下公式所示:其中, 是投射参数矩阵,concat(·)是连接函数,Traj u 是L×d的特征矩阵,表示用户的轨迹编码,h=d/d V 是平行attention的层数。
暂无引用专利



