1.一种融合社交和位置关系的神经协同过滤POI推荐方法,其特征在于:该方法包括以下步骤:
S1:获取数据,划分训练集、验证集和测试集;
S2:构建用户关系图和POI关系图;
S3:为每个用户和每个POI采样无连接子图;
S4:构建GBCF模型;
S5:使用训练集训练模型,并利用验证集选择效果最佳的模型;
S6:利用训练好的模型得到用户对POIs的偏好得分,并结合TOP‑K排序生成用户感兴趣的POI推荐列表。
2.根据权利要求1所述的一种融合社交和位置关系的神经协同过滤POI推荐方法,其特征在于:在所述S1中,获取数据包括用户社交关系数据、POI经纬度数据、用户签到数据,并将每个用户最早70%的签到数据作为训练集,最近20%的签到数据作为测试集,剩下10%的签到数据作为验证集。
3.根据权利要求2所述的一种融合社交和位置关系的神经协同过滤POI推荐方法,其特征在于:在所述S2中,将通过2014年Google发明的plus code经纬度编码方法将每个POI的经纬度编码成一个字符串,其次通过训练集将每个用户签到次数最多的POI作为该用户的活动中心;用户关系图构建的具体规则如下:S211根据用户社交关系数据,如果两个用户之间是朋友关系,则这两个用户之间存在边的联系,并且边权重被设为0.5;
S212根据训练集数据,统计两个用户之间联合访问POI的数量,并按照如下映射函数更新两个用户之间的边权重:
其中cij表示两个用户之间联合访问POI的数量,T是设置的阈值;
S213根据POI编码计算两两用户活动中心的接近程度,并根据公式(2)来计算用户之间的边权重,
其中pi,pj分别表示用户i和j的活动中心的POI编码,len(·)函数表示pi和pj在瓦块地图中最大的相同层级数;
根据S211~S213分别得到3个矩阵,将这3个矩阵相加便得到用户关系图的矩阵表示,而POI关系图构建的具体规则如下:S221根据POI编码计算两两POIs的接近程度,并根据公式(3)来计算两个POIs之间的边权重,
其中pm,pn分别表示POIm和n的POI编码,len(·)函数表示pm和pn在瓦块地图中最大的相同层级数;
S222根据训练集数据,统计两两POIs之间共同的签到用户数,并根据如下映射函数更新两个POIs之间的边权重:
其中Nmn表示两个POIs之间共同的签到用户数,T是设置的阈值;
根据S221和S222分别得到2个矩阵,将这2个矩阵相加便得到POI关系图的矩阵表示。
4.根据权利要求3所述的一种融合社交和位置关系的神经协同过滤POI推荐方法,其特征在于:在所述S3中,通过得到的用户关系图,按照边权重从大到小的顺序排列每个用户的邻居用户,从而为每个用户采样k个最亲密的用户,最终得到用户采样子图集合GU={g1,g2,...,g|U|},其中 表示用户i的采样子图,Vi表示节点用户i和其最亲密的k个节点用户;然后结合用户关系图、用户采样子图集合,以及使用词嵌入方式,最后得到用户的三部分向量表示,即:每个用户的原始向量表示;根据每个用户在用户关系图中的一跳邻居得到的向量表示;根据每个用户的采样子图得到的向量表示;通过得到的POI关系图,按照边权重从大到小的顺序排列每个POI的邻居POIs,从而为每个POI采样k个最亲密的POIs,最终得到POI采样子图集合Gp={g1,g2,...g|p|},其中 表示POIm的采样子图,Vm表示节点POIm和其最亲密的k个节点POIs;然后结合POI关系图、POI采样子图集合,以及使用词嵌入方式,最后得到POI的三部分向量表示,即:每个POI的原始向量表示;根据每个POI在POI关系图中的一跳邻居得到的向量表示;根据每个POI在采样子图得到的向量表示。
5.根据权利要求4所述的一种融合社交和位置关系的神经协同过滤POI推荐方法,其特征在于:在所述S4中,构建GBCF模型;GBCF模型包含Graph‑Bert模型和神经协同过滤模型两部分;其中Graph‑Bert模型的作用是得到节点的特征表示,其学习过程如公式(5)所示,其中 表示根据关系图和节点i的采样子图得到的原始特征向量表示、绝对位置向量表示、相对位置向量表示,然后将这三部分向量表示拼接起来并使用全连接层进行聚合,表示过程如公式(6)所示:
其中linear(·)表示一个线性层,k表示采样数,dh表示维数;
(l) (l‑1)
而公式(5)中的H =Graph‑Bert(H )是基于图形转换器的编码器将多层地迭代更新节点的表示,它的具体表示如下:其中Q、K、V表示如下:
(l‑1)
表示权重参数;而公式(7)中的G‑Res(H ,Xi)表示图残差项;
(D)
在公式(5)的zi=Fusion(H )中,函数Fusion(·)表示对输出列表中的所有节点的向量取平均,最终得到目标节点的向量表示,即而神经协同过滤模型的作用是根据Graph‑Bert模型得到的用户特征向量和POI特征向量学习用户对POI的偏好得分,其表示过程如公式(9)所示:其中eu表示用户u的特征向量,em表示POIm的特征向量;
最后模型使用BPR损失函数进行收敛,具体公式如下:其中 表示用户u对正样本POIm的偏好, 表示用户u对负样本POIn的偏好,||Wnet||2表示模型参数的L2范数,λ是正则化项的参数。
6.根据权利要求5所述的一种融合社交和位置关系的神经协同过滤POI推荐方法,其特征在于:在所述S5中,模型训练的一个批次由10240个三元组(用户,正样本POI,负样本POI)组成;其中每个三元组中的用户是从训练集数据中随机选取的,正样本POI是根据选取的用户从其访问过的POIs中随机选择的一个,负样本POI是根据选取的用户从其未访问过的POIs中随机选择的一个;在每一个周期训练完成后使用验证集验证模型,并根据验证结果选择效果最佳的模型。
7.根据权利要求6所述的一种融合社交和位置关系的神经协同过滤POI推荐方法,其特征在于:在所述S6中,利用训练好的模型得到每个用户对每个POI的偏好得分,然后将得分从大到小排序,最后向用户推荐前K个得分最高且用户没有访问过的POIs。