本发明属于内容推荐领域,涉及一种基于图卷积网络的协同过滤推荐方法。
背景技术:
1、近几年,随着互联网的快速发展,人工智能技术也进入了新的时代,人类社会的生活的信息数据的产生变得越来越容易,从而导致数据量爆炸增长,大数据具有极高的信息利用价值和广泛的应用前景,同时也面临着“信息过载”的问题,在海量数据中,人们的需求也逐渐增多,如何高效、准确地获取到有用的数据信息是目前大数据研究中亟待解决的问题。因此推荐技术应运而生,推荐技术作为处理“信息过载”的有效途径之一,将其与深度学习结合可以用来挖掘用户和项目的深层表征,并很好地将它们整合在一起。目前已在国内外学术界和众多相关领域引起了广泛的关注,并取得了大量的研究成果。
2、随着图学习(graph learning,gl)方法,特别是图学习中的图神经网络(graphneural networks,gnn)的提出,其在复杂关系提取和链路预测等许多图任务中取得了巨大成功,引起了学术界和工业界研究人员的关注。由于推荐系统的大部分数据具有图结构的特性,将图学习方法应用到推荐领域是一种很自然的做法。因此,图学习方法已逐渐成为推荐领域内一种被广泛研究的新兴推荐范式,即基于图学习的推荐系统。当用户与项目的交互信息和用户与项目相关联的辅助信息被构建成图结构形式,再结合以随机游走、图表示学习和图神经网络为主要代表的图学习方法,即可捕获、学习和模拟用户与项目之间高阶的、复杂的关系,更加有效地学习用户的长期兴趣偏好和项目的特征属性,以提升推荐系统的推荐性能。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于图卷积网络的推荐方法,将用户-项目,项目-项目,用户-用户之间的高阶信息,社交推荐同时利用用户到项目的交互以及用户到用户的社会关系来完成向用户生成项目推荐的任务。利用社会关系显然可以有效地理解用户的品味。利用图卷积网络提取社交网络信息,使用社交网络信息来缓解推荐算法中的数据稀疏和冷启动问题。
2、为达到上述目的,本发明提供如下技术方案:
3、一种基于图卷积网络的协同过滤推荐方法,包括以下步骤:
4、s1:获取用户信息和项目信息,进行预处理得到数据集,并划分为训练集和测试集;
5、s2:根据数据集构建用户-项目交互图二部图,项目-项目二部图,用户-用户二部图;
6、s3:将用户-项目交互图映射到向量空间,通过具有用户-项目关系的相同消息传递层隐式学习项目-项目关系图;
7、s4:构建无监督子图生成模块,利用用户特征和图结构识别出具有共同兴趣的用户;
8、s5:引入图卷积操作,对于高阶图卷积,仅利用来自同一子图中节点的消息来学习节点嵌入;对于一阶图卷积,经过一层gcn得到用户和项目的表示;
9、s6:用户-项目二分图经过一阶图卷积生成特征向量,高阶传播只作用于子图内部,生成每一层的最终嵌入,将所有层的嵌入结合起来,经过自注意力层,再将两个模块的最终表示拼接在一起,最后得到用户和项目的最终表示,模型预测被定义为用户和项目最终表征的内积。
10、进一步,步骤s3所述将用户-项目交互图映射到向量空间具体包括:
11、a∈rn×m表示用户-项目交互矩阵,其中n和m分别表示用户和项目的数量。非零条目aui∈a表示用户u∈u曾经与项目i∈i互动过;否则,该条目为零;根据交互矩阵构建一个用户-项目的二分图g=(w,e),其中节点集w由用户节点和项目节点两种类型组成,e代表边的集合;对于非零的aui,用户u和项目i之间存在一条边,表示用户u的嵌入,表示项目i的嵌入。
12、进一步,将步骤s3的信息作为gcn模型的输入,通过迭代聚合二分图中相邻节点的特征来学习用户和项目的表示,gcn的图卷积操作如下:
13、
14、
15、gcn迭代地执行图的卷积,将目标节点周围的邻居的嵌入表示聚合到此节点,生成目标节点的新嵌入表示,提取图的空间结构特征;聚合邻居节点信息的方式表示为:
16、
17、式中:和分别表示在k层传播后用户u和项目i的嵌入;为与用户u相关联的项目的集合;agg是一个聚合函数,是图卷积的核心,用于获取第k层的目标节点及邻居节点的嵌入表示,是对称的归一化项,用于避免嵌入的规模随图卷积操作的增加而增加;
18、经过k层图卷积后,一个用户的最终嵌入它们在gcn中每一层得到的嵌入的组合:
19、
20、
21、其中αk≥0是分配给第k层的一个超参数,它表示该层在构成最终嵌入中的重要性。
22、进一步,步骤s4具体包括:依靠用户节点来形成用户-项目二分图中的子图,将兴趣相近的用户分组为一个子图,与这些用户直接相关的项目也属于该子图;从而使每个用户只属于一个子图,一个项目可以关联多个子图;用gs与s∈{1,···,ns}表示一个子图,其中ns是子图的数量。
23、进一步,步骤s5中,具体包括:
24、在一阶传播中,所有的一阶邻居都参与到图卷积操作中,让和别表示用户u和项目i的id嵌入,一阶图卷积为:
25、
26、
27、其中和分别代表目标用户u和项目i的第一层嵌入;
28、对于高阶图卷积,为了学习一个项目i的嵌入,对于它所属的每个子图gs,学习这个项目的嵌入,让表示项目i在子图s中经过k层图卷积后的嵌入,高阶传播定义为:
29、
30、
31、被视为从子图gs中具有相似兴趣的用户那里学到的特征;
32、经过k层图卷积后,项目i的最终表示是其在不同子图中学习的嵌入的组合,即:
33、
34、s是项目i所属的子图集;
35、在损失函数中加入sigmoid和负对数似然,得出以下损失:
36、
37、项目-项目图,用户-用户图上的约束损失函数定义为:
38、
39、βu,i是约束系数,ωi,j是超参数,n+表示正样本对;
40、最终损失函数定义为:
41、
42、进一步,步骤s6具体包括以下步骤:
43、s61:将每一层得到的嵌入结合起来,形成用户u和项目i的最终表示,αk通过一个注意力层学习得到,通过学习的用户嵌入eu和项目ei,给定一个用户u和一个目标项目i,用户对项目的偏好通过内积计算:
44、
45、s62:e(0)为用户id和项目id的表示矩阵;e(k)代表用户和项目在第k层的表,定义为子图gs中第k层的用户和项目的表示;
46、第一层嵌入传播描述如下:
47、
48、其中是用户-项目交互图的拉普拉斯矩阵;
49、子图上的嵌入传播表述为:
50、
51、其中k≥2,代表子图gs的拉普拉斯矩阵;然后,第(k-1)层嵌入在用户-项目图上传播,得到k第层的嵌入:
52、
53、将所有涉及不同子图的k层嵌入聚合起来,制定最终的k层嵌入:
54、
55、s63:将所有层的嵌入结合起来,得到用户和项目的最终表征:
56、e=α0e(0)+α1e(1)+···+αke(k)。
57、本发明的有益效果在于:本发明解决了基于图卷积的推荐算法中,迭代多层出现的过渡平滑问题,通过堆叠更多的层来利用高阶邻居的信息而获得改进。
58、本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。