基于多任务学习的知识库问答方法

2024-04-29 10:15金书川朱艳辉沈加锐满芳藤张志轩
湖南工业大学学报 2024年3期
关键词:多任务知识库实体

金书川 ,朱艳辉 ,沈加锐 ,满芳藤 ,张志轩

(1.湖南工业大学 计算机学院,湖南 株洲 412007;2.湖南省智能信息感知及处理技术重点实验室,湖南 株洲 412007)

1 研究背景

近年来,随着互联网技术的不断发展,越来越多的大规模知识库随之出现,如Freebase、Dbpedia、Wikidata、PKUBase等[1-3],基于知识库的问答(knowledge base question answering,KBQA)任务逐渐成为自然语言处理研究领域热点任务。它是基于人工智能快速发展而产生的新技术,可以满足用户快捷获取知识的需求,从而在学术和工业界引起了广泛的关注。知识库问答系统以知识库为知识源,根据给定的自然语言问句,通过检索知识库,得到事实性答案。知识库是一种存贮结构化知识的数据库,其中的知识是由大量的三元组(Eh,R,Et)构成,其中Eh和Et为实体类型,R为关系类型。比如在三元组(<麻省理工学院>,<创办者>,<威廉•巴顿•罗杰斯>)中<麻省理工学院>称为头实体,<创办者>称为关系,<威廉•巴顿•罗杰斯>称为尾实体。

通常情况下,研究者将自然语言问题分为两类,一类是简单问题,它是指通过一个三元组就能够回答的问句,例如图1a中的问句“麻省理工学院的创建者是谁?”只需要包含形如(<麻省理工学院> <创办者> ?)的三元组就能被回答;另一类就是复杂问题,它需要至少两个三元组才能够得出答案,如图1b中问句“恒生电子股份有限公司的董事长毕业于哪所大学?”则需(<恒生电子>,<董事长>,?),(<彭政纲><毕业院校> ?)这两个三元组才能得到准确的答案;还有更复杂的问题需要更多的三元组才能得到答案。复杂问题相较于简单问题有着更多的问法形式,非常具有挑战性,本文工作聚焦于包含了简单问题和复杂问题的问答。

图1 问题路径示例Fig.1 Illustration of problem paths

现有知识库问答解决方法主要有两种,第一种是基于语义解析(semantic parsing,SP)[4-6]的方法。语义解析方法指将自然语言问句进行解析并转化为可执行的查询语言。通常步骤先由一个问句理解模块对句子进行语义语法解析,得到问句的实体关系成分;再通过逻辑解析模块对以上的实体关系成分转为相应的逻辑形式;最后,把得到的逻辑形式与知识库进行语义对齐并执行查询得到最终答案。J.Berant等[4]训练了一个可扩展到Freebase的语义解析器,实现了不依赖传统手工规则标注将自然语言短语映射为逻辑谓词的方法,从而将自然语言问题转化为逻辑形式表达。首先,利用大规模文本语料库和知识库构建问句短语与知识库实体及关系之间的粗略对齐;然后,通过桥接操作生成基于相邻谓词的附加谓词,进一步将问句短语与知识库实体及关系做映射。Yih W.T.等[5]提出了一种新的方法,即利用逻辑拓扑图匹配的思路,从知识库中的实体关系出发,逐步生成与提问含义最相近的完整逻辑拓扑图。该方法的创新点在于采用分阶段方式,首先,在自然语言提问中选取可能的候选核心实体;然后,针对每个可能的核心实体和关系逐步生成候选核心链;接着,利用卷积神经网络的深度学习方法,找到与提问含义最相近的核心链;最后,将一些限定条件添加到核心链中,得到与提问含义最相近的完整逻辑关系拓扑图,通过在图中的位置确定未知答案,从而得到正确可能性最大的答案。Chen Y.等[6]提出了双向注意力记忆网络模型,并在英文多关系问题数据集WebQuestion[4]上达到了先进水平。

第二种是基于信息检索(information retrieval,IR)[7-9]的方法。基于信息检索的方法指从问句中获取相应的关键信息,直接从知识库中检索排序得到答案。一般首先确定问句的主题实体,以实体为中心从知识库中提取出特定的问句子图,一般情况下,该子图包含了所有与问句相关的实体与关系组合;再使用相应的特征提取模块,对问句进行特征提取,得到对应的特征表示;最后通过推理排序模块,对得到的特征表示做相应的计算并排序,选取排名靠前的作为最终答案。这样的方法适合流行的端到端训练,并使基于IR的方法更易于训练。Yao X.C.等[7]提出了一种基于特征工程的方法。该方法首先利用依存句法分析结果和问题词等进行特征提取,并将其转化为问句特征图;接着将主题实体子图和候选特征图相结合,以在特征提取和权重计算方面实现更好的性能。值得注意的是,该方法的权重计算偏向于与主题实体相关度较高的特征,从而能更好地解释文本信息。Yu M.等[8]提出了一种新的知识库关系检测模型HRBiLSTM,该模型在问题和知识库之间进行分层匹配。Qu Y.等[9]提出了一种AR-SMCNN模型,它是基于相似矩阵的卷积神经网络和递归神经网络的结合,能够捕获全面的层次信息,并确定问句中心实体。罗达等[10]等提出了一种基于多角度注意力机制的单一事实知识库问答方法,其将基于知识图谱的单一事实问答拆解成实体链接和关系识别两部分任务。周博通等[11]提出了一种基于注意力机制的双向长短期记忆网络问答方法。该方法首先使用辅助词典结合LSTM进行命名实体识别,然后采用双向LSTM融合不同的注意力机制进行属性映射,最终通过前两步的结果进行实体消歧和答案选择。

在CKBQA中的某些任务上,欧阳康[12]、詹飞[13]等提出了一种联合抽取和多任务方法,并在相应的数据集上取得了较好的成绩。参考以上方法[12-13],针对CKBQA任务,本文提出一种基于多任务学习(multi-task learning,MTL)方法:先对主题实体、问题分类和路径预测进行多任务学习;然后对主题实体识别出来实体提及进行实体链接;再通过链接实体构建知识库子图,结合问题类型预测和路径预测模块生成候选路径;最后,通过语义相似度匹配模型对生成的候选路径进行排序,从中选出最匹配的路径作为答案路径,进而从知识库中得到问句答案。该方法在CCKS2022-CKBQA测试集上的F1值达到了76.2%。

对于知识库问答任务,有些较为复杂的任务需要做更多的处理,在任务验证过程中,有很多未见的实体和关系等,对这些数据的处理和建模成为提升模型性能的关键。之前大部分知识库问答系统都是只针对简单的问题(通过一个三元组就能回答的问题),生成的路径较少。然而对于复杂问题所生成的候选路径会呈现指数级别的增长,此时需要解决以下问题:

1)对于庞大的知识库,当问题变得复杂的时候,问句中的主题实体离答案的距离就会变得较远,筛选的候选路径可能会呈现指数级别的增长,如何有效处理这种情况,使得系统性能得到提升。

2)如何利用知识库元素的多样性,在训练过程中使模型学到一些验证和测试集中没有出现的元组关系,从而提升语义相似度模型的鲁棒性。

本文在CCKS2022-CKBQA评测任务上进行了相关研究,提出了以下方法:1)将BERT(bidirectional encoder representation from transformers)预训练语言模型应用于复杂问题知识库问答系统;2)在问句路径生成上融合了问题类型特征;3)使用多任务学习,将不同的任务共用一个BERT模型;4)改进了子任务中的一些模型。

2 基于多任务学习的知识库问答系统模型构建

研究组提出的基于多任务学习的问答系统,模型整体结构如图2所示。

图2 基于多任务学习的知识库问答系统整体框架Fig.2 Overall framework of knowledge base Q&A based on the multi-task learning model

多任务学习网络模型由BERT编码器、主题实体识别模块、问题分类模块、路径预测模块、实体链接模块和路径排序模块构成。此外,为了提升模型总体性能,研究组构建了一些辅助词典(分词、词频等词典)。其中主题实体识别、问题分类和路径预测3个模块构成了多任务学习系统,其模型参数共享模式采用硬共享模式,主题实体识别模块、问题分类模块和路径预测模块共同使用一个BERT编码器部分,BERT与主题实体分类模块构成主题实体分类模型,与问题分类模块构成问题分类模型,与路径预测模块构成路径预测模型。模型训练期间,多个任务交替进行,每个任务对应的上下文作为模型输入,来自不同任务的梯度信息均会传递到共享的BERT编码器,并更新模型参数,从而学到更深的底层信息。

多任务学习阶段训的练目标定义如下:

多任务学习模型损失函数定义如下:

式(1)~(3)中:p(y|x)为多任务训练阶段的总目标;p(ye|x)为主题实体识别训练目标;p(yqt|x)为问题类型预测训练目标;p(yp|x)为路径预测训练目标;ye为主题实体输出表示;yqt为答案类型预测输出表示;yp为路径预测输出表示;wi为第i个子任务权重;Li为第i个子任务损失函数。

2.1 多任务学习模型

多任务学习[14-15]是一种迁移学习的方法。从人类的角度来说,在面对一个新任务时,往往会结合自己以前的经验和知识进行学习。在机器学习中,多任务学习就是选取多个任务并将它们放到一个模型中进行训练,不同任务间通过交互共享特征信息,缓解深度学习模型中的过拟合问题,多任务学习网络架构包括了共享部分和各自特有部分。网络结构如图3所示。

图3 多任务学习网络模型结构Fig.3 Multi-task learning network

2.2 BERT预训练语言模型

BERT模型是谷歌团队在2018年提出的一个基于双向Transformer的预训练语言模型。自从该模型提出以来,得益于其中新提出的两个任务MLM(masked language model)和NSP(next sentence prediction),就在自然语言处理领域取得了不错的效果。MLM主要用于训练深度双向语言表征,它是一个语言遮罩模型,会随机遮住输入句子中的一些词,然后将预测这些被遮住词,类似于完型填空。NSP主要用于做分类任务。BERT在预训练完成之后,只需要做相应的fine-tuning,就能完成不同下游任务,并取得不错的效果。故本文决定采用BERT作为不同子任务之间的共享编码器,它能够较好地获取上下文信息,将BERT对应输入文本使用词向量的方式进行表示。

2.3 主题实体识别

本文使用了基于BERT+BiLSTM+CRF的序列标注模型进行主题实体识别,参考孔令巍等[16]的方法,将对抗训练用于主题实体识别,如图3所示,先将长度为m的输入问题分割成词序列x={w1,w2, …,wm}传入BERT网络中,得到m个词向量;之后将词向量添加对抗训练扰动因子;随后将相加后的向量送入BILSTM,双向LSTM网络对其进行前向和后向的语义特征提取;之后输出一个带有上下文语义信息的特征向量;最后研究组将其输入CRF层中,进而识别出问题中的主题实体。研究组提出的主题识别模型如图4所示。

图4 主题实体识别模型Fig.4 Subject entity recognition model

2.4 实体链接

通过主题实体识别模块,研究组得到相应的实体提及列表,设为ET,但这些实体提及在知识库中可能对应多个实体指称(如:苹果,可能存在水果苹果和苹果科技公司两个实体指称),亦可能没有对应的实体(如:恒生电子股份有限公司,在知识库中没有相应的实体节点)。需要将这些实体提及链接到知识库相应的实体节点上,这对之后生成相应的子图及之后的工作非常重要。研究组通过评测方提供的实体提及词典及上面得到的实体提及ET,结合训练集中SPARQL语句中的答案实体,构造实体链接训练集,研究组把实体链接作为一个二分类任务,采用基于BERT的训练模型,如图5所示。

图5 实体链接模型Fig.5 Entity link model

如图5所示,研究组首先构建候选实体集(通过实体提及和实体提及词典得到);然后将候选实体上下文和实体提及上下文输入BERT中,中间用[SEP]([SEP]在BERT中用于分隔两个不同的句子)隔开;除了取[CLS]对应位置输出向量外,还将实体提及对应开头和结尾位置向量取出与之进行拼接,输入下一层全连接层中;再经过多层全链接和Dropout后输入softmax,最终得到候选实体和实体提及相关概率得分k。在每组候选实体中,研究组选出得分最高的候选实体作为该实体提及对应的知识库链接实体。

2.5 问题类型预测

在研究工作中,将问题类型预测任务作为分类任务来处理,首先预定义了几种问题类型,分别是事实类、计算类、判断类、推理类。同样将问句上下文输入BERT中,然后取BERT输出的[CLS]位置向量([CLS]为BERT在文本前插入的特殊符号),之后经过全连接层和softmax函数激活后,就得到了问句分类概率分布。

2.6 路径预测

除了获取问句中的主题实体外,还需要获取问句中的一些属性关系词,方便生成后续的路径,同样将路径预测任务作为序列标注任务,整体模型架构同主题实体识别一致,问句中识别出的关系词集合定义为路径P={p1,p2, ...,pn}。

2.7 候选路径生成及排序

经过主题实体识别、实体链接、问题分类和路径预测模块后,融合问句中的主题实体、问题类型和路径预测来生成候选路径。由于一个问题对应的候选路径比较多,课题组采用路径剪枝方法减小路径总数,最后将候选路径与问题同时输入BERT语义相似度模型(如图6所示)中进行语义相似度匹配。

图6 语义相似度匹配模型Fig.6 Semantic similarity matching model

给定一个问题q和对应的n个候选路径C,使用BERT模型计算路径对应的相似度得分[17],挑选得分最高的最优候选路径作为最终的答案路径,公式如式(4)(5)所示:

式(4)(5)中:Fθ(q,C)为问题q与路径C间的语义相似度得分;hq为问题经过BERT编码后得到的[CLS]位置向量;hC为候选路径经过BERT编码后得到的[CLS]位置向量。

最后使用向量间的余弦相似度作为问题与候选路径的相似度得分。为了增加正确路径C+和错误路径C-之间的得分差异,使用Ranking Loss来进行训练,具体公式如下:

式中η为模型的一个超参。

3 实验设计与结果分析

3.1 数据集介绍

使用CCKS2022评测任务五—开放领域知识图谱问答评测中提供的数据集,同时还提供一个供查询的知识库PKUBASE。数据集详细信息如表1所示。

表1 实验数据集Table 1 Experimental dataset

3.2 评价指标

评价指标采用AveF1(averagedF1)值。设Q为问题集合,Ai为本问答系统对第i个问题给出的答案集合,Gi为第i个问题的标准答案集合。相关计算公式如下:

3.3 实验环境

本文实验环境使用Windows操作系统,CPU型号为i7-12700H@2.30 GHz,GPU型号为NVIDIA Geforce RTX3060,深度学习框架采用CUDA11.0和TensorFlow 2.4.0,知识库数据存储及检索工具使用neo4j 3.5.30、Python 3.7。

3.4 实验参数设置

本文各实验模型参数设置如表2所示。

表2 各模型参数设置Table 2 Parameter settings for each model

3.5 主题实体识别实验与结果分析

不同主题实体识别模型结果分析如表3所示。

表3 主题实体识别实验结果Table 3 Experimental results of subject entity recognition

由表3可知,本文提出的融合多任务学习的主题实体识别方法与传统序列标注方法BiLSTM+CRF模型相比,F1值提高了0.103;与BERT+CRF、BERT+BiLSTM+CRF模型相比亦有显著提高。结果证明融入多任务学习模型的主题实体识别模型学习到了额外的信息,取得了较好的识别结果。

3.6 实体链接实验与结果分析

验中训练集正负比例为1:4,验证集对所有候选实体都进行预测,最终预测答案都只保留一个。实验结果如表4所示。

表4 实体链接实验结果Table 4 Entity link experiment results

从表4结果可以看出,本文提出的实体链接模型较之其他方法有了较大提升,比传统词典排序方法提升了0.130,说明在融合了多特征后,研究组的模型学到了更多的语义信息。

3.7 问答系统结果分析

与传统问答结果分析对比如表5所示。实验结果表明,课题组提出的方法对比传统的方法有不错的提升,主要归因于多任务学习模块帮助部分子任务之间学习到了更多的语义信息。此外研究组在引入外部辅助词典后得到的结果说明,在进一步引入辅助词典相关信息后,模型有了进一步的提升,最后能有0.762的平均F1值。

表5 问答系统实验结果Table 5 Experimental results of Q&A system

4 结语

本文构建了一种基于多任务学习的通用领域知识问答方法[18],使用了多任务学习框架,对问题进行了主题实体识别、实体链接、候选路径生成、候选路径和问题语义相似度匹配,验证了基于BERT的多任务学习模型在知识库问答上的优势。在CCKSCKBQA评测任务数据集上进行实验,取得了不错的结果。但是问答系统日益向着更加智能的方向发展,在后续工作中需要在以下方面深化研究:

1)特定范围内的排序及计数问题,采用信息检索的方式效果不佳,需要结合推理与语义分析方法进行深入研究。

2)现有知识库中的信息不完整,某些问题在知识库中不存在直接答案,需要进行补全和推理计算。

猜你喜欢
多任务知识库实体
前海自贸区:金融服务实体
基于中心化自动加权多任务学习的早期轻度认知障碍诊断
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
基于判别性局部联合稀疏模型的多任务跟踪
高速公路信息系统维护知识库的建立和应用
基于多任务异步处理的电力系统序网络拓扑分析
基于Drupal发布学者知识库关联数据的研究