一种基于解耦和记忆的图协同过滤的推荐方法

文档序号:26610793发布日期:2021-09-11 00:04阅读:152来源:国知局
一种基于解耦和记忆的图协同过滤的推荐方法

1.本发明属于数据挖掘领域,具体地说,涉及一种基于解耦和记忆的图神经网络协同过滤的推荐方法。


背景技术:

2.推荐系统(recommender systems)已经在现实生活中被广泛应用,它的主要目的是推测用户偏好从而帮助用户寻找到其偏好的个性化物品并推荐给用户。协同过滤(collaborative filtering)是推荐系统中一个经典且被广泛应用的算法,它基于用户—物品的历史交互行为,去学习推荐用户偏好的物品。例如,有相似行为的用户,他们对物品可能有相似的偏好。
3.对于一个用户—物品交互图,尽管传统的协同过滤算法能够有效地为用户推荐相关物品。但是,用户对于物品的交互可能是基于多种不同的意图,不同的意图会驱使不同的行为。而传统协同过滤算法则是用统一的意图来处理用户和物品之间的关系,忽略了用户不同意图对于物品的影响,这种混合所有意图的嵌入表示,不能很好地提供个人意图的可解释性。另外,由于用户—物品交互图中常常存在着噪音或者其他不利因素,而混合在一起的意图会使嵌入表示与噪音等因素的交互鲁棒性和稳定性降低,同样会使可解释性降低。所以,现如今建立用户—物品交互关系时,应该考虑嵌入在不同物品上的用户意图,把其中的不同意图分离出来。同时考虑每个意图的独立性,通过迭代分离操作,使得模型能够获得更具可解释性的表示。
4.基于上述解耦图协同过滤的方法,在图聚合层中,容易出现高阶连同节点间信息损失的问题,使得用户和物品节点不能完整地从高阶邻居获取完整地信息表示。基于以上问题,引入门控循环单元(gru,gated recurrent unit),使节点嵌入表示能够捕获更完整的高阶邻居信息,降低节点间信息传递的损失。


技术实现要素:

5.本发明的目的是分离用户一物品交互图的多种不同意图,降低高阶节点间信息传递的损失,获得更好的嵌入表示,由此提出一种基于解耦和记忆的图协同过滤的推荐方法。内容包括:
6.一种基于解耦和记忆的图协同过滤的推荐方法,其特征在于,包括如下步骤:
7.s1:利用id和历史交互来表示用户和物品,得到用户和物品的表示向量,嵌入到整合层中,融合成用户和物品嵌入表示向量;
8.s2:将嵌入的每个用户和物品向量通过基于解耦图神经网络的协同过滤框架,得到用户关于潜在意图的解耦表示,以及更新聚合特征后的用户物品的意图分块解耦特征;
9.s3:在整合层中,引入门控循环单元,从用户和物品节点的高阶邻居中聚合完整的特征信息;
10.s4:引入独立模块,以激励不同意图之间的独立性;
11.s5:构建损失函数以优化模型,预测用户意图与物品的对应情况。
12.基于以上内容,所述s1具体步骤如下:
13.s11:利用用户和物品的id和历史交互作为原始输入,进行one

hot编码后成为用户和物品的表示向量;
14.s12:将高维的稀疏表示向量进行线性嵌入,得到低维的稠密表示向量;
15.s13:利用整合层,将用户和物品嵌入整合成用户和物品交互的表示向量。
16.基于以上内容,所述s2具体步骤如下:
17.s21:对于用户和物品交互图,利用解耦图神经网络将每个用户和物品分割成k个块,分割后的k个块对应用户u输出一个由k个独立分量组成的解耦表示的意图,其中用户u的第k个意图解耦表示为:
[0018][0019]
其中,k=1,

,k表示第k个意图,e
ku
是用户u第k个潜在意图的解耦表示,e
ki
是物品i第k个潜在意图的解耦表示,l表示聚合层数,g表示聚合函数,n
u
表示用户u的一阶邻居集合。
[0020]
s22:解耦用户物品图的每个意图,将用户u的第k个意图输出后得到的解耦特征进行相加结合,得到该用户u在第k个意图下聚合所有邻居特征的潜在意图解耦表示e
ku
,同理可得e
ki
,表示为:
[0021][0022][0023]
其中,l表示图的总层数。
[0024]
s23:更新聚合特征后的用户物品的意图分块解耦特征,用户物品的意图分块解耦特征的更新表示为:
[0025][0026]
其中,t=1,

,t表示迭代轮数,t表示最终迭代轮数,表示用户u在第t次迭代中第k个意图下聚合一阶邻居的嵌入表示,表示物品i的历史输入,初始化
[0027]
s24:用户u和物品i在第k个意图的交互程度,即交互相似度(u,i)与第k个意图的物品历史输入交互的条件下,能聚合成用户u在第t次迭代中第k个意图下聚合一阶邻居的嵌入表示表示为:
[0028]
[0029][0030]
其中,分别表示用户u和物品i的度值,在迭代k次后即是
[0031]
基于以上内容,所述s3具体步骤如下:
[0032]
s31:用户u的第k个意图解耦表示通过聚合函数g聚合而成。公式由s21可知,表示为详细表示为:
[0033][0034]
其中,leakyrelu(
·
)是激活函数,f
gru
(
·
)为门控循环单元。
[0035]
基于以上内容,所述s4具体步骤如下:
[0036]
s41:基于解耦和记忆的图协同过滤的算法框架,旨在不同意图间能够相互独立、互不影响,故建立独立模块,所以意图间的损失loss
intend
表示为:
[0037][0038]
其中,表示为所有用户和物品的意图嵌入表示,cov(
·
)表示为矩阵间距离协方差,var(
·
)表示为每个矩阵的距离方差。
[0039]
基于以上内容,所述s5具体步骤如下:
[0040]
s51:根据上述得到的用户和物品的最终表示后,建立预测用户物品间相互作用可能性的函数,该预测函数表示为:
[0041][0042]
s52:构建bpr损失函数以优化模型,预测用户意图与物品的对应情况,损失函数bpr表示为:
[0043][0044]
其中,o={(u,i,j)|(u,i)∈o
+
,(u,j)∈o

}表示已交互的训练数据o
+
和未检测对应的训练数据o

的集合,||
·
||2表示l2正则项,σ表示sigmoid激活函数。
[0045]
更进一步的,所述k=[1,2,4,8,16]。
[0046]
更进一步的,所述l=[0,1,2,3]。
[0047]
本发明从解耦分离用户

物品交互意图、聚合节点间高阶邻居信息、意图独立性的构建三个方面着手,提出一种基于解耦和记忆的图协同过滤的推荐方法。与现有技术相比,本发明的优势在于:
[0048]
1)本发明采用基于解耦的图协同过滤推荐方法,与原有传统的图协同过滤方法相比,能够降低用户—物品历史交互中的噪音等不利因素,学习到更鲁棒、更具可解释性的表示;
[0049]
2)本发明在图聚合层中,采用具有记忆作用的门控循环单元,与原有传统的聚合单元相比,能够学习到节点间更完整的高阶邻居信息,减少在聚合过程中,高阶信息传递时的损失,提高了模型的泛化能力。
附图说明
[0050]
图1为基于解耦和记忆的图协同过滤的推荐方法的具体流程图;
[0051]
图2为本发明提供的一种门控循环单元聚合作用图。
具体实施方案
[0052]
为了能使本发明的技术、内容及优点解释得更清楚明白,下面将结合附图和具体实例对本发明做进一步地阐述。
[0053]
本发明是一项基于图协同过滤结构的技术,用于数据挖掘等领域。在本发明中,给定用户—物品的历史交互信息,在经过基于解耦和记忆的图协同过滤的网络结构,完成对用户意图的分解,从而完成推荐物品的任务。下面对本发明的具体实现过程进行详细阐述。
[0054]
图1是本发明实施例提供的一种方法流程示意图,提供了一种基于解耦和记忆的图协同过滤的推荐方法,其基本步骤如下:
[0055]
s1:利用id和历史交互来表示用户和物品,得到用户和物品的表示向量,嵌入到整合层中,融合成用户和物品嵌入表示向量;
[0056]
s2:将嵌入的每个用户和物品向量通过基于解耦图神经网络的协同过滤框架,得到用户关于潜在意图的解耦表示,以及更新聚合特征后的用户物品的意图分块解耦特征;
[0057]
s3:在整合层中,引入门控循环单元,从用户和物品节点的高阶邻居中聚合完整的特征信息;
[0058]
s4:引入独立模块,以激励不同意图之间的独立性;
[0059]
s5:构建损失函数以优化模型,预测用户意图与物品的对应情况。
[0060]
在以上步骤中,主要是通过基于解耦和记忆的图协同过滤网络对用户一物品交互图进行意图分解,得到更具可解释性的嵌入表示。同时在聚合层中引入门控循环单元,将不同的、高阶的邻居关系等信息聚合到不同的分块意图特征中。再通过独立模块,建立损失函数,以此提高整个模型的抗干扰和泛化能力。所以s1~s5可以具有多种实现方式,下列描述以上步骤在本实施例中的实现过程:
[0061]
在本实施例中,实现s1的具体步骤如下:
[0062]
s11:利用用户和物品的id和历史交互作为原始输入。首先对用户u进行one

hot编码,其id的one

hot编码是一个长度为m的二进制向量x
u
∈r
m
,只有第u个元素为1,其他元素为0。同理可得,物品i的id的one

hot编码为x
i
∈r
n

[0063]
然后,对用户和物品的历史交互进行编码。设表示用户u交互过的物品集合,表示物品i交互过的用户集合。首先对用户u进行历史交互编码,其历史交互编码是一个长度为n的二进制向量x

u
∈r
n
,只有与用户u的历史交互过的物品的id对应位置为1,其他位置为0。同理,物品i的历史交互编码是一个长度为m的二进制向量x

i
∈r
m

[0064]
s12:将高维的稀疏表示向量进行线性嵌入,得到低维的稠密表示向量,嵌入过程
如以下公式。
[0065][0066][0067][0068][0069]
其中,p
u
和p
i
分别是从id中得到用户u和物品i的表示向量,m
u
和m
i
分别是从历史交互中得到的用户u和物品i的表示向量;和分别表示和的个数;e
u
、e
i
、e

u
、e

i
表示变换矩阵。
[0070]
s13:在嵌入整合层,将用户和物品嵌入整合成用户和物品交互的表示向量。本实施例中采用哈达玛积的方式对表示向量进行嵌入整合,具体公式如下。
[0071]
e
u
=p
u

m
u
[0072]
e
i
=p
i

m
i
[0073]
其中,e
u
和e
i
分别表示利用哈达玛积运算后的用户u和物品i的最终表示向量;

表示哈达玛积。
[0074]
由此,经过s11~s13步骤后,得到了用户u和物品i的最终表示向量,该向量可用于后续解耦和记忆图协同过滤网络中进行进一步处理。
[0075]
在本实施例中,实现s2的具体步骤如下:
[0076]
s21:对于用户和物品交互图,利用解耦图神经网络将每个用户和物品分割成k个块,分割后的k个块对应用户u输出一个由k个独立分量组成的解耦表示的意图,其中用户u的第k个意图解耦表示为:
[0077][0078]
其中,k=1,

,k表示第k个意图,e
ku
是用户u第k个潜在意图的解耦表示,e
ki
是物品i第k个潜在意图的解耦表示,l表示聚合层数,g表示聚合函数,n
u
表示用户u的一阶邻居集合。
[0079]
s22:解耦用户物品图的每个意图,将用户u的第k个意图输出后得到的解耦特征进行相加结合,得到该用户u在第k个意图下聚合所有邻居特征的潜在意图解耦表示e
ku
,同理可得e
ki
,表示为:
[0080][0081][0082]
其中,l表示图的总层数。
[0083]
s23:更新聚合特征后的用户物品的意图分块解耦特征,用户物品的意图分块解耦
特征的更新表示为:
[0084][0085]
其中,t=1,

,t表示迭代轮数,t表示最终迭代轮数,表示用户u在第t次迭代中第k个意图下聚合一阶邻居的嵌入表示,表示物品i的历史输入,初始化
[0086]
s24:用户u和物品i在第k个意图的交互程度,即交互相似度s24:用户u和物品i在第k个意图的交互程度,即交互相似度与第k个意图的物品历史输入交互的条件下,能聚合成用户u在第t次迭代中第k个意图下聚合一阶邻居的嵌入表示表示为:
[0087][0088][0089]
其中,分别表示用户u和物品i的度值,在迭代k次后即是
[0090]
上述s21~s24构成了解耦图神经网络的基本框架。该框架下的意图数量k=1或2或4或6或8或16,根据具体情况调整意图数量,在本实施例中,设置最优的意图数量k=4。
[0091]
本发明中的解耦图神经网络层数采用多层网络的形式,得到每一层意图的输出,在多层解耦图神经网络迭代结束后,对每层的解耦意图进行相加,从而得到所有意图特征。在本实施例中,设置最有的层数l=3。
[0092]
在本实施例中,实现s3的具体步骤如下:
[0093]
s31:用户u的第k个意图解耦表示通过聚合函数g聚合而成。公式由s21可知,表示为详细表示为:
[0094][0095]
其中,leakyrelu(
·
)是激活函数,f
gru
(
·
)为门控循环单元。
[0096]
s32:门控循环单元gru利用重置门控制保存的历史信息数量,更新门决定遗忘信息的数量,并加入最新状态信息,最后得到gru的输出,其公式f
gru
(
·
)表示如下。
[0097][0098]
[0099][0100][0101]
其中,w
r
,w
z
,w
e
为权重矩阵;表示上一时刻用户u的第k个意图的输出状态;表示用户u的所有一阶物品邻居上一时刻的输出;[,]表示对两个向量进行拼接;

表示哈达玛积。
[0102]
由以上,s31~s32步骤构成了聚合层的基本结构。在聚合过程中,容易出现高阶连同节点间信息损失的问题,使得用户和物品节点不能完整地从高阶邻居获取完整地信息表示。在引入门控循环单元后,使节点嵌入表示能够捕获更完整的高阶邻居信息,降低节点间信息传递的损失。
[0103]
在本实施例中,实现s4具体步骤如下:
[0104]
s41:基于解耦和记忆的图协同过滤的算法框架,旨在不同意图间能够相互独立、互不影响,故建立独立模块,所以意图间的损失loss
intend
表示为:
[0105][0106]
其中,表示为所有用户和物品的意图嵌入表示,cov(
·
)表示为矩阵间距离协方差,var(
·
)表示为每个矩阵的距离方差。
[0107]
由以上s41步骤,整个意图网络建立独立模块,使得每个意图之间相互独立,减少冗余。
[0108]
在本实施例中,实现s5具体步骤如下:
[0109]
s51:根据上述得到的用户和物品的最终表示后,建立预测用户物品间相互作用可能性的函数,该预测函数表示为:
[0110][0111]
s52:构建bpr损失函数以优化模型,预测用户意图与物品的对应情况,损失函数bpr表示为:
[0112][0113]
其中,o={(u,i,j)|(u,i)∈o
+
,(u,j)∈o

}表示已交互的训练数据o
+
和未检测对应的训练数据o

的集合,||
·
||2表示l2正则项,σ表示sigmoid激活函数。
[0114]
综上所述,在本实施例中,步骤s1~s5给出了解耦和记忆的图协同过滤推荐算法,能够降低用户和物品历史交互中的噪音等不利因素,学习到更鲁棒、更具可解释性的嵌入表示。另外,该模型还能够学习到节点间更完整的高阶邻居信息,减少在聚合过程中,高阶信息传递时的损失,提高了模型的泛化能力。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1