本发明涉及推荐算法,尤其是涉及一种基于子图推理的可解释推荐算法。
背景技术:
1、在当今信息爆炸的时代,个人用户和现代企业都迫切需要一种工具,帮助他们从大量信息中筛选出所需的内容,推荐系统因此受到重视。推荐系统作为一种解决信息过载并识别用户偏好的工具,目前已被广泛应用于电商、社交网络和娱乐等多个平台,它不仅能够帮助用户节省时间、节约成本和提高体验质量,还为平台自身带来了显著的经济收益。伴随推荐算法的进步,企业与用户对推荐系统的期望不再局限于高准确度,他们还希望获得产品推荐的依据。因此,可解释的推荐系统应运而生,其不仅有能力提供个性化推荐,同时也有能力向用户和企业提供推荐某产品的理由。
2、基于知识图谱的可解释推荐算法近年来已成为可解释性研究领域内的一个重要分支。这类方法利用产品和用户知识图谱中丰富的结构化知识与语义信息,对用户与产品间的交互关系以及产品知识图谱的结构信息进行建模。这类方法不仅有助于推荐系统深入理解用户行为,还能有效捕捉用户偏好和产品特性,从而显著提高推荐系统的性能和解释能力。尽管基于知识图谱的可解释推荐算法已取得了一定成果,但是目前的相关研究仍存在明显的不足。
3、现有基于知识图谱的可解释推荐算法往往未能同时兼顾推荐性能与解释能力,目前这类算法的实现方式大致分为两类:一类通过为推荐系统之上添加后解释模块来增强可解释性;另一类则采用解释能力强但结构简单、性能有限的模型,以替换原有性能高但结构复杂、缺乏可解释性的模型。前者不能提供算法决策过程的真实解释,而后者可能会降低推荐的整体性能。为解决上述问题,全面提升推荐准确性和模型可解释性,本发明提出了一种基于子图推理的可解释推荐算法。
技术实现思路
1、本发明的目的是提供一种基于子图推理的可解释推荐算法,通过利用知识图谱中的子图来表现用户偏好,并在推荐过程中生成相应的子图以解释推荐结果,从而更全面捕捉用户偏好和产品特性。
2、为实现上述目的,本发明提供了一种基于子图推理的可解释推荐算法,包括以下步骤:
3、s1、对基于知识图谱的可解释推荐问题进行定义,并且对数据进行预处理,包括知识图谱、标签表示和数据集划分;
4、s2、设定异构图图神经网络,通过端到端的方式从异构知识图谱中提取节点的嵌入用于下游任务;
5、s3、设定以用户节点为中心的子图生成模型,通过计算节点的图注意力分散,从知识图谱中抽取能表示用户兴趣的用户子图;
6、s4、设定行为克隆损失函数,指导用户子图生成;
7、s5、设定子图编码器,从子图获取能表示用户兴趣的嵌入;
8、s6、计算推荐分数,基于协同过滤的思想,对用户兴趣与产品进行建模;
9、s7、设定推荐损失函数,最大化模型的推荐效果;
10、s8、输出推荐分数最高的产品集合,并输出对应的子图作为推荐解释。
11、优选的,步骤s1具体包括以下步骤:
12、s11、获取推荐任务数据集,进行数据清洗与预处理,构建并初始化推荐知识图谱;
13、s12、给定一个知识图谱g=(v,e,r),v是g中的节点集合,e是g中的边集合,r是g中的关系集合,节点代表数据中的实体,边代表实体之间的联系,关系代表边里面两个实体之间的具体关系;
14、s13、在推荐任务的场景中,定义的标签集合为d={(u1,y1),(u2,y2),(u3,y3),…,(un,yn)},其中ui是数据集中的第i个用户,每一个用户ui都与一个标签集yi联系,标签集yi和用户ui均属于v;
15、s14、将数据集d按比例划分为训练集、验证集和测试集。
16、优选的,步骤s2具体包括以下步骤:
17、s21、将节点编号作为初始输入,然后使用嵌入模型生成嵌入作为图神经网络的输入;
18、s22、异构图图神经网络通过两阶段来更新节点嵌入,两阶段分别为边编码和邻边聚合,第一阶段边编码的特点在于,用不同的神经网络编码不同的关系类型的边的信息,边编码公式如下:
19、
20、其中,表示关系rx的感知机不同的关系rx会对应不同的感知机,为节点i在图神经网络t-1轮的嵌入,表示将矩阵和矩阵做矩阵拼接;
21、s23、第二阶段邻边聚合的特点在于聚合从第一阶段边编码获得的边嵌入,聚合邻边信息更新节点嵌入,邻边聚合公式如下:
22、
23、其中,n(vh)表示节点vh的邻居节点集合,|n(vh)|表示节点vh的邻居节点数量,在轮节点表征更新后,获得最终的节点表征用于模型的子图推理模块。
24、优选的,步骤s3具体包括以下步骤:
25、s31、子图节点新增依靠计算的节点注意力分数,计算节点的注意力分数,首先需要结合用户节点嵌入,计算边的注意力分数公式如下:
26、
27、其中,β表示感知机mlp,表示将矩阵和矩阵做矩阵拼接,vu表示用户子图的中心即用户节点,表示第t-1轮获得的用户子图,表示子图的叶子节点即在第t-1轮时子图新增的节点;
28、s32、将第t-1轮计算的节点的注意力分数作为边在子图中的权重,结合步骤s31所计算的边注意力分数,计算节点的注意力分数,然后选择分数最高的m个节点加入用户子图中,节点注意力分数计算公式如下:
29、
30、其中,为知识图谱中存在的三元组,表示在t-1轮子图叶子节点在图中的邻居节点集合,为的第t轮节点vj的注意力分数,基于该分数选出一定数量的节点加入到用户子图中,形成第t轮的用户子图
31、优选的,步骤s4具体过程如下:
32、进行t轮用户子图更新后,获得最终的用户子图进行下一轮的推荐决策任务中,使用行为克隆的方式指导子图生成,具体地构造一个基于知识图谱的用户行为损失函数指导每一轮子图生成中边注意力值的计算,具体公式如下:
33、
34、优选的,步骤s5具体过程如下:
35、在子图编码中,对不同的路径之间的关系所蕴含不同信息进行建模,子图上不同的路径间关系实际上代表的是不同的子图结构,设计三种子图结构用于提取子图的结构信息,结构a关注用户兴趣的深度,结构b专注于产品与用户兴趣的匹配度,结构c关注用户兴趣的多样性,对用户子图按照这三种结构进行切割,然后分别编码,具体公式如下:
36、
37、其中,vi表示与用户子图叶子节点相连的产品节点;表示子图中属于结构j的部分子图集合,j是结构a,b和c中的一个;表示属于部分子图集合的部分子图的表征;为子图中与用户节点vu距离为l的节点集合,vi与用户节点vu距离为t+1;ψj是子图结构j的感知机,感知机作为抽取子图结构j的内容编码器。
38、优选的,步骤s6具体过程如下:
39、将子图编码后,计算产品节点与子图的匹配度分数,首先计算每个子图与产品节点的匹配分数,然后与子图的权重相乘获得这部分子图在用户兴趣中的重要性,最后将各部分子图与产品节点的匹配度分数相加后获得最终的推荐分数,具体公式如下:
40、
41、其中,公式(9)计算的是部分子图与产品节点vi的匹配分数;表示部分子图中与用户节点距离为t的节点集合,此处,产品节点vi与用户节点vu距离为t+1;子图生成阶段计算的分数作为该部分子图在子图中的权重分数参与匹配分数计算,最终模型聚合全部部分子图与产品节点vi的匹配分数构成产品节点vi对用户节点vu的推荐分数。
42、优选的,步骤s7具体包括以下步骤:
43、s71、计算推荐的损失函数,公式如下:
44、
45、其中,y(u)表示用户u交互过的真实产品集合,|y(u)|表示真实产品集合的大小;
46、s72、结合行为克隆的损失函数,计算模型总损失:
47、lossu=loss2u+loss1u (11)。
48、优选的,步骤s8具体过程如下:
49、基于推荐分数为每个用户的候选产品列表做排序,然后选择分数最高的k个产品,并且将计算推荐分数时相应的子图输出,作为对应产品的解释。
50、因此,本发明采用上述一种基于子图推理的可解释推荐算法,与现有技术相比,具有如下有益效果:
51、(1)本发明提供了一种表现更全面的基于知识图谱子图结构的可解释推荐方法,该方法旨在利用子图结构替换传统的路径结构来增强推荐系统的准确性和可解释性。
52、(2)本发明中子图结构能够提供更丰富的数据信息,并且通过对子图内不同路径之间的相互关系的建模,推荐算法可以更全面捕捉用户偏好和产品特性。
53、(3)本发明设计的基于子图的知识图谱可解释推荐算法通过利用知识图谱中的子图来表现用户偏好,并在推荐过程中生成相应的子图以解释推荐结果。具体而言,该算法分为两个主要部分:表征学习和子图推理。在表征学习阶段,模型通过异构图图神经网络利用知识图谱的结构信息和节点关系信息来学习节点的表征。在子图推理阶段,算法使用注意力机制选择与用户偏好相关的节点,构建能够反映用户偏好的子图,同时排除与用户偏好不相关的噪音节点。
54、(4)本发明从用户子图中提取与目标产品相关的子图,接着设计不同的子图结构,挖掘子图内不同路径之间的关系,通过这些子图结构,算法对用户子图进行建模,形成一系列模式子图。最终,根据这些模式子图计算目标产品与用户之间的推荐分数。
55、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
1.一种基于子图推理的可解释推荐算法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s1具体包括以下步骤:
3.根据权利要求2所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s2具体包括以下步骤:
4.根据权利要求3所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s3具体包括以下步骤:
5.根据权利要求4所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s4具体过程如下:
6.根据权利要求5所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s5具体过程如下:
7.根据权利要求6所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s6具体过程如下:
8.根据权利要求7所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s7具体包括以下步骤:
9.根据权利要求8所述的一种基于子图推理的可解释推荐算法,其特征在于,步骤s8具体过程如下:
