1.一种基于时空感知并结合局部和全局偏好的POI预测方法,其特征在于:包括如下步骤:S100:选用公开签入POIs数据集作为训练集O,该训练集O包括用户历史POI轨迹序列,每个用户的历史POI轨迹序列表示为 表示用户在ts时刻所处的兴趣点;
所述用户历史POI轨迹按时间顺序排列,所述用户历史POI轨迹序列包括用户标签、时间标签、地点标签和地点标签对应的经纬度;
S200:构建POI预测模型LGSA,LGSA包括局部特征模块、全局特征模块和特征融合模块;
S300:从训练集O中随机选取一个用户历史POI轨迹序列,计算该用户历史POI轨迹序列的局部特征向量表示和全局特征向量表示:S310:将该用户历史POI轨迹序列作为输入,使用局部特征模块计算该用户在时空区域上的局部特征向量表示Locu,表达式如下:l
其中,T表示矩阵转置,avg(·)表示平均函数,tanh(·)表示激活函数,At表示注意力分数矩阵, 表示细粒度子序列的子序列特征;
S320:将该用户历史POI轨迹序列作为输入,使用全局特征模块计算该用户在以周为时间单位上的全局特征向量表示Glou,表达式如下:h h
Glou=LN(A+Dorpout(PFFN(A))); (2)h
其中,A 表示特征经过多头注意力后的输出,LN(·)表示神经网络中的层归一化,Dropout(·)表示防止模型过拟合而采用的方法,PFFN(·)表示正向前馈网络;
S400:设置初始权重系数α,使用特征融合模块将Locu和Glou进行结合,通过加权求和将局部特征与全局特征进行融合得到该用户的总偏好特征Cu,具体表达式如下:Cu=αLocu+(1‑α)Glou; (3)其中,α是表示权重系数,α∈[0,1];
S500:利用总偏好特征Cu计算该用户的预测POI,具体步骤如下:S510:计算该用户的预测POI表示向量Pu,表达式如下:其中, 表示轨迹序列中的地点表示特征,d表示特征维度,t表示时间,Co表示用户时空区域中地点间的特征关系,Co的计算表达式如下:其中, 表示时空区域的子序列表示向量,Wr是可学习的参数;
S520:通过索引映射将Pu映射到POI的地点标签,得到该用户的预测POI;所述索引映射为一个POI地点标签对应一个POI表示向量,两者为一一对应关系;
S600:利用该用户的预测POI表示向量来计算LGSA模型的目标函数K,具体表达式如下:K=argmin∑(u,pos,neg)∈O‑log(σ(Pu,pos‑Pu,neg)); (6)其中,Pu,pos表示真实POI与预测POI表示向量的距离,Pu,neg表示非当前用户轨迹序列中的POI与预测POI表示向量的距离,u表示用户标签,pos表示真实POI标签,neg表示非当前用户轨迹序列中的POI标签,σ表示sigmoid函数;
S700:利用目标函数K作为损失函数对LGSA模型进行训练,同时使用梯度下降法反向更新LGSA模型参数;
S800:遍历训练集中所有的用户历史POI轨迹序列,重复步骤S300‑S700对模型进行训练,预设训练最大迭代次数,当训练达到最大迭代次数时停止训练,得到训练好的LGSA模型;
S900:将待预测用户历史POI轨迹序列作为训练好的LGSA输入,输出为对该待预测用户下一个POI的预测结果。
2.如权利要求1所述的一种基于时空感知并结合局部和全局偏好的POI预测方法,其特征在于:所述S310中计算每个用户在时空区域上的局部特征向量表示Locu的具体步骤如下:S311:随机选取一个用户历史POI轨迹序列,并对该用户历史POI轨迹序列进行时间间隔处理,具体表达式如下:其中, 表示用户在访问地点i和地点j之间的时间间隔,ti表示在地点i的时间戳,tj表示在地点j的时间戳;
对该用户历史POI轨迹序列进行地理距离处理,具体表达式如下:其中, 表示访问地点i和地点j之间的地理距离,r表示半径,loni和lati表示地点i的GPSi的经纬度,lonj和latj表示地点j的GPSj的经纬度,Haversine(·)表示地理距离函数;
S312:根据时间间隔和地理距离划分该用户历史POI轨迹序列得到时空区域集Regu,具体表达式如下:Regu={reg1,reg2,…,regx}; (9)其中,regx表示第x个时空区域,x表示时空区域的数量;
S313:使用滑动窗口w将时空区域集中每个时空区域分割为细粒度子序列,具体表达式如下:其中,w表示滑动窗口的大小;
S314:计算细粒度子序列的子序列特征 计算表达式如下:w×d
其中,W1表示可学习参数,Ma∈R 表示自适应邻接矩阵,d表示特征维度,tanh表示激活函数,区域内的子序列嵌入表示为S315:计算 的注意力分数矩阵,计算表达式如下:l
其中,At 表示注意力分数矩阵,W2、W3、b1和b2均表示可学习参数,Softmax表示激活函数;
l
S316:利用At和 计算得到该用户在时空区域上的局部特征向量表示Locu;
S317:遍历训练集中所有用户历史POI轨迹序列,计算得到每个用户在时空区域上的局部特征向量表示。
3.如权利要求2所述的一种基于时空感知并结合局部和全局偏好的POI预测方法,其特征在于:所述S320中计算用户在时空区域上的全局特征向量表示Glou的具体步骤如下:S321:随机选取一个用户历史POI轨迹序列,并将该用户历史POI轨迹序列中的时间信息进行融合,计算表达式如下:其中, 表示完成时间信息融合后的用户历史POI轨迹序列,W4表示可学习参数,表示轨迹序列与特殊时间周期的拼接向量;
S322:计算 的非侵入式的自注意力 计算表达式如下:其中,N表示有N层多头注意力网络层,Attention(·)表示注意力函数,Q、K、V分别是从T和Su映射得到的可学习矩阵,K表示K的转置矩阵,σ表示可学习的参数;
S323:计算N层多头注意力,计算表达式如下:h
其中, 是第y层多头注意力网络层,A 是多头注意力层的输出,GELU表示高斯误差线性单元,W5、W6、b5、和b6表示可学习参数;
S324:对各子层的输出进行层归一化处理和dropout函数处理,得到该用户在时空区域上的全局特征向量表示Glou;
S325:遍历训练集中所有用户历史POI轨迹序列,计算得到每个用户在时空区域上的全局特征向量表示。
4.如权利要求3所述的一种基于时空感知并结合局部和全局偏好的POI预测方法,其特征在于:所述S321中进行时间信息融合的具体步骤如下:S321‑1:每个用户的历史轨迹序列为 用户历史POI轨迹序列中的特殊时间模式, 其中, 表示轨迹序列中的地点表示向量,ti表示特殊时间周期的表示向量,u表示用户,week表示以周为单位的特殊时间周期;
S321‑2:根据时间单位换算,将POI签入时间换算成以周为单位的特殊时间周期,得到特殊时间周期的嵌入矩阵根据word2vec词嵌入方法计算轨迹序列的嵌入矩阵E(Su);
S321‑3:将 和E(Su)在特征维度上进行拼接,得到拼接矩阵 具体表达式如下:其中,con(·)表示拼接函数;
S321‑4:利用激活函数对 进行处理,得到完成时间信息融合后的用户历史POI轨迹序列