一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于Tucker分解和知识图谱的商品推荐方法与流程

2022-03-26 16:40:59 来源:中国专利 TAG:

一种基于tucker分解和知识图谱的商品推荐方法
技术领域
1.本发明属于信息推荐技术领域,具体涉及一种基于tucker分解和知识图谱的商品推荐方法。


背景技术:

2.目前,将知识图谱引入推荐系统逐渐成为一种趋势。知识图谱中丰富的实体信息和关系信息可以帮助推荐系统更深层次地理解用户与商品之间的关系,从而提供更精确的推荐结果。
3.知识图谱本质上是一个三元组的集合,其中三元组的形式为《头实体,关系,尾实体》。每个三元组代表着现实生活中的一个事实,比如三元组《joss whedon,director of,the avengers》代表“乔斯
·
韦登是复仇者联盟的导演”这项事实。知识图谱补全任务是知识图谱领域的一项重要任务,它是对知识图谱中有缺失的三元组进行补全。现存的一些将知识图谱补全任务和推荐系统任务相结合的模型存在一些问题,主要为采用的知识图谱补全模型过于简单,通过该方法学习到的知识图谱中实体和关系的表示,会缺失一些信息,而且在推荐模块中往往使用向量之间的内积来计算商品对于用户的推荐得分,这种简单的方法无法充分使推荐系统学习到用户和商品的表示。


技术实现要素:

4.针对上述现有技术中存在的技术问题,本发明提出了一种基于tucker分解和知识图谱的商品推荐方法,将知识图谱补全任务与推荐系统任务进行联合学习,并利用tucker分解(高阶奇异值分解)的逆运算获得推荐得分,从而提高了推荐结果。
5.本发明具体技术方案如下:
6.一种基于tucker分解和知识图谱的商品推荐方法,其特征在于,包括以下步骤:
7.步骤1:根据以往用户与商品的交互记录构建推荐学习数据库;构建由多个以《头实体,关系,尾实体》形式存在的三元组构成并包含推荐学习数据库中所有商品的信息的知识图谱数据库,其中头实体和尾实体均属于实体;根据推荐学习数据库的商品和商品唯一对应的实体构建联系数据表;
8.步骤2:基于推荐学习数据库构造并初始化维度为d1的用户特征向量u,初始化各商品的原有特征向量i

及知识图谱数据库中对应各实体的特征向量e和各关系的特征向量r;
9.步骤3:基于联系数据表提取与原有特征向量i'唯一对应的特征向量e,记作对应特征向量e';基于原有特征向量i'和对应特征向量e'构建对应商品特征表示的函数,获得初始化的维度为d3的商品特征向量i,具体为:
[0010][0011]
alphar=softmax(m1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0012][0013][0014]
其中,alphar、m1和m2均为无具体含义的计算中间变量;softmax(
·
)代表归一化指数函数;σ代表激活函数;||代表向量之间的连接操作;和为权重矩阵;和为偏移向量;
[0015]
步骤4:基于知识图谱数据库中所有的关系,构建偏好特征表示的函数,获得维度为d2的偏好特征向量p,具体为:
[0016]
p=alpha
kgrꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0017][0018]
其中,alpha
kg
为无具体含义的计算中间变量;r为知识图谱数据库中所有关系的特征向量r的集合;q为权重向量;和为权重矩阵;b
kg
为偏移向量;
[0019]
步骤5:根据用户特征向量u、商品特征向量i和偏好特征向量p,采用tucker分解的逆运算学习推荐系统的信息,得到得分函数φr(u,p,i):
[0020]
φr(u,p,i)=wr×1u
×2p
×3i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0021]
其中,wr为推荐系统的维度为d1×
d2×
d3的核心张量;
×n,n=1,2,3为张量之间的第n模式积;
[0022]
步骤6:基于知识图谱数据库提取所有包含对应特征向量e'的三元组,记作对应三元组,之后根据对应三元组,采用tucker分解的逆运算学习知识图谱的信息,得到得分函数φ
kg
(eh,r,e
t
):
[0023]
φ
kg
(eh,r,e
t
)=σ(w
kg
×1eh×2r
×3e
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0024]
其中,eh和e
t
分别代表对应三元组中维度为de的头实体的特征向量和尾实体的特征向量,并且eh和e
t
中至少一个为特征向量e';r代表对应三元组中维度为dr的关系的特征向量;w
kg
为知识图谱的维度为de×dr
×de
的核心张量;
[0025]
步骤7:基于推荐系统的得分函数φr(u,p,i)和知识图谱的得分函数φ
kg
(eh,r,e
t
),分别以推荐学习数据库和知识图谱数据库为训练集进行训练,进而使用训练后的模型对用户进行top-n的商品推荐。
[0026]
进一步地,步骤3中公式(3)和(4)的激活函数σ为tanh函数。
[0027]
进一步地,步骤4中公式(6)和步骤6中公式(8)的激活函数σ为sigmoid函数。
[0028]
本发明的有益效果为:
[0029]
本发明提供了一种基于tucker分解和知识图谱的商品推荐方法,将知识图谱补全任务与推荐系统任务进行联合学习,并利用tucker分解的逆运算计算推荐系统得分,从而提高了推荐结果;特别地,将知识图谱中的关系信息以“偏好”的概念融入至推荐系统的得分计算之中,不仅对用户的行为模式有了更深刻的挖掘,而且还更加充分地利用了知识图谱中所蕴含的信息,在提高推荐精准度的同时,为推荐结果提供了可解释性。
附图说明
[0030]
图1为本发明提出的基于tucker分解和知识图谱的商品推荐方法所采用的模型结
构。
具体实施方式
[0031]
为使本发明的目的、技术方案和优点更加清晰,结合以下具体实施例,并参照附图,对本发明做进一步的说明。
[0032]
下述非限制性实施例可以使本领域的普通技术人员更全面的理解本发明,但不以任何方式限制本发明。
[0033]
实施例1
[0034]
本实施例提出了一种基于tucker分解和知识图谱的商品推荐方法,基于如图1所示的由推荐系统模块和知识图谱模块构成的模型实现,所述推荐系统模块包括商品特征向量生成模块和偏好特征向量生成模块。
[0035]
所述商品推荐方法包括以下步骤:
[0036]
步骤1:根据以往用户与商品的交互记录构建推荐学习数据库,其中交互的方式可以为某一用户点击过某一商品;构建由多个以《头实体,关系,尾实体》形式存在的三元组构成并包含推荐学习数据库中所有商品的信息的知识图谱数据库,其中头实体和尾实体均属于实体;由于知识图谱数据库中与商品唯一对应的实体的现实含义就是商品本身,因此依靠这种对应关系构建商品与实体的联系数据表,旨在从知识图谱数据库中找到与商品唯一对应实体的编号,即根据推荐学习数据库的商品和商品唯一对应的实体构建联系数据表;
[0037]
步骤2:基于推荐学习数据库构造并初始化维度为d1的用户特征向量u,初始化各商品的原有特征向量i'、知识图谱数据库中对应各实体的特征向量e和各关系的特征向量r;
[0038]
步骤3:基于联系数据表提取与原有特征向量i'唯一对应的特征向量e,记作对应特征向量e';在推荐系统模块的商品特征向量生成模块中,通过注意力制学习商品特征向量i,即基于原有特征向量i'和对应特征向量e'构建对应商品特征表示的函数,获得初始化的维度为d3的商品特征向量i,具体为:
[0039][0040]
alphar=softmax(m1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0041][0042][0043]
其中,alphar、m1和m2均为无具体含义的计算中间变量;softmax(
·
)代表归一化指数函数;σ代表激活函数,本实施例采用tanh函数;||代表向量之间的连接操作;和为权重矩阵;和为偏移向量;
[0044]
步骤4:在推荐系统模块的偏好特征向量生成模块中,通过注意力制学习偏好特征向量p,即基于知识图谱数据库中所有的关系构建偏好特征表示的函数,获得维度为d2的偏好特征向量p,具体为:
[0045]
p=alpha
kgrꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0046][0047]
其中,alpha
kg
为无具体含义的计算中间变量;r为知识图谱数据库中所有关系的特征向量r的集合;q为权重向量;和为权重矩阵;b
kg
为偏移向量;本实施例采用的激活函数σ为sigmoid函数;
[0048]
步骤5:对于推荐系统模块,根据用户特征向量u、商品特征向量i和偏好特征向量p,采用tucker分解的逆运算学习推荐系统模块的信息,得到得分函数φr(u,p,i):
[0049]
φr(u,p,i)=wr×1u
×2p
×3i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0050]
其中,wr为维度为d1×
d2×
d3的推荐系统模块核心张量,为包含了推荐系统模块中所有特定关系信息的共享池,共享池中的特定关系信息会根据不同关系嵌入向量中的参数进行线性组合,从而得出预测的得分;
×n,n=1,2,3为张量之间的第n模式积;
[0051]
步骤6:基于知识图谱数据库提取所有包含对应特征向量e'的三元组,记作对应三元组,根据对应三元组采用tucker分解的逆运算学习知识图谱模块的信息,得到得分函数φ
kg
(eh,r,e
t
):
[0052]
φ
kg
(eh,r,e
t
)=σ(w
kg
×1eh×2r
×3e
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0053]
其中,eh和e
t
分别代表对应三元组中维度为de的头实体的特征向量和尾实体的特征向量,并且eh和e
t
中至少一个为特征向量e';r代表对应三元组中维度为dr的关系的特征向量;w
kg
为维度为de×dr
×de
的知识图谱模块核心张量;本实施例采用的激活函数σ为sigmoid函数;
[0054]
步骤7:基于推荐系统模块的得分函数φr(u,p,i)和知识图谱模块的得分函数φ
kg
(eh,r,e
t
),分别以推荐学习数据库和知识图谱为训练集,对由推荐系统模块和知识图谱模块构成的模型进行训练,进而使用训练后的模型对用户进行top-n的商品推荐,具体过程为:
[0055]
对于推荐系统模块,采用负采用技术计算推荐系统模块损失函数,对推荐学习数据库中每一个由用户u和商品i构成的正样本(u,i),在每轮训练中随机获得一个包含用户u的负样本(u,i*),经步骤3~5的方法分别获得正样本(u,i)的得分函数φr(u,p,i)和负样本(u,i*)的得分函数φr(u,p*,i*),进而推荐系统模块损失函数(采用bpr loss function(贝叶斯个性化排序损失函数))为:
[0056][0057]
其中,为推荐学习数据库的正样本集合;为对应的负样本集合;本实施例采用的激活函数σ为sigmoid函数;
[0058]
对于知识图谱模块,同样采用负采用技术计算知识图谱模块损失函数,对知识图谱数据库中每一个包含头实体的特征向量eh和关系的特征向量r的三元组为正样本《eh,r,e
t
》,采用的负样本《eh,r,e
t
*》包含头实体的特征向量eh和关系的特征向量r,并以除正样本《eh,r,e
t
》中尾实体以外的其他实体作为尾实体,经步骤6的方法分别获得正样本《eh,r,e
t
》的得分函数φ
kg
(eh,r,e
t
)和负样本《eh,r,e
t
*》的得分函数进而知识图谱模块损失函数(采用bce loss function(二分类交叉熵损失函数))为:
[0059][0060]
其中,ne为知识图谱数据库中的实体总数;为知识图谱数据库的正样本集合;为对应的负样本集合;y
kg
为标签的集合,若为正样本,y的值为1,否则为0;
[0061]
对由推荐系统模块和知识图谱模块构成的模型进行训练,并使用pytorch框架中的adam优化器来优化目标函数
[0062][0063]
其中,λ为超参数,以平衡推荐系统模块和知识图谱模块两个任务;
[0064]
最后基于目标函数使用训练后的模型对用户进行top-n推荐,完成商品推荐。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献