具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
各个金融机构在进行物品推荐时,一般都需要针对不同的用户进行个性化地物品推荐,从而提高物品推荐的准确性,提高用户对服务的满意程度。
一般情况下,在进行物品推荐时,所针对的用户可能包括头部用户以及长尾用户。其中,头部用户是指包含充足反馈信息的待推荐用户。长尾用户是指仅包含少数反馈信息或反馈信息不完善的待推荐用户。因此,针对长尾用户,由于缺乏足够的浏览历史信息、标签信息等反馈信息,因此,在基于少数反馈信息或不完善的反馈信息对长尾用户进行物品推荐时,存在物品推荐不准确的问题。
本申请实施例提供的物品推荐方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点;服务器104将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图;服务器104根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种物品推荐方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤220,根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点。
其中,节点是指图上的顶点,可以包括用户节点和物品节点,用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点。头部用户是指包含充足反馈信息的待推荐用户。长尾用户是指仅包含少数反馈信息或反馈信息不完善的待推荐用户。反馈信息是指采集到的用户的历史行为信息,示例性的,反馈信息包括用户浏览视频软件时的浏览、点赞等行为,用户浏览商品软件时的点击、收藏、加入购物车等行为。无向无权图是指图中用户节点之间的关系、用户节点与物品节点之间的关系均无方向、且无权值的图。
可选地,服务器104可以从终端102中获取用户的历史行为信息,并根据用户的历史行为信息确定用户、用户在进行历史行为时使用的物品以及不同用户之间的关系、用户与物品之间的关系,从而确定出用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系。之后,服务器104可以根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图。
步骤240,将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图。
可选地,服务器104可以将构建好的初始无向无权图输入至预设图自编码器模型中进行处理,对长尾节点与其他用户节点之间的关系、或者对长尾节点与其他物品节点之间的关系进行更新,从而对长尾节点与其他节点之间的关系信息进行扩充,进而生成目标无向无权图。其中,预设图自编码器模型(Graph Autoencoders,GAE)是采用输入信息作为编码器去重构(reconstruct)原始图的模型。目标无向无权图是指对初始无向无权图中的长尾节点进行信息扩充后的无向无权图。
步骤260,根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。
可选地,根据初始无向无权图及目标无向无权图,服务器104可以对长尾用户进行物品推荐,生成物品推荐结果。示例性的,服务器104可以将初始无向无权图及目标无向无权图一同输入至预设图神经网络模型中进行处理,生成处理结果;再根据该处理结果进行物品推荐,生成物品推荐结果。服务器104也可以通过初始无向无权图及目标无向无权图一同训练得到预设图神经网络模型,再将初始无向无权图输入至预设图神经网络模型中进行处理,生成处理结果;之后,服务器104可以根据该处理结果进行物品推荐,生成物品推荐结果。其中,图神经网络模型(graph neural network,GNN)是指使用神经网络来学习图结构数据,从而满足聚类、分类、预测、分割、生成等图学习任务需求的模型。可选地,本申请实施例中也可以使用图卷积神经网络模型进行处理,本申请对此不做限定。
上述物品推荐方法中,根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点;将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图;根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。本申请通过将构建好的初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,就能够扩充长尾用户不完善的反馈信息,从而生成包含更全面反馈信息的目标无向无权图。之后,根据构建的初始无向无权图及包含更全面反馈信息的目标无向无权图,就能够较准确地对长尾用户进行个性化物品推荐,从而生成较准确的物品推荐结果。最终,可以提升用户满意度。
在一个实施例中,如图3所示,根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图,包括:
步骤320,将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,构建初始邻接矩阵。
可选地,首先,服务器104可以获取用户的历史行为信息,并根据用户的历史行为信息确定出用户、用户在进行历史行为时使用的物品以及不同用户之间的关系、用户与物品之间的关系。之后,服务器104可以将各用户作为各用户节点,将用户在进行历史行为时使用的各物品作为各物品节点,并将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,从而根据各节点以及各边构建初始邻接矩阵。其中,初始邻接矩阵可以表示为A,且A∈{0,1}n×n,n表示节点总数。初始邻接矩阵A中的各个元素Aij表示节点i和节点j之间是否存在连接的边。若节点i和节点j之间存在连接的边,则Aij的元素值为1;若节点i和节点j之间不存在连接的边,则Aij的元素值为0。
步骤340,获取用户节点的特征向量、物品节点的特征向量,根据用户节点的特征向量、物品节点的特征向量,生成特征矩阵。
可选地,服务器104可以获取用户的历史行为信息,并根据用户的历史行为信息以及确定出的各用户节点和各物品节点得到各用户节点的特征信息、各物品节点的特征信息。之后,服务器104可以将各用户节点的特征信息以及各物品节点的特征信息独热编码为各用户节点的特征向量、各物品节点的特征向量,并根据各用户节点的特征向量、各物品节点的特征向量生成特征矩阵X。其中,特征矩阵可以表示为X,且
n表示节点总数,f表示特征向量的维数,矩阵的每一行x
i表示节点i的f维特征向量。独热编码可以将离散的特征信息数值化,以便于服务器运算。例如,独热编码可以采用两位二进制数表示性别特征,若第一位表示“是否为女性”,且第二位表示“是否为男性”,则女性可以独热编码为“10”,而男性独热编码为“01”。
步骤360,根据初始邻接矩阵及特征矩阵,构建初始无向无权图。
可选地,服务器104可以根据初始邻接矩阵A及特征矩阵X,构建初始无向无权图。其中,无向无权图是指图中用户节点之间的关系、用户节点与物品节点之间的关系均无方向、且无权值的图,即图中各边均为无方向、且无权值的图。初始无向无权图可以表示为G,且G=(A,X),A表示初始邻接矩阵,X表示特征矩阵。示例性的,如图4所示,图4为一个实施例中初始无向无权图的结构示意图。节点包括头部节点v0、长尾节点v1、物品节点v2、物品节点v3、物品节点v4以及物品节点v5,各节点上包括各节点对应的特征向量,边包括头部节点v0与长尾节点v1之间的关注关系、头部节点v0与物品节点v2之间的分享关系、头部节点v0与物品节点v3之间的点赞关系、头部节点v0与物品节点v4之间的点赞关系以及头部节点v0与物品节点v5之间的点赞关系。
本实施例中,将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,构建初始邻接矩阵;获取用户节点的特征向量、物品节点的特征向量,根据用户节点的特征向量、物品节点的特征向量,生成特征矩阵;根据初始邻接矩阵及特征矩阵,构建初始无向无权图。从而通过初始邻接矩阵及特征矩阵构建初始无向无权图,能够较便捷且准确地得到用户与用户之间的关系以及用户与物品之间的关系。
在一个实施例中,如图5所示,提供了一种物品推荐方法,还包括:
步骤520,对初始无向无权图中的头部节点的连接边进行删除,生成新的无向无权图。
示例性的,如图6所示,图6为一个实施例中预设图自编码器模型的训练示意图。可选地,服务器104可以对初始无向无权图中的头部节点的连接边进行删除,生成删边后新的邻接矩阵A1,从而生成删边后新的无向无权图G1。其中,G1=(A1,X)。删除初始无向无权图中的头部节点的连接边时可以随机删除与头部节点连接的任意一个或多个连接边。当然,本申请对此不做限定。
步骤540,将新的无向无权图输入至初始图自编码器模型中进行处理,生成新的邻接矩阵。
可选地,结合图6所示,服务器104可以将删边后新的无向无权图G1输入至初始图自编码器模型中进行处理,即服务器104可以将新的无向无权图G1输入至初始图自编码器模型中,对已删除连接边的头部节点的待增加连接边进行预测,生成预测加边后新的邻接矩阵A2。
步骤560,根据新的邻接矩阵计算初始图自编码器模型的损失函数的值,根据损失函数的值对初始图自编码器模型的模型参数进行更新,生成预设图自编码器模型。
可选地,结合图6所示,服务器104可以根据预测加边后新的邻接矩阵A2计算初始图自编码器模型的损失函数Lossp的值,并根据初始图自编码器模型的损失函数Lossp的值对初始图自编码器模型的模型参数Θ进行更新,直到初始图自编码器模型的损失函数Lossp的值最小时,即直到预测加边后新的邻接矩阵A2与初始邻接矩阵A的差距最小时,使用此时初始图自编码器模型的损失函数Lossp对应的的模型参数作为初始图自编码器模型的目标模型参数,从而生成训练好的预设图自编码器模型。其中,Θ=(L1,L2)为初始图自编码器模型的模型参数。初始图自编码器模型的损失函数Lossp的计算公式如公式(1)、公式(2)、及公式(3)所示。
H=A1relu(A1XL1)L2 (1)
A2=sigmoid(HHT) (2)
其中,H表示初始图自编码器模型的中间模型参数;A1表示删边后新的邻接矩阵,X表示特征矩阵;relu()表示第一非线性激活函数,定义为h(x)=max(0,x);L1表示初始图自编码器模型的第一模型参数;L2表示初始图自编码器模型的第二模型参数;A2表示预测加边后新的邻接矩阵;Sigmoid()表示第二非线性激活函数,定义为h(x)=1/(1+e-x);HT表示初始图自编码器模型的中间模型参数的转置;Lossp表示初始图自编码器模型的损失函数;A表示初始邻接矩阵;n表示节点总数,i和j表示不同的节点。在本申请实施例中,relu激活函数也可以替换为ELU激活函数或者Leaky Relu激活函数。
本实施例中,对初始无向无权图中的头部节点的连接边进行删除,生成新的无向无权图;将新的无向无权图输入至初始图自编码器模型中进行处理,生成新的邻接矩阵;根据新的邻接矩阵计算初始图自编码器模型的损失函数的值,根据损失函数的值对初始图自编码器模型的模型参数进行更新,生成预设图自编码器模型。本实施例通过初始邻接矩阵、删边后新的邻接矩阵以及预测加边后新的邻接矩阵共同训练预设图自编码器模型,从而能够生成较准确的预设图自编码器模型。
在一个实施例中,如图7所示,将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图,包括:
步骤720,将初始无向无权图输入至预设图自编码器模型中,对长尾节点的待增加连接边进行预测,生成目标邻接矩阵。
可选地,在预设图自编码器模型训练完成之后,服务器104可以将初始无向无权图G输入至预设图自编码器模型中对长尾节点的待增加连接边进行预测,以对长尾节点与其他用户节点之间的关系、或者对长尾节点与其他物品节点之间的关系进行更新,即对长尾节点与其他节点之间的关系信息进行扩充,从而生成目标邻接矩阵。其中,预设图自编码器模型(Graph Autoencoders,GAE)是采用输入信息作为编码器去重构(reconstruct)原始图的模型。目标邻接矩阵可以表示为A’。目标邻接矩阵A’的的计算公式如公式(4)、公式(5)、公式(6)及公式(7)所示。
H=Arelu(AXL1)L2 (4)
AP=softmax(HHT) (5)
AM=Bernoulli(AP) (6)
A′=Clamp(AM+A) (7)
其中,AP表示目标邻接矩阵的第一中间变量;softmax()表示归一化指数函数;AM表示目标邻接矩阵的第二中间变量;Bernoulli()表示伯努利采样;Clamp()表示将矩阵元素值截断到[0,1]之间;A’表示目标邻接矩阵。
步骤740,根据目标邻接矩阵及特征矩阵,生成目标无向无权图。
可选地,服务器104可以根据目标邻接矩阵A’和特征矩阵X,生成目标无向无权图G’。其中,G’=(A’,X)。其中,目标邻接矩阵是指对长尾节点与其他节点之间的关系信息进行扩充后的邻接矩阵。目标无向无权图是指对初始无向无权图中的长尾节点与其他节点之间的关系进行信息扩充后的无向无权图。
本实施例中,将初始无向无权图输入至预设图自编码器模型中,对长尾节点的待增加连接边进行预测,生成目标邻接矩阵;根据目标邻接矩阵及特征矩阵,生成目标无向无权图,就能够扩充长尾用户不完善的反馈信息,从而生成包含更全面反馈信息的目标无向无权图。
在一个实施例中,如图8所示,提供了一种物品推荐方法,还包括:
步骤820,将初始无向无权图输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图对应的第一嵌入表征矩阵。
示例性的,如图9所示,图9为一个实施例中预设图神经网络模型的训练示意图。可选地,服务器104可以将初始无向无权图Z输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图G对应的第一嵌入表征矩阵。其中,嵌入表征矩阵可以表示为
且n表示节点总数,c表示嵌入表征维数,矩阵的每一行z
i表示节点i的c维嵌入表征,且c远小于f。Φ=(W
1,W
2)表示初始图神经网络模型的模型参数。第一嵌入表征矩阵Z
1的计算公式如公式(8)所示。
Z1=Arelu(AXW1)W2 (8)
其中,Z1表示第一嵌入表征矩阵;A表示初始邻接矩阵;relu()表示第一非线性激活函数,定义为h(x)=max(0,x);W1表示初始图神经网络模型的第一模型参数;W2表示初始图神经网络模型的第二模型参数。
步骤840,将目标无向无权图输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图对应的第二嵌入表征矩阵。
可选地,结合图9所示,服务器104可以将目标无向无权图G’输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图G’对应的第二嵌入表征矩阵。其中,第二嵌入表征矩阵Z2的的计算公式如公式(9)所示。
Z2=A′relu(A′XW1)W2 (9)
其中,Z2表示第二嵌入表征矩阵;A’表示目标邻接矩阵;relu()表示第一非线性激活函数,定义为h(x)=max(0,x);W1表示初始图神经网络模型的第一模型参数;W2表示初始图神经网络模型的第二模型参数。
步骤860,根据第一嵌入表征矩阵及第二嵌入表征矩阵计算初始图神经网络模型的损失函数的值,根据损失函数的值对初始图神经网络模型的模型参数进行更新,生成预设图神经网络模型。
可选地,结合图9所示,服务器104可以根据第一嵌入表征矩阵Z1及第二嵌入表征矩阵Z2计算初始图神经网络模型的损失函数Lossq的值,并根据初始图神经网络模型的损失函数Lossq的值对初始图神经网络模型的模型参数Φ进行更新,直到初始图神经网络模型的损失函数Lossq最小时,使用此时初始图神经网络模型的损失函数Lossq对应的模型参数作为初始图神经网络模型的目标模型参数,从而生成训练好的预设图神经网络模型。其中,初始图神经网络模型的损失函数Lossq的计算公式如公式(10)所示。
Lossq=CrossEntropy(Z1,Y)+CrossEntropy(Z2,Y) (10)
其中,Lossq表示初始图神经网络模型的损失函数;CrossEntropy()表示交叉熵损失函数,交叉熵损失函数是一种常用的深度学习模型损失函数,用于衡量两个概率分布之间的相似性;Z1表示第一嵌入表征矩阵;Y为已知且不变的节点标签;Z2表示第二嵌入表征矩阵。
本实施例中,将初始无向无权图输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图对应的第一嵌入表征矩阵;将目标无向无权图输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图对应的第二嵌入表征矩阵;根据第一嵌入表征矩阵及第二嵌入表征矩阵计算初始图神经网络模型的损失函数的值,根据损失函数的值对初始图神经网络模型的模型参数进行更新,生成预设图神经网络模型。本实施例通过初始无向无权图和长尾节点信息扩充后的目标无向无权图G’共同训练预设图神经网络模型,相比传统方法中只使用初始无向无权图G进行预设图神经网络模型训练的方法,显然,本申请实施例中的预设图神经网络模型训练方法更加准确,因此,本申请实施例能够训练生成更准确的预设图神经网络模型。
在一个实施例中,如图10所示,根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果,包括:
步骤1020,将初始无向无权图输入预设图神经网络模型中进行图卷积处理,生成目标嵌入表征矩阵;预设图神经网络模型为基于初始无向无权图及目标无向无权图进行训练所得。
可选地,在预设图神经网络模型训练完成之后,服务器104可以将初始无向无权图G输入预设图神经网络模型中进行图卷积处理,从而生成目标嵌入表征矩阵Z。其中,预设图神经网络模型为基于初始无向无权图及目标无向无权图进行训练所得到的图神经网络模型。图神经网络模型(graph neural network,GNN)是指使用神经网络来学习图结构数据,从而满足聚类、分类、预测、分割、生成等图学习任务需求的模型。可选地,本申请实施例中也可以使用图卷积神经网络模型进行处理,本申请对此不做限定。目标嵌入表征矩阵Z的每一行zi表示节点i的嵌入表征向量。
步骤1040,根据目标嵌入表征矩阵对长尾用户进行物品推荐,生成物品推荐结果。
可选地,首先,服务器104可以获取待推荐的长尾用户编号i,即确定出待推荐的长尾用户i。其次,根据目标嵌入表征矩阵Z,服务器104可以计算长尾用户i的嵌入表征zi与所有待推荐物品(物品1,物品2,……,物品m)的嵌入表征zj之间的余弦相似度,并生成余弦相似度列表(s1,s2,s3,...,sm)。其中,m表示预先设置的待推荐物品列表长度,m表示余弦相似度列表的长度。sj表示长尾用户i的嵌入表征与物品j的嵌入表征之间的余弦相似度;余弦相似度又称余弦相似性,余弦相似度是通过计算两个向量的夹角余弦值来评估两个向量的相似度。在本申请实施例中,余弦相似度也可以替换为皮尔逊相关系数或者Jaccard相似系数(Jaccard similarity coefficient)。之后,对余弦相似度列表(s1,s2,s3,...,sm)中的各余弦相似度进行排序,生成余弦相似度排序结果。然后,从余弦相似度排序结果中选取长尾用户i对应的余弦相似度最高的预设个数(k个)的物品,并将长尾用户i对应的余弦相似度最高的预设个数(k个)的物品确定为目标物品。然后,将长尾用户i对应的目标物品输出至长尾用户i,即输出长尾用户i的物品推荐结果。其中,本申请实施例对预设个数(k个)不做限定。
本实施例中,由于本申请实施例基于初始无向无权图及目标无向无权图训练出了更准确的预设图神经网络模型,因此,将初始无向无权图输入至更准确的预设图神经网络模型进行图卷积处理,就能够生成更准确的目标嵌入表征矩阵。之后,根据更准确的目标嵌入表征矩阵对长尾用户进行物品推荐,就能够生成更准确的物品推荐结果。
在一个可选的实施例中,如图11所示,提供了一种物品推荐方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤1102,将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,构建初始邻接矩阵;
步骤1104,获取用户节点的特征向量、物品节点的特征向量,根据用户节点的特征向量、物品节点的特征向量,生成特征矩阵;
步骤1106,根据初始邻接矩阵及特征矩阵,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点;
步骤1108,对初始无向无权图中的头部节点的连接边进行删除,生成新的无向无权图;
步骤1110,将新的无向无权图输入至初始图自编码器模型中进行处理,生成新的邻接矩阵;
步骤1112,根据新的邻接矩阵计算初始图自编码器模型的损失函数的值,根据损失函数的值对初始图自编码器模型的模型参数进行更新,生成预设图自编码器模型;
步骤1114,将初始无向无权图输入至预设图自编码器模型中,对长尾节点的待增加连接边进行预测,生成目标邻接矩阵;
步骤1116,根据目标邻接矩阵及特征矩阵,生成目标无向无权图;
步骤1118,将初始无向无权图输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图对应的第一嵌入表征矩阵;
步骤1120,将目标无向无权图输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图对应的第二嵌入表征矩阵;
步骤1122,根据第一嵌入表征矩阵及第二嵌入表征矩阵计算初始图神经网络模型的损失函数的值,根据损失函数的值对初始图神经网络模型的模型参数进行更新,生成预设图神经网络模型;
步骤1124,将初始无向无权图输入预设图神经网络模型中进行图卷积处理,生成目标嵌入表征矩阵;预设图神经网络模型为基于初始无向无权图及目标无向无权图进行训练所得;
步骤1126,根据目标嵌入表征矩阵对长尾用户进行物品推荐,生成物品推荐结果。
上述物品推荐方法,根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点;将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图;根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。本申请通过将构建好的初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,就能够扩充长尾用户不完善的反馈信息,从而生成包含更全面反馈信息的目标无向无权图。之后,根据构建的初始无向无权图及包含更全面反馈信息的目标无向无权图,就能够较准确地对长尾用户进行物品推荐,从而生成较准确的物品推荐结果。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个可选的实施例中,如图12所示,提供了一种物品推荐系统1200,以该系统运行于图1中的服务器104为例进行说明,该物品推荐系统1200包括数据处理模块1220、长尾节点增强模块1240、图神经网络模块1260、推荐模块1280。
其中,数据处理模块1220用于根据各用户和各物品的信息生成初始无向无权图。数据处理模块1220包括:将用户和物品建模为节点,将用户对物品的反馈行为以及用户间的交互行为建模为边,得到初始邻接矩阵A;将用户和物品的特征信息独热编码为f维特征向量,得到特征矩阵X;根据邻接矩阵A以及特征矩阵X,构建出初始无向无权图G。
其中,长尾节点增强模块1240用于基于初始无向无权图进行长尾节点增强,生成增强后的目标无向无权图。长尾节点增强模块1240包括:对初始无向无权图G中的头部节点进行随机删边处理;根据随机删边后的无向无权图训练更新预设图自编码器模型;使用预设图自编码器模型预测对长尾节点增加的连接边,输出目标无向无权图G’。
其中,图神经网络模块1260用于根据初始无向无权图和目标无向无权图进行嵌入表征矩阵的预测,生成目标嵌入表征矩阵。图神经网络模块1260包括:根据初始无向无权图G和目标无向无权图G’训练更新预设图神经网络模型;将初始无向无权图G输入至预设图神经网络模型中进行处理,输出目标嵌入表征矩阵Z。
其中,推荐模块1280用于根据长尾用户对应的用户编号i和目标嵌入表征矩阵对对长尾用户进行个性化物品推荐。推荐模块1280包括:计算指定长尾用户i和所有物品的嵌入表征之间的余弦相似度;对物品按照余弦相似度进行排序,并选择前k个物品作为个性化推荐结果输出。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的物品推荐方法的物品推荐装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个物品推荐装置实施例中的具体限定可以参见上文中对于物品推荐方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种物品推荐装置1300,包括:初始无向无权图构建模块1320、目标无向无权图生成模块1340和物品推荐结果生成模块1360,其中:
初始无向无权图构建模块1320,用于根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点。
目标无向无权图生成模块1340,用于将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图。
物品推荐结果生成模块1360,用于根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。
在一个实施例中,初始无向无权图构建模块1320包括:
初始邻接矩阵构建单元,用于将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,构建初始邻接矩阵;
特征矩阵生成单元,用于获取用户节点的特征向量、物品节点的特征向量,根据用户节点的特征向量、物品节点的特征向量,生成特征矩阵;
初始无向无权图构建单元,用于根据初始邻接矩阵及特征矩阵,构建初始无向无权图。
在一个实施例中,物品推荐装置1300还包括:
新的无向无权图生成模块,用于对初始无向无权图中的头部节点的连接边进行删除,生成新的无向无权图;
新的邻接矩阵生成模块,用于将新的无向无权图输入至初始图自编码器模型中进行处理,生成新的邻接矩阵;
预设图自编码器模型生成模块,用于根据新的邻接矩阵计算初始图自编码器模型的损失函数的值,根据损失函数的值对初始图自编码器模型的模型参数进行更新,生成预设图自编码器模型。
在一个实施例中,目标无向无权图生成模块1340包括:
目标邻接矩阵生成单元,用于将初始无向无权图输入至预设图自编码器模型中,对长尾节点的待增加连接边进行预测,生成目标邻接矩阵;
目标无向无权图生成单元,用于根据目标邻接矩阵及特征矩阵,生成目标无向无权图。
在一个实施例中,物品推荐装置1300还包括:
第一嵌入表征矩阵生成模块,用于将初始无向无权图输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图对应的第一嵌入表征矩阵;
第二嵌入表征矩阵生成模块,用于将目标无向无权图输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图对应的第二嵌入表征矩阵;
预设图神经网络模型生成模块,用于根据第一嵌入表征矩阵及第二嵌入表征矩阵计算初始图神经网络模型的损失函数的值,根据损失函数的值对初始图神经网络模型的模型参数进行更新,生成预设图神经网络模型。
在一个实施例中,物品推荐结果生成模块1360包括:
目标嵌入表征矩阵生成单元,用于将初始无向无权图输入预设图神经网络模型中进行图卷积处理,生成目标嵌入表征矩阵;预设图神经网络模型为基于初始无向无权图及目标无向无权图进行训练所得;
物品推荐结果生成单元,用于根据目标嵌入表征矩阵对长尾用户进行物品推荐,生成物品推荐结果。
上述物品推荐装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储物品推荐数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种物品推荐方法。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点;
将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图;
根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。
在一个实施例中,根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图,处理器执行计算机程序时还实现以下步骤:
将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,构建初始邻接矩阵;
获取用户节点的特征向量、物品节点的特征向量,根据用户节点的特征向量、物品节点的特征向量,生成特征矩阵;
根据初始邻接矩阵及特征矩阵,构建初始无向无权图。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
对初始无向无权图中的头部节点的连接边进行删除,生成新的无向无权图;
将新的无向无权图输入至初始图自编码器模型中进行处理,生成新的邻接矩阵;
根据新的邻接矩阵计算初始图自编码器模型的损失函数的值,根据损失函数的值对初始图自编码器模型的模型参数进行更新,生成预设图自编码器模型。
在一个实施例中,将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图,处理器执行计算机程序时还实现以下步骤:
将初始无向无权图输入至预设图自编码器模型中,对长尾节点的待增加连接边进行预测,生成目标邻接矩阵;
根据目标邻接矩阵及特征矩阵,生成目标无向无权图。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将初始无向无权图输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图对应的第一嵌入表征矩阵;
将目标无向无权图输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图对应的第二嵌入表征矩阵;
根据第一嵌入表征矩阵及第二嵌入表征矩阵计算初始图神经网络模型的损失函数的值,根据损失函数的值对初始图神经网络模型的模型参数进行更新,生成预设图神经网络模型。
在一个实施例中,根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果,处理器执行计算机程序时还实现以下步骤:
将初始无向无权图输入预设图神经网络模型中进行图卷积处理,生成目标嵌入表征矩阵;预设图神经网络模型为基于初始无向无权图及目标无向无权图进行训练所得;
根据目标嵌入表征矩阵对长尾用户进行物品推荐,生成物品推荐结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点;
将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图;
根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。
在一个实施例中,根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图,计算机程序被处理器执行时还实现以下步骤:
将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,构建初始邻接矩阵;
获取用户节点的特征向量、物品节点的特征向量,根据用户节点的特征向量、物品节点的特征向量,生成特征矩阵;
根据初始邻接矩阵及特征矩阵,构建初始无向无权图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对初始无向无权图中的头部节点的连接边进行删除,生成新的无向无权图;
将新的无向无权图输入至初始图自编码器模型中进行处理,生成新的邻接矩阵;
根据新的邻接矩阵计算初始图自编码器模型的损失函数的值,根据损失函数的值对初始图自编码器模型的模型参数进行更新,生成预设图自编码器模型。
在一个实施例中,将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图,计算机程序被处理器执行时还实现以下步骤:
将初始无向无权图输入至预设图自编码器模型中,对长尾节点的待增加连接边进行预测,生成目标邻接矩阵;
根据目标邻接矩阵及特征矩阵,生成目标无向无权图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将初始无向无权图输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图对应的第一嵌入表征矩阵;
将目标无向无权图输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图对应的第二嵌入表征矩阵;
根据第一嵌入表征矩阵及第二嵌入表征矩阵计算初始图神经网络模型的损失函数的值,根据损失函数的值对初始图神经网络模型的模型参数进行更新,生成预设图神经网络模型。
在一个实施例中,根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果,计算机程序被处理器执行时还实现以下步骤:
将初始无向无权图输入预设图神经网络模型中进行图卷积处理,生成目标嵌入表征矩阵;预设图神经网络模型为基于初始无向无权图及目标无向无权图进行训练所得;
根据目标嵌入表征矩阵对长尾用户进行物品推荐,生成物品推荐结果。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图;用户节点包括与头部用户对应的头部节点及长尾用户对应的长尾节点;
将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图;
根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果。
在一个实施例中,根据用户节点、与用户节点对应的物品节点、用户节点之间的关系、用户节点与物品节点之间的关系,构建初始无向无权图,计算机程序被处理器执行时还实现以下步骤:
将用户节点、与用户节点对应的物品节点作为节点,将用户节点之间的关系、用户节点与物品节点之间的关系作为边,构建初始邻接矩阵;
获取用户节点的特征向量、物品节点的特征向量,根据用户节点的特征向量、物品节点的特征向量,生成特征矩阵;
根据初始邻接矩阵及特征矩阵,构建初始无向无权图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对初始无向无权图中的头部节点的连接边进行删除,生成新的无向无权图;
将新的无向无权图输入至初始图自编码器模型中进行处理,生成新的邻接矩阵;
根据新的邻接矩阵计算初始图自编码器模型的损失函数的值,根据损失函数的值对初始图自编码器模型的模型参数进行更新,生成预设图自编码器模型。
在一个实施例中,将初始无向无权图输入至预设图自编码器模型中,对长尾节点与其他节点之间的关系进行更新,生成目标无向无权图,计算机程序被处理器执行时还实现以下步骤:
将初始无向无权图输入至预设图自编码器模型中,对长尾节点的待增加连接边进行预测,生成目标邻接矩阵;
根据目标邻接矩阵及特征矩阵,生成目标无向无权图。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将初始无向无权图输入至初始图神经网络模型中进行图卷积处理,生成初始无向无权图对应的第一嵌入表征矩阵;
将目标无向无权图输入至初始图神经网络模型中进行图卷积处理,生成目标无向无权图对应的第二嵌入表征矩阵;
根据第一嵌入表征矩阵及第二嵌入表征矩阵计算初始图神经网络模型的损失函数的值,根据损失函数的值对初始图神经网络模型的模型参数进行更新,生成预设图神经网络模型。
在一个实施例中,根据初始无向无权图及目标无向无权图,对长尾用户进行物品推荐,生成物品推荐结果,计算机程序被处理器执行时还实现以下步骤:
将初始无向无权图输入预设图神经网络模型中进行图卷积处理,生成目标嵌入表征矩阵;预设图神经网络模型为基于初始无向无权图及目标无向无权图进行训练所得;
根据目标嵌入表征矩阵对长尾用户进行物品推荐,生成物品推荐结果。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。