一种基于知识图谱的可解释推荐模型的构建方法

文档序号:26484200发布日期:2021-08-31 17:40阅读:213来源:国知局
本发明属于推荐系统的
技术领域
:,具体涉及一种基于知识图谱的可解释推荐模型的构建方法。
背景技术
::人工智能发展开始进入后深度学习时代,尤其是在能源、医疗和金融等高风险、高价值产业中,若没有可解释的推理过程,则会潜藏着巨大的风险。在人工智能领域,一个重要分支是推荐系统,若解决了推荐可解释任务,则后续可为开发和研究新的可解释机器学习算法和理论提供合适的背景。当前推荐系统欠缺一种与之配套且有效的解释机制,解释机制的缺乏使得用户在应用推荐服务时,存在一种模糊感,不明白作为“黑箱”系统最后给出的结果是否真的适合自己。向用户解释系统会给出这个推荐结果的缘由与推荐系统的准确性同等重要,可解释的推荐会增进系统的透明度、说服力和信任度。目前对于推荐的解释有基于协同的解释,基于模板的解释,基于评论的解释。基于协同的推荐解释,能根据用户社交关系或项目特征生成“您的朋友也在看”或“您购买的a和b相似,为您推荐b”等解释,但在数据稀疏时,推荐的解释会过于牵强;基于模板的解释,其通过对预先定义好的模板进行关键词填充来形成解释,然而模板化的解释并不能满足用户的个性化需求;基于评论的解释,可对评论库中的文本进行提取,以生成推荐解释,但因评论中存在噪声文本,并不是所有的评论句子都能为用户决策过程提供解释。研究界将上述解释统称为post-hoc解释,即后处理方法解释,这种方法的优点是简单通用易实现,解释的内容不易受推荐系统的影响。但缺点一是这种解释产生的依据是一个“黑盒子”,无法进行合理显式地推断;二是推荐理由千篇一律,不满足用户个性化解释需求。当用户发现系统推荐的结果并不是自己的真正需要时,会降低用户对系统的信任度,最后流失用户,导致企业盈利下降。技术实现要素:本发明的目的在于针对现有技术中的上述不足,提供一种基于知识图谱的可解释推荐模型的构建方法,以解决或改善上述的问题。为达到上述目的,本发明采取的技术方案是:一种基于知识图谱的可解释推荐模型的构建方法,其包括以下步骤:s1、将知识图谱中的实体和关系类别数据通过word2vec转换为嵌入矢量,并将所述嵌入矢量通过拼接形成一个句子矩阵;s2、将所述句子矩阵通过卷积核,得到不同的特征映射;s3、不同的特征映射通过池化层,将不同的路径序列经过池化后归整定长的特征表示;s4、将池化层输出的特征输入rnn网络中,输出隐态向量作为路径表示;s5、基于加权池化函数预测用户与候选项目的交互概率,并计算不同路径的得分贡献,选择得分最大的一条路径作为推荐;s6、采用hit@k和ndcg@k对推荐的路径进行评价。进一步地,s1中将知识图谱中的实体和关系类别数据通过word2vec转换为嵌入矢量,并将所述嵌入矢量通过拼接形成一个句子矩阵:其中,l为句子最大长度,为级联算子,对应于句子中第i个词的k维词向量,x1:l为从第1个到第l个词构成的句子,ei为第i个实体向量,e′为第i个实体类型向量,ri为关系向量。进一步地,s2中将所述句子矩阵通过卷积核,得到不同的特征映射,包括:将句子矩阵通过卷积核h的一维卷积,每个卷积核的窗口大小为h*k,得到(l-h+1)维的特征集合即特征映射ci:ci=f(w·xi:i+h-1+b)其中,为滤波器,为偏置项,f为激活函数,xi:i+h-1为第i个词在卷积窗口的向量;并采取不同大小的卷积核对句子{x1:h,x2:h+1,…,xl-h+1:l}进行卷积:c=[c1,c2,…,cl-h+1]其中,进一步地,s4中将池化层输出的特征输入rnn网络中,输出隐态向量作为路径表示,包括:s4.1、采用门控循环单元gru作为rnn模型,为rnn的输入向量,输出隐态向量为hl为:rl=σ(wirxl+bir+whrhl-1+bhr)zl=σ(wizxl+biz+whzhl-1+bhz)nl=tanh(winxl+bin+rl*(whnhl-1+bhn))hl=(1-zl)*nl+zl*hl-1其中,xl为第l步的输入向量,hl-1为第l-1步输出的隐态或第0步初始化的隐态;rl,zl,nl分别是重置门控,更新门控和新门控;σ为sigmoid函数,*为哈达玛积;wir,wiz,win为第l步中,输入层-隐藏层之间可学习的权重;bir,biz,bin为输入层-隐藏层之间可学习偏置;whr,whz,whn为隐藏层-隐藏层之间可学习的权重;bhr,bhz,bhn为隐藏层-隐藏层之间可学习的偏置;s4.2、将通过rnn捕捉到的每条路径的最终隐态作为整条路径pt的最终表示,并通过将路径表示输入全连接层以得到用户与项目的交互分数:其中,ρ=(u,interact,i)的路径合理性,st(ρ|pt)为,为,l为句子最大长度,u(w1tpt)为。进一步地,步骤s5基于加权池化函数预测用户与候选项目的交互概率,并计算不同路径的得分贡献,选择得分最大的一条路径作为推荐,包括:s5.1、采用加权池化函数,将用户与项目的l条路径p(u,i)={p1,p2,…,pt}计算的得分s={s1,s2,…,st}通过加权池化进行整合,获得用户与项目交互的最终预测得分;加权池化函数为:其中,st为第t条路径的得分,γ为一个控制权重的超参数;s5.2、通过非线性激活函数得到用户与项目的交互概率其中,σ为log_softmax函数,sk为第k条路径的得分。进一步地,步骤s6中采用hit@k对推荐的路径进行评价,包括:其中,i(x)是一个指示函数,当x>0时,函数值为1,否则为0;为用户u的最终推荐列表,为推荐列表中排在第k个位置得分项目,tu为测试集中的用户-项目交互项,n是测试集中的用户总数;计算得到的hit@k的值若大于预设值,则为用户推荐的路径对应的项目合理。进一步地,步骤s6中采用ndcg@k对推荐的路径进行评价,包括:其中,z为归一化常数,是dcg@k的最大可能值;计算得到的dcg@k值的值若大于预设值,则衡量推荐算法给出的列表中被推荐项目的相对位置靠前,则为用户推荐的路径对应的项目合理。本发明提供的基于知识图谱的可解释推荐模型的构建方法,具有以下有益效果:本发明模型首先在嵌入层,通过在知识图谱中发现用户与候选项目之间的路径,并按最大长度进行截断,每条路径均由实体与关系构成的序列;然后利用textcnn的方法提取路径中的关键信息,输入路径序列l,输出k维的路径向量表示;再基于卷积核捕捉路径的局部语义相关性,增强特征表示;接着将提取的特征表示送入rnn中获得最终隐向量作为路径表示;最后通过权重池化操作预测用户与候选项目的交互概率,计算不同路径得分贡献,选择输出得分最大的一条路径作为对给出推荐最合理的解释。本发明的模型推荐方法可解释的推荐会增进系统的透明度、说服力和信任度,且可满足用户的个性化解释需求。附图说明图1为基于知识图谱的可解释推荐模型的模型构建图。图2中a为hit@k上的推荐性能,b为ndcg@k上的推荐性能。图3中a为模型在hit@k上的推荐性能,b为模型在ndcg@k上的推荐性能。图4为a为模型在hit@k上的推荐性能,b为模型在ndcg@k上的推荐性能。具体实施方式下面对本发明的具体实施方式进行描述,以便于本
技术领域
:的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
:的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。根据本申请的实施例一,参考图1,本方案的基于知识图谱的可解释推荐模型的构建方法,包括以下步骤:步骤s1、将知识图谱中的实体和关系类别数据通过word2vec转换为嵌入矢量,并将所述嵌入矢量通过拼接形成一个句子矩阵;步骤s2、将所述句子矩阵通过卷积核,得到不同的特征映射;步骤s3、不同的特征映射通过池化层,将不同的路径序列经过池化后归整定长的特征表示;步骤s4、将池化层输出的特征输入rnn网络中,输出隐态向量作为路径表示;步骤s5、基于加权池化函数预测用户与候选项目的交互概率,并计算不同路径的得分贡献,选择得分最大的一条路径作为推荐;步骤s6、采用hit@k和ndcg@k对推荐的路径进行评价。根据本申请的实施例二,本方案的基于知识图谱的可解释推荐模型kpcrn模型的算法,算法具体包括以下步骤:kpcrn模型的输入为:训练样本集,参数初始化:卷积核数量h,卷积核尺寸k,textcnn输出向量维度n,gru层数l,gru隐藏节点数m,迭代次数t;kpcrn模型的输出为:训练完成后的参数确定的模型。具体算法为:步骤a1、通过嵌入层获得特征向量x,i={i|xi≠0};步骤a2、fort=1totdo;步骤a3、将嵌入的特征向量x输入textcnn网络,进行卷积,并通过自适应平均池化操作得出特征向量y;其中,φ为relu激励函数;步骤a4、将textcnn网络的输出输入gru网络中,并进行权重池化后得到最终的预测分类;zl=σ(wizy+biz+whzhl-1+bhz)hl=(1-zl)*nl+zl*hl-1步骤a5、将gru神经网络的最终隐态作为hl作为路径pt的表示,得到用户与项目的合理性分数;步骤a6、将步骤a5计算的每条路径合理分数通过权重池化和log-softmax后得到用户对到项目偏好概率yui=σ(g(s1,s2,…,st,…sk))步骤a7、将输出的结果与标签进行对比,利用交叉熵函数计算损失,并采用adam优化方法对权值进行优化。根据本申请的实施例三,本实施例为对实施例一和实施例二的详细说明,本发明的kpcrn模型结构包含嵌入层、卷积层、池化层、rnn层和加权池化层,每一层的作用具体为:嵌入层:嵌入层也称为embedding层,与稀疏矩阵中存储分类数据的ont-hot编码类似,但相比于one-hot编码,embedding层获得的向量更加稠密。嵌入层用于将知识图谱中的实体和关系等类别数据通过word2vec转换为嵌入矢量,每一行是词向量,可类比于图像中的原始像素点,并通过拼接形成一个句长(l)*维度(n)的句子(路径)矩阵:其中,l是句子最大长度,是级联算子,对应于句子中第i个词的k维词向量。卷积层:用于将获得的句子矩阵通过卷积核(kernel_size)h的一维卷积,每个卷积核的窗口大小为h*k,输出得到(l-h+1)维的特征集合,称为特征映射(featuremap),如从单词xi:i+h-1的窗口生成的特征ci所示:ci=f(w·xi:i+h-1+b)其中,为滤波器,为偏置项,f为激活函数。因为卷积核的权重是共享的,以致一个kernel_size只能提取到某一类特征,类比于语言模型中的n-gram,采取不同大小的卷积核对句子{x1:h,x2:h+1,…,xl-h+1:l}进行卷积:c=[c1,c2,…,cl-h+1]其中,池化层:用于将卷积层得到不同的特征映射后,再通过池化层将不同的路径序列经过池化后归整定长的特征表示。相比于textcnn采取的maxpooling方式,因只保留得分最高、最强的特征,造成其余特征的损失。本发明采用avgpooling方式将平均值作为滤波器的特征。rnn层:循环神经网络是对时间序列信息实行建模,根据序列中的当前输入和上一个时间步输出的隐藏状态来计算当前隐藏状态。循环递归机制会记住处于隐藏状态的每个过去数据样本的影响。用于将池化层的输出特征输入rnn网络中进一步学习长时依赖,rnn层输出的一个隐态向量为hl:hl=irnn(xl-1,hl-1)为避免rnn网络中梯度消失的现象,本发明使用门控循环单元gru作为rnn模型。为rnn的输入向量,不仅包含序列信息且含有语义信息。对于路径的第l步的隐态具体计算为:rl=σ(wirxl+bir+whrhl-1+bhr)zl=σ(wizxl+biz+whzhl-1+bhz)nl=tanh(winxl+bin+rl*(whnhl-1+bhn))hl=(1-zl)*nl+zl*hl-1其中,hl为第l步的隐态,xl为第l步的输入向量,hl-1为第l-1步输出的隐态或第0步初始化的隐态。rl,zl,nl分别是重置门控,更新门控和新门控;σ为sigmoid函数;*表示哈达玛积(hadamardproduct)。将通过rnn捕捉到的每条路径的最终隐态作为整条路径pt的最终表示,最后通过下式将路径表示输入全连接层以得到用户与项目的交互的合理性分数:其中,ρ=(u,interact,i)的路径合理性。加权池化层:在建模用户偏好时,用户与项目之间不同的路径反映用户偏好的程度不同,本发明使用加权池化函数,用于将用户与项目的l条路径p(u,i)={p1,p2,…,pt}计算的得分s={s1,s2,…,st}通过加权池化进行整合,获得用户与项目交互的最终预测得分:其中,st是第t条路径的得分,γ为一个控制权重的超参数;最终通过非线性激活函数得到用户与项目的交互概率:其中,σ为log_softmax函数。根据本申请的实施例四,参考图2-图4,本发明采用hit@k(前k项命中率)和ndcg@k(前k项的归一化折损累计率)作为评价指标,用于对推荐的路径进行评价。为了与基线模型比较,设置hit@k和ndcg@k中k的范围为k={1,2,...,15}作为评估,并计算每101个实例(1个正例加上100个负例)的所有指标。hit@k用于衡量在前k个中成功推荐的事实实例的百分比,hit@k的值越大性能越好,计算公式为:其中,i(x)为一个指示函数,当x>0时,函数值为1,否则为0;是用户u的最终推荐列表,为推荐列表中排在第i个位置得分项目,tu为测试集中的用户-项目交互项,n是测试集中的用户总数。ndcg@k衡量的是在推荐算法给出的列表中被推荐项目的相对位置,愈加靠前的位置则相关度也就越高,即该指标值越大越好;其中,z为归一化常数,是dcg@k的最大可能值。本发明分别与以下三个模型进行了对比实验,对比模型包括:bprmf:一种使用贝叶斯个性化排名损失,对基于隐式反馈的矩阵分解的排序优化模型。cke:一种典型的基于知识图谱嵌入的模型,将知识图谱结构嵌入信息与图像信息、文本信息结合,作为推荐系统辅助信息来提高矩阵分解的推荐性能。kprn:一种基于知识图谱的路径嵌入的模型。(1)推荐性能对比及分析:从对比结果看,本发明提出的模型kpcrn优于其他模型,相比于其他模型,在hit@k上至少提升了1.6%,在dcg@k上至少提升了2.1%。首先,与基于浅层模型的协同过滤方法相比,具有丰富辅助信息的cke模型性能更优,表明结合知识图谱能够有效地解决数据稀疏性问题,可更好的学习用户与项目间的交互信息,有效的提升推荐性能,尤其对如kkbox这样的稀疏数据集提升更加明显。其次,kprn在hit@k和dcg@k上优于cke,表明kprn能够以显式的方式探索用户-项目的连通性,从而利用路径来推断用户偏好,表明利用知识图谱的实体和关系比仅利用知识图谱实体嵌入能更好的表征项目信息。最后,本发明提出的kpcrn模型优于kprn模型,通过cnn网络,利用卷积核能进一步提取出实体与关系的特征,更好的用于整体序列的语义建模,提升推荐效果。(2)池化方式消融实验:本发明对maxpooling、avgpooling、adaptivemaxpooling、adaptiveavgpooling四种池化方式进行了消融实验,在hit@k和dcg@k上,随着推荐列表的增长,自适应平均池化方式相对于其他池化方式均能达到最优,表明其更能捕获更深的语义信息,更利于获得表示用户的综合偏好的特征。(3)不同路径规模的性能分析:本发明分别通过对10个、50个、100个用户进行路径提取,进行评估实验,分析提取路径规模大小,对模型性能的影响,结果如表1所列:从表中可以看出,随着top-k列表长度的增加,对于不同路径数的评估,显示hit@k和dcg@k遵循了相同的提升趋势。对于在同一评估指标下,对于路径较少时,相对于路径较多的模型能表现出更好的性能。可以推断随着用户规模的增大,路径的增多,kpcrn在路径特征提取过程中引入的噪声实体也会增多,top-k推荐性能会相对降低,但总体仍是提升的。表1md上不同路径规模的性能评估table1performanceevaluationofdifferentpathscalesonmd(4)推断路径的合理解释:为了说明通过用户与候选项目的交互路径来推断用户偏好,并生成合理解释,本发明在测试集中通过一个训练好的kpcrn模型来显示给出解释推荐结果的示例,从实验结果选取了四条路径,如表2所列:表2电影数据集中635033用户的四条可视化路径table2visualizationoffourpathsfortheuserof635033inmoviedataset本发明从测试集中随机选取用户635033,并从用户的交互记录中随机选取其评分为4的一部电影outside_previdence作为实体种子。从表2中可以看出,在dbpedia知识图谱中,从种子项目出发能够通过关系路径到达不同的候选项目,作为推荐结果呈现给用户。例如,对于路径1,反映了用户对编剧的偏好,从而给出与编剧相关的项目dumbanddumberto作为系统给出的推荐结果;路径2反映的是对演员的偏好,从而给出与演员相关的项目still_alice作为推荐。因此通过知识图谱中相关的事实路径,能推断出用户对此电影关注的偏好方面,给出对推荐结果的显示解释。综上所述,本发明分别在两个真实数据集上验证了本模型算法的有效性,数据集如下:kkbox:数据集除记录了用户-歌曲的交互数据之外,对于每首歌曲还包含歌曲的歌手、词曲作者和流派等描述信息。md:数据集通过电影标题将movielens-20m提供的用户-项目交互数据,与作为知识图谱数据的dbpedia进行连接,知识图谱数据中包含电影的类型、演员、导演等实体,从而构成用户-电影交互知识图谱。虽然结合附图对发明的具体实施方式进行了详细地描述,但不应理解为对本专利的保护范围的限定。在权利要求书所描述的范围内,本领域技术人员不经创造性劳动即可做出的各种修改和变形仍属本专利的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1