[发明专利]一种基于地理感知的序列位置推荐方法有效
申请号: | 202010474780.9 | 申请日: | 2020-05-29 |
公开(公告)号: | CN111723306B | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 陈恩红;连德富;陶硕;承孝敏;王永璋 | 申请(专利权)人: | 长三角信息智能创新研究院 |
主分类号: | G06F16/9537 | 分类号: | G06F16/9537;G06N3/0499;G06N3/08 |
代理公司: | 北京润平知识产权代理有限公司 11283 | 代理人: | 董杰 |
地址: | 241000 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 地理 感知 序列 位置 推荐 方法 | ||
1.一种基于地理感知的序列位置推荐方法,其特征在于,包括:
从基于位置的用户服务网站上爬取一定量的数据,对于一个用户爬取的数据包括:用户的ID、时间戳、位置、地点的经纬度;
基于爬取的各用户的ID信息、时间信息、地点信息、地理位置信息,以此构建基于自注意力网络的地理感知序列推荐器模型,接着结合目标位置信息进行相关地理位置的打分推荐;结合排序得分与预设的利用基于重要性采样的损失函数对基于自注意力网络的地理感知序列推荐器GeoSAN进行训练;
对于一个用户及其一系列的历史轨迹点,利用用户的ID信息、用户对应的一系列历史轨迹点的位置和经纬度信息,每个轨迹点的时间戳,来构建一系列的实例并以此输入至训练好的基于自注意力网络的地理感知序列推荐器中,从而得到一系列的推荐位置的排序得分,根据排序得分的大小,以从前到后的方式对一系列位置进行推荐,得到最终推荐的结果;
构建基于自注意力网络的地理感知序列推荐器模型之前还包括对爬取的数据进行预处理的步骤,该步骤包括:
将输入的序列从左向右切分转变成固定长度的序列,固定长度设置为m,当输入序列长度小于m,向右添加填充padding;当大于m时,对其进行切分;其中,m是非固定值,根据实际情况进行调整;
构建基于自注意力的地理感知位置推荐网络模型包括三个部分:输入层、自注意力层、预测评估层;其中,
输入层:对于一个用户,认为该用户由一系列移动记录r构成,每一个移动记录r认为由用户IDu,地点l,时间点t,位置经纬度p构成;使用词嵌入Word Embedding,将用户行为记录里的用户IDu,地点l,时间点t编码,接着使用基于自注意力的地理编码技术将位置经纬度p和通过经纬度得到的quadkeys进行编码;将位置经纬度p的编码结果拼接组成序列的表征矩阵E∈Rm×d,对于填充的记录,用0表示,由于自注意力网络不能捕捉序列之间的位置关系,故加入一个位置的表征P进入E之中,即E=E+P;
自注意力层:利用自注意力机制获取用户行为序列之间的长距离的上下文关系,有效地捕获用户行为轨迹序列之间的深层次依赖关系;通过自注意力机制,在输入层对quadkeys进行编码处理的同时也在后面将用户的行为记录进行编码,将序列矩阵E转变为自注意力编码之后的结果F;
预测评估层:结合l层自注意力网络的输出F(l)和目标位置序列信息的表征结果T做注意力,得到的结果再结合最终的候选位置点,根据匹配函数计算偏好得分,最终得到候选位置的排序;其中,是输出目标序列的表征矩阵,由目标位置和目标位置经纬度信息编码拼接而成;
使用网格对应匹配每一个位置的经纬度信息,再利用自注意力网络和n-gram对网格对应经纬度信息匹配的编码quadkeys进行编码;其中,
使用地理位置编码器对一个位置的经纬度信息做编码:
a、首先,将整个世界分成网格,并且不同层级的网格代表不同粗细粒度的编码;为了将GPS坐标匹配到网格中去,认为是在世界测地系统的84基准之上,在给定的l级别的水平下,在球面投影平面中转换为笛卡尔坐标,计算如下:
将笛卡尔坐标(x,y)除以256,即可完成坐标向网格的转变;由于网格划分类似于四叉树,所以每个网格都用一个四叉树密钥来标识,简称为quadkeys,它被解释为基数为4的数字,它的长度等于粗细粒度;网格内部的不同位置和网格共享相同的quadkeys,同时,没有位置的网格被直接忽略,解决了数据稀疏性问题;
b、利用自注意力网络和n-gram,将步骤a得到的quadkeys进一步编码,编码quadkeys;首先将quadkeys认为是一个字符级别的序列,每个字符都在集合{0,1,2,3}中,接着转换quadkeys变成一个n-gram的序列;接着,应用一个堆叠的自注意力网络捕捉序列之间的相依性;然后通过平均池化来聚合表征序列,当超参数n等于四元组的位数时,它会退化为上述的quadkeys;n控制地理编码器的模型容量;
对用户的序列矩阵E进行处理,得到序列之间互相依赖关系的表征矩阵F;
在自注意力机制中:
将用户的历史行为轨迹序列E作为输入,并且通过线性变换分别将其转化成query,key,value矩阵,接着把变化得到的结果放入带缩放的点积注意力机制scaled dot-product attention中,其计算公式如下所示:
S=SA(E)=Attention(EWQ,EWK,EWV)
其中,Attention的计算公式如下所示:
其中,WQ,WK,WV∈Rd×d;
对于下一个位置的推荐只能通过前面历史的用户行为序列信息处理得到,因此通过一个正方形掩码来实现因果关系约束,上三角为负无穷,其他项为0,即对当前时间之后的位置信息做屏蔽处理;
接着,将上一层的输出S输入前馈神经网络FFN中,根据加权进行非线性变换,其计算公式如下:
Fi=FFN(Si)=max(0,SiW(1)+b(1))W(2)+b(2)
其中,而且dh>d;
使用两层自注意力模块,其计算公式如下:
f(x)=LayerNorm(x+Dropout(Sublayer(x)))
其中Sublayer(x)就代表着自注意力层;
自注意力机制主要是对用户的行为轨迹序列表征E进行操作,捕捉出序列间的关系依赖,发掘序列之间的重要信息;
当自注意力用于前面地理信息编码时,用于捕捉编码的顺序依赖关系;
通过上述方法,最终得到用户历史行为轨迹序列表征E之间捕捉依赖关系的结果F,并且其维度大小与输入相同;
首先,根据l层自注意力网络的输出F(l)和序列信息表征T做注意力,得到改进的输入序列相对于目标位置的表示,公式如下:
A=decoder(F(l)|T)=Attention(T,F(l)W,F(l))
其中,是输出目标序列的表征矩阵,由目标位置和目标位置经纬度信息编码拼接而成,W是模型中待优化的参数矩阵,同时注意因果关系约束也是必需的,通过前面提到的正方形掩码来实现;
根据做注意力得到的输入序列在第i步得到的表征结果Ai和匹配函数计算出每个候选地点位置的偏好得分情况,计算方式如下:
yi,j=f(Ai,Vj)
其中,Vj是候选位置j的向量表示,匹配函数f选择深度神经网络或者内积;该向量是结合了地点位置和地理信息的共同考虑,否则地理信息就无法发挥作用;
结合排序得分与预设的利用基于重要性采样的损失函数对基于自注意力网络的地理感知序列推荐器GeoSAN进行训练如下:
使用自适应矩估计Adam优化器最小化如下基于重要性采样的损失函数:
其中,S代表移动轨迹的训练集,oi代表第i步的目标位置,Lu表示用户u访问过的地点集合,其中是第k个样例所占据的权重;其中,T控制概率分布与均匀分布的散度,Q(k|i)是的提议分布,是Q(k|i)未归一化的概率分布,因此,有更高得分的地点会拥有更高的权重。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长三角信息智能创新研究院,未经长三角信息智能创新研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010474780.9/1.html,转载请声明来源钻瓜专利网。