本发明涉及的是一种信息处理领域的技术,具体是一种使用图卷积技术,对用户和物品的交互数据进行挖掘,实现对用户的个性化物品推荐的系统。
背景技术:
推荐系统。根据使用的数据类型,推荐系统主要可以分类为基于内容的推荐和协同过滤推荐。前者是基于用户的个人信息和物品的内容信息,进行推荐系统的建模。协同过滤技术则是基于用户与物品交互的历史记录,建模用户对物品的偏好情况。一般来说,协同过滤技术,包括矩阵分解方法,得到的推荐效果要好于基于内容的推荐方法。协同过滤技术使用二维矩阵来表示用户和物品的交互情况。然而,这种简单的用户-物品矩阵只是记录用户和物品的交互情况,却丢失了原始交互序列记录中包含的物品的依赖关系和用户行为上的相似性信息。
为了利用交互序列数据中的物品依赖关系,研究人员提出对时间序列进行建模,提出了马尔科夫链、张量分解、循环神经网络等模型。但是还没有研究基于交互序列数据,同时包含用户对物品的偏好、物品间的依赖关系和用户的行为相似性这三种信息。
图卷积技术。受卷积神经网络在图像处理、自然语言处理和语音识别等领域成功应用的影响,许多研究人员开始探索卷积操作在更广泛的领域的应用,如图结构上使用卷积操作挖掘局部信息。然而,将卷积操作应用到图结构的数据上需要解决每个节点邻居数目不同的问题。现有的图卷积技术包括在频域和空间卷积两种技术。基于频域的技术是使用图的拉普拉斯矩阵的特征向量,构建频域,来完成卷积操作。这种方式比较依赖于图的结构,即图的结构不能随时间变化。空间卷积技术通过使用随机游走、选取最近的n个邻居的等方式解决不同节点邻居数目不同的问题。
技术实现要素:
本发明针对现有的基于用户和物品交互数据的推荐系统,往往只使用了用户对物品的偏好或者物品之间依赖关系中的一种信息的不足,提出一种基于图卷积技术的推荐系统,能够挖掘用户对物品偏好、物品之间依赖关系和用户相似性三种信息;通过将用户和物品的交互序列数据转换成三种异构的图结构数据,解决了每个用户的交互序列长短不一致的问题,同时保留了交互数据中的三种信息;将卷积操作应用于异构图,挖掘了异构图中节点邻居的信息;通过设计池化操作和卷积操作解决了卷积神经网络应用于图结构数据面临的节点邻居数不同的问题。
本发明是通过以下技术方案实现的:
本发明涉及一种基于图卷积技术的推荐系统,包括:预处理模块、异构图生成模块、模型训练模块以及推荐结果生成模块,其中:预处理模块将用户与物品的交互记录进行数据清洗和格式的标准化操作,并对每个用户生成交互序列后输出至异构图生成模块;异构图生成模块根据用户的交互序列数据构建表征用户偏好、物品间依赖关系和用户间相似性的三个异构图并将生成的图结构数据输出至模型训练模块;模型训练模块基于图结构数据训练图卷积模型,并对每个用户和物品生成向量表达;推荐结果生成模块根据向量表达计算用户对所有物品的偏好情况,并生成最终推荐结果。
所述的交互序列是指用户和物品交互记录的时间序列。
本发明涉及上述系统的实现方法,具体包括以下步骤:
步骤1、数据预处理:对用户和物品交互的数据进行数据清洗以去除掉可能存在噪声数据,同时将交互的记录整理成相同的格式,并在数据清洗完成后根据记录的时间戳进行排序,从而为每个用户生成交互的序列。
步骤2、基于交互序列的异构图构建:将每个用户的序列数据转换成三个异构图,来分别保留用户对物品的偏好、物品间的依赖关系和用户的相似性信息。
步骤3、基于异构图的推荐模型训练:基于构建的三个异构图,本发明设计了图卷积推荐系统模型。该模型使用池化和卷积操作,来挖掘图中包含的信息,保留图中节点信息的局部性。在模型训练完成后,该模型为每一个节点(用户和物品)生成低维的向量表达,用于最后的推荐结果生成。
步骤4、推荐结果生成:根据图卷积推荐系统模型生成的低维向量表达,本发明可以针对每个用户,计算其对所有的物品的偏好程度。根据计算的偏好程度,将物品进行排序,就可以得到最终的推荐结果。
技术效果
与现有技术相比,本发明技术效果包括:
(1)表征三种信息的异构图结构:用户和物品之间的交互数据包含用户对物品的偏好、物品之间的相似性和用户之间行为习惯的相似性三种信息。本发明设计了三种异构的图结构,来表征这三种信息,同时解决了不同用户交互序列不等长的问题。
(2)图卷积操作建模邻居节点对目标节点的影响:相似的物品或用户,都可以看做图中目标节点的邻居,如何建模邻居对其产生的影响,是关乎推荐效果好坏的关键所在。本发明设计了基于图卷积的推荐系统模型,使用卷积操作,来建模邻居节点对目标节点的影响。
(3)池化操作解决每个节点邻居数目不同的情况:原始的卷积操作是面向图片等存储于张量中、结构比较规整的数据。该操作在应用于图结构的数据时,解决不了每个节点邻居数不同的情况。本发明针对图结构,设计了新的池化和卷积操作并解决了该问题。
(4)推荐效果的提升:本发明设计了三个异构的图,用于表征用户对物品偏好、物品之间相似性和用户之间行为的相似性三种信息,并提出了新的池化和卷积操作,根据异构图建模每个节点邻居的影响,实现了推荐效果的提升。
附图说明
图1为实施例中基于图卷积的推荐系统流程图;
图2为基于交互序列构建的异构图;
图3为图卷积推荐模型结构示意图;
图4为基于图的池化和卷积操作示意图;
图5为召回率指标对比图;
图6为ndcg指标对比图。
具体实施方式
本实施例针对用户和物品交互序列数据,设计了异构的图结构,提出了一个图卷积推荐模型,而且设计了池化和卷积操作来解决每个节点邻居数目不同的问题。
本实施例涉及一种基于图卷积技术的推荐系统,包括:预处理模块、异构图生成模块、模型训练模块以及推荐结果生成模块,其中:预处理模块将用户与物品的交互记录进行数据清洗和格式的标准化操作,并对每个用户生成交互序列后输出至异构图生成模块;异构图生成模块根据用户的交互序列数据构建表征用户偏好、物品间依赖关系和用户间相似性的三个异构图并将生成的图结构数据输出至模型训练模块;模型训练模块基于图结构数据训练图卷积模型,并对每个用户和物品生成向量表达;推荐结果生成模块根据向量表达计算用户对所有物品的偏好情况,并生成最终推荐结果。
上述推荐系统通过以下方式实现具体工作:
步骤1、数据预处理:将数据的格式进行统一,并对数据做简单的清洗,去除数据中可能存在的噪声。防止数据中的噪声降低推荐的效果。
步骤2、基于交互序列的异构图构建:用户和物品交互序列包含了三种重要的信息。但为原始的交互序列数据,存在序列长度不一致的问题,比较难用于推荐问题。本步骤根据用户和物品的交互序列数据,构建如图2所示的三个图,即用户-物品交互图,物品-物品图和用户-gram图,来分别为这三种信息。
步骤3、基于异构图的推荐模型训练:基于前一个步骤得到的图,可以设计如图3所示的图卷积神经网络推荐模型,为每个用户或物品学习到一个向量表达,将这三种信息应用于推荐。为了解决卷积操作无法应对不同数量邻居的缺陷,如图4所示,本实施例修改了池化和卷积操作。推荐问题在本实施例中被刻画为估计用户和物品节点之间边的存在概率模型。
步骤4、推荐结果的生成:在图卷积神经网络模型训练完成之后,可以利用该模型估计用户和所有物品之间边存在的概率,选择那些概率最大的物品,作为推荐结果推荐给该用户。
所述的数据清洗为指:用户与物品交互过程会产生相应的记录,即<user,item,time>,首先需要对这些交互记录进行清洗,去除一些可能存在的噪声,例如删除购物历史中在夜间凌晨的浏览记录,删除用户在常驻城市以外产生的购物记录等。
所述的时间戳为指:用户在和物品交互的过程中,如用户购买物品,会产生相应的交互记录,交互记录中会包含本次交互所发生的时间,即时间戳。
所述的交互序列为指包括:针对每个用户所产生的记录,根据时间戳进行排序,可以形成如图2所示的交互记录的序列数据。考虑交互序列中,物品在时间上的存在依赖关系,可以根据相邻交互记录间的时间间隔,对交互序列进行进一步处理。当相邻交互记录的时间间隔大于一个设定的阈值,可以认为前后的序列之间不存在依赖关系,可以将该交互序列在此处切分成2个子序列。
所述的异构图的构建,即构建用户-物品图、物品-物品图和用户-gram图后将三个异构的图合并成一个图,其中:
用户-物品图记录用户和物品之间的交互情况,用于为用户对物品的偏好情况。该图的数学形式为gr=(vu∪vi,er},其中vu和vi分别为用户和物品节点的集合,
物品-物品图记录两个物品在序列数据中相邻的次数,用于为物品和物品在序列数据中的依赖关系或相似关系。该图的数学形式为gi=(vi,ei),其中
用户-gram图:用户交互的物品序列,可以类比成自然语言处理领域的句子。序列中的物品可以类比成句子中的单词。相应的用户可以类比成一篇文章。在自然语言处理领域,可以将文本处理成n-gram的形式,通过比较两个文本的n-gram重叠的程度,来衡量两个文本的相似性。其中n-gram为句子中连续出现的n个单词,例如句子“iamastudent”的2-gram包括“iam”,“ama”和“astudent”。类似于自然语言处理,本实施例将序列数据转换成n-gram来衡量用户之间行为习惯上的相似性。基于这种想法,本实施例构建了用户-gram图,即gu=(vu∪vg,eu)。其中vg为n-gram节点的集合,|vg|=o。
所述的合并为指:g=gr∪gi∪gu。为了简单,也可以用邻接矩阵来表示,即使用矩阵
优选地,所述的构建,根据图中的路径定义距离和路径的类型,具体为:假设图中两个节点i和j存在一条路径相连,这条路径的距离d(i,j)就定义为路径上的边的数量,路径的类型t(i,j)就定义为路径首尾两个节点的类型,此外需要注意的为路径的类型还与它所在的图有关联。例如图2中的用户-物品图,对于u1→i1→u4这条路径,它的距离为2,类型为“用户-用户”。
优选地,所述的构建,在图的路径距离和类型定义的基础上对每个节点,定义其的一类邻居集合nlt(i)={j|d(i,j)=l,t(i,j)=t}。即这些节点j和目标节点i的存在路径,路径的距离为l,类型为t。表1即为三个异构图中,各类节点的邻居情况。在考虑邻居信息的同时,节点本身包含的信息也为十分重要的。因此本实施例在图中添加节点到自己的边,同时定义距离为0的邻居为n0,t(i)(i)={i}。
表1基于路径的距离和类型得到的邻居
所述的基于异构图的推荐模型为指:如图3所示的图卷积神经网络,包括:输入层、嵌入层、池化层、卷积层、输出层,其中:
输入层以三个异构网络的所有节点作为输入数据。每个节点用一个one-hot向量(即只有一个元素为1,其他元素都为0)为这个节点的id。可以将这些向量拼接成一个输入矩阵
嵌入层把高维的one-hot向量转换成每个节点的低维表达,即:h0=ve,其中:
池化层将数目不定的邻居,变换成数目固定的虚拟节点。每个节点的邻居为通过路径和图的类型所决定的。池化操作为指:
节点间的关联性强弱,可以使用转移概率来表达。以用户-物品图为例,距离为1的邻居可以用邻接矩阵ar获得。根据邻接矩阵可以构建对角矩阵d,其中对角元素
所述的转移概率矩阵s(1)=d-1ar,根据状态转移概率矩阵,可以计算得到节点距离为2的邻居,即a′=s(1)s(1),其中:节点到自己的概率为0,即a′ii=0。类似的,可以设计对角矩阵eii=∑ja′ij,计算转移概率矩阵s(2)=e-1a′。
在池化操作过程中,根据邻居的类型,可以设置αij为s(1)和s(2)中的值。物品-物品图和用户-gram图中的邻居转移概率计算方法类似。此外,节点的关联关系
卷积层综合邻居节点信息。根据池化层获得的虚拟节点的向量表达
异构图中所有同类型的节点都共享参数
本实施例通过设置距离l来获得不同大小的卷积核:
输出层直接输出每个节点的向量表达
所述的模型训练为指:基于将推荐问题刻画成一个图中的边预测问题,用户u和物品i之间边存在的概率
所述的推荐结果的生成为指:在模型使用梯度下降的方式训练完成之后,对每个用户计算与所有物品之间存在边的概率
本系统及方法主要包括了三个组件结构上的创新和最终推荐效果上的提升。
首先,本系统及方法创新性地提出,用户和物品之间交互数据包含三种重要的信息,包括用户对物品的偏好情况、物品之间的相似性、以及用户在行为习惯上的相似性。针对这三种信息,本系统及方法设计了三种对应的异构图,在保留这些信息的同时,解决了不同用户交互序列长短不一致的问题。
其次,根据三种异构图,本系统及方法提出使用卷积操作来建模邻居对每个节点的影响情况。图中所有节点可以共享参数,这样可以减少训练所需的参数数量。
然后,原始的卷积操作是应用在图片等结构规整的数据上的。这些数据可以用张量来存储。在图结构中,每个节点的邻居数目是不相等的,无法直接使用卷积操作。本系统及方法提出了新的池化操作,根据邻居到节点的距离以及路径类型,对邻居进行分簇。每个簇内的邻居通过池化操作,形成一个虚拟的节点。再将卷积操作应用于这些虚拟节点上,从而解决了邻居数目不等的问题。
最后,根据在一个真实的数据集上的实验结果,本系统及方法提出的图卷积推荐系统,在推荐效果上要优于最新的推荐研究成果。实验使用的数据集是一个公开数据集,记录的是网站上零售记录。实验过程中,针对每个用户,推荐k个物品,然后计算召回率和ndcg两个指标。对比的方法包括经典的基于欢迎程度的推荐方法(pop)和bpr方法,以及三种新的推荐方法(fism、srmgcn和smf)。图5和图6显示,本系统及方法提出的图卷积方法pgcn在召回率和ndcg两个指标上都优于其他方法。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。