APP下载

基于实体消岐和多粒度注意力的知识库问答

2022-03-01何儒汉史爱武李相朋胡新荣

计算机工程与设计 2022年2期
关键词:知识库相似性粒度

何儒汉,唐 娇,史爱武+,陈 佳,李相朋,胡新荣

(1.武汉纺织大学 数学与计算机学院,湖北 武汉 430000; 2.武汉纺织大学 湖北省服装信息化工程技术研究中心,湖北 武汉 430000)

0 引 言

随着互联网信息的快速增长,出现了许多大型知识库,如YAGO和Freebase,知识库问答已成为自然语言处理(natural language processing)领域的研究热点,基于知识库的问答(knowledge base question answer,KBQA)是指给定一个自然语言问题,通过对问题进行语义理解和分析,然后利用知识库中三元组进行查询和推理并得到答案,其中涉及的命名实体识别和关系抽取等技术对信息检索、文本分类和机器翻译等自然语言处理领域有重要的应用价值。

现有的知识库问答方法如语义解析和信息抽取虽取得较好的效果,但较依赖先验知识和人工定义的规则模板,而深度学习技术使用端到端的思想将候选关系编码映射到同一向量空间中再进行比较,绕开了最困难的问句理解步骤,但结构化的知识库与自然语言问题之间存在差异,加上编码过程中向量聚合容易丢失原始信息,知识库问答仍存在较大的挑战。

为了解决知识库问答中一词多义和信息丢失问题,本文提出了一种基于实体消岐和多粒度注意力机制的知识库问答方法,融合双向长短时记忆网络-条件随机场(BiLSTM-CRF)和实体消歧进行实体链接,结合双向门控循环单元(BiGRU)网络使用两个注意力机制(attention mecha-nism)从不同的粒度对问题模式和候选关系进行建模,捕获问题和候选关系之间的深层匹配特征,该模型在SimpleQuestions[1]数据集上召回率和准确率均得到了明显的提升。

1 相关工作

随着深度学习在自然语言处理领域的迅速发展,自2015年以来,深度学习方法在知识库问答中得到了广泛的应用,并取得了良好的效果。现有的KBQA深度学习方法大多遵循编码-比较(encoding-comparing)框架[2,3],首先对问题中的实体进行识别,在知识库中查询与该实体相关的关系构成关系候选,通过深度神经网络将候选问题和关系名称映射到一个公共的嵌入空间中,计算问题和候选关系的语义相似性来得到答案。整体上,知识库问答主要分为两个步骤:①实体链接,对于一个给定问题,识别问题中的实体,并在知识库中查找该实体,组成候选实体;②关系检测,根据实体候选得出候选关系,计算问题和候选关系的语义相似性,寻找最能正确描述问题和答案之间联系的候选关系。

在以前的工作中,实体链接通常使用n-gram方法来搜索具有常见问题子串的实体,但这样产生的候选实体数量较多,包含大量的噪声数据。为了减小搜索范围,文献[4]使用双向的长短期记忆(LSTM)和随机条件场(CRF)来标注问题中的实体,文献[5]使用BERT训练语言模型来表示语句特征从而更好地识别实体,文献[6]使用双向的准循环神经网络在序列维度和特征维度上并行获取序列来进行实体识别,虽然这些方法有效提高了实体识别的准确率,但是无法较好解决实体一词多义和匹配不精准的问题。

从实体开始到确定应答路径的过程称为关系检测,由于知识库中存在大量的关系,关系检测通常被认为是一个选择问题,主要通过计算问题与候选关系之间的语义相似度并排序来实现。在提取问题和候选关系特征时,文献[7]使用词级注意力来自动学习不同关系之间的联系,文献[8]使用记忆网络对输入的信息进行建模,文献[9]使用卷积神经网络和注意力机制从词层和语义层来匹配问题和关系,这些方法较好学习了问题和关系之间的深层匹配信息,但在计算相似性前需要将问题和关系压缩成固定维向量,容易导致一些重要信息丢失。

基于此,本文提出了一种基于实体消岐多粒度注意力机制的知识库问答方法,该模型在实体链接阶段,使用BiLSTM-CRF序列标注网络进行命名实体识别,针对得到的大量同名实体的噪声数据,根据词性抽取问题中关系词与候选关系进行相似性计算并排序,达到了实体消歧的效果,减少了对后续工作的累计错误传播。在关系检测阶段,为了改善信息丢失问题,提出了一种基于多粒度注意力机制的方法,分别从单词级和关系级对候选关系进行表示丰富关系语义信息,结合BiGRU网络使用两种注意力机制从不同的粒度对问题模式和候选关系进行建模,注意力机制有效聚合输入,改善了信息丢失问题,提高了关系检测的准确率。

2 模型实现

2.1 任务定义

本文的研究基于Freebase知识库,Freebase是Facebook于2015年公开的一个针对单一事实的结构化知识库,该知识库中存储着大量描述事实的三元组,由事实主体subject、关系relation和客体object组成,其中KB={G1,G2,…Gf},G=(S,R,O)。 SimpleQuestions中的每一个问题对应着Freebase知识库中的一个三元组事实,问题集合可以表示为Q={q1,q2,…qf}。 知识库问答可以通过查询知识库的G来回答单关系问题,需要将问题Q和实体S、 关系R进行查询匹配,若匹配的实体S和关系R正确,则该三元组中最后一个元素O便是正确答案,如图1所示,本文知识库问答整体上分为命名实体识别、实体消岐和多粒度注意力匹配3个步骤:

(1)命名实体识别,主要识别问题中提到的实体,对于一个自然语言问题Q, 找到问题中的实体提及M, 其中M∈Q, 然后查询实体提及M在知识库中的映射,组成候选实体E。

(2)实体消岐,主要依据问题关系词和候选关系的相似性对候选实体进行排序,缩小候选实体范围,缓解了候选实体一词多义的问题。

(3)多粒度注意力匹配,主要为了找到最能描述问题答案的关系,从多个粒度对问题和候选关系的相关性进行注意力匹配,最后计算问题模式P和候选关系R的语义相似性,选取相似性最高的候选关系对应的object作为问题的答案。

图1 知识库问答流程

2.2 命名实体识别

命名实体识别作为知识库问答的第一步极为重要,实体识别的准确性将直接影响关系检测,它的主要任务是正确标注出给定问题Q中的实体提及M, 可以看作是一个0-1序列标注模型,本文标注实体时采用BIO模式,将问题中每个元素标注为“B-X”、“I-X”或“O”,其中“B-X”表示此元素属于X类型且在实体的开头,“I-X”表示此元素属于X类型且在实体的中间,“O”表示不属于任何类型,如对于问题“Who is Yao Ming’s wife”经过实体识别后标注结果如图2所示。

图2 实体标注结果

(1)

式中:A为输出的分数矩阵,表示在时间顺序上从yi-1标签到yi标签的概率, p[yi-1,yi] 为输出标签的转移得分值,经过命名实体识别后得到了实体提及,在知识库中查询与实体提及相同的实体组成候选实体E, E={e1,e2,…et}。

图3 命名实体识别模型

2.3 实体消岐

一般同一个实体具有不同的类型,如“apple”既可是水果也可以是苹果公司,为了进一步缩小候选实体的范围,考虑到问题中一般已包含描述实体和答案的关系词,如问题“Who is Yao Ming’s wife?”,对应知识库中正确的三元组为“people/person/spouse”,问题中“wife”关系词与三元组中候选关系“spouse”对应,由此可知,计算问题中关系词和候选关系的相似性有助于减少同名实体的影响。

在确定问题中关系词时,首先去掉问题中的实体,剩下的单词根据一定的规则进行词性筛选,本文使用NLTK对问题进行分词及词性标注,NLTK是自然语言处理库,具有丰富的英文分词工具,并且在去除停用词、词干化处理方面表现优异。问题中常见的词性有动词、名词、疑问代词、形容词和副词等,跳过对计算相似性没有价值的疑问代词、形容词和副词,然后选取问题中名词(film、wife、school等)和动词(write、born、say等)组成问题关系词QR,QR={Qr1,Qr2,…Qri}。

在计算问题关系词和候选关系相似性[10]时,由于字符串相似度匹配仅考虑了字面相似度,故采用字符串相似度和语义相似度结合的计算方式,同时获取关系词和关系字面和语义上的匹配。其中字符串相似性sim1使用欧式距离相似度作为判断依据,如式(2),式中x代表关系词字符串,y代表候选关系字符串。语义相似性sim2通过计算余弦相似性实现,如式(3),式中x代表关系词向量,y代表候选关系向量

(2)

(3)

根据相似性sim(x,y) 的高低对候选关系进行排序,相似性由字符串相似性和语义相似性共同组成,计算如式(4),取排名靠前的候选关系进行实验,实体消岐有效筛选出与正确实体类型不同的噪声数据,不仅缩小了候选实体的范围,而且提高了候选关系的准确性

sim(x,y)=0.5sim1+0.5sim2

(4)

2.4 多粒度注意力匹配

多粒度注意力匹配的目的是找到最能描述问题和答案的关系,通常被定义为一个序列匹配问题,尽管Freebase中问题是自然词序问题,但如何将一个关系表示为序列仍存在挑战。为了丰富关系语义,获取问题模式和候选关系深层匹配特征信息,本文构建了P与R之间的两个相关级别即单词级和关系级的匹配,并采用2个层次的注意力机制进行细粒度对齐,问题与不同粒度关系的层次匹配有助于计算它们之间的语义相似度。计算问题模式P和候选关系R之间的每个关系r的语义相似度s(P,r), 并选择得分最高的关系链作为最终结果,多粒度注意力匹配模型如图4所示

(5)

图4 多粒度注意力匹配模型

2.4.1 关系编码层

r=Bi-GRU([r1,r2,r3,…rR])

(6)

2.4.2 问题模式编码层

为了减少实体对特征匹配的干扰,将问题中的实体用代替转换为问题模式P, 为了更好匹配关系编码层不同级别的关系表示,先将每个单词用Glove预训练成词向量表示,再使用一个双向Bi-GRU网络对词向量进行编码以获得问题的上下文表示。问题和关系中的单词具有相同的词嵌入,问题编码定义如下

P=Bi-GRU([w1,w2,w3,…wQ])

(7)

2.4.3 多粒度注意力层

注意力层计算包括问题模式P对于候选关系r和候选关系r对于问题模式P的2个粒度的深层注意力匹配信息,2个注意力机制的计算方式相同,注意力层旨在学习问题与关系之间的细粒度交互,能够将内部经验和外部感觉对齐来增加内部区域的观察精细度从而可以快速提取稀疏数据,关系的每个部分对问题的关注程度不同从而决定问题如何表示,将注意的程度作为问题中每个单词的权重。以问题模式P的编码层输出对于候选关系r的编码层输出视为注意力机制表示为例,对于候选关系中的每一个关系ri, 问题模式wi的注意力表示pi计算如下

(8)

wi,j=vT·pi·WT·rj

(9)

(10)

式中:wi,j代表问题模式中单词wi和候选关系中单词rj之间的相似度,v和w均是可学习的矩阵,ai,j是问题中单词与关系之间的注意权重,代表问题中第i个单词对关系中第j个单词的注意力权重。

2.4.4 输出层

经过问题和关系匹配,可以得到4个不同方面的特征匹配分数 (s1,s2,s3,s4), 这里的运算是两个向量的点积,它们的相似性由以下公式计算

si=pi⊗ri(i=1,2,3,4)

(11)

为了获取注意力层和编码层的高级交互特征信息,最后使用一个线性层来学习它们各自对整体匹配分数s(p,r) 的贡献

s(p,r)=Sigmoid(WT[s1,s2,s3,s4])

(12)

3 实 验

3.1 数据集及参数设置

表1 SimpleQuestions数据集划分

在训练过程中,使用Glove300维词向量初始化单词嵌入,通过均匀采样(-0.25,0.25)中的值,对词汇表外的关系词和单词即OOV(out of vocabulary)进行随机初始化,嵌入值在训练过程中更新。关系GRU有2层,GRU隐藏层为128维,关系向量维度为300,问题模式GRU层数为2,GRU隐藏层维度为128,为了训练模型,使用Adam优化器来更新参数。

3.2 整体实验结果对比分析

为了验证模型的有效性,本文将实验结果与最近在SimpleQuestion数据集上取得较好实验效果的4个模型进行了比较,SimpleQuestions数据集准确率对比见表2,另外分别分析了实体检测和关系检测的实验结果。

表2 SimpleQuestions数据集准确率

4个比较模型分别为:文献[11]提出基于character level的注意力机制编码模型,很大程度改善了OOV问题;文献[1]提出的记忆网络模型,通过引入长期记忆组件(long-term memory component)来解决神经网络长程记忆困难的问题;文献[12]使用残差网络解决训练时深层的LSTM陷入局部最优解问题,获取问题和关系之间的层次匹配;文献[13]将擅长处理空间相关数据的CNN与能较好按照顺序处理时间信号的RNN结合,并使用注意力机制同时跟踪实体和关系来捕获综合分层信息;之前的模型忽视了问题关系词和候选关系之间的联系,并且无法较好解决信息丢失问题,本文通过BiLSTM-CRF模型获得了序列级别的标签信息,使得标注的性能得到了进一步的提升,通过实体消歧提高了实体链接的准确率,再从单词级和关系级分别对候选关系进行建模,使用2种注意力机制捕获问题和关系之间的深层匹配信息,表征更加丰富,提高了模型的准确率。

3.3 实体链接效果对比分析

为了检验本文实体消岐模型的实验效果,分别选取文献[14]和文献[13]的方法与本文方法进行对比,这些方法候选实体排名前Top K的召回率见表3。

表3 候选实体排名TopK召回率

由表3可知,本文实体链接模型在召回率上取得了最佳效果,验证了本文实体消岐方法的有效性,文献[14]使用关系检测来增强联合事实选择,利用多级编码和多维信息来增强整个过程,文献[13]直接检测问题中的实体提及省略实体匹配使得模型更加简单化,这些模型均忽视了问题中关系词与候选关系之间的联系,不能有效解决候选实体中存在大量不同类型的同名实体的问题,故在召回率上表现略不足,本文模型在进行BiLSTM-CRF网络序列标注后,通过观察发现问题关系词与候选关系的内在联系,计算它们之间的相似性来对候选实体进行消岐,不仅避免召回过多的噪声实体,而且提高了候选实体的准确率。

3.4 关系检测效果对比分析

将本文的关系检测模型与几个基线模型进行对比来验证实验有效性,基线模型包括APMCNN[15]、HR-BiLSTM[12]、ABWIM[16]和AR-SMCNN[13],这些模型都使用编码-比较框架,首先将问题和关系映射为向量,然后通过向量比较得到语义相似性。实验使用基于SimpleQuestions构建的用来评估关系检测的数据集,同时对本文模型进行消融实验,通过去除模型中实体消岐或者单词级匹配等来进一步验证该模块对整体实验效果的影响,关系检测实验对比效果及消融实验效果见表4。

表4 SimpleQuestions关系检测准确率

由表4可知,本文基于多粒度注意力机制模型取得了较好的成绩,模型准确率比AR-SMCNN[13]提高0.4%,相比于AR-SMCNN,本文模型在实体链接时,使用了实体消歧减少了噪声关系,减少了实体错误对关系检测的影响,故关系检测模型准确率高于AR-SMCNN模型,而消融实验去除实体消岐时,准确率下降了0.4%,验证了实体消岐对关系检测任务有着重要的作用。当去除单词级或者关系级注意力编码时,准确率分别下降0.9%和0.5%,可看出单词级和关系级结合编码可以互补,不仅考虑了单词和短语信息,而且包含了全局上下文信息,而多粒度注意力机制能够捕获稀疏数据的内部相关性,使得重要区域的观察精细度更高,最终聚合得到的向量对于重要信息的表达质量更高,注意力机制从两个层次捕获问题和候选关系之间的深层匹配信息,丰富了语义信息从而提高了关系检测准确率。而在去除注意力机制时,关系检测准确率下降的最多为1.9%,验证了多粒度注意力机制的有效性。

4 结束语

由于自然语言的语义多样性和知识库中存在大量的关系,知识库问答一直存在诸多的难点。本文提出了一种基于实体消岐和多粒度注意力的知识库问答方法,在实体链接阶段,使用BiLSTM-CRF进行序列标注,为了排除同名实体的干扰减少候选实体的范围,使用一定的规则提取问题中关系词并根据它与候选关系的相似性进行实体消歧,缩短了知识库问答的时间提高了问答的准确率。在关系检测阶段,从多个粒度对关系进行编码,同时使用2种注意力机制对问题和多粒度关系表示分别进行建模,学习问题和关系之间多层次的交互信息。实验结果表明,本文模型的准确率相比之前的方法有明显的提升。在今后的工作中,我们将继续研究如何将模型应用到多关系问答上。

猜你喜欢

知识库相似性粒度
一类上三角算子矩阵的相似性与酉相似性
汉语近义词辨析知识库构建研究
粉末粒度对纯Re坯显微组织与力学性能的影响
浅析当代中西方绘画的相似性
动态更新属性值变化时的最优粒度
组合多粒度粗糙集及其在教学评价中的应用
基于隐喻相似性研究[血]的惯用句
通信认知教学中多粒度可重用模型建模研究
卫星状态智能诊断知识库设计方法
机构知识库建设的动力研究