一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于位置编码器和时空嵌入的位置推荐方法

2022-07-14 01:28:08 来源:中国专利 TAG:


1.本发明涉及用户位置推荐技术领域,具体涉及一种基于位置编码器和时空嵌入的位置推荐方法。


背景技术:

2.近年来,数字技术的快速发展使得人类行为轨迹的数字化变得更加容易,这导致了基于位置的社交网络(lbsns)的流行,如foursquare和gowalla。这些数据集使研究人员很容易预测人类的行为模式。人类的流动性和流动模式并不总是可预测的,因为它们具有高度的自由度和多样性,捕捉人类的轨迹同样也是一项挑战。
3.作为一种传统的位置预测方法,马尔可夫链(mc)模型的主要思想是将个体的运动轨迹表示为马尔可夫模型。然后计算状态转移矩阵,并根据历史信息预测下一个位置。它只对短期时间序列进行建模,预测能力有限。近年来,递归神经网络及其变体在提取长期序列信息方面取得了良好的效果。strnn使用rnn模型结合时空信息预测下一个位置。该模型能够自动捕获时空信息的内部表示,并对人体运动模式进行建模。rnn模型处理长序列数据的能力较差,最近提出了rnn变体(lstm,gru)来处理梯度消失问题。hst-lstm模型使用编码器和解码器,并在lstm中嵌入时空向量来预测下一个位置。提出了学习序列间长期相关性的注意事项。deepmove使用注意力增强rnn来了解用户的移动性。vanext充分利用cnn和注意力,了解历史轨迹的规律并预测下一个位置。
4.专利“cn111400620a基于时空嵌入self-attention的用户轨迹位置预测方法”计算所有poi之间的空间距离成本并基于用户历史轨迹建立时空嵌入。它仅仅考虑了相对时空信息并没有考虑绝对时空信息。而本技术提供的模型通过计算poi之间的空间距离和时间间隔来获取相对时空信息,通过位置编码器和用户访问时间信息来获取绝对时空信息,并让位置预测的精度更高。


技术实现要素:

5.本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于位置编码器和时空嵌入的位置推荐方法,同时考虑poi的地理位置信息和用户历史访问poi的时间信息对于用户下一次访问行为的影响,通过用户历史轨迹信息预测出用户下一次要访问地点。
6.本发明所采取的技术方案是:
7.一种基于位置编码器和时空嵌入的位置推荐方法,包括以下步骤:
8.步骤1:进行数据预处理并获得每个用户的签到序列,签到序列按照访问时间逐个排序,
9.步骤2:对用户轨迹信息进行筛选并对每个用户历史签到序列进行处理,
10.将签到序列少于a的用户移除掉,将访问次数小于b的位置移除,将输入的序列从左向右切分转变成固定长度的序列,固定长度设置为l,当输入序列长度小于l,向右添加padding;当输入序列长度大于l时,对其进行切分;
11.步骤3:将每个经纬度坐标映射为一个数字序列,通过滑动窗口和自注意力网络计算数字序列的编码表示;
12.步骤4:基于用户历史签到记录建立时空嵌入自注意力模型,得到用户下一个访问点概率分布;
13.步骤5:将处理好的用户历史签到记录数据输入时空嵌入自注意力模型中,模型给出用户下一次访问地点的概率分布,根据概率分布的top-k值对用户进行位置推荐。
14.所述签到包括poi标识、poi种类、访问时间信息和poi地理坐标信息。
15.所述历史签到包括poi标识,poi种类,poi地理坐标和用户访问时间信息。
16.所述s3具体过程,包括以下步骤:
17.步骤3.1:采用墨卡托投影将整个世界映射成网格,不同等级的网格所代表的数字序列的粗细粒度不同;在给定序列长度等级m的情况下,使用墨卡托投影将经纬度坐标转换成笛卡尔坐标的计算如式(1)和式(2)所示:
[0018][0019][0020]
x为笛卡尔横坐标,y为笛卡尔纵坐标,可以将地理坐标映射为网格;由于网格划分类似于四叉树,所有网格可以由一个0-3的数字序列来表示;
[0021]
步骤3.2:采用滑动窗口和子注意力网络对数字序列进行进一步编码,使用长度为l步长度为s的滑动窗口将数字序列转化为n个子序列,依次将子序列进入嵌入层生成向量,采用自注意力网络和全连接层获取序列之间关系,通过池化层来生成编码向量。
[0022]
所述s4具体过程,包括以下步骤:
[0023]
步骤4.1:对用户的签到记录进行嵌入;
[0024]
步骤4.2:使用签到记录的嵌入表示计算用户签到的绝对时空注意力值;
[0025]
步骤4.3:使用空间距离函数计算签到序列的poi之间的空间距离矩阵并计算相对空间注意力值;
[0026]
步骤4.4:计算签到序列的各个poi的访问时间间隔矩阵以及计算相对时间注意力值;
[0027]
步骤4.5:将用户签到序列的绝对时空注意力值和相对空间注意力值以及相对时间注意力值使用线性函数连接,计算出用户轨迹的总注意力值,得到用户前l个轨迹点编码的特征矩阵;
[0028]
步骤4.6:将时空嵌入self-attention的用户轨迹表示输入到前馈神经网络,通过softmax激活函数得到用户下一个访问点概率分布。
[0029]
所述s4.1具体过程,包括以下步骤:
[0030]
对一个长度为l的用户签到记录,使用word2vec将第i个poi的poi标识的one-hot表示vi,poi种类的one-hot表示ci和数字序列编码后的向量qi分别嵌入到低维向量中,如式(3)-式(5)所示:
[0031][0032]
[0033][0034]
式(3)-式(5)相应的嵌入矩阵,如式(6)-式(8)所示:
[0035][0036][0037][0038]
其中,|v|表示poi标识;|c|表示poi种类;|q|为坐标编码表示的总数;将嵌入后的向量拼接成将访问时间戳ti进行编码并加入到qi中来区分序列的前后顺序,如式(9)和式(10)所示:
[0039][0040][0041]
其中,表示对时间戳进行编码后的向量,d是编码向量的维度,将pi重写成重写成
[0042]
使用嵌入后的向量对序列数据进行表示,第u个用户的表示为iu={i1,...,ii,...,i
l
}.其中ii={pi,{lat,lon}i.ti}。{lat,lon}i表示序列中第i个poi的经纬度坐标,ti表示访问第i个poi的时间戳。
[0043]
所述s4.2具体过程,包括以下步骤:
[0044]
通过自注意力网络将查询query,键key和值value投射到同一空间上来获取嵌入向量的绝对时空关系,如式(11)-式(13)所示:
[0045]
query=relu(puwq)
ꢀꢀꢀ
(11)
[0046]
key=relu(puwk)
ꢀꢀꢀ
(12)
[0047]
value=relu(puwv)
ꢀꢀꢀ
(13)
[0048]
其中,pu=[p1,...,p
l
]表示第u个用户的签到序列的编码矩阵,]表示第u个用户的签到序列的编码矩阵,分别是query,key和value的权重矩阵,dq=dk=dv=d表示权重矩阵的维度;relu表示激活函数;计算绝对注意力值,如式(14)所示:
[0049][0050]
其中,表示绝对时空注意力;pi仅仅表示当前poi的绝对时间和绝对地理坐标信息,并没有考虑到其它签到的时空信息,因此它是以一种局部的视角来进行时空信息的提取。
[0051]
所述s4.3具体过程,包括以下步骤:
[0052]
计算每个poi和其它poi之间的相对空间距离并把它保存在矩阵dis中;
[0053]
分别给定两个poi为pi和pj,它们之间的距离dis(pi,pj)可以通过式(15)计算:
[0054][0055]
其中,αi,αj分别表示pi和pj的纬度坐标;δβ表示两个poi之间的经度的差值。
[0056]
r表示地球的半径;
[0057]
通过输入iu来计算disu,如式(16)所示:
[0058]
disu=dis[iu]
ꢀꢀꢀ
(16)
[0059]
表示disu中第i行第j列的元素,它的值表示pi和pj的空间距离;disu表示用户u的相对空间注意力矩阵。
[0060]
所述s4.4具体过程,包括以下步骤:
[0061]
给定用户访问时间序列tu=[t1,...,t
l
]
t
,计算每个poi和其它poi之间的访问时间间隔并把它保存在矩阵中,如式(17)-(19)所示:
[0062][0063][0064][0065]
其中,为用户的时间注意力值矩阵;minmaxnorm(
·
)是一个将输入矩阵映射到[0.1]区间的函数。f
t
(tu)是将tu映射到的函数。
[0066]
所述s4.5具体过程,包括以下步骤:
[0067]
使用参数β,γ聚合用户的相对时间注意力矩阵和相对空间注意力矩阵并和绝对时空注意力矩阵连接,如式(20)所示:
[0068][0069]
su聚合了绝对时空注意力信息和相对时空注意力信息。然后对su采用softmax函数并和value进行点积,如式(21)所示:
[0070]au
=softmax(su)
·
value
ꢀꢀꢀ
(21)
[0071]
其中,au是用户u前l个签到编码的特征矩阵。
[0072]
所述s4.6具体过程,包括以下步骤:
[0073]
将签到编码的特征矩阵au进入到全连接网络和softmax中,最终输出下一个位置的概率分布,如式(22)所示:
[0074][0075]
其中,表示对l 1个签到进行预测的概率分布;通过概率分布选取top-k个位置来对用户进行位置推荐。
[0076]
有益技术效果
[0077]
本发明提供的基于位置编码器和时空嵌入的位置推荐方法,通过位置编码器和注意力将空间地理坐标编码成向量缓解了空间地理坐标的稀疏性,将抢了坐标之间的关联性。时空嵌入自注意力模型对用户签到记录进行深入挖掘,提取用户签到特征向量再通过全连接神经网络去预测用户下一次要访问的poi。一方面,使用基于位置编码器的时空嵌入自注意力模型取代了传统的循环神经网络和卷积神经网络,在计算方式上可以并行,显著提高了位置预测模型的训练速度,为将其实际应用提供了可能。另一方面,基于位置编码器和时空嵌入的位置推荐方法创新式的融合了poi的地理坐标和签到时间戳这些重要轨迹信息,充分地提取了绝对时空信息和相对时空信息,弥补了传统模型很难考虑到多方面轨迹信息对于预测模型的影响。最后,在预测精度方面相比之前模型获得了重大的性能提升。
附图说明
[0078]
图1为本发明实施例提供的一种基于位置编码器和时空嵌入的位置推荐方法流程
图。
[0079]
图2为本发明实施例提供的一种基于位置编码器和时空嵌入的位置推荐方法位置编码器图。
[0080]
图3为本发明实施例提供的位置预测方法的一种基于位置编码器和时空嵌入的位置推荐方法架构图。
具体实施方式
[0081]
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述;
[0082]
本实施例以foursquare签到数据为例,提出了一种基于位置编码器和时空嵌入的位置推荐方法;对用户位置进行推荐,如图1和图2所示,包括以下步骤:
[0083]
步骤1:进行原始签到数据预处理并获得每个用户的签到序列,签到序列是由一个个签到按照访问时间来排序的,每个签到包括poi标识、poi种类、访问时间和poi的地理坐标信息;
[0084]
本实施例中,foursquare签到数据集收集某市用户日常签到行为,每一条记录包括用户名,签到时间,签到地点、地点名称、地点种类及所在经纬度坐标等地理位置信息;
[0085]
本实施例中,将签到用户集合表示成u={u1,u2,...,u
|u|
},|u|是用户集合大小,表示签到用户个数,poi集合表示成s={s1,s2,...,s
|s|
},|s|是poi集合大小,表示poi的总数;
[0086]
本实施例中,poi是坐标系统中的一个地点,包括位置标识ν,位置种类c(餐馆,学校等)和地理经纬度坐标信息l;
[0087]
本实施例中,将一个签到记录表示为一个元组rtu=《u,s,t》,表示用户u在时间戳为t的时候访问了位置s;
[0088]
用户签到序列是用户签到按照访问时间排序的一个集合lu表示用户签到序列的长度,表示用户签到序列中的第i个签到记录;
[0089]
本实施例中,位置推荐问题为:对于给定用户集u,poi集5和任意一个用户u和其轨迹该问题是给用户推荐在时间步lu 1可能会访问的
[0090]
步骤2:对用户轨迹信息进行筛选并对每个用户历史签到序列进行处理,每个历史签到包括poi标识,poi种类,poi地理坐标和用户访问时间信息;
[0091]
本实施例中,对数据集中数据进行筛选,将历史签到序列少于20的用户移除掉,然后将访问次数小于5的位置移除掉,将输入的用户历史签到序列从左向右切分转变成固定长度的序列,固定长度设置为l,当输入序列长度小于l,向右添加padding;当大于l时,对其进行切分;其中,l为可设定的阈值,根据实际情况进行调整;
[0092]
步骤3:将每个经纬度坐标映射为一个数字序列,通过滑动窗口和自注意力网络计算数字序列的编码表示,使用位置编码器对地理经纬度坐标进行编码;
[0093]
本实施例中,包括以下步骤:
[0094]
步骤3.1:首先采用墨卡托投影将整个世界映射成网格,而且不同等级的网格所代表的数字序列的粗细粒度不同,每一个经纬度坐标都能映射成一个网格的数字序列;在给定序列长度等级m的情况下,使用墨卡托投影将经纬度坐标转换成笛卡尔坐标的计算如下:
[0095]
[0096][0097]
x为笛卡尔横坐标,y为笛卡尔纵坐标,可以将地理坐标映射为网格;由于网格划分类似于四叉树,所有网格可以由一个0-3的数字序列来表示;
[0098]
同时,没有位置的网格会被忽略,缓解了数据稀疏性问题;
[0099]
步骤3.2:采用滑动窗口和子注意力网络对数字序列进行进一步编码,首先使用滑动窗口将数字序列转化为n个子序列,以8级数字序列01220211为例,经过了长度为5步长为1的滑动窗口之后生成的子序列为01220->12202->22021->20211,长度为4;然后一次将子序列进入嵌入层生成向量,:采用自注意力网络和全连接层来获取序列之间关联,再通过池化层来聚合向量表示;
[0100]
在本实例中,最终生成的向量用qi表示;qi表示了用户的签到序列中的第i个poi经过位置编码器处理后得到的向量;
[0101]
步骤4:基于用户历史签到记录建立时空嵌入自注意力模型,如图3所示,得到用户下一个访问点概率分布,具体方法为:
[0102]
步骤4.1:对用户的签到记录进行嵌入;
[0103]
对一个长度为l的用户签到记录,使用word2vec将第i个poi的poi标识的one-hot表示vi,poi种类的one-hot表示ci和数字序列编码后的向量qi分别嵌入到低维向量中,如式(3)-式(5)所示:
[0104][0105][0106][0107]
式(3)-式(5)相应的嵌入矩阵,如式(6)-式(8)所示:
[0108][0109][0110][0111]
其中,|v|表示poi标识;|c|表示poi种类;|q|为坐标编码表示的总数;将嵌入后的向量拼接成将访问时间戳ti进行编码并加入到qi中来区分序列的前后顺序,如式(9)和式(10)所示:
[0112][0113][0114]
其中,表示对时间戳进行编码后的向量,d是编码向量的维度,将pi重写成重写成
[0115]
使用嵌入后的向量对序列数据进行表示,第u个用户的表示为iu={i1,...,ii,...,i
l
}.其中ii={pi,{lat,lon}i.ti};{lat,lon}i表示序列中第i个poi的经纬度坐标,ti表示访问第i个poi的时间戳;
[0116]
步骤4.2:使用签到记录的嵌入表示计算用户签到的绝对时空注意力值;
[0117]
通过自注意力网络将查询query,键key和值value投射到同一空间上来获取嵌入向量的绝对时空关系,如式(11)-式(13)所示:
[0118]
query=relu(puwq)
ꢀꢀꢀ
(11)
[0119]
key=relu(puwk)
ꢀꢀꢀ
(12)
[0120]
value=relu(puwv)
ꢀꢀꢀ
(13)
[0121]
其中,pu=[p1,...,p
l
]表示第u个用户的签到序列的编码矩阵,]表示第u个用户的签到序列的编码矩阵,分别是query,key和value的权重矩阵,dq=dk=dv=d表示权重矩阵的维度;relu表示激活函数;计算绝对注意力值,如式(14)所示:
[0122][0123]
其中,表示绝对时空注意力;pi仅仅表示当前poi的绝对时间和绝对地理坐标信息,并没有考虑到其它签到的时空信息,因此它是以一种局部的视角来进行时空信息的提取;
[0124]
步骤4.3:使用空间距离函数计算签到序列的poi之间的空间距离矩阵并计算相对空间注意力值;
[0125]
计算每个poi和其它poi之间的相对空间距离并把它保存在矩阵dis中;
[0126]
分别给定两个poi为pi和pj,它们之间的距离dis(pi,pj)可以通过式(15)计算:
[0127][0128]
其中,αi,αj分别表示pi和pj的纬度坐标;δβ表示两个poi之间的经度的差值;
[0129]
r表示地球的半径;
[0130]
通过输入iu来计算disu,如式(16)所示:
[0131]
disu=dis[iu]
ꢀꢀꢀ
(16)
[0132]
表示disu中第i行第j列的元素,它的值表示pi和pj的空间距离;disu表示用户u的相对空间注意力矩阵;
[0133]
步骤4.4:计算签到序列的各个poi的访问时间间隔矩阵以及计算相对时间注意力值;
[0134]
给定用户访问时间序列tu=[t1,...,t
l
]
t
,计算每个poi和其它poi之间的访问时间间隔并把它保存在矩阵中,如式(17)-(19)所示:
[0135][0136][0137][0138]
其中,为用户的时间注意力值矩阵;minmaxnorm(
·
)是一个将输入矩阵映射到[0.1]区间的函数;f
t
(tu)是将tu映射到的函数;
[0139]
步骤4.5:将用户签到序列的绝对时空注意力值和相对空间注意力值以及相对时间注意力值使用线性函数连接,计算出用户轨迹的总注意力值,进而得到用户前l个轨迹点编码的特征矩阵;
[0140]
将签到编码的特征矩阵au进入到全连接网络和softmax中,最终输出下一个位置的概率分布,如式(22)所示:
[0141][0142]
其中,表示对l 1个签到进行预测的概率分布;通过概率分布选取top-k
个位置来对用户进行位置推荐;
[0143]
步骤4.6:将时空嵌入self-attention的用户轨迹表示输入到前馈神经网络,再通过softmax激活函数得到用户下一个访问点概率分布;
[0144]
将签到编码的特征矩阵au进入到全连接网络和softmax中,最终输出下一个位置的概率分布,如式(22)所示:
[0145][0146]
其中,表示对l 1个签到进行预测的概率分布;通过概率分布选取top-k个位置来对用户进行位置推荐;
[0147]
在本实施例中,构建基于自注意力的位置推荐模型包含三个部分:嵌入层,时空自注意力层,预测层;
[0148]
所述嵌入层:在本实例中,对于一个长度为l的用户签到记录,使用word2vec将第i个poi的poi标识的one-hot表示vi,poi种类的one-hot表示ci和经过位置编码器处理后的向量qi分别嵌入到低维向量中;为了清晰地模拟轨迹中位置之间的相对访问时间差,将访问时间戳ti进行编码并加入到qi中来区分序列的前后顺序;
[0149]
对于一个长度为l用户签到序列,使用嵌入后的向量对序列数据进行表示,第u个用户的表示为iu={i1,...,ii,...,i
l
}.其中ii={pi,{lat,lon}i.ti};{lat,lon}i表示序列中第i个poi的经纬度坐标,ti表示访问第i个poi的时间戳;
[0150]
所述时空自注意力层:时空自注意力层分为绝对时空自注意力,相对空间自注意力层和相对时间自注意力层;
[0151]
所述绝对时空自注意力:自注意力的本质可以描述为一个查询(query)到一系列键值对(key-value)的映射,其中自注意力的key和value相同;自注意力机制能处理更长的序列,因此使用自注意力机制捕捉绝对时空嵌入向量之间的关系;
[0152]
本实施例中,输入的签到序列的长度统一为l,因此绝对时空自注意力的输入为一个l
×
d的矩阵pu=[p1,...,p
l
]
t
,其中d为pi的维度;
[0153]
通过权重参数和非线性激活函数relu(
·
)分别计算query,key和value;计算绝对注意力值意义是学习绝对时空的相互依赖关系;pi仅仅表示当前poi的绝对时间和绝对地理坐标信息,并没有考虑到其它签到的时空信息,因此它是以一种局部的视角来进行时空信息的提取;
[0154]
所述相对空间注意力:在本实施例中,空间坐标信息和时间信息之间的相对间隔也是一种语义描述信息;通过间隔来学习用户的运动时间规律以及移动距离规律;
[0155]
本实施例中,为了弥补绝对时空注意力的缺点我们提出从一个全局的视角来学习空间注意力;计算每个poi和其它poi之间的相对空间距离并把它保存在矩阵dis中;
[0156]
所述相对时间注意力:本实施例中,为了捕获用户对时间的偏好以及为了弥补绝对时空注意力的缺点我们提出使用时间间隔来学习时间注意力;给定用户访问时间序列tu=[t1,...,t
l
]
t
,计算每个poi和其它poi之间的访问时间间隔并把它保存在矩阵中;
[0157]
引入绝对时空注意力,相对空间注意力和相对空间注意力后,自注意力模型不仅能学习到当前访问的poi的信息,而且还能学习到当前poi与其它poi的关联信息以及时间间隔的关联,因此学习能力得到了加强;
[0158]
使用参数β,γ聚合用户的相对时间注意力矩阵和相对空间注意力矩阵并和绝对时空注意力矩阵连接,
[0159]
所述预测层:在本实例中,预测层主要是将自注意力的用户签到数据表示au输入到全连接神经网络层中,再通过softmax激活函数得到用户下一个访问点概率分布;
[0160]
将签到编码的特征矩阵au进入到全连接网络和softmax中,最终输出下一个位置的概率分布;
[0161]
模型参数训练:在本实例中,采用二元交叉熵作为损失函数对模型进行训练;二元交叉熵损失函数包含一个正样本和一个随机负样本;
[0162]
步骤5:将某用户历史签到记录数据进行编码处理后,输入时空嵌入自注意力模型中,模型给出用户下一次访问地点的概率分布,然后根据概率分布的top-k值对用户进行位置推荐;
[0163]
在本实施例中,在模型中输入用户u的签到序列数据从而得到关系位置的一系列排序得分,然后从排名在前的k个位置给用户u进行推荐。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献