基于变分推断和张量神经网络的知识库补全方法与流程

文档序号:13760889阅读:212来源:国知局
本发明属于知识库补全
技术领域
,具体涉及一种基于变分推断和张量神经网络的知识库补全方法的设计。
背景技术
:知识库补全是知识库中一个重要的研究课题,在问答系统,信息检索等一些应用中扮演着重要的角色。知识库用三元组(subject,relation,object)表示数据信息,是一种揭示实体之间的语义网络,虽然存储着海量的信息,但有相当大的一部分信息是缺失的,隐含在其中,所以当用户进行搜索时,可能发出的请求在知识库中不能找到相对应的答案,为了解决这一问题,相关研究者基于已经存在的三元组,提出了一系列的学习算法,来增强用户的搜索体验。目前已有的学习算法有Rescal,NTN,transE,transR等等,Rescal算法是较早的一个模型,考虑的是成对实体之间的简单的交互信息,transE模型是一个三角形模型,根据实体差和关系的距离来对知识库进行补全,NTN(NeuralTensorNetworks,张量神经网络)算法提出了神经网络的思想,成对考虑的是实体之间在关系的每个维度上的交互信息,包括一阶信息,二阶信息和三阶信息,较之前模型相对复杂,尽管这些算法很成功,但是这些模型都没有探讨实体,关系两两成对的交互,同时忽略了实体和关系的先验知识,即没有引入贝叶斯的框架,而他们的先验知识对模型的准确性有很重要的作用,同时他们不擅长对不确定三元组的预测建模。技术实现要素:本发明的目的是为了解决现有的知识库补全技术忽略了实体和关系的先验知识,并且没有考虑隐含变量之间成对的互交信息的问题,提出了一种基于变分推断和张量神经网络的知识库补全方法。本发明的技术方案为:基于变分推断和张量神经网络的知识库补全方法,包括以下步骤:S1、根据知识库中的三元组(ei,ej,rk),构造张量Y;S2、根据张量Y,在一个隐含张量X的条件下构造一个似然函数p(Y|X);S3、将隐含张量X中的每个元素xijk用两层神经网络表示;S4、给三元组(ei,ej,rk)中的隐含实体变量和隐含关系变量一个高斯先验;S5、根据贝叶斯框架,假设三元组(ei,ej,rk)中的隐含实体变量和隐含关系变量的后验分布为高斯分布;S6、根据变分推断,最大化ELOB来近似后验高斯分布,采用SGVB方法优化ELOB,并用随机梯度求解。进一步地,步骤S1具体为:假设知识库中的实体个数为N,关系个数为M,构造的张量Y∈RN×N×M,RN×N×M为维数是N×N×M的三维实数空间;若知识库中三元组(ei,ej,rk)存在,则张量Y的各维度上的下标对应的元素yijk为1,否则yijk为0。进一步地,步骤S2具体为:根据张量Y,在一个隐含张量X的条件下构造一个似然函数p(Y|X):p(Y|X)=Πi=1NΠj=1NΠk=1M[Ber(yijk|σ(xijk;α))]Iijk---(1)]]>其中Ber(yijk|σ(xijk;α))是伯努利分布,它的均值是σ(xijk;α),而σ(xijk;α)是sigmoid函数,具体形式为Iijk是一个指示变量,三元组(ei,ej,rk)在训练数据中存在的话,Iijk值为1,否则Iijk值为0。进一步地,步骤S3具体为:将隐含张量X中的每个元素xijk用两层神经网络表示,具体表示为:xijk=wThijk+b0(2)其中w为权重向量,b0表示一个线性偏差;ei,ej,rk∈Rd×1,b∈RK×1,w∈RK×d,W1,W2,W3∈RK×d,K为关系用向量表示之后的维度,d为实体用向量表示之后的维度;是神经网络表示中的权重和偏差;f(·)是激活函数。进一步地,步骤S4具体为:三元组(ei,ej,rk)中每个隐含实体变量和每个隐含关系变量都有先验知识,假设隐含实体变量和隐含关系变量均为高斯分布,具体形式如下:p(ei|μi,λi)=N(ei|μE,diag(λE-1))---(3)]]>p(rk|μk,λk)=N(rk|μR,diag(λR-1))---(4)]]>其中,p(·)为先验的概率密度函数,N(·)为高斯分布的概率密度函数;μi,λi分别表示ei的先验概率密度函数的参数,其值分别为μE,μk,λk分别表示rk的先验概率密度函数的参数,其值分别为μR,分别表示高斯分布的协方差矩阵。进一步地,步骤S5具体为:根据贝叶斯框架,三元组(ei,ej,rk)中每个隐含实体变量和每个隐含关系变量的后验分布服从高斯分布,具体形式如下:q(ei|μ~i,λ~i)=N(ei|μ~i,diag(λ~i-1))---(5)]]>q(rk|μ~k,λ~k)=N(rk|μ~k,diag(λ~k-1))---(6)]]>其中,q(·)为后验的概率密度函数,N(·)为高斯分布的概率密度函数;分别表示ei的后验概率密度函数的参数,分别表示rk的后验概率密度函数的参数;分别表示高斯分布的协方差矩阵。进一步地,步骤S6具体为:根据变分推断,近似后验高斯分布的时候需要最大化下界ELOB,表示为:logp(xi|θ)≥L(q(z|xi,φ),θ)(7)其中xi代表的是第i个数据,L(·)代表的是最大化下界ELOB函数,θ为ELOB的参数,z表示隐含变量,φ为z后验概率密度函数的参数;L(q(z|xi,φ),θ)=-KL(q(z|xi,φ)||p(z|θ))+Eq(z|xi,φ)[logq(z|xi,φ)]---(8)]]>采用SGVB方法将ELOB第二项期望项进行简化,引入一个可微的转换和噪声ε,形式如下:z=gφ(ε),ε~p(ε),则公式(8)可重新表示为:L(q(z|xi,φ),θ)=1LΣl=1Llogp(xi|z(i,l),θ)-KL(q(z|xi,φ)||p(z|θ))---(9)]]>其中z(i,l)=gφ(ε),ε~p(ε);假设z=gφ(ε)=μ+diag(λ-1/2)ε,下界ELOB形式变为:L(Θ,Φ|Y)=Σl=1LΣi=1NΣj=1NΣk=1MIijkLlogBer(yijk|σ(l)(xijk;α))-Σi=1NKL[q(ei|μ~i,λ~i)||p(ei|μE,λE)]-Σj=1NKL[q(ej|μ~j,λ~j)||p(ej|μE,λE)]-Σk=1MKL[q(rk|μ~k,λ~k)||p(ek|μR,λR)]---(10)]]>其中分别表示ej的后验概率密度函数的参数,μE,μR值为0,λE,λR设定为I;采用随机梯度上升算法求解,不断更新参数Θ,Φ,直到收敛停止。本发明的有益效果是:本发明通过在基于变分推断和张量神经网络的知识库补全方法中增加了贝叶斯框架,考虑了隐含变量的先验知识,引入了张量思想,探讨了隐含变量两两之间的相互作用,并加入神经网络非线性表达,可以较为准确的表达现有知识库的真实情况,同时在精度方面本发明相较于现有的知识库学习算法有了较大的提升。附图说明图1为本发明提供的基于变分推断和张量神经网络的知识库补全方法流程图。图2为本发明实施例的隐含变量实体、关系以及用数据构建的三维张量模型图。图3为Wordnet数据集上本发明和NTN的精度测试结果统计图。图4为Freebase数据集上本发明和NTN的精度测试结果统计图。具体实施方式下面结合附图对本发明的实施例作进一步的说明。本发明提供了一种基于变分推断和张量神经网络的知识库补全方法,如图1所示,包括以下步骤:S1、根据知识库中的三元组(ei,ej,rk),构造张量Y。其中,ei代表三元组中的subject,指的是第i个实体;ej代表三元组中的object,指的是第j个实体,rk代表三元组中的ralation,指的是第k个关系。假设知识库中的实体个数为N,关系个数为M,构造的张量Y∈RN×N×M,RN×N×M为维数是N×N×M的三维实数空间;若知识库中三元组(ei,ej,rk)存在,则张量Y的各维度上的下标对应的元素yijk为1,否则yijk为0。S2、根据张量Y,在一个隐含张量X的条件下构造一个似然函数p(Y|X):p(Y|X)=Πi=1NΠj=1NΠk=1M[Ber(yijk|σ(xijk;α))]Iijk---(1)]]>其中Ber(yijk|σ(xijk;α))是伯努利分布,它的均值是σ(xijk;α),而σ(xijk;α)是sigmoid函数,具体形式为Iijk是一个指示变量,三元组(ei,ej,rk)在训练数据中存在的话,Iijk值为1,否则Iijk值为0。这一步的意义在于把连续隐含变量xijk通过伯努利分布变成离散变量yijk,如图2所示。S3、将隐含张量X中的每个元素xijk用两层神经网络表示,具体表示为:xijk=wThijk+b0(2)其中w为权重向量,b0表示一个线性偏差;ei,ej,rk∈Rd×1,b∈RK×1,w∈RK×d,W1,W2,W3∈RK×d,K为关系用向量表示之后的维度,d为实体用向量表示之后的维度;是神经网络表示中的权重和偏差;f(·)是激活函数。本发明实施例中,f(·)采用双曲正切函数tanh(·)。本发明中,xijk表示的时候考虑了三元组(ei,ej,rk)中三个隐含变量两两成对交互的信息,同时用神经网络进行非线性的表示,更贴近真实世界,更准确的计算了三元组存在的可能性。S4、给三元组(ei,ej,rk)中的隐含实体变量和隐含关系变量一个高斯先验。三元组(ei,ej,rk)中每个隐含实体变量和每个隐含关系变量都有先验知识,假设隐含实体变量和隐含关系变量均为高斯分布,具体形式如下:p(ei|μi,λi)=N(ei|μE,diag(λE-1))---(3)]]>p(rk|μk,λk)=N(rk|μR,diag(λR-1))---(4)]]>其中,p(·)为先验的概率密度函数,N(·)为高斯分布的概率密度函数;μi,λi分别表示ei的先验概率密度函数的参数,其值分别为μE,μk,λk分别表示rk的先验概率密度函数的参数,其值分别为μR,分别表示高斯分布的协方差矩阵。在实际中求解过程中,隐含实体变量和隐含关系变量是均值为0,协方差矩阵为I的高斯先验(I代表单位矩阵,即对角元素为1其他元素为0的矩阵)。S5、根据贝叶斯框架,假设三元组(ei,ej,rk)中的隐含实体变量和隐含关系变量的后验分布为高斯分布。根据贝叶斯框架,三元组(ei,ej,rk)中每个隐含实体变量和每个隐含关系变量的后验分布服从高斯分布,具体形式如下:q(ei|μ~i,λ~i)=N(ei|μ~i,diag(λ~i-1))---(5)]]>q(rk|μ~k,λ~k)=N(rk|μ~k,diag(λ~k-1))---(6)]]>其中,q(·)为后验的概率密度函数,N(·)为高斯分布的概率密度函数;分别表示ei的后验概率密度函数的参数,分别表示rk的后验概率密度函数的参数;分别表示高斯分布的协方差矩阵。S6、根据变分推断,最大化ELOB来近似后验高斯分布,采用SGVB方法优化ELOB,并用随机梯度求解。根据变分推断,近似后验高斯分布的时候需要最大化下界ELOB,表示为:logp(xi|θ)≥L(q(z|xi,φ),θ)(7)其中xi代表的是第i个数据,L(·)代表的是最大化下界ELOB函数,θ为ELOB的参数,z表示隐含变量,φ为z后验概率密度函数的参数。L(q(z|xi,φ),θ)=-KL(q(z|xi,φ)||p(z|θ))+Eq(z|xi,φ)[logq(z|xi,φ)]---(8)]]>在一般情况下,ELOB第二项期望项是很难求的,所以我们引入了StochasticGradientVariationalBayes(SGVB)Estimator方法,这个方法可以把第二项的期望项简化,使求解过程变得很容易:引入一个可微的转换和噪声ε,形式如下:z=gφ(ε),ε~p(ε),则公式(8)可重新表示为:L(q(z|xi,φ),θ)=1LΣl=1Llogp(xi|z(i,l),θ)-KL(q(z|xi,φ)||p(z|θ))---(9)]]>其中z(i,l)=gφ(ε),ε~p(ε);假设z=gφ(ε)=μ+diag(λ-1/2)ε,下界ELOB形式变为:L(Θ,Φ|Y)=Σl=1LΣi=1NΣj=1NΣk=1MIijkLlogBer(yijk|σ(l)(xijk;α))-Σi=1NKL[q(ei|μ~i,λ~i)||p(ei|μE,λE)]-Σj=1NKL[q(ej|μ~j,λ~j)||p(ej|μE,λE)]-Σk=1MKL[q(rk|μ~k,λ~k)||p(ek|μR,λR)]---(10)]]>其中分别表示ej的后验概率密度函数的参数,μE,μR值为0,λE,λR设定为I。采用随机梯度上升算法求解,不断更新参数Θ,Φ,直到收敛停止。本发明在精度方面相较于现有的知识库学习算法有了较大的提升,具体表现如下:如图3所示,在知识库Wordnet上进行实验,可见本发明与现有的NTN(NeuralTensorNetworks,张量神经网络)算法相比,在实例、成员、地域、同义词、主题域五个关系上的精度测试结果均有提升。如图4所示,在知识库Freebase上进行实验,可见本发明与现有的NTN(NeuralTensorNetworks,张量神经网络)算法相比,在职业、死亡原因、宗教信仰三个关系上的精度测试结果大致相同,在性别和制度两个关系上的精度测试结果有比较明显的提升。如下表所示,分别在知识库Wordnet以及Freebase上进行实验,可见本发明与现有的三种知识库学习算法TransE、TransR以及NTN相比,其精度测试结果均有比较明显的提升。本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1