基于全局覆盖机制与表示学习的生成式知识问答技术

2022-11-08 01:48刘琼昕王亚男龙航王佳升卢士帅
自动化学报 2022年10期
关键词:三元组知识库向量

刘琼昕 王亚男 龙航 王佳升 卢士帅

对于用户用自然语言提出的问题,知识问答系统(Knowledge base question answering,KBQA)通常提供短语和实体形式的精确答案[1].在现实环境中,人们希望答案能够使用自然语言回答提出的问题,这需要答案用完整/部分自然语言句子而不是单个实体/短语表达,系统不仅需要解析问题,还要从KB (Knowledge base)[2]检索相关事实,生成一个适当的回复.

生成式知识问答任务使用Seq2Seq[3]框架来实现使用自然语言回答提出的问题,不同于其他问答模型,生成式知识问答模型无需其他自然语言处理工具,可以在端到端的框架中同时实现分析问题,从知识库检索事实,并且生成正确、连贯以及自然的答案.

实现生成一句连贯的自然语言答案会面临很多的挑战,比如词典外词汇(Out of vocabulary,OOV)问题: 由于模型词典大小有限,在构建词典时,会忽略掉一些词频较低的词汇,当编码器端输入OOV词时会用 “UNK (Unknown)”来代替,但这样做很有可能导致输出端也输出 “UNK”,损失了原有的词义信息.

文献[4]提出CopyNet 复制网络,文献[5]提出指针网络来缓解OOV 问题,二者思路类似,即构建一个由源端OOV 词构成的词汇表,当预测目标端的词时,会输出源端词表和现有词表中的词汇,减小 “UNK”词出现的概率.文献[6]结合了之前的生成式问答模型和CopyNet 网络,提出的Core-QA 模型在知识库问答任务上能够以自然的方式回答复杂问题.

尽管上述工作在生成式问答任务上有了很大进展,但是仍存在以下不足:

1)生成式问答模型的模式混乱问题.模型可能会生成答案如Q: “鲁迅的原名是什么”,A: “原名周树人周树人周树人”的情况,词汇重复降低了答案质量.导致此类问题的原因是从问题端或知识库复制词汇到答案的过程中,注意力机制引发了各个模式的混乱,模型往往会陷入某种模式中无法跳出,导致答案的可读性下降.

2)陌生词汇问题.尽管引入CopyNet 能够缓解从问题引入OOV 词汇的问题,但是知识问答任务还需要引入外部的知识库,模型通过问题识别出关系,拷贝知识库对应事实的尾实体填补到答案中.陌生关系被识别为OOV 词,导致无法寻找到正确知识.

另外查询到的知识还要指导基础词典中词汇的生成.举例如Q: “小明在哪个城市生活”,A: “他在北京生活”.知识库中存在事实三元组(小明,性别,男),如果基础词典中没有描述性别的词汇,对于模型来说 “男”和“女”会被识别为⟨unk⟩,无法判断是使用 “他”还是 “她”作为实体的代词.构成上述问题的主要原因是陌生词汇用⟨unk⟩代替后向量表征不唯一.

3)当用户的问题在图谱中没有相关的知识作为支撑时,QA (Question answering)系统通常会答非所问,或者回答错误的答案.

针对模式混乱问题,本文通过全局覆盖机制来控制3 个模式的切换,当某个模式关注度足够高的时候,提高其他模式的受关注的概率,控制模式间的切换.

针对生成式问答模型中的陌生词汇问题,本文利用知识表示学习方法生成的实体、关系向量代替基础词典中相应词汇的词向量,让所有陌生词汇有唯一的向量表征,提升模型匹配知识的能力.

本文运用知识推理补全知识库中缺失的知识,模型可以提供给用户推理出的答案,在构建的生成式知识问答系统基础上通过数据共享的方式,对推理得到的知识进行模糊问答.

知识表示学习[7−8]是在知识图谱的构建和利用过程中,进一步挖掘知识图谱结构信息的方法,处理的方式是将知识图谱中的实体信息和关系信息映射到低维向量空间,每一个实体和关系都有其独一无二的向量表征.类似于自然语言处理(Natural language processing,NLP)中的word2vec[9]技术,准确的知识向量表征能够提升相关任务的效果.

综上,本文提出一种基于表示学习与全局覆盖机制的生成式问答模型(Multi coverage mechanism over question answering model,MCQA),能够利用知识图谱信息并使用自然语言回答用户提出的问题.它具有以下贡献:

1)针对词汇重复降低答案质量的问题,提出使用全局覆盖机制来减轻生成模型模式混乱;

2)提出通过引入知识表示学习结果的方法缓解OOV 问题,提高模型答案的准确率;

3)提出一种知识推理和知识问答的结合方式,使模型具备模糊回答的能力;

4)本文在SimpleQuestion 单关系知识问答数据集、生日问答限定领域数据集和社区问答开放领域数据集上进行实验,实验结果表明,与现有方法相比,本文所提出的模型可以更有效准确地为知识查询问题生成正确、连贯和自然的答案.结合知识推理方法,模型已经初步具有分辨原始知识和推理知识的能力,并能对推理知识进行模糊回答.

1 相关工作

基于知识图谱的问答在自然语言领域拥有很长的历史.早期的研究主要有3种方式: 基于语义分析建模的KBQA[10]、基于信息抽取建模的KBQA[11]以及基于向量建模的KBQA[12].这些传统的KBQA方式有很多缺陷,如需要很多的先验知识、模型复杂、模型不够灵活等,随着深度学习技术的发展,基于深度学习的KBQA 方法已成为研究的重点.

考虑到传统语义解析与KB 结合不够紧密,Yih等[13]提出了查询图的概念.该模型结合了传统语义分析和深度学习的方法,语义分析为主导,在获取相应答案Pattern 的步骤中,使用卷积神经网络(Convolutional neural network,CNN)选定推导链,获得了比较显著的成果.Sun等[14]提出的SPARQA(Skeleton-based semantic parsing for question answering)方法先解析出复杂问句的宏观结构(Skeleton),以句子级和单词级进行匹配,再做后续处理,取得了不错的实验效果.

考虑到以往只对Decoder 端改进而忽略了句法特征,Xu等[15]把Graph2Seq 应用到KBQA 任务上.Graph2Seq 是一种用于图到序列学习的新的基于注意力的神经网络结构,对输入图进行编码,从而通过编码更多的句法信息,可以提高模型的鲁棒性.

随着深度学习的发展,出现了一种适用于KBQA任务的新型网络模型记忆网络(Memory network,MMN).以键值记忆网络[16]为例,MMN 是一个长期记忆网络,可以储存大量的先验知识,可以利用提前构建的知识库提高对话的质量.对于以知识图谱为知识库的QA 模型,键是三元组的头实体和关系,键值是尾实体.模型通过倒排索引的方式从知识库中检索出主题词相关的事实,通过问题的分布式表征和转移矩阵得到查询命令的向量表征,计算问题向量和每一个键值的相似度得分,并将相似度softmax 转化为每一个键值的权重,读取键值对应的数据值,也就是问题的答案.

Bordes等[17]提出一种基于词嵌入的问答系统,在记忆网络框架下实现,并贡献了一个KBQA 的数据集SimpleQuestions,相比较原始的WebQuestion 数据集,前者具有更大规模的样本数据,而且每一个问题的答案只依赖于知识库中的一个三元组.构建SimpleQuestions 数据集的初衷在于当前的KBQA 任务应该优先解决简单问答任务,而不是直接去解决复杂依赖的问答任务.

上述KBQA 模型答案反馈给用户的都是简单实体词汇,为了赋予模型 “说话”的能力,生成式知识问答任务中使用深度学习中的Seq2Seq 框架.Seq2Seq 模型广泛应用于诸如机器翻译、文本摘要、对话机器人等领域.在应用Seq2Seq 模型的生成式对话中,词典外词汇(OOV)问题不可避免.为了缓解OOV 问题而提出了复制网络(Copy net)[4]和指针网络(Pointer net)[5],他们的基本想法都是当预测目标端词汇时输出源端词表和现有词表中的词汇,减小 “UNK” 词出现的概率.

Yin等[18]提出的GenQA 模型首先在生成式KBQA 任务上进行了尝试,将生成式问答模型与知识问答模型结合,在目标端生成答案时,将知识库的知识加入进去.但是由于在计算问题与事实向量的相似度的时候使用了问题最终的编码,忽略了问题的时序信息,导致模型不能处理需要结合多个事实进行回答的情况.He等[6]提出了一个CoreQA 模型,进一步结合GenQA和复制网络,将每一个问答对所依赖的知识增加到多个,进一步改善模型生成答案的流畅性和准确性,并贡献了CoreQA 的数据集.

Liu等[19]从数据入手,对CoreQA 模型进行改进,利用课程学习的思路让模型先从标准易学的数据开始训练,逐步加大样本难度,让模型更好地拟合数据.

2 生成式知识问答模型

本模型使用了Seq2Seq 框架,模型总体结构如图1 所示.模型通过编码器解析问题,并通过查询知识库中的信息,使用解码器生成答案.本节将对模型各个部分的原理和策略进行详细描述.

图1 MCQA 模型图Fig.1 The overall diagram of MCQA

智能问答是一个非常复杂的自然语言处理任务,一个完整的智能问答系统,首先要求要有完备的知识库作为支撑,其次要求模型能从知识库中找到正确答案,并使用完整流畅的一句话反馈给用户[20−21],当任务背景设置为聊天场景时,还需要模型具有多轮对话[22−23]的能力.所以本文限定部分情景设计相对完备的知识问答模型,限定场景如下:

1) 单轮生成式知识问答任务,针对三元组尾实体进行问询.

2) 语料已经通过命名实体识别、主题词识别处理.

3) 给定知识库,或与主题词相关的知识子图,以及知识库的表示学习结果.

2.1 词典构成

MCQA 模型根据功能划分为3 个部分: 生成模式、复制模式、知识库查询模式.如图2 所示,3种模式有不同的词典,生成模式的词典是模型的基础词典V,V包含了训练集中高频的词汇、实体和关系.复制模式的词典D是动态变化的,由每一次问答问题序列中所有的词构成.知识库查询模式的词典KB同样是动态的,包含每一次问答输入到模型中知识子图包含的实体.3 个词典的交集部分V ∩D,V ∩KB,KB ∩D体现了3种模式的合作关系,非交集部分体现了3种模式的竞争关系.空白部分的UNK 是3 个词典都不包括的陌生词汇.

图2 模型词典示意图Fig.2 The diagram of vocabulary

使用词向量作为基础语义单元的表达能力比使用字向量更强,但使用字向量可以使模型 “理解”文本和知识库的时候可以在字的层面上考虑字符的相似性,从而匹配可能性更高的知识.并且字向量可以让所有陌生词汇有唯一的向量表征,赋予了模型“理解”陌生词汇的能力.所以本文使用字词向量结合的方式.

对问题序列X=[x1,···,xLq],定义位置j的字词向量为=[xj,uj],其中xj为序列位置j的词向量,Lq为问题句子分词后的词数量.uj为位置j对应的字向量.位置j的字向量表示为uj=[χ1,···,χLj],其中Lj为xj包含的字符数.输入中最长的问题序列长度为Lmax,每一个词最大包含的字符数Lv.当Lj

2.2 表示学习向量

为进一步提升模型匹配知识的能力,本文利用知识表示学习方法PTransE[24]生成的实体、关系向量代替基础词典中相应词汇的词向量.

TransE[25]模型将实体和关系在低维的空间里进行表达,得到连续的向量,将两个实体之间抽象的关系映射为两个向量之间的转换关系.TransE模型只考虑了实体之间的直接关系,PtransE 模型在其基础上扩展,将多步关系路径视为实体之间的连接.

PtransE 模型的优化目标函数主要分为两个部分: 一部分是实体之间关系约束;另一部分是实体之间的路径约束.

对于一个三元组 (h,r,t)(h,t∈E,E是实体集合,r∈R,R为关系集合),能量函数的定义如下:E(h,r,t)=||h+r −t||,来确保r ≈t −h成立.对于实体对 (h,t) 之间存在的路径集合P(h,t)={p1,···,pN},关系路径p=(r1,···,rl) 表示对路径三元组 (h,p,t),能量函数定义如下:E(h,p,t)=||p −(t −h)||=||p −r||=E(r,p).路径p作为推理关系r的有效规则之一,需要保证能量函数E(r,p) 可以得到尽可能低的分数.PtransE模型目标函数为

其中,L(h,r,t) 是对实体关系的约束,L(p,r) 是路径关系约束.R(p|h,t) 表示对实体对 (h,t) 路径p的置信度,PtransE 使用路径约束资源分配(PCRA)算法来衡量R(p|h,t).L(h,r,t)和L(p,r) 使用Margin based 损失函数,目标函数进一步表示为

其中,[a]+=max(0,a),γ是边界参数,S表示知识库中的有效三元组,S−是负例,对有效三元组随机替换其头和尾,关系为:S−={(h′,r,t)}∪{(h,r′,t)}∪{(h,r,t′)}.

通过表示学习方法对知识库建模,将知识库中的实体、关系等语义单元表示为数值空间中的向量,向量中的每一维数值表示该语义单元在 某一语义维度上的投影.由于实体和关系的数值是根据整个知识库得到,利用了整个知识库的特性,从而包含更加全面的信息,让模型中陌生词汇有了唯一的向量表征,关系和实体向量有了更精确的语义表征.

2.3 编码器

2.4 解码器

如图1 所示,模型使用单向循环生成网络(Recurrent neural network,RNN)作为解码器,输出答案序列:Y=其中La为长度.模型结合了CopyNet 框架和外部知识库,解码器端按功能划分为: 生成模式、复制模式和KB 查询模式.复制模式负责将问题序列中的一些词汇复制到答案序列中;KB 查询模式负责查询KB 中对应的知识指导答案生成;生成模式负责生成连贯的自然语言串联另外两个部分.模型在解码器端使用了全局覆盖机制来平衡模型3 个模式的生成策略.

为进一步描述解码器,本文将其工作过程按先后分为3 个部分: 读取信息(Read)、更新状态(Update)和输出预测(Predict),如图3 所示.

2.4.1 信息读取

Read 部分是模型获取问题、知识库信息的过程.在编码器一节介绍了模型通过双向RNN 获取了问题的记忆模块(Question memory)记为MQ,和知识库的记忆模块(KB memory)记为MKB.模型复制模式通过读取MQ中的信息决定复制哪部分问题到答案中,模型的KB 查询模式通过读取MKB决定答案使用哪些事实作为知识依据.

2.4.2 状态更新

图3 中的状态更新(State update)单元内部封装了NMT (Neural machine translation)[27],NMT的隐状态更新策略st=f(st−1,yt−1,ct),除了需要获知t −1 时刻解码器的隐状态st−1,使用注意力机制生成的在时刻t问题序列的上下文向量ct以及前一时刻的预测词yt−1外,在此基础上模型还需要获取上一个时刻源端和知识库的情况.

图3 解码器工作机制示意图Fig.3 The diagram of working mechanism of decoder

通过式(5)得到问题的加权表征为

2.牛副流行性感冒。潜伏期为2~5 d,病牛为主要传染源,病毒随鼻分泌物排出,经呼吸道感染健康牛而传播。本病一年四季均会发生,但仍以冬天至春天较多。

通过式(7)得到知识库的加权表征

2.4.3 输出预测

MCQA 模型的目标端输出概率是由生成模式p(yt,g|·)、复制模式p(yt,c|·)、KB 查询模式p(yt,kb|·)共同决定的,3 个部分之间既有合作也有竞争,得分最高的yt是模型t时刻的输出,输出的条件概率为

模型通过加入histq和histkb分别获取解码器在前t −1 时刻对问题序列的历史关注度总和以及对知识库中事实的历史关注度总和,通过这些历史信息减小高关注度的部分受到的关注度,缓解Seq2Seq 模型中的过译问题.

histq是Lq维的向量,向量每一维记录问题序列每一个位置上的单词到目前的关注累积.位置k词汇的总关注度为

其中,ατk是τ时刻第k个单词的关注度,即复制模式下对每一个输出计算的得分.

histkb是Lkb维的向量,它是解码器在前t −1时刻对知识子图每一条事实的历史关注度总和,向量每一维记录每一条事实到目前的关注累积.第k条知识的总关注度为

其中,βτk是τ时刻第k条知识的关注度,即KB 查询模式下对知识子图中每一条事实计算的得分.

histg是本模型加入的全局覆盖机制.3 个模式在答案的生成过程中,应该在总体上保持一种平衡.参考人类回答问题的过程,在简单的单轮知识对话中,为保证答案的简洁和有效,人类会拷贝问题中几个关键词语,会从知识储备中选取 对应的知识,然后用简单的话串联所有信息反馈回提问者,即很少出现答案序列一直在由某一种模式生成,所以模型需要一个变量来控制3 个模式的切 换,以选择是从基础词表生成单词,还是从输入序列复制单词,抑或是从知识库中选择事实构成答案.当某个模式关注度足够高的时候,提高其他模式的受关注的概率.本模型通过histg实现3 个模式的切换.

histg是一个3 维的向量,它是解码器在前t −1时刻对3种模式的历史关注度总和,向量每一维记录每一种模式到目前的关注累积,每一维度分别表示为: 生成模式历史关注度,复制模式历史关注度,KB 查询模式历史关注度,计算方法为

其中,ητgen是τ时刻模型对生成模式的关注度,即τ时刻生成模式的条件概率.

其中,ητcop是τ时刻模型对复制模式的关注度,即τ时刻复制模式的条件概率.

其中,ητgen是τ时刻模型对KB 查询模式的关注度,即τ时刻KB 检索模式的条件概率.

模型利用式(14)计算全局平衡因子,利用t时刻的状态st和全局覆盖向量histg来生成平衡因子δ,拼接st和histg经过参数为Wg的单层全连接网络层,,通过softmax 函数最终生成的平衡因子是一个维度为3 的向量,向量的每一维依次代表: 生成模式、复制模式和KB 查询模式的平衡系数,用来平衡3 个模式的得分.

3 个模式通过全局覆盖机制来平衡得到最终的得分.然后使用softmax 函数得到生成模式、复制模式、KB 查询模式3 个部分的条件概率,在得分函数前乘上各自对应的平衡因子.复制和KB 查询两种模式与生成模式稍有不同,以复制模式为例,同一个词可能在问题序列中的不同位置出现多次,所以计算该词时要综合每个位置的得分.每个模式的条件概率分布计算方法为

1) 生成模式

此模式是解码端的基本模式,用于生成基础词典中的词.如式(18)所示,st通过张量Wgen得到词典中每一个词的得分,vi是vi的独热(one-hot)表示,通过点积获取vi的得分.其中,dh,di和df分别表示RNN 隐藏层向量、输入词向量和知识库事实向量的维数.

在本模型中,st后拼接了和两个向量,意义在于通过此时的问题的加权表征和知识库的加权表征来指导生成模式的预测.例如知识库中的知识为(A,性别,男),但模型在生成答案时需要的不是直接将性别属性拷贝,而是需要用 “男”这条知识来指导生成模式生成 “他”这个人称代词,同理在问题序列中出现如 “中国”等国籍信息,模型需要将“中国”变换为 “中国人”.cqt和是模型使用Attention 机制在当前时刻的选择读取,计算类似于

2) 复制模式

此模式负责将问题序列中部分词汇原封不动地复制到答案序列,复制模式会构建一个新的词典,其中保存没有在基础词典中出现的词,模型会预测需要复制问题序列的第几个词.如式(19) 所示,xj是问题序列第j个词,hj是xj的解码器输出,本模式将histq视为t时刻的解码状态的一部分,st和histq可以分别理解为t时刻模型的语义状态和复制模式的历史状态,所以将二者进行拼接,通过张量Wc和tanh 激活函数计算与hj的相似度得分,越高预测输出为xj的概率越大.

3) KB 查询模式

此模式负责查询知识库,将最匹配的事实填入到答案中,本质上是一个应用于知识库的CopyNet,该模式同样会构建一个词典,其中保存知识库中出现的OOV 词,模型会预测需要复制知识库中的第几个三元组的尾实体.如式(20)所示,fk代表知识库中第k个三元组的尾实体,fk是三元组的向量表征.st和histkb分别代表语义状态和KB 查询的历史状态,除此之外本模型额外加入问题序列的整体表征q,直观上可以理解为在知识库的查询过程中要同时把握局部和全局的问题语义信息,式(20)中将三者进行拼接作为最终的状态表征,通过张量Wkb和tanh 激活函数计算与fk的相似度得分,Wkb∈

2.5 模型优化

本文提出的MCQA 模型使用端到端的反向传播模式进行优化,给定一个Batch 大小为N的训练数据: 问题集合{X}N、答案集合{Y}N和知识集合{Z}N.本文使用最大似然函数作为优化目标,损失函数使用负对数似然函数如式(21)所示,使用梯度下降来优化损失函数.因为3种模式共享相同的softmax 分类器的预测目标词,所以它们可以通过最大化似然函数的方式来彼此协调学习.

3 结合知识推理的模糊问答

本文使用表示学习方法PTransE 对知识库建模,应用知识推理方法对知识库进行补全,通过数据共享的方式使问答模型MCQA 具有模糊问答的能力.

3.1 知识推理

知识推理是知识库补全的过程,在知识图谱中直观地表示为: 判断两个实体(结点)间是否可能存在着某种已知关系(边),如果置信度达到一定阈值便可以在两个实体间加入推理出的关系.

具体来说,使用PTransE 方法对知识库建模后得到的实体和关系向量来完成知识库补全任务.已知三元组其中的两部分,用来对第三部分进行预测.对三元组 (h,r,t),定义如下打分函数来计算候选项的得分.函数定义为[24]

其中,G(h,r,t) 包含两部分: 一部分是关系损失||h+r −t||; 另一部分是路径损失R(p|h,t)||p −r||.综合两部分损失越低,该备选三元组越有可能成为最终预测结果.关系中的−1 代表逆关系,对三元组(h,r,t) 调换头尾形成的三元组为 (h,r−1,t),关系r−1是关系r的逆关系.路径p的可靠性与给定r的推理强度有关,该强度可从训练数据中量化为Pr(r|P)=Pr(r,p)/Pr(p) . 最终得到G(h,r,t) 的计算式为

但是基于表示学习的推理方式不同于传统的基于规则的推理机,推理的结果即使达到很高置信度,也是不确定的,或是由现有知识不能判定正误,因此本文认为应当在知识库补全的过程中区分原有知识和推理知识.

通过知识推理得出ei和ej之间存在关系r时(ei∈E,ej∈E),在关系r中加入模糊词汇构成推理关系r′,将推理知识 (ei,r′,ej) 加入知识库.

在问答模型中,使用知识表示学习向量得到的关系向量r与推理关系r′是共享关系向量的,考虑两个关系的异同,引入一个可训练的正则化偏置项b

其中,r是r的向量表示,r′是r′的向量表示,通过上述方法对数据集中的推理关系初始化.

3.2 训练数据

由于推理关系的不确定性,模糊回答需要在不确定的答句中适当加入 “可能”、“应该”等推断词.语料要求比较独特,本文通过规则生成的方式在现有数据集的基础上构建新数据集.根据推理关系r′以及主题词e,在现有数据集中寻找针对关系r问询的问答对,替换问答对中的主题词,以及答案中的尾实体信息,并通过句法分析工具解析句子成分,在特定部分加入推断词,并将生成的问答对以及三元组加入新构建的数据集中.

在数据预处理阶段,通过遍历找到实体与实体间可能存在路径和路径长度信息,将关系以及实体之间的路径存储进行训练.

使用补全后的知识库作为知识问答模块的外部知识库.由于加入了推理关系的概念,模型可以有效地区分出哪些知识是原始知识,哪些是推理知识,能够对推理得到的知识进行模糊回答.

4 实验结果与分析

4.1 实验数据集

本文共使用3 个数据集: SimpleQuestion 单关系知识问答数据集、生日问答限定领域数据集和社区问答开放领域数据集,数据集详细信息如表1 所示.

表1 问答数据集规模Table 1 The size of QA datasets

1) SimpleQuestions 数据集: 经典的KBQA 英文数据集,语料包括: 问题,答案所依赖的三元组.数据集是单一关系(Single relation)数据集,每一个问答对都只依赖于一个事实.数据集选自freebase,本文除该数据集以外使用FB5M和FB2M作为外部知识库.数据集按照7 : 1 : 2 的比例划分为训练集、验证集和测试集.

2) 生日问答数据集: 中文限定领域的生成式KBQA 数据集,由CoreQA[6]提出,数据集是使用模板生成得生日的问答语料.数据集的答案依赖多条事实.数据集按照9 : 1 的比例划分为训练集和测试集.

3) 社区问答数据集: 中文开放领域的生成式KBQA 数据集.由CoreQA[6]提出,数据集包含了多个中文问答社区的问答语料.语料包括: 问题、答案以及答案所依赖的多条事实,语料规模庞大且涉及领域广阔.数据集按照9 : 1 的比例划分为训练集和测试集.

在3 个数据集上对使用字词向量的模型MCQA(WE,CE),将词向量中的实体和关系向量替换为知识表示学习生成向量的模型MCQA (TE,CE)分别进行了实验.

4.2 单关系知识库问答任务

1)任务描述

在单一关系的SimpleQuestions 数据集中测试模型查找正确知识的能力.任务要求模型在给定主题词的情况下在知识库中寻找答案,本质上是在主题词对应的知识子图中识别正确的关系.本文提出的模型是面向于生成式问答任务的,但同样可以完成只返回正确实体的KBQA 任务,之前很多学者提出的模型在此已经达到了很好的效果.实验证明,本文提出的模型获得了优于Baseline 以及多个近年提出的KBQA 模型.

实验评判指标使用预测答案的准确率,即预测正确的测试样本数除以总测试样本数,准确率越高说明模型查找正确知识的能力越强.

2)实验设置

本文实验在经过实体链接[13,28]后的数据集上进行,经过统计,在FM5M 中SimpleQuestion 的主题词的知识子图规模集中在1 到50 条三元组,所以本次实验知识库最大长度Lkb设为50,不足50条的样本随机填入无关三元组或由UNK 组成的空三元组.为保证公平性与对比实验保持一致,本文模型框架中RNN 网络使用长短期记忆网络 (Long short-term memory,LSTM),隐藏层大小设置为256 维,词向量维度为256 维,字向量维度设置为2 维,词的最大长度Lc设置为8,Lkb设置为50,使用Adam 作为梯度下降策略.

3)结果分析

本文提出的MCQA 模型在SimpleQuestions数据集的表现如表2 所示,此次实验使用文献[13]中的双向卷积神经网络 (Bi-directional CNN,BiCNN)模型作为Baseline,AMPCNN (Attentive max-pooling CNN)[29]是加入字符向量和注意力机制的CNN 模型,文献[30] 提出的HR-BiLSTM(Hierarchical residual bi-directional LSTM)模型在句子和关系两个级别分析语义,准确率达到了93%.

表2 SimpleQuestion 数据集实验结果Table 2 The experimental results of SimpleQuestion datasets

MCQA(WE,CE)是本文使用了字词向量的模型,可以看到准确率达到了93.8%,超越了HRBiLSTM 模型,进一步将词向量中的实体和关系向量替换为知识表示学习生成的向量MCQA (TE,CE)模型,准确率进一步提高到94.3%.CoreQA与MCQA 模型同为生成式问答模型,可以看出,字词向量和知识表示学习结果的加入明显提升了MCQA模型在知识库中查找正确知识的能力.

当前在该数据集上表现最好的KBQA 模型是在2018 年提出的多任务学习的模型[31],达到了95.7%的准确率,虽然本文提出的模型没能超过该模型,但由于本模型是面向生成式KBQA 任务的,只需要验证其具有查询正确知识的能力即可.实验证明,模型可以在提供的规模为50 条事实中选取出正确的事实,加入字词向量和知识表示学习结果能进一步提高模型效果,并能达到94%以上的准确率.

4.3 限定领域知识问答任务

1)任务描述

在生日数据集上测试模型在限定领域中寻找正确知识的能力和生成答案的表述能力.生日数据集是模拟现实中人类对某人生日的问答来生成的数据集,本文通过对生成答案的年、月、日、性别的正确率进行统计来验证模型查询知识库的准确率,使用正则表达式匹配的方式来判断模型是否生成了流畅连贯的高质量回答.

2)实验设置

模型及相应的对比实验中所有的RNN 使用GRU (Gate recurrent unit)网络,隐藏层大小设置为500 维,词向量维度为256 维,字向量维度设置为4 维,词的最大长度Lc设置为8,Lkb设置为5,使用Adam 作为梯度下降策略.本次实验使用了问答语料对和知识库中的关系来生成基础词典.

本文通过正则表达式匹配的方法提取出测试答案的人称代词、年、月、日信息,准确率分别表示为Pg,Py,Pm,Pd.为评判生成答案的语言表述能力,本文生成了18 个语法正则模板,评判标准Pr是符合模板规律的测试样本数除以测试总样本数,Pr越高说明模型语言表述能力越强.

3)结果分析

模型在生日数据集上表现如表3 所示,“—”代表该项没有数据或正确率小于10%.前三组实验的模型没有知识库参与,分别是基础Seq2Seq 框架、神经翻译模型和复制网络模型根据问答对语料进行训练得到的结果,虽然模型没有查找知识库的能力,但是它们生成的答案的表述能力可以作为生成答案质量的Baseline.

表3 生日数据集实验结果 (%)Table 3 The experimental results of birthday datasets (%)

GenQA和CoreQA 是经典的生成式KBQA模型,由于GenQA 原始模型是面向单个知识进行回答的,所以我们将GenQA 模型稍作修改,使其可以根据多个知识回答问题,效果如GenQA (本文)所示.CoreQA 模型与本文的MCQA 模型类似,是结合了GenQA与复制网络的模型,也是本文的主要对比实验.

由于本文提出的MCQA 模型与CoreQA 模型相比加入了全局覆盖向量记录3 个模式的历史关注度,防止出现某个模式训练过拟合而其他模式训练不充分的情况,当某个模式关注度过高时提升其他模式的受关注概率,因此Pr一项提高了近4%,达到了远高于Baseline 的效果.

性别预测一项,由于实验将预测出实体名称视为预测正确,所以所有模型普遍准确率较高,但是事实上为了检验模型处理知识库中OOV 词的能力,实验中所有模型的基础词典中我们故意忽略了“男”、“女”两个词,知识库的性别信息无法识别,所有的对比模型包括MCQA 的性别预测基本等于随机.MCQA(WE,CE)加入了字词向量表示,增强了模型的 “理解”能力,所以在性别预测一项的准确率有大幅度的提升.在年月日三项的预测中,加入了字词向量后的MCQA 进一步得到了提升,因为关系词汇中的 “年”、“月”、“日”等字符表征能够匹配到问题序列中的相同字符,提高了模型的查询能力.加入表示学习的实体关系向量后模型提升较小,是因为该数据集的知识图谱比较稀疏,仅有5种关系,能够通过表示学习得到的隐式信息有限.

4.4 开放领域的社区问答任务

1)任务描述

在大规模社区问答数据上测试模型生成答案的质量和拟合大规模数据的能力.相比生日数据集该数据集涉及领域广泛,具有更多种类的关系和大规模的实体,会产生更多的OOV 词.该实验同时体现了模型在互联网应用的现实意义,如果模型可以生成正确的答案,而且答案表述与人类似,那么深度学习模型便可以代替人工回答部分简单问题.

2)实验设置

模型及对比实验中所有的RNN 使用GRU 网络,隐藏层大小设置为500 维,词向量维度为256维,字向量维度设置为6 维,词的最大长度Lc设置为8,Lkb设置为10,不足的部分使用无关三元组或空三元组补齐,使用Adam 作为梯度下降策略.问答对语料经过命名实体识别处理,分词工具使用jieba 分词.

由于开放领域的社区问答生成的答案构成比较复杂,没有统一的计算模型效果的方法,所以本实验结果采用人工检验的方式,每次随机选取100 条来进行检验,共检验3 次取平均值,从流畅性、一致性、正确性检验答案的质量,分别统计符合3 个指标的测试样本数量除以总样本数计算符合3 个指标的得分概率,概率越高模型在该指标上表现越好.流畅性是指答案是否符合句法语法结构,一致性是指答案是否与问题的方向保持一致,正确性指是否答案中包含正确的知识.需要注意的是数据集中会存在质量很差的样本如知识库与问题无关等情况,所以在验证时低质量样本不计入统计中.

3)结果分析

如表4 所示,实验中CopyNet 模型是流畅性和一致性指标的Baseline,GenQA 模型是所有3 个指标的Baseline.由于实验使用开放领域的社区问答语料,OOV 问题体现得更加明显,在对比实验生成的答案中出现了大量的⟨unk⟩词汇.与对比实验CoreQA 相比,模型在正确性、流畅性和一致性3个指标上均超越了CoreQA.MCQA(WE,CE)加入字词向量提升了模型 “理解”问题和知识库的能力,模型能明确问题的方向并找到正确答案,在一致性和正确率方面有明显提升,模型在加入知识表示学习结果后,缓解OOV 带来的影响,让陌生词汇有了唯一表征,利用了整个知识库的信息,在正确性上得到了进一步提升.由于MCQA 的全局覆盖机制,能够平衡模型3 个模式的生成策略,使得语言逻辑更加清晰,语言流畅性更高,因此在流畅性指标上较对比实验有较大提升.

表4 社区问答实验结果 (%)Table 4 The experimental results of community QA datasets (%)

在图4和图5 中我们列举了一些实验的例子,图中预测答案里普通字体的部分由生成模式产生,下划线部分由复制模式产生,加粗部分由KB 查询模式产生,斜体部分是由KB 知识指导生成模式产生的词汇.

图5 社区问答样例Fig.5 The sample outputsof community QA

在图4 中,我们展示了MCQA与对比实验CoreQA 生成的一些错误案例的对比.在问句1 中,对比实验CoreQA 生成的答案多了一个 “的”,原因在于模型可能过拟合于一种语言模式.而MCQA 加入全局覆盖机制后能够平衡3种模式的生成策略,没有出现这种情况.在问句2 中,对比实验CoreQA 在答案中生成重复的事实,原因可能是模型过拟合于KB 查询模式并且不同时刻事实 “周树人”都有很高的关注度,在答案中连续生成多个相同的词.在MCQA 中因为加入了全局覆盖机制控制模式切换没有出现这种错误.在问句3 中,对比实验CoreQA 生成了无意义重复答案,可能因为模型没有从知识库中检索出正确的知识,也可能因为模型陷入生成模式无法跳出.而MCQA 通过加入字词向量和表示学习结果增强了模型的 “理解”能力,提高了模型检索知识的准确率,并且加入全局覆盖机制控制模型在不同模式的切换,能够对答案生成较完整流畅的正确句子.

图4 MCQA (TE,CE)与CoreQA 答案对比样例Fig.4 The comparison of MCQA (TE,CE) and CoreQA sample outputs

图5 将MCQA 生成的答案和标准答案进行比对,整体上答案的语义结构比较清晰,也能较好地与问题的方向保持一致.但生成的答案中依旧存在待解决的问题,我们对错误案例进行分析,如图5的ID4 例子所示,结果不可避免地出现了⟨unk⟩单词,也证明了本文提出的针对OOV 词的解决方案,只能缓解OOV 词为模型带来的影响,而不能彻底解决OOV 问题.ID8 的答案没有明显问题,但结合知识库看,知识库只提供了(诸葛亮,别名,孔明)的知识,训练集中也没有类似的训练数据,因此在没有知识指导的情况下,模型会通过学到的语言模型随机生成答案.

4.5 模糊问答任务

1)任务描述

在知识问答模型MCQA 的基础上应用PTransE方法,推理知识库隐含的知识,对推理出的知识进行模糊回答,并保证模型在回答原有知识和现有知识的准确率,以及生成答案的质量.

数据集构建: 任务使用生日数据集作为原始数据,为构建符合要求的新数据集,本文在知识库原有的 “性别”、“出生年”、“出生月”、“出生日”的基础上加入了 “同年生”、“同月生”、“同日生” 3个关系,重新生成40 000 个主题词及其部分生日相关三元组,缺失的生日信息通过新加入的3 个关系对应到原有知识中,例如新主题词缺失 “出生日”的信息,通过 “同日生”关系将其联系到原有知识中,最后使用模板对新加入主题词生成问答对.

任务流程: 对新加入的主题词的 “出生年”、“出生月”、“出生日”三种关系进行推理,对应的推理关系为 “推断出生年”、“推断出生月”、“推断出生日”.将推理知识加入知识库中,如图6 所示,实体⟨Ent_111018⟩缺失 “出生年”知识,通过与⟨Ent_26747⟩实体 “同年生”的知识推理出可能的出生年为 “1978”,并将推理出的三元组(Ent_111 018,推断出生年,1978)加入到知识库中.重新划分训练集和测试集,使用MCQA 模型进行问答任务.

图6 知识补全示意图Fig.6 The diagram of knowledge base completion

2)实验设置

知识推理模型采用参数如下: 实验使用2 步(2-step)的所有路径作为特征路径,梯度下降的学习率α、批量b、向量维度d、hinge 损失函数的γ、协调参数θ.实验使用如下参数取值:α=0.001,b=100,d=100,γ=1,θ=1.7,训练迭代次数为200 次.

知识问答模型采用参数如下: 隐藏层大小设置为500 维,词向量维度为256 维,字向量维度设置为4 维,词的最大长度Lc设置为8,Lkb设置为10,使用Adam 作为梯度下降策略.

3)结果分析

如表5 所示,模糊问答任务的知识推理结果,实验统计了所有新主题词出生年、月、日三个关系的准确率Py,Pm,Pd,推理的效果达到了准确率90%以上.

表5 模糊问答推理结果 (%)Table 5 The prediction results of ambiguously QA (%)

如表6 所示,模糊问答的结果,F1t是评判模型是否能正确判断,是否需要采用模糊回答的F1值,F1t达到了87.7%,说明MCQA 模型已经初步具备了模糊回答的能力.Pg,Py,Pm,Pd统计了模型根据原始数据和推理数据回答的答案准确率,也都达到了较好的效果.Pr也达到了一个较高的水平,意味着加入推理词后答案依旧具有很好的可读性.

表6 模糊问答结果 (%)Table 6 The results of ambiguously QA (%)

模糊回答举例如图7 所示,正确知识一列中普通字体的部分是知识库中原有知识,斜体的部分是经过知识推理后得到的推理知识,可以看到模型使用推理知识后会使用模糊回答的方式在答案适当位置加入推断词,而只使用原有知识的答案中会直接给出肯定的答案.

图7 模糊问答样例Fig.7 The sample outputs of ambiguously QA

5 结束语

本文提出了一种基于表示学习与全局覆盖机制的生成式知识问答模型,针对现有的生成式问答任务中遇到的OOV 问题,本文提出引入知识表示学习方法生成的实体、关系向量代替基础词典中相应词汇的词向量,提高模型识别陌生词汇的能力,提高模型准确率.针对模型在使用3种预测模式联合生成答案时模式混乱的问题,本文提出了全局覆盖这一机制,提高模型的语义连贯性,减少由预测模式混乱导致的重复输出的问题.另外本文还将知识表示学习结果应用到问答模型中,使模型初步具有区分原始知识和推理知识的能力,能对推理知识进行模糊回答.模型在多个数据集上的实验都取得了很好的效果,表明模型能够有效提高生成答案的准确率和答案的语义流畅度.最后,知识推理和问答模型的结合使模型对推理知识的模糊回答取得了一定的效果.

未来我们将继续研究将知识表示学习和生成式问答进一步深入结合,在问答模型中嵌入知识推理模型,进行多任务联合学习,改善学习性能.还会尝试在问答模型的训练过程中加入课程学习的思想,先易后难的训练模型,使得含有噪声的数据中所有有价值的信息都可以得到充分利用.

猜你喜欢
三元组知识库向量
TransP:一种基于WordNet中PartOf关系的知识图谱嵌入方法
向量的分解
时序知识图谱的增量构建
汉语近义词辨析知识库构建研究
基于卷积神经网络的知识图谱补全方法研究
聚焦“向量与三角”创新题
关于余挠三元组的periodic-模
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
机构知识库建设的动力研究