1.本发明属于兴趣点推荐技术领域,主要涉及一种融合知识图谱和时序特征的可解释兴趣点推荐方法。
背景技术:2.随着移动互联网技术的飞速发展,基于位置的社交网络平台应运而生并受到广泛关注,例如foursquare、gowalla和facebook places等。基于位置的社交网络将网络空间与物理世界联系在一起,使用户可以通过发布兴趣点(如餐厅、商场等)签到来分享生活经历,从而产生海量移动数据。这些移动数据为分析用户的行为和偏好提供了机遇,并催生了对兴趣点推荐的研究。
3.目前,研究者们提出了大量兴趣点推荐方法。现有方法大致可分为两类,分别为基于协同过滤的兴趣点推荐方法和基于深度学习的兴趣点推荐方法。与基于协同过滤的兴趣点推荐方法相比,基于深度学习的兴趣点推荐方法能够利用复杂的网络模型挖掘用户移动行为中的偏好特征,有效提高了推荐结果的精确性。然而,现有的兴趣点推荐方法大多仅给出推荐却未提供推荐结果的解释,无法保证推荐系统的透明度,进而影响用户对推荐结果的信任水平和接受度。为提高推荐结果的说服力,进一步增加推荐系统的可信度,给用户提供推荐兴趣点的支持性信息和证据是至关重要的。
4.可解释推荐对于用户移动行为分析是十分必要的,已有针对可解释兴趣点推荐的研究工作主要分为基于嵌入(embedding
‑
based)和基于路径(path
‑
based)的方法。基于嵌入的方法侧重于对语义关联进行建模,使相似的实体具有较小的表示距离,但缺乏发现多跳关系路径的能力。与基于嵌入的方法相比,基于路径的方法能够有效挖掘实体间的多跳关系,但可解释兴趣点推荐仍然存在许多挑战。一方面,现有方法在构建知识图谱时未利用兴趣点的空间信息,而空间信息对于学习用户个性化偏好起着至关重要的作用;另一方面,利用知识图谱的静态信息虽然提高了模型的可解释性,却无法捕捉用户移动行为的动态性,影响了兴趣点推荐的性能。
技术实现要素:5.针对上述现有技术存在的不足,本发明提供一种融合知识图谱和时序特征的可解释兴趣点推荐方法,旨在有效融合知识图谱的结构化信息和用户的签到序列,挖掘用户偏好来进行兴趣点推荐,并根据路径推理促进推荐解释生成。
6.本发明的技术方案为:
7.一种融合知识图谱和时序特征的可解释兴趣点推荐方法,该方法包括:
8.步骤i:对数据集中的初始数据空间进行划分,获得的每个子空间视为一个区域,进而根据兴趣点的原始空间信息获取兴趣点的所属区域,将兴趣点的原始空间信息转换为粗粒度的空间信息;
9.步骤ii:整合用户
‑
兴趣点的交互信息和兴趣点的粗粒度的空间信息,构建知识图
谱;
10.所述知识图谱包含的实体有:用户、兴趣点、空间信息,包含的关系有:用户
‑
兴趣点、兴趣点
‑
区域;其中用户
‑
兴趣点代表用户与兴趣点之间存在历史交互;兴趣点
‑
区域代表兴趣点的位置位于某个区域内;
11.步骤iii:基于知识图谱中的路径静态信息捕捉实体之间的潜在关系,并融合用户签到序列的时序动态信息来学习用户偏好;
12.所述实体间的潜在关系通过实体间的潜在关系路径体现,所述实体间的潜在关系路径,是指知识图谱中连接两个实体的多跳路径,能够表示两个实体间的潜在关系,包括用户与兴趣点之间的潜在关系路径、兴趣点与兴趣点之间的潜在关系路径两个类别;
13.步骤iv:基于学习到的用户偏好为用户推荐兴趣点,生成推荐结果的解释。
14.进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述数据集,是指由某一基于位置的社交网络中用户的签到数据构成的集合,其中包含签到数据所涉及的用户id、兴趣点id、用户
‑
兴趣点的交互时间,以及兴趣点的位置信息。
15.进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述初始数据空间,是指数据集中所有兴趣点的位置信息构成的空间。
16.进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述步骤i包括如下步骤:
17.步骤i
‑
1:设置超参数:区域边长阈值δ;
18.步骤i
‑
2:初始化待划分的空间集合x,令x={初始数据空间};
19.步骤i
‑
3:将x中的每个空间按横坐标划分成两个大小相同的子空间,判断各子空间边长是否小于区域边长阈值δ,如果存在子空间边长小于区域边长阈值δ,则停止划分,输出最终的区域划分结果,结束步骤i,否则,令x={当前步骤划分得到的多个子空间},执行步骤i
‑
4;
20.步骤i
‑
4:将x中的每个空间按纵坐标划分成两个大小相同的子空间,判断各子空间边长是否小于区域边长阈值δ,如果存在子空间边长小于区域边长阈值δ,则停止划分,输出最终的区域划分结果,结束步骤i,否则,令x={当前步骤划分得到的多个子空间},转至步骤i
‑
3。
21.进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述关系用户
‑
兴趣点表示为(u1,签到,v1);所述关系兴趣点
‑
区域表示为(v1,隶属于,a1);其中u1为任一用户,v1为任一兴趣点,a1为兴趣点v1位于的区域。
22.进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述步骤iii包括如步骤:
23.步骤iii
‑
1:利用现有的知识图谱嵌入方法学习知识图谱中各实体和关系的嵌入表示;
24.步骤iii
‑
2:根据知识图谱中各实体和关系的嵌入表示,学习实体间的潜在关系表示;
25.步骤iii
‑
3:在知识图谱中实体间的路径静态信息的基础上,进一步融合用户签到的时序动态信息,进而学习用户偏好。
26.进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述
步骤iii
‑
1包括如下步骤:
27.步骤iii
‑1‑
1:根据知识图谱获取邻居上下文和路径上下文;
28.对于给定的任意实体e,实体e的邻居上下文c
n
(e)是以e为头实体的三元组中出现的所有关系
‑
尾实体对;
29.对于给定的两个实体e和e
′
,实体e和实体e
′
的路径上下文c
p
(e,e
′
)是指实体e到实体e
′
的一组路径中出现的所有合成关系;其中,所述合成关系,是指一个实体到另一个实体的某条路径中的多个关系形成的多元组;
30.步骤iii
‑1‑
2:形成由邻居上下文和路径上下文组成的三元组上下文,并基于三元组上下文得到知识图谱嵌入方法的得分函数f(e,r,e
′
):
31.f(e,r,e
′
)=p((e,r,e
′
)|c(e,r,e
′
);θ
e
)
32.其中,e和e
′
为给定的两个实体;r表示关系;θ
e
为嵌入方法的参数,p(
·
)表示概率,c(e,r,e
′
)表示由邻居上下文和路径上下文组成的三元组上下文;
33.步骤iii
‑1‑
3:通过最大化知识图谱中所有三元组的联合概率p(kg|θ
e
)训练参数θ
e
,从而实现知识图谱嵌入方法的训练;
[0034][0035]
其中,kg是构建的知识图谱;
[0036]
步骤iii
‑1‑
4:根据训练好的知识图谱嵌入方法,获得所有实体和关系的嵌入表示。
[0037]
进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述步骤iii
‑
2包括如下步骤:
[0038]
步骤iii
‑2‑
1:学习实体间的潜在关系路径的嵌入表示;
[0039]
假设对于实体对(e,e
′
),存在k跳潜在关系路径则p1(e,e
′
)的嵌入表示p1(e,e
′
)为:
[0040][0041]
其中,e
i
和r
i
分别是实体e
i
和关系r
i
的嵌入表示,e
k
=e
′
;
[0042]
步骤iii
‑2‑
2:将实体对(e,e
′
)间的多条潜在关系路径的嵌入表示组成表征矩阵p(e,e
′
):
[0043][0044]
其中,n表示实体对(e,e
′
)间的潜在关系路径数量,当1≤i≤n时,p
i
(e,e
′
)表示潜在关系路径p
i
(e,e
′
)的嵌入表示;
[0045]
步骤iii
‑2‑
3:基于自注意力机制学习各潜在关系路径的权重,并根据权重聚合多条潜在关系路径,形成实体间潜在关系表示;
[0046]
充分考虑不同潜在关系路径之间的关系,在表征矩阵p(e,e
′
)的基础上,利用自注意力机制计算得到实体间的潜在关系表示p
′
(e,e
′
):
[0047]
p
′
(e,e
′
)=attention(p(e,e
′
)w
q
,p(e,e
′
)w
k
,p(e,e
′
)w
v
)
[0048][0049]
其中,w
q
、w
k
、w
v
分别表示注意力机制中query、key、value的权重矩阵,d表示维度,softmax(
·
)表示归一化函数。
[0050]
进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述步骤iii
‑
3包括如下步骤:
[0051]
步骤iii
‑3‑
1:从所述数据集获取用户的签到序列;
[0052]
步骤iii
‑3‑
2:获取用户的签到序列中涉及的实体间的潜在关系表示;
[0053]
用户
‑
兴趣点、兴趣点
‑
兴趣点两类实体间的潜在关系表示,分别为用户与在第1个时间步上访问的兴趣点之间的潜在关系表示、被连续访问的两个兴趣点之间的潜在关系表示;
[0054]
步骤iii
‑3‑
3:根据实体间的潜在关系表示初始化循环神经网络的输入向量;
[0055]
第1个时间步t1上的输入向量x1为:
[0056][0057]
其中,是用户实体u和兴趣点实体之间的潜在关系表示;是兴趣点的嵌入表示;表示连接操作;
[0058]
当1<l≤t时,第l个时间步t
l
上的输入向量x
l
可以表示为:
[0059][0060]
其中,t表示时间步数量;是被连续访问的两个兴趣点和之间的潜在关系表示;是兴趣点的嵌入表示;
[0061]
步骤iii
‑3‑
4:根据时间步更新循环神经网络;
[0062]
步骤iii
‑3‑
5:通过循环神经网络的每一个时间步对信息的存储以及过滤,输出最后一个时间步的隐藏向量h
t
;
[0063]
步骤iii
‑3‑
6:融合用户实体的嵌入表示和最后一个时间步的隐藏向量,以得到用户与最后一个时间步的兴趣点之间的交互向量;
[0064]
步骤iii
‑3‑
7:采用多层感知器mlp将交互向量映射为预测的用户u访问兴趣点的访问概率从而得到用户u对兴趣点的偏好程度。
[0065]
进一步地,根据所述的融合知识图谱和时序特征的可解释兴趣点推荐方法,所述步骤iv包括如下步骤:
[0066]
步骤iv
‑
1:使用交叉熵损失构建兴趣点推荐的目标函数,并最小化目标函数以进行参数学习;
[0067]
步骤iv
‑
2:将学习到的参数代入步骤iii,计算最终用户访问各兴趣点的概率,输出概率最大的top
‑
k兴趣点;
[0068]
步骤iv
‑
3:生成兴趣点推荐结果的解释;
[0069]
对于数据集中某用户u1,假设该用户在时间t1访问过兴趣点并且曾在时间t2访问
过兴趣点即存在签到对于推荐的一个兴趣点生成推荐解释的方法为:将用户u1与兴趣点之间的路径视为由用户u1与第1个时间步上访问的兴趣点之间的潜在关系路径被连续访问的两个兴趣点之间的潜在关系路径组成,其中,每个实体对之间存在多条关系路径;根据权重值,选择潜在关系路径和由这些潜在关系路径组成的完整路径形成向u1推荐目标兴趣点的解释。
[0070]
总体而言,通过本发明所构思的以上技术方案较现有技术具有以下有益效果:本发明在构建知识图谱时引入了空间信息,有助于捕捉空间信息对于用户个性化偏好的影响,并且通过区域划分,将兴趣点的原始空间信息转换为粗粒度的空间信息,使得构建的知识图谱能有效捕捉兴趣点之间的空间关系。同时,本发明在利用知识图谱中实体间的路径静态信息的基础上,进一步引入用户签到的时序动态信息,有效学习了用户个性化偏好的动态演变,实现了更加精准地向用户推荐兴趣点。此外,本发明能够在保证推荐精准度的同时,生成可解释的推理路径,通过提供推荐结果的解释,保证推荐方法的透明度,进而提高用户对推荐结果的信任水平和接受度。
附图说明
[0071]
图1为本实施方式融合知识图谱和时序特征的可解释兴趣点推荐方法的实施过程示意图;
[0072]
图2为本实施方式融合知识图谱和时序特征的可解释兴趣点推荐方法的具体流程示意图;
[0073]
图3为本发明与其他方法的推荐性能对比结果图;
[0074]
图4为本发明提供的生成推荐结果解释的过程示意图。
具体实施方式
[0075]
为了使本发明的目的、技术方案及优势更加清晰,下面结合附图和具体实施例对本发明做进一步详细说明。此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0076]
图1是本实施方式的融合知识图谱和时序特征的可解释兴趣点推荐方法的实施过程示意图,所述融合知识图谱和时序特征的可解释兴趣点推荐方法中包括三个部分:知识图谱构建、实体间的潜在关系表示学习及用户行为的时序动态性捕捉、输出可解释的推荐结果,如图1所示,实体间的潜在关系表示学习是基于构建的知识图谱实现的,通过捕捉实体间的多条潜在关系路径,学习实体间的潜在关系表示,并进一步利用用户的签到序列,即融合路径静态信息和时序动态信息来学习用户偏好,最后基于学习到的用户偏好为用户推荐兴趣点,并提供推荐结果的解释。
[0077]
所述兴趣点,是指用户感兴趣的地理地点,例如对于在某地旅游的用户来说,可能需要品尝当地美食,那么具有某地特色的餐厅就是兴趣点。
[0078]
所述知识图谱,是指揭示实体之间关系的语义网络,可以提供丰富的结构化信息,
它不仅有助于提高推荐性能,而且由于其直观易于理解实体间的关系,能够增强推荐方法的可解释性。我们构建的知识图谱中包含的实体有:用户、兴趣点、空间信息,包含的关系有用户
‑
兴趣点、兴趣点
‑
空间信息,其中用户
‑
兴趣点表示用户与兴趣点之间存在历史交互,本发明采用区域表示兴趣点的空间信息,即兴趣点
‑
区域,表示兴趣点的位置位于某个区域内。
[0079]
所述实体间的潜在关系路径,是指知识图谱中连接两个实体的多跳路径,能够表示两个实体间的潜在关系。
[0080]
所述签到,是指用户在某时刻访问兴趣点的行为,可以用(用户,时间,兴趣点)三元组来表示。
[0081]
所述用户的签到序列,是指将用户的历史签到按签到时间的先后进行排序得到的序列。
[0082]
所述用户的时序动态性捕捉是基于循环神经网络实现的,其中循环神经网络,是指以序列数据为输入,在序列的演进方向进行递归且所有循环单元按链式连接的递归神经网络。
[0083]
图2是本实施方式的融合知识图谱和时序特征的可解释兴趣点推荐方法的具体流程示意图,如图2所示,所述融合知识图谱和时序特征的可解释兴趣点推荐方法包括如下步骤:
[0084]
步骤1:构建知识图谱,包括对数据集中的初始数据空间进行区域划分、根据划分结果将兴趣点的原始空间信息转换为粗粒度的空间信息、基于用户
‑
兴趣点的交互信息和兴趣点粗粒度的空间信息构建知识图谱;
[0085]
所述数据集,是指由某一基于位置的社交网络中用户的签到数据构成的集合,其可以是开放数据集,例如foursquare、gowalla,也可以通过采集获得,其中包含了签到数据所涉及的用户id、兴趣点id、用户
‑
兴趣点的交互时间,以及兴趣点的位置信息。本实施方式的数据集是采用的开放数据集——foursquare数据集。
[0086]
所述初始数据空间,是指所有兴趣点构成的空间。每个兴趣点的位置信息是由横坐标和纵坐标组成的,根据所有兴趣点的位置信息,可以分别获得兴趣点的横坐标和纵坐标的区间,同时符合横坐标区间和纵坐标区间的空间即为初始数据空间。
[0087]
所述区域,是指将初始数据空间进行划分,在划分的最终结果中,每一个子空间称为一个区域。
[0088]
所述原始空间信息,是指从数据集中获取到的兴趣点的位置。
[0089]
所述粗粒度的空间信息,是指兴趣点位于的区域。
[0090]
所述步骤1具体内容包括:
[0091]
步骤1
‑
1:对数据集中的初始数据空间进行区域划分,具体过程如下:
[0092]
步骤1
‑1‑
1:设置超参数区域边长阈值δ,本实施方式中根据经验将δ设置为0.8千米;
[0093]
步骤1
‑1‑
2:初始化待划分的空间集合x,令x={初始数据空间},其中x可能包含一个或多个待划分的空间,在步骤1
‑1‑
2仅包含一个空间,即初始数据空间;
[0094]
步骤1
‑1‑
3:将x中的每个空间按横坐标划分成两个大小相同的子空间,判断各子空间边长是否小于区域边长阈值δ,如果存在子空间边长小于区域边长阈值δ,则停止划分,
输出最终的区域划分结果,结束步骤1
‑
1,否则,令x={当前步骤划分得到的多个子空间},执行步骤1
‑1‑
4;
[0095]
步骤1
‑1‑
4:将x中的每个空间按纵坐标划分成两个大小相同的子空间,判断各子空间边长是否小于区域边长阈值δ,如果存在子空间边长小于区域边长阈值δ,则停止划分,输出最终的区域划分结果,结束步骤1
‑
1,否则,令x={当前步骤划分得到的多个子空间},转至步骤1
‑1‑
3;
[0096]
步骤1
‑
2:根据区域划分结果,将兴趣点的原始空间信息转换为粗粒度的空间信息;
[0097]
本实施例是在兴趣点推荐模型中考虑用户
‑
兴趣点的交互信息和空间信息的前提下进行的。如上文所述的知识图谱,我们构建的知识图谱中包含的实体有:用户、兴趣点、空间信息,包含的关系有用户
‑
兴趣点、兴趣点
‑
空间信息。如果知识图谱仅利用兴趣点的原始空间信息,很难揭示兴趣点间的空间关联度,即空间邻近程度,因此,我们利用兴趣点位于的区域来表示兴趣点的空间信息。基于步骤1
‑
1的区域划分结果,根据兴趣点的原始空间信息获取兴趣点的所属区域,依次将数据集所有兴趣点的原始空间信息转换为粗粒度的空间信息。
[0098]
步骤1
‑
3:整合用户
‑
兴趣点的交互信息和兴趣点粗粒度的空间信息,构建知识图谱;
[0099]
我们提出的方法将利用知识图谱中实体间的路径静态信息,而用户
‑
兴趣点的交互以及兴趣点的空间信息对于用户偏好的学习起着至关重要的作用,因此,知识图谱中需包含关系用户
‑
兴趣点、兴趣点
‑
空间信息。构建的时空数据知识图谱由大量头实体
‑
关系
‑
尾实体形成的三元组构成。基于步骤1
‑
2可知,知识图谱中的空间信息为区域,因此实体集合包括三个子集合分别为:用户集合、兴趣点集合和区域集合。实体间可能存在不同类型的关系,例如,用户1(即u1)和兴趣点1(即v1)之间存在交互数据,则用户1和兴趣点1之间的交互表示为(u1,签到,v1);兴趣点1位于区域1(即a1),则可使用(v1,隶属于,a1)描述。知识图谱中的三元组清晰地描述了实体之间直接或潜在(即单跳或多跳)的关系,这些属性构成了实体之间的一条或多条路径。
[0100]
步骤2:基于知识图谱中的路径静态信息捕捉实体之间的潜在关系,并进一步融合用户签到序列的时序动态信息来学习用户偏好;
[0101]
现有方法在学习用户与兴趣点之间的关系时,大多侧重于仅建模用户与兴趣点之间的潜在关系路径。与现有方法不同,我们根据兴趣点推荐任务中涉及到的实体类型,将实体间的潜在关系路径分为两个类别,即用户与兴趣点之间的潜在关系路径和兴趣点与兴趣点之间的潜在关系路径。一方面,探索用户的历史签到的上下文信息,能够有效捕获用户访问兴趣点的动机。另一方面,兴趣点与兴趣点之间的潜在关系路径可捕捉用户访问兴趣点的时序性,提高推荐方法的性能。
[0102]
所述步骤2具体内容包括:
[0103]
步骤2
‑
1:学习知识图谱中各实体和关系的嵌入表示;
[0104]
多种知识图谱嵌入方法可以用来进行实体和关系的嵌入表示学习,本实施方式采用的是能够有效利用知识图谱图形结构特征的tce(triple
‑
context
‑
based knowledge embedding)嵌入方法。其中,所述知识图谱图形结构特征,指的是三元组上下文。tce嵌入方
法是利用知识图谱中的三元组上下文,尤其是由邻居上下文和路径上下文组成的三元组上下文,在统一的框架中表示三元组及其上下文的结构信息。其中,所述邻居,是将知识图谱中与某实体直接相连的其他实体称为邻居。具体过程如下:
[0105]
步骤2
‑1‑
1:根据知识图谱获取邻居上下文;
[0106]
对于给定的任意实体e,实体e的邻居上下文c
n
(e)是以e为头实体的三元组中出现的所有关系
‑
尾实体对,可以形式化表示为:
[0107][0108]
其中,r表示关系,e
′
表示尾实体,kg是构建的知识图谱。
[0109]
步骤2
‑1‑
2:根据知识图谱获取路径上下文;
[0110]
对于给定的两个实体e和e
′
,实体e和实体e
′
的路径上下文c
p
(e,e
′
)是指实体e到实体e
′
的一组路径中出现的所有合成关系(composite relation)。其中,所述合成关系,是指一个实体到另一个实体的某条路径中的多个关系形成的多元组。例如,假定实体e和实体e
′
之间存在路径其中r1、r2、r3表示关系,e1、e2表示实体,则合成关系关系c
p
(e,e
′
)可以形式化表示为:
[0111][0112]
步骤2
‑1‑
3:形成由邻居上下文和路径上下文组成的三元组上下文;
[0113]
c(e,r,e
′
)=c
n
(e)∪c
p
(e,e
′
)
[0114]
步骤2
‑1‑
4:基于三元组上下文得到嵌入方法的得分函数f(e,r,e
′
);
[0115]
f(e,r,e
′
)=p((e,r,e
′
)|c(e,r,e
′
);θ
e
)
[0116]
其中,θ
e
为嵌入方法的参数,p(
·
)表示概率。
[0117]
步骤2
‑1‑
5:基于知识图谱中所有三元组的联合概率来定义目标函数p(kg|θ
e
);
[0118][0119]
步骤2
‑1‑
6:通过最大化目标函数训练参数θ
e
;
[0120]
步骤2
‑1‑
7:根据训练好的嵌入方法,获得所有实体和关系的嵌入表示;
[0121]
步骤2
‑
2:基于知识图谱中各实体和关系的嵌入表示,进一步学习实体间的潜在关系表示;
[0122]
步骤2
‑
2的主要目的是捕捉实体间的潜在关系特征。首先,学习实体间的潜在关系路径的嵌入表示。然后,由于在知识图谱中,实体间存在多条潜在关系路径,而且不同路径表示用户选择访问兴趣点的不同动机,为了捕获不同动机对用户访问兴趣点的决策的影响程度,我们采用自注意力机制从多个路径中学习组合特征,以更好地表示知识图谱中实体对之间的复杂的潜在关系。具体过程如下:
[0123]
步骤2
‑2‑
1:学习实体间的潜在关系路径的嵌入表示;
[0124]
若对于实体对(e,e
′
),存在k跳潜在关系路径则p1(e,e
′
)的嵌入表示p1(e,e
′
)为:
[0125]
[0126]
其中,e
i
和r
i
分别是根据步骤2
‑
1得到的实体e
i
和关系r
i
的嵌入表示,e
k
=e
′
。
[0127]
步骤2
‑2‑
2:将实体对(e,e
′
)间的多条潜在关系路径的嵌入表示组成表征矩阵p(e,e
′
):
[0128][0129]
其中,n表示实体对(e,e
′
)间的潜在关系路径数量,当1≤i≤n时,p
i
(e,e
′
)表示潜在关系路径p
i
(e,e
′
)的嵌入表示。
[0130]
步骤2
‑2‑
3:基于自注意力机制学习各潜在关系路径的权重,并根据权重聚合多条潜在关系路径,形成实体间潜在关系表示;
[0131]
充分考虑不同潜在关系路径之间的关系,在表征矩阵p(e,e
′
)的基础上,利用自注意力机制计算得到实体间的潜在关系表示p
′
(e,e
′
):
[0132]
p
′
(e,e
′
)=attention(p(e,e
′
)w
q
,p(e,e
′
)w
k
,p(e,e
′
)w
v
)
[0133][0134]
其中,w
q
、w
k
、w
v
分别表示注意力机制中query、key、value的权重矩阵,d表示维度,softmax(
·
)表示归一化函数。
[0135]
步骤2
‑
3:在知识图谱中实体间的路径静态信息的基础上,进一步融合用户签到的时序动态信息,进而学习用户偏好;
[0136]
步骤2
‑
3的主要目的是基于步骤2
‑
2学习到的两类实体间(用户
‑
兴趣点、兴趣点
‑
兴趣点)的潜在关系表示,进一步捕捉用户连续签到之间的时序依赖性,利用循环神经网络建模更具体的用户访问兴趣点的决策路径,学习用户偏好。具体过程如下:
[0137]
步骤2
‑3‑
1:根据所述数据集获取用户的签到序列;
[0138]
以用户u为例,用户u的签到序列形式上为其中,t表示时间步数量,当1≤l≤t时,t
l
表示第l个时间步,表示用户在第l个时间步上访问的兴趣点。
[0139]
步骤2
‑3‑
2:获取用户的签到序列中涉及的实体间的潜在关系表示;
[0140]
考虑到用户连续签到的时序依赖性,本实施方式利用连续签到的兴趣点之间存在的潜在关系,因此,两类实体间(用户
‑
兴趣点、兴趣点
‑
兴趣点)的潜在关系表示,分别为用户与在第1个时间步上访问的兴趣点之间的潜在关系表示、被连续访问的两个兴趣点之间的潜在关系表示。
[0141]
以所述的用户u为例,在该用户的签到序列中,需获取潜在关系表示的实体对包括:和1<l≤t。根据步骤2
‑
2获取用户实体u和兴趣点实体之间的潜在关系表示以及被连续访问的两个兴趣点和之间的潜在关系表示
[0142]
步骤2
‑3‑
3:初始化循环神经网络的输入向量,本实施方式采用的融合路径静态信息和时序动态信息;
[0143]
第1个时间步上的输入向量x1可以表示为:
[0144][0145]
其中,是根据步骤2
‑
1得到的兴趣点的嵌入表示,表示连接操作。
[0146]
当1<l≤t时,第l个时间步上的输入向量x
l
可以表示为:
[0147][0148]
其中,是根据步骤2
‑
1得到的兴趣点的嵌入表示。
[0149]
步骤2
‑3‑
4:根据时间步更新循环神经网络;
[0150]
循环神经网络的多种变体例如变体长短期记忆网络lstm、门控循环单元gru等都可用来捕捉用户连续签到之间的时序依赖性,本实施方式采用循环神经网络变体中的门控循环单元,以第l个时间步为例,更新公式如下:
[0151]
z
l
=σ(w
z
x
l
+u
z
h
l
‑1)
[0152]
r
l
=σ(w
r
x
l
+u
r
h
l
‑1)
[0153][0154][0155]
其中,w
z
、u
z
、w
r
、u
r
、w
h
、u
h
表示训练参数,σ(
·
)表示sigmod函数,tanh(
·
)表示双曲正切函数,
°
表示哈达玛积,z
l
和r
l
分别表示更新门和重置门,h
l
‑1表示第l
‑
1个时间步输出的隐藏向量,表示当前时间步的记忆内容,h
l
‑1表示上一个时间步输出的隐藏向量,h
l
表示当前时间步输出的隐藏向量。
[0156]
步骤2
‑3‑
5:通过循环神经网络的每一个时间步对信息的存储以及过滤,输出最后一个时间步的隐藏向量h
t
;
[0157]
在本实施方式中通过更新门与重置门的存储以及过滤信息,输出最后一个时间步的隐藏向量h
t
,h
t
不仅包含了用户签到的时序动态信息,也融合了被连续访问的兴趣点之间的潜在关系;
[0158]
步骤2
‑3‑
6:融合用户实体的嵌入表示和最后一个时间步的隐藏向量,以得到用户与最后一个时间步的兴趣点之间的交互向量;
[0159]
以所述的用户u为例,连接基于步骤2
‑
1得到的用户u的嵌入表示u和最后一个时间步的隐藏向量h
t
,形成了用户与第t个时间步访问的兴趣点之间的交互向量
[0160][0161]
步骤2
‑3‑
7:采用多层感知器mlp将交互向量映射为预测的用户u访问兴趣点的访问概率从而得到用户u对兴趣点的偏好程度;
[0162]
所述多层感知器,是一种前馈人工神经网络模型,能够表示输入和输出向量之间的非线性映射,多层感知器有至少一个隐藏层。
[0163]
本实施方式根据经验选择双层感知器,即有两个隐藏层的多层感知器,因此,交互向量与预测的访问概率之间的映射公式如下:
[0164][0165]
其中,mlp表示双层感知器,σ(
·
)表示sigmod函数,relu(
·
)表示线性整流函数,w1和w2表示双层感知器的两个权重矩阵。
[0166]
步骤3:基于学习到的用户偏好为用户推荐兴趣点,生成推荐结果的解释;
[0167]
所述步骤3具体内容包括:
[0168]
步骤3
‑
1:构建兴趣点推荐的目标函数;
[0169]
将观察到的用户访问行为视为正样本反之视为负样本利用平衡采样器(balanced sampler)随机采样负样本,并使用交叉熵损失来学习本发明方法的参数,将所有参数记为θ,为了避免过拟合,采用l2正则化训练参数θ。兴趣点推荐的目标函数为:
[0170][0171]
其中,u表示用户,表示数据集中的用户集合,v
j
和v
j
‘
表示兴趣点,λ
θ
是正则化系数,为预测的用户u访问兴趣点v
j
的访问概率,为预测的用户u访问兴趣点v
j
‘
的访问概率。
[0172]
步骤3
‑
2:最小化目标函数以进行参数学习;
[0173]
步骤3
‑
3:将学习到的参数代入步骤2,计算最终用户访问各兴趣点的概率,输出概率最大的top
‑
k兴趣点;
[0174]
本实施方式根据经验将k设置为5、10、20,如图3所示,与已有兴趣点推荐方法相比,本发明方法具有更加优秀的推荐性能。
[0175]
步骤3
‑
4:生成兴趣点推荐结果的解释;
[0176]
对于数据集中某用户u1,该用户在时间t1访问过兴趣点并且曾在时间t2访问过兴趣点即存在签到本发明方法为用户推荐了多个兴趣点,即用户可能对推荐的几个地点感兴趣并在第3个时间步进行访问。以推荐的其中一个兴趣点为例,介绍生成推荐解释的过程。
[0177]
为提供推荐兴趣点的解释,需构建用户u1与兴趣点之间的路径。如图4所示,根据步骤2
‑
3所述,本实施方式将用户u1与兴趣点之间的路径看成是由用户u1与第1个时间步上访问的兴趣点之间的潜在关系路径被连续访问的两个兴趣点之间的潜在关系路径组成的。其中,每个实体对之间存在多条关系路径,根据权重值,获得对用户访问兴趣点的决策影响大即权重值大的潜在关系路径和由这些潜在关系路径组成的完整路径形成了向u1推荐目标兴趣点的解释。
[0178]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同
替换;因而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。