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

一种基于知识图谱和高阶协同信息的推荐方法及系统

2022-11-14 12:21:15 来源:中国专利 TAG:


1.本发明属于人工智能领域,更具体地,涉及一种基于知识图谱和高阶协同信息的推荐方法及系统。


背景技术:

2.随着互联网时代的带来,信息飞速增长,对于用户来说,可用的信息就犹如大海捞针,为了缓解信息超载问题,提高信息的利用率,为广大用户筛选过滤出有效的信息,实现信息的精准推荐,于是推荐模型就应运而生。推荐模型可为用户筛选推荐潜在感兴趣的项目,从而提高用户的决策效率,并且为运营商实现精准商品推销,带来巨大的商业效益。
3.当前基于知识图谱的推荐方法层出不穷,如kcan模型,通过对全量庞大的知识图谱进行局部知识蒸馏从而在一个局部子图中挖掘更精确的目标偏好,然后通过图卷积神经网络递归地聚合邻居的特征来更新节点表征。mann模型,这是一种基于知识图谱的多语境感知推荐算法,该算法结合了基于路径的和基于传播的方法对项目表示进行学习。kgcn模型通过对知识图谱中每个实体采样得到其部分邻居节点,通过多层kgcn迭代聚合邻居特征进而得到对应项目的表征,总体而言,目前利用图神经网络捕获知识图谱中的信息并进一步应用于推荐中仅仅是从项目端单端进行建模,无法从用户的角度进行考察。没有将用户—项目交互历史记录项并入用户表示,导致用户的嵌入表示不足。
4.近年来,研究人员对基于用户—项目双端建模的推荐模型也在不断做探索,如dekgcn模型,在项目端,用知识图谱的异构信息聚合项目的辅助信息从而得到项目表征;在用户端,利用用户的年龄、职业等辅助信息来构建用户属性图建模。使得用户端和项目端都含有丰富的语义表示。dgar模型在用户端,通过知识图谱中实体之间的联系传播和扩展用户潜在兴趣;在项目端,通过捕获知识图谱中的高阶结构和语义信息,对实体邻居抽样并通过图注意力机制建模高阶邻域信息。
5.总的来说,目前的双端推荐方法在探索用户-项目高阶交互信息对用户的表征方面存在不足,无法学习出用户与项目更深层次的交互信息,依然存在着用户嵌入表示不足的问题。


技术实现要素:

6.针对现有技术的缺陷,本发明的目的在于提供一种基于知识图谱和高阶协同信息的推荐方法及系统,旨在解决目前的双端推荐方法在探索用户-项目高阶交互信息对用户的表征方面存在不足,无法学习出用户与项目更深层次的交互信息,依然存在着用户嵌入表示不足的问题。
7.为实现上述目的,第一方面,本发明提供了一种基于知识图谱和高阶协同信息的推荐方法,包括如下步骤:
8.确定用户与项目的交互信息和知识图谱;所述项目包括待为用户推荐场景下的实体;
9.根据用户与项目的交互信息确定用户与项目的交互矩阵,以反映用户与各个项目之间是否有交互;根据用户与项目的交互矩阵,确定与用户有交互的项目,将有交互的项目作为用户的一阶邻居,并确定与一阶邻居有交互的其他用户,作为用户的二阶邻居,之后确定与二阶邻居有交互的项目,作为用户的三阶邻居,以此类推,将用户的各阶邻居连接得到用户与项目的高阶交互图,基于所述高阶交互图进行层层的嵌入迭代从而确定用户的高阶嵌入表示;
10.对项目的一阶邻居随机采样,形成项目的一阶邻域;确定知识图谱中项目与其一阶邻域中各个邻居之间的关系,并基于注意力机制确定各邻居关系的权重,以反映各邻居关系对用户的重要程度;结合一阶邻域中各邻居自身的表征与其对应的关系权重确定项目一阶邻域的嵌入表示;将项目的自身嵌入表示与其一阶邻域的嵌入表示聚合,得到项目的聚合嵌入表示;
11.根据用户的高阶关嵌入表示和项目的聚合嵌入表示预测用户对项目的偏好得分,并基于所述偏好得分对用户推荐其感兴趣的项目。
12.在一个可选的示例中,根据用户与项目的交互信息确定用户与项目的交互矩阵,具体为:
13.将用户的集合表示为u={u1,u2,...,um};m表示用户的数量,ui表示第i个用户;1≦i≦m;
14.将项目的集合表示为v={v1,v2,...,vn};n表示项目的数量,vj表示第j个项目;1≦j≦n;
15.定义交互矩阵y∈rm×n,若用户u与项目v之间有交互则定义y
uv
为1,否则定义为0;y
uv
为交互矩阵y中的元素。
16.在一个可选的示例中,所述用户的高阶嵌入表示通过如下步骤确定:
17.设用户u的一阶邻居v对用户u特征形成的贡献为
u,v

[0018][0019]
式中,n(v)表示项目v一阶邻居的集合,|(v)|表示项目v的一阶邻居数,n(u)表示用户u一阶邻居的集合,|(u)|表示用户u的一阶邻居数,w1表示权重矩阵,是项目v初始的向量表示;
[0020]
用户u的一阶表征为:
[0021][0022]
用户u的高阶表征为:
[0023][0024]
式中,leakyrelu为激活函数,集成了第1阶邻居至第l阶邻居的信息,是用户在
高阶交互图第l层的表示,集成了第1阶邻居至第l-1阶邻居的信息,是用户在高阶交互图第l-1层的表示;
[0025]
将用户在每一层的嵌入表示相加得到用户u的高阶嵌入表示为:
[0026][0027]
在一个可选的示例中,所述项目的聚合嵌入表示通过如下步骤确定:
[0028]
设ei表示实体i,ej表示实体j,r表示两者之间的关系;引入注意力机制来决定关系r对用户u的重要程度,作为关系权重,关系r对用户u的关系权重为:
[0029][0030]
其中,sum表示加和运算,ue,re分别是用户u和关系r的向量表示;
[0031]
将项目v采样的一阶邻居的向量表示与其对应的归一化的关系权重相乘并加和得到项目v的一阶邻域表示为:
[0032][0033]
其中π(u,r
v,i
)表示归一化后的关系权重,r
v,i
表示项目v和实体i相连的关系,ei为实体i的嵌入表征;
[0034]
项目v的聚合嵌入表示为:
[0035][0036]
其中,σ表示激活函数relu,v0为项目自身的向量表示,w2为线性变化矩阵,b表示偏置项。
[0037]
在一个可选的示例中,根将用户的高阶嵌入表示和项目的聚合嵌入表示进行点乘并求和再结合激活函数来预测用户对该项目的偏好得分:
[0038]
第二方面,本发明提供了一种基于知识图谱和高阶协同信息的推荐系统,包括:
[0039]
确定单元,用于确定用户与项目的交互信息和知识图谱;所述项目包括待为用户推荐场景下的实体;
[0040]
用户高阶嵌入表示单元,用于根据用户与项目的交互信息确定用户与项目的交互矩阵,以反映用户与各个项目之间是否有交互;根据用户与项目的交互矩阵,确定与用户有交互的项目,将有交互的项目作为用户的一阶邻居,并确定与一阶邻居有交互的其他用户,作为用户的二阶邻居,之后确定与二阶邻居有交互的项目,作为用户的三阶邻居,以此类推,将用户的各阶邻居连接得到用户与项目的高阶交互图,基于所述高阶交互图进行层层的嵌入迭代从而确定用户的高阶嵌入表示;
[0041]
项目聚合嵌入表示单元,用于对项目的一阶邻居随机采样,形成项目的一阶邻域;确定知识图谱中项目与其一阶邻域中各个邻居之间的关系,并基于注意力机制确定各邻居关系的权重,以反映各邻居关系对用户的重要程度;结合一阶邻域中各邻居自身的表征与其对应的关系权重确定项目一阶邻域的嵌入表示;将项目的自身嵌入表示与其一阶邻域的嵌入表示聚合,得到项目的聚合嵌入表示;
[0042]
项目推荐单元,用于根据用户的高阶关嵌入表示和项目的聚合嵌入表示预测用户
对项目的偏好得分,并基于所述偏好得分对用户推荐其感兴趣的项目。
[0043]
在一个可选的示例中,所述用户高阶嵌入表示单元根据用户与项目的交互信息确定用户与项目的交互矩阵,具体为:
[0044]
将用户的集合表示为u={u1,u2,...,um};m表示用户的数量,ui表示第i个用户;1≦i≦m;将项目的集合表示为v={v1,v2,...,vn};n表示项目的数量,vj表示第j个项目;1≦j≦n;定义交互矩阵y∈rm×n,若用户u与项目v之间有交互则定义y
uv
为1,否则定义为0;y
uv
为交互矩阵y中的元素]。
[0045]
在一个可选的示例中,所述用户高阶嵌入表示单元通过如下步骤确定用户的高阶嵌入表示:
[0046]
设用户u的一阶邻居v对用户u特征形成的贡献为i
u,v

[0047][0048]
式中,n(v)表示项目v一阶邻居的集合,|n(v)|表示项目v的一阶邻居数,n(u)表示用户u一阶邻居的集合,|n(u)|表示用户u的一阶邻居数,w1表示权重矩阵,是项目v初始的向量表示;
[0049]
用户u的一阶表征为:
[0050][0051]
用户u的高阶表征为:
[0052][0053]
式中,leakyrelu为激活函数,集成了第1阶邻居至第l阶邻居的信息,是用户在高阶交互图第l层的表示,集成了第1阶邻居至第l-1阶邻居的信息,是用户在高阶交互图第l-1层的表示;
[0054]
将用户在每一层的嵌入表示相加得到用户u的高阶嵌入表示为:
[0055][0056]
在一个可选的示例中,所述项目聚合嵌入表示单元通过如下步骤确定项目的聚合嵌入表示:
[0057]
设ei表示实体i,ej表示实体j,r表示两者之间的关系;引入注意力机制来决定关系r对用户u的重要程度,作为关系权重,关系r对用户u的关系权重为:
[0058][0059]
其中,sum表示加和运算,ue,re分别是用户u和关系r的向量表示;
[0060]
将项目v采样的一阶邻居的向量表示与其对应的归一化的关系权重相乘并加和得到项目v的一阶邻域表示为:
[0061][0062]
其中π(u,r
v,i
)表示归一化后的关系权重,r
v,i
表示项目v和实体i相连的关系,ei为实体i的嵌入表征;
[0063]
项目v的聚合嵌入表示为:
[0064][0065]
其中,σ表示激活函数relu,v0为项目自身的向量表示,w2为线性变化矩阵,b表示偏置项。
[0066]
在一个可选的示例中,所述项目推荐单元将用户的高阶嵌入表示和项目的聚合嵌入表示进行点乘并求和再结合激活函数来预测用户对该项目的偏好得分:
[0067]
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0068]
本发明提供一种基于知识图谱和高阶协同信息的推荐方法及系统,进一步探索用户—项目双端建模,弥补了单端建模的不足,在一定程度上缓解信息过载问题,提高信息的利用率,为广大用户筛选过滤出有效的信息,提高了推荐的性能。
[0069]
本发明提供一种基于知识图谱和高阶协同信息的推荐方法及系统,充分利用用户点击项信息,提出一种新的嵌入传播方式将高阶的用户—项目协同交互信息嵌入用户表征,使用户端嵌入表示更加丰富准确。
[0070]
本发明提供一种基于知识图谱和高阶协同信息的推荐方法及系统,在书籍推荐场景进行了实验来评估有效性,与其他新近的方法相比,本发明的推荐性能优于其他方法。
附图说明
[0071]
图1是本发明实施例提供的基于知识图谱和高阶协同信息的推荐方法流程图。
[0072]
图2是本发明实施例提供的高阶用户—项目互动图的示意图。
[0073]
图3是本发明实施例提供的通过使用知识图谱中丰富的一阶和二阶邻居辅助信息形成实体嵌入表示的一般过程的示意图。
[0074]
图4是本发明实施例提供的推荐模型结构示意图。
[0075]
图5是本发明实施例提供的用户u1的三阶嵌入传播的示意图。
[0076]
图6是本发明实施例提供的项目v的嵌入表征示意图。
[0077]
图7是本发明实施例提供的基于知识图谱和高阶协同信息的推荐系统架构图。
具体实施方式
[0078]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0079]
本发明提出一种基于知识图谱和高阶协同信息的双端建模推荐方法,该方法从用户—项目双端建模,弥补了单端建模存在的不足,并且充分利用高阶的用户—项目交互信息来丰富用户端表示,使推荐性能更强。
[0080]
图1是本发明实施例提供的基于知识图谱和高阶协同信息的推荐方法流程图,如图1所示,包括如下步骤:
[0081]
s101,确定用户与项目的交互信息和知识图谱;所述项目包括待为用户推荐场景下的实体;
[0082]
s104,根据用户与项目的交互信息确定用户与项目的交互矩阵,以反映用户与各个项目之间是否有交互;根据用户与项目的交互矩阵,确定与用户有交互的项目,将有交互的项目作为用户的一阶邻居,并确定与一阶邻居有交互的其他用户,作为用户的二阶邻居,之后确定与二阶邻居有交互的项目,作为用户的三阶邻居,以此类推,将用户的各阶邻居连接得到用户与项目的高阶交互图,基于所述高阶交互图进行层层的嵌入迭代从而确定用户的高阶嵌入表示;
[0083]
s103,对项目的一阶邻居随机采样,形成项目的一阶邻域;确定知识图谱中项目与其一阶邻域中各个邻居之间的关系,并基于注意力机制确定各邻居关系的权重,以反映各邻居关系对用户的重要程度;结合一阶邻域中各邻居自身的表征与其对应的关系权重确定项目一阶邻域的嵌入表示;将项目的自身嵌入表示与其一阶邻域的嵌入表示聚合,得到项目的聚合嵌入表示;
[0084]
s104,根据用户的高阶关嵌入表示和项目的聚合嵌入表示预测用户对项目的偏好得分,并基于所述偏好得分对用户推荐其感兴趣的项目。
[0085]
在一个具体的实施例中,本发明提供的技术方案包括如下四个关键层:
[0086]
输入层:将用户交互信息和知识图谱作为输入。
[0087]
嵌入层:在高阶的用户—项目交互图中进行高阶连通性表达建模,捕获到用户端更深层次的特征来丰富用户端嵌入表示,在知识图谱中通过邻居采样并结合注意力机制进行邻居特征嵌入来丰富项目端嵌入表示。
[0088]
聚合层:将嵌入层计算出的邻居的嵌入表示与自身表示进行聚合得到最终的用户和项目表示。
[0089]
预测层:通过预测函数将用户和项目的嵌入表示进行结合,最终输出给定用户对目标项目的偏好程度,表达用户兴趣大小。
[0090]
优选的是,本发明同时将高阶协同信息和知识图谱纳入推荐系统,高阶用户—项目交互信息代表了用户的高阶交互历史,可以深入挖掘用户的偏好,知识图谱代表了当前以实体间关系形式记录信息的趋势,可以提供关于产品和用户的额外(侧面)信息。这些信息可以使推荐更加稳健。因此,本发明提出了一种基于知识图谱和高阶交互信息的双端建模推荐方法。由于该模型的用户—项目视角的构建,它克服了单端建模的缺点,并充分地利用了高阶的用户—项目交互信息来补充用户端表示,从而产生了更有效的推荐性能。
[0091]
给定交互矩阵y和知识图谱g,我们的目标是学习到用户和项目的嵌入向量和并通过目标函数来预测用户u是否对项目v有潜在兴趣。目标函数f定义如下:
[0092][0093]
其中y
uv
表示用户对项目v的潜在兴趣,为用户的嵌入向量,为项目的嵌入向量,θ代表函数f的模型参数。
[0094]
用户端建模时,在输入层,本模型将用户交互历史作为输入,形成用户—项目交互
矩阵y∈r
mxn

[0095]
在嵌入层对用户-项目交互信息进行建模,首先通过高阶的用户-项目交互图来层层嵌入传播用户表示。首先对用户嵌入表示做一个初始化,然后通过多个嵌入传播层注入高阶连接关系来优化嵌入,本发明在嵌入层提出一种新的嵌入传播方式,生成用户u的的向量表示时,用户u的一阶邻居v对用户u特征形成的贡献为
u,v

[0096][0097]
式中,|n(v)|表示项目v的一阶邻居数,也就是与项目v直接相互过的用户数量,|n(u)|表示用户u的一阶邻居数,也就是与用户u直接交互过的项目数量,w1是可训练的权重矩阵,是项目v初始的向量表示。依据传统的gcn思想,若某个节点的一阶邻居数越多,那么它对与每个邻居节点的影响就越小,因此可表示节点v对用户u特性形成的贡献度,然后与可训练的权重矩阵相乘来共同表示节点v的贡献度。
[0098]
将所有一阶邻居特征集成到用户u的向量表示中形成用户u的一阶表征同时依照传统的图神经网络规则,加上激活函数leakyrelu,计算方法为:
[0099][0100]
根据一阶信息的传播规则,利用高阶的用户—项目交互图堆叠多个嵌入传播层来探索更高阶连接信息,通过堆叠l个嵌入传播层,用户能够接收到l邻居传播的消息,通过层层邻居节点的递归嵌入,最终形成用户的表示,其递归公式为:
[0101][0102]
式中,集成了前面1~l层邻居的信息,是用户在第l层的表示,集成了前面1~l-1层邻居的信息,是用户在第l-1层的表示,它将继续作用于第l层来得到用户在第l层的嵌入表示以此通过高阶连通性进行层层的嵌入迭代来扩展更深层次的信息来丰富用户的嵌入表示。
[0103]
在聚合层,将经过l层传播后,我们得到了用户u1~l层的嵌入表示由于在不同层得到的用户的向量表示对于最终用户的向量形成都有不同程度的贡献,因此在聚合层需要把用户每层的嵌入表示进行聚合,通过这种方式来增强用户的嵌入表达能力。聚合方式采用求和聚合,得到用户u的嵌入表示
[0104][0105]
项目端建模时,在输入层,本模型用项目的属性来作为辅助信息,将无数个项目属性三元组{(h,r,t)|h∈e,r∈r,t∈e}作为输入,即h为头实体,r为关系,t为尾实体,e和r分别实体集和关系集。
[0106]
在嵌入层,利用知识图谱丰富的辅助信息和高阶的图结构来挖掘出深层次的语义特征从而扩展项目表示,通过对一阶邻居进行采样、权重计算、加权聚合最终得到项目v表征。
[0107]
在嵌入层进行项目表征形成时,首先计算关系权重,在知识图谱g中,我们定义ei表示实体i,ej表示实体j,r表示两者之间的关系,由于在知识图谱中不同的关系连接起来的实体的对用户的重要程度是不一样的,比如在进行书籍推荐时,a用户更加注重书籍的作者,而b用户更加注重书籍的题材,因此,为了区分不同关系连接的实体重要程度的不同,本模型在知识图谱中引入注意力机制来决定关系r对用户u的重要程度,作为关系权重,。其计算方法为:
[0108][0109]
式中,ue,re分别是用户u和关系r的向量表示,sum表示求和。
[0110]
然后从项目的一阶邻居中进行采样,通过在知识图谱中邻居信息的聚合能在一定程度上缓解数据稀疏性问题,将项目v采样的一阶邻居的向量表示与其对应的归一化的关系权重相乘并加和得到项目v的一阶邻域表示:
[0111][0112]
式中,π(u,r
v,e
)表示归一化后的关系权重,r
v,i
表示项目v和邻居i之间的关系,ei为邻居i的向量表示。
[0113]
在聚合层,在得到了项目v的邻居的向量表示v
n(v)
后,然后将项目自身的向量表示v0与v
n(v)
聚合形成最终的项目表示,聚合方式采用加和聚合,最终得到项目v融合邻居特征的向量表示:
[0114][0115]
式中,w2表示线性变换矩阵,b为偏置项,σ表示激活函数。
[0116]
在预测层,得到项目端的嵌入表示和用户端的嵌入表示后,将两者进行点乘并求和再结合激活函数σ来预测用户对该项目的偏好得分:
[0117][0118]
其中,σ表示激活函数relu,sum为加和运算。
[0119]
本发明实施例中所提到的推荐模型可以应用于各种推荐场景,该场景包括但不限于涉及电商产品推荐、音乐推荐、电影推荐、书籍推荐等场景,本实例以书籍推荐为例。在pycharm平台上基于pytorch框架针对本发明进行实验,在推荐过程中,称待推荐的人群为“用户”,推荐的书籍称为“项目”。本技术实施例提供一种推荐方法,将“高阶的用户—项目”交互图和知识图谱同时纳入推荐模型,该方法从用户—项目双端建模,弥补了单端建模存在的不足,并且充分利用高阶的用户—项目交互信息来丰富用户端表示,使推荐性能更强。
[0120]
本发明将用户和项目的集合分别表示为u={u1,u2,...,um}和v={v1,v2,...,vn},其中m表示用户的数量,n表示项目的数量。我们定义交互矩阵y∈rm×n,若用户项目之间有交互则定义y
uv
为1,否则定义为0。
[0121]
为解决数据稀疏性和冷启动问题,我们引入知识图谱g,利用其丰富的辅助信息来
丰富项目端嵌入表示。知识图谱中实体v的嵌入表示由其邻居和自身特征聚合而成,定义n(v)为实体v的一阶邻居实体集。
[0122]
给定交互矩阵y和知识图谱g,我们的目标是学习到用户和项目的嵌入向量和并通过预测函数来预测用户u是否对项目v有潜在兴趣。预测函数f定义如下:
[0123][0124]
其中y
uv
表示用户对项目v的潜在兴趣,为用户的嵌入向量,为项目的嵌入向量,θ代表函数f的模型参数。
[0125]
参见附图2,在我们的模型的用户端,用户—项目高阶协作互动信息被充分挖掘,用户特征在用户—项目高阶互动网络中被传播,随着阶数的增加,可以考察更深层次的特征。例如,图2中的目标用户是u1,我们可以从路径{u
1-》i1,i
1-》u2}中挖掘出与用户u1相似的用户u2,因为他们是由共同的交互项i1连接的,因此,对用户u1建模可以考虑到u2。较长的路径{u
1-》i1,i
1-》u2,u
2-》i5}表明,用户可能会选择项目i5。因为与用户u1相似的用户u2已经与用户i5进行了交互,通过高阶连接,在形成u1的表征时可以考虑到u2甚至更高阶的i5的信息。由于用高阶关系建模可以捕捉到高阶协作信号,因此可以产生更加丰富准确的用户向量表征。
[0126]
参见附图3,从项目的角度来看,知识图谱准确而多样的高层结构化语义信息被用来扩展项目的表示。图3显示了如何生成实体《百万英镑》的嵌入表示。一阶邻居"讽刺"和"马克
·
吐温"的表征可以用来作为实体《百万英镑》的一阶邻居表征。同时,为探索更高阶邻居信息,二阶邻居《王子与贫民》的表征也可以被纳入实体的表征中。知识图谱的一阶和二阶邻居可以形成不同距离的实体集,利用这些信息可以有效扩展项目的表示,在一定程度上解决数据稀疏性问题,使得项目的嵌入表示更加丰富、精确,最终使得推荐的性能更加精准。
[0127]
参见附图4,本发明总体模型框架图如图4所示:本模型由4个关键层组成,(1)输入层,将用户交互信息和知识图谱作为输入。(2)嵌入层,在高阶的用户—项目交互图中进行高阶连通性表达建模,捕获到用户端更深层次的特征来丰富用户端嵌入表示。在知识图谱中通过邻居采样并结合注意力机制进行邻居特征嵌入来丰富项目端嵌入表示。(3)聚合层,将嵌入层计算出的邻居的嵌入表示与自身表示进行聚合得到最终的用户和项目表示。(3)预测层,通过预测函数将用户和项目的嵌入表示进行结合,最终输出给定用户对目标项目的偏好程度,表达用户兴趣大小。
[0128]
参见附图5,描述了用户嵌入表示的具体形成,在对u1建模时,可以考虑来自直接交互项v2的信息,随着节点v2的扩展,来自节点u3甚至高阶v4的信息可以共同纳入节点u1的表示中。因此,v4、u3和v2的嵌入表示和都可以并入u1的嵌入表示
[0129]
在生成用户u的的向量表示时,用户u的一阶邻居v对用户u特征形成的贡献为:
[0130][0131]
其中,|n(v)|表示项目v的一阶邻居数,也就是与项目v直接相互过的用户数量,|n(u)|表示用户u的一阶邻居数,也就是与用户u直接交互过的项目数量,w1是可训练的权重
矩阵,是项目v自身的向量表示。
[0132]
一阶邻居v对用户u特征形成的贡献可用i
u,v
表示,将所有一阶邻居特征集成到用户u的向量表示中形成用户u的一阶表征,同时依照传统的图神经网络规则,加上激活函数leakyrelu,计算方法为:
[0133][0134]
根据一阶信息的传播规则,利用高阶的用户—项目交互图堆叠多个嵌入传播层来探索更高阶连接信息,通过堆叠l个嵌入传播层,用户能够接收到l邻居传播的消息,通过层层邻居节点的递归嵌入,最终形成用户的表示,其递归公式为:
[0135][0136]
其中集成了前面1~l层邻居的信息,是用户在第l层的表示,集成了前面1~l-1层邻居的信息,是用户在第l-1层的表示,它将继续作用于第l层来得到用户在第l层的嵌入表示以此通过高阶连通性进行层层的嵌入迭代来扩展更深层次的信息来丰富用户的嵌入表示。
[0137]
在经过l层传播后,我们得到了用户u1~l层的嵌入表示在经过l层传播后,我们得到了用户u1~l层的嵌入表示由于在不同层得到的用户的向量表示对于最终用户的向量形成都有不同程度的贡献,因此在聚合层需要把用户每层的嵌入表示进行聚合,通过这种方式来增强用户的嵌入表达能力。聚合方式有三种:求和聚合,拼接聚合和邻居聚合:以求和聚合为例,求和聚合将每一层得到的用户的嵌入向量以及用户自身的嵌入向量进行相加,以得到最终的用户嵌入表示
[0138][0139]
参见附图6,给出了一个给定实体的接受域的说明性例子。为了丰富项目v的嵌入表征,从一阶邻居中抽样{e1,e4}构成了邻居实体集,通过计算实体集中实体的关系权重,并将邻居表征与自己的表征汇总,得到项目v的嵌入表征。
[0140]
为了区分不同关系连接的实体重要程度的不同,本模型在知识图谱中引入注意力机制来决定关系r对用户u的重要程度,作为关系权重,其计算方法为:
[0141][0142]
其中ue,re分别是用户u和关系r的向量表示,sum表示求和。
[0143]
将项目v通过关系连接起来的一阶邻居的向量表示与其对应的归一化的关系权重相乘并加和得到项目v的一阶邻域表示:
[0144]
[0145]
式中,π(u,r
v,e
)表示归一化后的关系权重,r
v,i
表示项目v和邻居i之间的关系,ei为邻居i的向量表示。
[0146]
在嵌入层得到了项目v的邻居的向量表示v
n(v)
,然后将项目自身的向量表示v0与v
n(v)
聚合形成最终的项目表示,聚合方式采用加和聚合,最终得到项目v融合邻居特征的向量表示:
[0147][0148]
其中,w2为非线性变换矩阵,b为偏置项,σ为非线性激活函数。
[0149]
得到项目端的嵌入表示和用户端的嵌入表示后,将两者进行点乘并求和再结合激活函数来预测用户对该项目的偏好得分,若结果》0.5,则设为1,向用户推荐该项目,若结果《0.5,则设为0,不向用户推荐该项目,具体公式如下:
[0150][0151]
式中,σ表示激活函数relu,sum为加和运算。
[0152]
对于损失函数的计算,本模型使用二分类交叉熵损失函数来对一个样本集里面的数据做二元交叉熵并且求和。本模型的损失函数为:
[0153][0154]
其中l是交叉熵损失,p为样本集,y
uv
是真实值,是预测值,θ是一组模型参数,是正则化项,λ为正则化项系数。
[0155]
实施例:
[0156]
实验采用了图书评分数据集,包含来自17860个用户对14967本书籍的69874个评分,在推荐过程中,称待推荐的人群为“用户”,推荐的书籍称为“项目”。并基于pytorch框架实现推荐模型的功能。通过从用户端和项目端双端建模,将知识图谱和高阶协同信息共同纳入推荐模型,计算指标auc与acc。首先在输入层将用户交互信息和知识图谱作为输入。接着在高阶的用户—项目交互图中进行高阶连通性表达建模,捕获到用户端更深层次的特征来丰富用户端嵌入表示,在知识图谱中通过邻居采样并结合注意力机制进行邻居特征嵌入来丰富项目端嵌入表示。然后在聚合层中将嵌入层计算出的邻居的嵌入表示与自身表示进行聚合得到最终的用户和项目表示。最后通过预测函数将用户和项目的嵌入表示进行结合,最终输出给定用户对目标项目的偏好程度,表达用户兴趣大小。分别从推荐指标acc和auc两方面进行结果分析。
[0157]
(1)acc结果分析:对比实验过程中采用的数据与本实验中所用的数据相同,并且使用的预测函数一致。本发明与mann模型做对比,acc实验结果分别为0.681与0.712,本发明相比对比实验提高了3.1%。由此可见,从推荐准确率来说,本发明的推荐方法效果更好。
[0158]
(2)auc结果分析:对比实验过程中采用的数据与本实验中所用的数据相同,并且使用的预测函数一致,本发明与mann模型做对比,auc实验结果分别为0.744与0.777,本发明相比对比实验提高了3.3%。由此可见,从推荐性能来说,本发明的推荐方法性能更好。
[0159]
图7是本发明实施例提供的基于知识图谱和高阶协同信息的推荐系统架构图,如图7所示,包括:
[0160]
确定单元710,用于确定用户与项目的交互信息和知识图谱;所述项目包括待为用
户推荐场景下的实体;
[0161]
用户高阶嵌入表示单元720,用于根据用户与项目的交互信息确定用户与项目的交互矩阵,以反映用户与各个项目之间是否有交互;根据用户与项目的交互矩阵,确定与用户有交互的项目,将有交互的项目作为用户的一阶邻居,并确定与一阶邻居有交互的其他用户,作为用户的二阶邻居,之后确定与二阶邻居有交互的项目,作为用户的三阶邻居,以此类推,将用户的各阶邻居连接得到用户与项目的高阶交互图,基于所述高阶交互图进行层层的嵌入迭代从而确定用户的高阶嵌入表示;
[0162]
项目聚合嵌入表示单元730,用于对项目的一阶邻居随机采样,形成项目的一阶邻域,确定知识图谱中项目与邻域之间的关系,并基于注意力机制确定各邻居关系的权重,以反映各邻居关系对用户的重要程度,结合邻域自身的表征与其对应的关系权重确定项目一阶邻域的嵌入表示;将项目的自身嵌入表示与其一阶邻域的嵌入表示聚合,得到项目的聚合嵌入表示;
[0163]
项目推荐单元740,用于根据用户的高阶关嵌入表示和项目的聚合嵌入表示预测用户对项目的偏好得分,并基于所述偏好得分对用户推荐其感兴趣的项目。
[0164]
可以理解的是,图7中各个单元的详细功能实现可参见前述方法实施例中的介绍,在此不做赘述。
[0165]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献