一种端到端的基于上下文的知识库问答方法及装置与流程

文档序号:18267490发布日期:2019-07-27 09:18阅读:219来源:国知局
一种端到端的基于上下文的知识库问答方法及装置与流程

本发明涉及利用知识库对自然语言问题自动进行回答的技术,特别涉及一种端到端的基于上下文的知识库问答方法及装置,属于机器学习技术领域。



背景技术:

知识库问答的主要任务是:给定自然语言问句,计算机能够自动的基于知识库中的知识回答该问题。常见的知识库有freebase,dbpedia,wikidata等等。知识在知识库中的存在形式为三元组的形式(s,p,o),其中s代表主语实体,o代表宾语实体,p代表主语实体和宾语实体之间的关系谓语。例如对于问题“电影伍德斯托克别墅是谁制作的?”,其在知识库freebase中存储的三元组为(m.03cz5_p,电影.电影.被制作,m.0h5t1m8),其中“m.03cz5_p”为“伍德斯托克别墅”在知识库中的id。知识库问答则是要从知识库中找到宾语实体回答问题。该任务也可以重新定于为找到知识库中的主语实体和谓语关系。知识库问答在实际生活应用中扮演着重要的作用。第一,随着大数据时代的到来,网络上的信息的增长速度越来越快,作为结构化信息的知识库的规模越来越大,例如谷歌知识图谱中包含接近千亿级的事实。那么如何充分利用知识库中的知识成为当前的热门话题;第二,知识库有专门的结构,需要特定化的查询语言进行搜索,对于普通用户来说,掌握这些查询语言的成本太高,不易于获取知识库中的知识。第三,知识库问答只需要输入自然语言的语句,就能自动返回正确答案,对用户解决问题方式友好简便。第四,安全性较高,对于用户而言,具有封闭性,用户只能提出问题,无法直接获取知识库中的信息资源。

目前存在其他端到端的知识库问答方法,本发明与其他端到端的方法的区别在于对实体和关系的表示不同,并且对实体和关系的预测方式也截然不同。具体来说,现有的端到端的问答方法分别计算问题和知识库中的实体以及问题和知识库中的关系的相似度来预测实体和关系,两个过程相对独立,没有考虑实体周围的关系对实体预测的影响。例如对于问题“家书的主题是什么?”,如果仅仅计算候选实体和问题的相似度来预测实体,由于知识库中的候选实体“m.02hvp4r”和“m.04v0_pk”拥有相同的实体名称“家书”和相同的类型“书籍”,导致他们与问题的得分相同无法预测。然而他们在知识库中连接了不同的关系,可以通过问题与他们周围的关系的相关性对他们进行区分。

当前的知识库问答有多种技术路线,包括传统的建立复杂的自然语言处理的流水线的方法和端到端的方法。流水线的方法往往包含词性标记、模板匹配、关系抽取、实体匹配等过程,然而流水线中的过程往往会使用上一个过程的结果,从而导致误差传播的问题。端到端的方法倡导使用一个模型去预测回答问题所对应的实体和关系,所有的预测都由一个模型从数据中进行学习,不仅避免了误差传播,并且可以通过重新训练应用到另一个数据领域。然而现有的端到端的方法,实体和关系的检测过程忽略了知识库中实体和关系的连接的相互关系,对于实体而言,预测过程中忽略了周围关系对其的影响。对于关系而言,不同实体周围的关系应该有不同的问题表示与之匹配。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,本发明提供了一种端到端的基于上下文的知识库问答方法及装置,能够解决当前端到端模型中实体和关系相对独立的状况和对关系的表示形式较为单一的问题。

技术方案:为实现上述目的,本发明所述的一种端到端的基于上下文的知识库问答方法,包括以下步骤:

(1)对自然语言问题进行预处理,过滤特殊字符;

(2)基于知识库构建与问题相关的候选主语实体集合,并根据候选实体在知识库中相关联的关系构建候选谓语关系集合;

(3)对于每个问题的候选主语实体集合中的每个实体,抽取实体在问题中的上下文;

(4)对于每个问题的候选谓语关系集合中的每个关系进行不同粒度的划分;

(5)基于cerm模型(context-awaredentity&relationmatchingmodel)进行训练,通过训练数据学习主语实体的上下文表示和谓语关系的不同粒度的表示,使得正确的实体和正确的关系的相似度更高;在测试阶段,返回候选实体列表和候选关系列表中得分最高主语实体和谓语关系;

(6)利用预测的主语实体和谓语关系在知识库中找到宾语实体作为答案返回。

所述cerm模型包括:

实体编码器单元:利用深度神经网络模型对实体的上下文进行序列建模,将候选实体转化为一个包含问题上下文语义的低维空间的分布式向量;

关系编码器单元:将划分后的关系看作一个序列,利用深度神经网络将划分后的关系转化为包含关系语义的一个分布式向量;

实体和关系得分列表单元:将一个自然语言问题的候选主语实体和候选谓语关系分别通过所述实体编码器和关系编码器得到的特征向量进行点积运算得到实体和关系的相似度矩阵,对矩阵分别进行行方向和列方向的最大池化操作得到关系相似度得分列表和实体相似度得分列表;

实体和关系预测单元:在训练阶段,通过最小化对数归一化指数损失,使得候选实体和候选关系相似度得分列表中正确的实体和关系的得分更高;测试阶段,返回主语实体和谓语关系得分列表中得分最高的实体和关系。

进一步地,所述步骤(2)中构建候选主语实体和谓语关系集合的方法包括如下步骤:

收集知识库中的实体标签名,形成待检索实体库;

在上述实体库中检索与问题q中单词或词组相匹配的实体名称,构成候选实体集合cs;

为了去除集合cs中与问题没有完全匹配或匹配的字符串不连续的冗余实体名称,抽取问题q中所有的长度为i的序列形成集合c,i=1…n,n为问题q的长度,如果上述候选实体集合cs中的实体名称未出现在集合c中,则进行过滤,得到新的候选实体集合cs;

对于候选实体集合cs中的每个候选实体,抽取知识库中与其相连接的所有关系p形成候选关系集合cp。

进一步地,所述步骤(3)中,抽取候选实体在问题中的上下文的方法是:对于候选实体s,将问题q=(w1,wi,…,wl)中与候选主语实体s名称相匹配的子序列wi利用特殊字符<flag>替换得到实体上下文s=(w1,<flag>,…,wl);其中l为问题中单词的个数。

进一步地,所述步骤(4)中,按照“关系级”、“词组级”和“单词级”对候选谓语关系进行三种粒度的划分。

进一步地,所述步骤(5)中,实体编码器单元对实体上下文进行时序建模学习得到上下文中每个单词的特征向量,返回特殊字符<flag>的特征向量作为实体s的特征表示hs。

进一步地,所述步骤(5)中,关系编码器单元将关系划分后的词组和单词分别都看作一个序列,利用深度神经网络将他们转化为分布式向量,而关系级本身的表示直接使用词表的初始化向量;连接三种粒度的特征向量,使用最大池化得到最终关系的表示。

进一步地,所述步骤(5)中,实体和关系得分列表单元将候选主语实体的特征向量hs∈dm×d与候选谓语关系的特征向量进行点积操作构建相似度矩阵a∈dm×n,形式化如下:

其中m为问题q对应的候选实体个数,n为对应的候选关系个数,d为实体和关系的特征表示的维度,相似度矩阵中的第j行a(j,:)表示候选实体sj与候选关系集合的语义相似度;相似度矩阵的第l列a(:,l)表示候选关系pl与候选实体集合的语义相似度;对相似度矩阵a分别进行行方向和列方向的最大池化操作得到候选关系相似度得分列表sp∈dn和候选实体相似度得分列表ss∈dm,其中dm和dn分别表示候选实体和候选关系列表的维度。

进一步地,所述步骤(5)中采用小批量随机梯度下降算法训练cerm模型,损失函数使用对数归一化指数函数,形式化如下:

其中,分别为ss和sp中正确实体和正确关系的分数,分别为得分列表ss和sp中第i个实体和第j个关系的分数。

进一步地,所述步骤(6)中,基于模型得到的预测主语实体和谓语关系,利用知识库查询语言在知识库中检索得到宾语实体作为问题的答案。

本发明所述的一种端到端的基于上下文的知识库问答装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的端到端的基于上下文的知识库问答方法。

有益效果:本发明提供的端到端的基于上下文的知识库问答方法,相比现有技术,具有以下有益效果:

本发明是一种端到端的模型,相比于传统的建立自然语言处理的流水线方法,由于本发明对实体和关系的预测完全由一个模型从数据中学习,避免了误差传播的问题,并且经过重新训练可以简便的应用到其他领域。相比于现有的端到端的知识库问答方法,本发明使用实体在问题的上下文间接表示实体,使得不同的实体根据不同的问题有不同的语义表示,通过计算实体和其周围关系的相似度,联合预测实体和关系,解决了当前端到端模型中实体和关系相对独立的状况;本发明计算各个候选实体和其周围关系的相似度,而不是计算问题与所有实体周围的候选关系,考虑了知识库中实体和关系的连接关系,使得实体预测和关系检测两个过程可以相互促进,共同提升。此外,对关系进行的不同的粒度的表示增加了关系表示的丰富性,更易于捕捉与问题不同单词的相关性。

附图说明

图1是本发明实施例中的方法流程图。

图2是本发明实施例中具体例子的功能流程图。

图3是本发明实施例中模型框架示意图。

具体实施方式

下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

问题可以描述如下:用cs表示候选实体集合,cp表示候选关系集合,给定一个自然语言问题q,分别从候选集合cs和cp中找到正确的候选主语实体和候选谓语关系。

本发明实施例的一种端到端的基于上下文的知识库问答方法中所基于的cerm模型,它的可视化框架见图2;本实施例中的知识库以freebase为例,框架中的实体编码器和关系编码器可以采用长短时记忆神经网络lstm、双向长短时记忆神经网络bi-lstm、门控循环神经网络gru等深度学习网络模型。本实施例采用双向长短时记忆神经网络(bi-lstm)。

模型的各组件包括以下几个部分:

a)实体编码器:利用bi-lstm对实体上下文进行时序建模学习得到上下文中每个单词的特征向量。为了避免在深度序列模型训练中由于问题长度过长导致忘记候选实体提及在问题中的位置信息,返回特殊字符<flag>的特征向量作为实体s的特征表示hs。直观来说,正确的实体的上下文比错误的实体的上下文在句子的结构和语义上更具有合理性;实体的形式化表示如下:

hs=bi-lstm({w1,<flag>,…,wl})

其中<flag>是不同的候选实体在问题中的不同位置,l为问题中单词的个数。

b)关系编码器:将关系划分后的词组和单词分别都看作一个序列,利用深度神经网络bi-lstm将他们转化为分布式向量,而关系级本身的表示直接使用词表的初始化向量。具体实施方式如下:令矩阵v∈dv×d为词嵌入矩阵,随机初始化,随着训练过程不断更新单词的表示。其中v为词表中单词的个数,d为词向量的维度。首先分别从词嵌入矩阵中找到三种粒度的单词的表示;然后分别利用深度神经网络bi-lstm对词组和单词进行建模,学习得到词组表示h(p*)和单词表示h(ω*),选择深度序列模型的最后一个隐状态作为关系“词组级”和“单词级”的特征向量,将未划分的关系在词表的向量作为“关系级”表示h(r*):

h(p*)=bi-lstm({p1,p2,…,pd});

h(ω*)=bi-lstm({w1,w2,…,wn});

其中,p和w分别为候选关系分割出的词组和单词。连接以上多种粒度的表示h(r*)、h(p*)和h(ω*),使用最大池化得到最终关系的表示hp。

c)实体和关系得分列表:将候选主语实体的特征向量hs∈dm×d与候选谓语关系的特征向量进行点积操作构建相似度矩阵a∈dm×n,形式化如下:

其中m为问题qi对应的候选实体个数,n为对应的候选关系个数,d为实体和关系的特征表示的维度,相似度矩阵中的第j行a(j,:)表示候选实体sj与候选关系集合的语义相似度;相似度矩阵的第l列a(:,l)表示候选关系pl与候选实体集合的语义相似度。对相似度矩阵a分别进行行方向和列方向的最大池化操作得到候选关系相似度得分列表sp∈dn和候选实体相似度得分列表ss∈dm

sp=row-wisemax-pooling(a)

ss=column-wisemax-pooling(a)

d)实体和关系预测:在训练阶段,通过最小化对数归一化指数损失,使得上述候选实体和候选关系得分列表中正确的实体和关系的得分更高。模型采用小批量随机梯度下降算法进行训练。测试阶段,返回主语实体和谓语关系得分列表中得分最高的实体和关系。损失函数形式化如下:

其中,分别为ss和sp中正确实体和正确关系的分数,分别为得分列表ss和sp中第i个实体和第j个关系的分数。

本发明实施例公开的一种端到端的基于上下文的知识库问答方法流程图见图1,主要包括如下步骤:

s1:对问题进行预处理,对于英文而言,统一问题中字符的大小写,过滤问题中的特殊标点和字符如“?!。”等。

s2:构建候选实体和关系集合,具体做法如下。收集知识库中的三元组(s,p,o)实体标签名,形成待检索实体库,其中s表示主语实体,o表示宾语实体,p表示实体之间的关系。在上述实体库中检索与问题q中单词或词组相匹配的实体名称,构成候选实体集合cs。为了去除集合cs中与问题没有完全匹配或匹配的字符串不连续的冗余实体名称,抽取问题q中所有的长度为i的序列形成集合c,i=1…n,n为问题的长度。如果候选实体集合中的实体名称未出现在集合c中,则进行过滤,得到新的候选实体集合。对于候选实体集合cs中的每个候选实体,抽取知识库中与其相连接的所有关系p形成候选关系集合cp。为了减少候选实体和关系的数量,根据问题所用的语言的不同,对问题的不同位置的字符分配不同的查找权重。对于中文而言,实体提及在问题中集中出现在问题序列的前半部分,对于英文而言,实体提及出现在后半部分的概率更高。

s3:抽取候选实体在问题中的上下文。与传统的直接利用实体进行向量表示不同,本发明利用实体在问题中的上下文对实体进行向量表示。对于候选实体s,将问题q=(w1,wi,…,wl)中与候选主语实体s名称相匹配的子序列wi利用特殊字符<flag>替换得到实体上下文s=(w1,<flag>,…,wl)。

s4:对候选关系进行不同粒度的划分。分别为“关系级”表示h(r*),“词组级”表示h(p*),“单词级”表示h(ω*)。例如对于知识库中关系“音乐.发行_曲目.唱片”而言,“关系”表示是将关系名称整体作为一个字符进行向量表示。而“词组”和“单词”表示则是先根据分隔符“.”,“_”对关系进行划分。其中“.”将关系按从属关系从大到小按层次进行划分,“_”用来连接多个具有修饰关系的单词。

s5:基于cerm模型学习主语实体和谓语关系的特征表示。目标是使得正确的主语实体与正确的谓语关系之间的相似度得分更高。在训练阶段,通过最小化对数归一化指数损失,使得上述候选实体和候选关系得分列表中正确的实体和关系的得分更高,模型采用小批量随机梯度下降算法进行训练。测试阶段,返回主语实体和谓语关系得分列表中得分最高的实体和关系。

s6:基于cerm模型得到的预测主语实体和谓语关系,利用知识库查询语言如sparql在知识库中检索得到宾语实体作为问题的答案。

本发明在实验过程中,使用深度序列模型中的双向长短时记忆神经网络(bilstm)对实体和关系的表示进行建模,从而将实体的上下文的序列信息编码入实体的表示中,通过点积计算向量之间的相似度,损失函数使用对数归一化指数函数,使用小批量随机梯度下降算法进行训练。本发明提出的端到端的知识库问答方法,在知识库问答数据集simplequestions上,准确率达到73.5%,性能均优于当前其他端到端的知识库问答方法。

本发明提出的端到端的基于上下文的知识库问答方法,对实体和关系的预测完全由一个模型从数据中学习,避免了误差传播的问题,并且经过重新训练可以简便的应用到其他领域。相比于现有的端到端的知识库问答方法,本发明解决了当前端到端模型中实体和关系预测相对独立的状况。考虑了知识库中实体和关系的连接关系。此外,对关系进行的不同的粒度的表示增加了关系表示的丰富性,更易于捕捉与问题不同单词的相关性。

本发明实施例公开的一种端到端的基于上下文的知识库问答装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的端到端的基于上下文的知识库问答方法。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1