本发明涉及推荐系统,具体涉及一种基于双曲空间对比学习的协同过滤推荐方法及系统。
背景技术:
1、在推荐系统领域,协同过滤方法是一个重要的研究方向。随着深度学习技术的发展,出现了很多应用深度学习技术的协同过滤方法。基于深度学习的协同过滤方法通常将用户和物品表示为向量,然后使用神经网络模型来学习这些向量的表示,最后通过这些向量来预测用户对物品的喜好程度。在实际场景中,用户和物品的交互数据是稀疏的,并且表现出长尾分布的特点。数据稀疏性使得神经网络模型难以得到充分的监督信号来学习高质量的用户和物品向量表示。长尾分布使得数量较少的热门物品会更频繁地出现在模型学习过程中,从而对向量表示的学习产生更大的影响,最终导致推荐系统在推荐时忽略了冷门物品,造成推荐性能和多样性的下降。数据稀疏性和长尾分布挑战成为了推荐系统发展的瓶颈,亟需设计能够克服这些挑战的新方法。
2、近年来,基于双曲空间的深度学习技术被引入推荐系统用于解决推荐数据中存在的长尾分布挑战。研究发现推荐数据的长尾分布呈现出隐含的树状层次结构。此外,树中子节点的数量随着到根节点的距离的增加而呈指数式增长。然而欧式空间的空间大小随着到参考点的距离呈多项式增长。因此,基于欧式空间的深度学习技术在学习推荐数据的向量表示时会将指数增长的节点嵌入到多项式增长的空间中,导致空间过于拥挤,无法分离节点的向量表示。这种现象被称为“失真”,失真会使得节点向量之间的距离难以反映节点之间的真实距离,导致向量之间的距离难以用于推断用户对物品的偏好。
3、双曲空间是一个具有负曲率的弯曲空间,其负曲率使得空间容量呈指数式增长,非常适合建模树状数据。受此启发,一些研究人员提出在双曲空间中设计协同过滤方法,并取得了一些进展。hyperml和hvae是最早的基于双曲空间的协同过滤方法。hyperml通过额外考虑失真将度量学习推广到双曲空间中进行推荐。hvae将变分自编码器vae推广到双曲空间进行推荐。这些方法将欧氏空间上的深度学习方法推广到了双曲空间中实现协同过滤推荐,取得了一定的效果。
4、目前,最具代表性的基于双曲空间的协同过滤推荐方法是hgcf。hgcf是最早通过结合双曲空间和图卷积神经网络(gcn)来实现协同过滤推荐的方法。尽管hyperml和hvae取得了一定的效果,但是这些方法没有考虑用户和物品之间通常存在的高阶交互关系。将gcn应用于协同过滤推荐的工作已经证明了用户和物品之间高阶交互关系的重要性。hgcf首先在双曲空间上定义用户和物品的向量,然后通过在参考点的切面空间上的gcn来学习双曲空间中的用户和物品向量表示。gcn通过在切面空间上进行多次的图卷积操作,使得用户和物品的向量表示通过多次迭代不断聚合来自更高阶的领域信息,从而捕捉到更丰富的高阶交互关系。在公共基准数据集上的大量实验表明,hgcf优于许多领先的基线推荐方法,包括基于欧式空间gcn的协同过滤推荐方法以及基于双曲空间深度学习的协同过滤推荐方法。
5、hgcf的成功对基于双曲空间的协同过滤方法研究产生了很大的影响。部分后续研究工作在hgcf的基础上进行了改进。在hgcf的基础上,hrcf在损失函数中考虑了双曲空间的几何性质并设计了一个几何感知的双曲正则化损失,用于优化训练过程。hicf在hgcf的基础上进一步深入研究了双曲空间模型,以确定双曲空间在哪些方面相对于欧氏空间更具优势,同时在哪些方面可能表现较差。
6、现有的基于双曲空间的推荐方法都遵循有监督的学习范式,其中监督信号来自推荐数据中的用户物品交互对。然而,这些交互对相比于整个用户物品交互空间来说是十分稀疏的,并且深度学习模型的有效性在很大程度上依赖于足够的监督信号。尽管结合图神经网络的协同过滤推荐方法能够从数据中学习到额外的高阶交互信号,但这些额外的信号仍然不足以学习高质量的用户物品向量表示。已有的许多工作证明了图神经网络在处理稀疏的用户物品交互数据时存在一些局限性。
7、此外,现有方法大多数在参考点的切面空间上进行神经网络运算,难以充分利用双曲空间在建模树状层次结构上的优势。具体来说,切面空间是一个欧式子空间,它在一个参考点上局部逼近双曲空间。由于神经网络中的向量运算难以在双曲空间中定义,这些方法通过对数映射将向量映射到切面空间上,然后在切面空间上完成神经网络运算,最后通过指数映射将向量映射回双曲空间中。这个过程可以看成是将切面空间作为双曲空间的近似进行神经网络运算。最近的一些研究指出这种近似会使得计算结果不准确,从而难以充分利用双曲空间的优势。
技术实现思路
1、有鉴于此,本发明提供了基于双曲空间对比学习的协同过滤推荐方法及系统,能够利用双曲空间对比学习技术实现协同过滤推荐的目的,充分利用双曲空间优势,能够缓解推荐系统中存在的数据稀疏性问题,从而使得推荐计算结果更准确,改进推荐系统的性能,提高用户体验,适用于多种在线平台和应用。
2、为达到上述目的,本发明的提供的基于双曲空间对比学习的协同过滤推荐方法,其技术方案包括如下步骤:
3、步骤一:处理原始用户物品交互数据,构造用户物品交互图。
4、步骤二:定义双曲空间。
5、步骤三:确定用户和物品的双曲空间初始表示向量。
6、步骤四:构建推荐主任务模型,推荐主任务模型使用双曲图卷积神经网络学习用户和物品的双曲空间表示。
7、步骤五:构建对比学习辅助任务模型,对比学习辅助任务模型具体为:对原始的用户物品交互图以一定的概率丢弃图上的边,生成两个新的交互图,对这两个新的交互图构造交互矩阵;然后对两个交互矩阵分别应用双曲图卷积神经网络和全双曲图卷积神经网络,学习得到每个用户和物品的两个视图。
8、步骤六:将推荐主任务和对比学习辅助任务结合进行多任务学习。
9、进一步地,步骤二:定义双曲空间,具体方式为:
10、通过洛伦兹模型的数学定义实现了洛伦兹模型中的向量运算;向量运算包括向量内积运算、距离运算、指数映射运算和对数映射运算。
11、进一步地,步骤四:使用双曲图卷积神经网络学习用户和物品的双曲空间表示,具体方式为:
12、双曲图卷积神经网络首先进行多次双曲图卷积层计算;双曲图卷积层使用对数映射将用户和物品的双曲空间向量表示映射到切平面空间上进行邻域聚合,邻域聚合通过交互矩阵和特征向量的矩阵乘法实现;然后通过求和的方式聚合不同图卷积层的输出向量表示;最后将聚合得到的向量表示通过指数映射映射回双曲空间得到最终的用户和物品双曲空间向量表示;使用双曲最大间隔排名损失函数优化双曲图卷积神经网络学习到的用户和物品表示。
13、进一步地,步骤五:构建对比学习辅助任务模型,具体方式为:
14、全双曲图卷积神经网络首先进行多次全双曲图卷积层计算;全双曲图卷积层对用户和物品的双曲空间向量表示计算双曲空间中的质心来模拟邻域加权聚合;然后通过计算不同图卷积层的输出向量表示的质心聚合各层的输出向量。
15、最后此对比学习辅助任务模型使用infonce对比损失函数优化学习到的用户和物品向量表示;对于用户来说,infonce中正样本是用户u在两个图神经网络的输出向量,负样本是用户u的第一个图神经网络输出向量和其他所有用户的第二个图神经网络输出向量;对于物品来说,infonce中正样本是物品i在两个图神经网络的输出向量,负样本是物品i的第一个图神经网络输出向量和其他所有物品的第二个图神经网络输出向量。
16、进一步地,步骤六:将推荐主任务和对比学习辅助任务结合进行多任务学习,具体为:将推荐主任务的双曲最大间隔排名损失和对比学习辅助任务的infonce对比损失结合,得到多任务损失函数,通过该多任务损失函数训练整个系统。
17、本发明另外一个实施例还提供了基于双曲空间对比学习的协同过滤推荐系统,包括数据预处理模块、双曲空间模块、初始化用户物品表示模块、推荐主任务模块、对比学习辅助任务模块以及多任务学习模块。
18、数据预处理模块,用于处理原始用户物品交互数据,构造用户物品交互图。
19、双曲空间模块,用于定义双曲空间。
20、初始化用户物品表示模块,用于确定用户和物品的双曲空间初始表示向量。
21、推荐主任务模块,用于构建推荐主任务模型,推荐主任务模型使用双曲图卷积神经网络学习用户和物品的双曲空间表示。
22、对比学习辅助任务模块,用于构建对比学习辅助任务模型,对比学习辅助任务模型具体为:对原始的用户物品交互图以一定的概率丢弃图上的边,生成两个新的交互图,对这两个新的交互图构造交互矩阵;然后对两个交互矩阵分别应用双曲图卷积神经网络和全双曲图卷积神经网络,学习得到每个用户和物品的两个视图。
23、多任务学习模块,用于将推荐主任务的双曲最大间隔排名损失和对比学习辅助任务的infonce对比损失结合,得到多任务损失函数,通过该多任务损失函数训练整个系统。
24、进一步地,数据预处理模块,具体为:
25、该模块通过构造一个m×n的交互矩阵将m个用户和n个物品表示为图上的节点,邻接矩阵上第i行第j列的元素为1表示第i个用户和第j个物品间存在交互,元素为0则表示该用户和物品之间不存在交互;此模块构造完交互矩阵后,对该交互矩阵进行一次行归一化;行归一化对该行中的每个元素除以该行元素和。
26、同时数据预处理模块通过构造(m+n)×d维的特征矩阵来表示所有用户和物品的特征向量;特征矩阵中前m行表示所有的用户特征向量,其中第i行表示第i个用户的特征向量;特征矩阵中第m行到第m+n行表示所有物品的特征向量,特征矩阵中第m+j行表示第j个物品的特征向量。
27、进一步地,推荐主任务模块,具体为:首先使用双曲图卷积神经网络学习用户和物品的双曲空间表示;双曲图卷积神经网络首先进行多次双曲图卷积层计算,双曲图卷积层使用对数映射将用户和物品的双曲空间向量表示映射到切平面空间上进行邻域聚合,邻域聚合通过交互矩阵和特征向量的矩阵乘法实现;然后通过求和的方式聚合不同图卷积层的输出向量表示;最后将聚合得到的向量表示通过指数映射映射回双曲空间得到最终的用户和物品双曲空间向量表示;然后推荐主任务模块使用双曲最大间隔排名损失函数优化双曲图卷积神经网络学习到的用户和物品表示。
28、进一步地,对比学习辅助任务模块,具体为:首先对原始的用户物品交互图以一定的概率丢弃图上的边,生成两个新的交互图;对比学习辅助任务模块对这两个交互图构造交互矩阵;然后此模块分别对这两个交互矩阵分别应用双曲图卷积神经网络和全双曲图卷积神经网络,学习得到每个用户和物品的两个视图。
29、对比学习辅助任务模块中使用的全双曲图卷积神经网络首先进行多次全双曲图卷积层计算,全双曲图卷积层对用户和物品的双曲空间向量表示计算双曲空间中的质心来模拟邻域加权聚合;然后通过计算不同图卷积层的输出向量表示的质心聚合这些层的输出向量;最后此模块使用infonce对比损失函数优化学习到的用户和物品向量表示;对于用户来说,infonce中正样本是用户u在两个图神经网络的输出向量,负样本是用户u的第一个图神经网络输出向量和其他所有用户的第二个图神经网络输出向量;对于物品来说,infonce中正样本是物品i在两个图神经网络的输出向量,负样本是物品i的第一个图神经网络输出向量和其他所有物品的第二个图神经网络输出向量。
30、有益效果:
31、1.本发明提供的基于双曲空间对比学习的协同过滤推荐方法,将对比学习引入基于双曲空间的协同过滤推荐方法,通过对比学习提供额外的自监督信号,有助于弥补数据稀疏性对现有推荐方法的影响。对比学习通过对不同的用户之间进行对比,平衡了系统对不同用户的关注度;同时通过对不同的物品之间进行对比,平衡了系统对热门物品和冷门物品的关注度,弥补了长尾效应对现有推荐方法的影响。
32、2.本发明提供的基于双曲空间对比学习的协同过滤推荐方法,提出了一种全新的对比学习框架,该框架通过在切面空间和双曲空间中对增强的交互图进行编码,然后使用对比学习损失来比较正负样本对的表示。本框架的创新性在于成功地将将切面空间和双曲空间整合到对比学习中,以充分发挥它们各自的优势。此外,该框架还充分利用了切面空间是双曲空间的近似这一特性,通过它们之间天然的联系,实现了两个空间之间的高效信息传递。
33、3.本发明提供的基于双曲空间对比学习的协同过滤推荐方法,提出了一种全新的全双曲空间图卷积神经网络,通过洛伦兹空间的质心在双曲空间上实现了邻域聚合操作。该网络避免了先前方法在切面空间上近似双曲空间进行神经网络运算导致的计算结果不准确问题。该网络通过完全在双曲空间上进行神经网络运算来更好地利用双曲空间的优势。
34、4.本发明提供的基于双曲空间对比学习的协同过滤推荐系统,通过设计不同的功能模块,用于实现以上基于双曲空间对比学习的协同过滤推荐方法,综合利用对比学习、全双曲空间图卷积神经网络等创新技术,针对现有的协同过滤推荐方法中存在的数据稀疏性和长尾效应问题提供了全面的解决方案,从而改进了推荐系统的性能。
1.基于双曲空间对比学习的协同过滤推荐方法,其特征在于,包括如下步骤:
2.如权利要求1所述的基于双曲空间对比学习的协同过滤推荐方法,其特征在于,所述步骤二:定义双曲空间,具体方式为:
3.如权利要求1所述的基于双曲空间对比学习的协同过滤推荐方法,其特征在于,所述步骤四:使用双曲图卷积神经网络学习用户和物品的双曲空间表示,具体方式为:
4.如权利要求1所述的基于双曲空间对比学习的协同过滤推荐方法,其特征在于,所述步骤五:构建对比学习辅助任务模型,具体方式为:
5.如权利要求1所述的基于双曲空间对比学习的协同过滤推荐方法,其特征在于,所述步骤六:将推荐主任务和对比学习辅助任务结合进行多任务学习,具体为:将推荐主任务的双曲最大间隔排名损失和对比学习辅助任务的infonce对比损失结合,得到多任务损失函数,通过该多任务损失函数训练整个系统。
6.基于双曲空间对比学习的协同过滤推荐系统,其特征在于,包括数据预处理模块、双曲空间模块、初始化用户物品表示模块、推荐主任务模块、对比学习辅助任务模块以及多任务学习模块;
7.如权利要求6所述的基于双曲空间对比学习的协同过滤推荐系统,其特征在于,所述数据预处理模块,具体为:
8.如权利要求6所述的基于双曲空间对比学习的协同过滤推荐系统,其特征在于,所述推荐主任务模块,具体为:首先使用双曲图卷积神经网络学习用户和物品的双曲空间表示;双曲图卷积神经网络首先进行多次双曲图卷积层计算,双曲图卷积层使用对数映射将用户和物品的双曲空间向量表示映射到切平面空间上进行邻域聚合,邻域聚合通过交互矩阵和特征向量的矩阵乘法实现;然后通过求和的方式聚合不同图卷积层的输出向量表示;最后将聚合得到的向量表示通过指数映射映射回双曲空间得到最终的用户和物品双曲空间向量表示;然后所述推荐主任务模块使用双曲最大间隔排名损失函数优化双曲图卷积神经网络学习到的用户和物品表示。
9.如权利要求6所述的基于双曲空间对比学习的协同过滤推荐系统,其特征在于,所述对比学习辅助任务模块,具体为:首先对原始的用户物品交互图以一定的概率丢弃图上的边,生成两个新的交互图;对比学习辅助任务模块对这两个交互图构造交互矩阵;然后此模块分别对这两个交互矩阵分别应用双曲图卷积神经网络和全双曲图卷积神经网络,学习得到每个用户和物品的两个视图;