当前位置:首页 期刊杂志

基于MHSA 和句法关系增强的机器阅读理解方法研究

时间:2024-05-22

张虎 王宇杰 谭红叶 李茹

机器阅读理解(Machine reading comprehension,MRC)是通过计算机理解文章语义并回答相关问题的一项重要研究任务.MRC 研究对提升机器的自然语言理解能力具有重要促进作用,已受到学术界和工业界的广泛关注.早期的MRC 研究主要采用基于人工规则库的方法,规则库的建立和维护通常需要耗费大量人力,且难以回答规则以外的问题[1].近年来,随着机器学习,特别是深度学习的快速发展[2],MRC的自动答题效果有了明显提升,在一些特定任务中MRC 模型的回答甚至可以媲美人类水平.

随着BERT (Bidirectional encoder representations from transformers)[3]等预训练语言模型的出现,片段抽取式MRC 任务的实验结果得到了较大提升,很多模型在SQuAD (Stanford question answering dataset)[4]等数据集上已经超越了人类水平.为了进一步检验模型的推理能力,现有很多MRC数据集加入了观点类问题,包括“是/否”和“不可回答”问题.SQuAD2.0[5]在SQuAD的基础上增加了不可回答问题;CoQA (Conversational question answering)[6]是一个多轮对话MRC 数据集,它的答案形式涉及片段抽取、是/否、不可回答以及自由回答;CJRC (Chinese judicial reading comprehension)[7]是首个中文法律MRC 数据集,问题类型包括片段抽取、是/否与不可回答问题.然而,针对观点类问题的MRC 任务,现有阅读理解模型仍然不能得到令人满意的结果.观点类问题的答案往往不在文章中直接出现,一般需要通过多个句子推理得出.因此,对于此类问题,模型需要综合理解阅读材料后给出观点,并且如果根据材料语义无法作答,模型应该将该问题判定为不可回答.

人类在回答阅读理解问题时,不仅可以给出问题答案,而且也可以给出支撑答案的依据.然而,现有大多数MRC 模型仅可以给出问题的答案,无法给出支撑该答案的答案依据,得到的答案通常缺乏可解释性.为提高MRC 模型的可解释性,美国卡耐基梅隆大学、美国斯坦福大学等机构联合推出了多文档多跳推理数据集HotpotQA[8],要求模型在多个文档里寻找答案线索,给出答案依据,并通过推理得到答案;中国“法研杯”司法人工智能挑战赛(China AI Law Challenge 2020,CAIL2020)阅读理解数据集提出了多跳推理任务,要求MRC 模型在回答问题的同时给出答案依据,即参与推理的句子编号.CAIL2020 阅读理解数据集的样例如图1所示.

图1 CAIL2020 阅读理解数据集样例Fig.1 Sample of CAIL2020 MRC dataset

为了同时实现观点类问题作答和答案依据挖掘,本文提出了一种多任务联合学习模型(Multitask joint learning model,MJL-model).该模型的主要思想是:首先,针对观点类问题,引入多头自注意力(Multi-head self-attention,MHSA)机制挖掘文章中观点类问题的文字线索,然后利用循环卷积神经网络(Recurrent convolutional neural network,RCNN)[9]对观点类问题进行分类求解;其次,针对答案依据挖掘任务,利用词法与句法分析工具识别文章中各句子中的关键要素以及句法关系,利用要素间的依存句法关系以及其他关联关系构建关联要素关系图,并利用动态融合图网络(Dynamically fused graph network,DFGN)[10]在关系图上挖掘当前问题的答案依据,增强答案的可解释性;最后,通过参数共享与联合损失优化,将两个任务进行联合优化学习,实现观点类问题的解答以及答案依据的挖掘.本文在CAIL2020 与HotpotQA 阅读理解数据集上进行了实验,分析了中英文数据集的差异,证明了该方法的有效性.

本文的主要贡献有以下几点:

1)提出句法关系增强的关联要素关系图构建方法,建立基于DFGN的答案依据挖掘模型;

2)针对观点类问题解答和答案依据挖掘任务,提出多任务联合学习的阅读理解模型;

3)同时在CAIL2020 与HotpotQA 阅读理解数据集上进行了多项对比实验,验证了所提模型的有效性和通用性.

1 相关工作

1.1 机器阅读理解数据集

近几年,学术界和工业界提出了多个大规模MRC数据集,促进了MRC的发展.RACE (Reading comprehension dataset from examinations)[11]是美国卡耐基梅隆大学在2017 年推出的大规模MRC数据集,数据来源为中国中学生的英语考试,包含了28 000 篇文章和近10 万个多项选择题.SQuAD数据集由斯坦福大学于2016 年推出,主要来源于536 篇维基百科文章,包含了10 万多个片段抽取式问题.2018 年推出的SQuAD2.0 进一步加入了大量“无法回答”类问题,问题数量达到了15 万个,答题难度相比SQuAD有了明显提升.2017 年,百度公司基于百度搜索和百度知道数据开放了中文MRC 数据集DuReader[12],该数据集共包含20 万个问题和100 万篇相关文档,问题类型包括自由回答类与“是/否”类.2018 年美国卡耐基梅隆大学、美国斯坦福大学等机构基于维基百科数据共同推出了多文档多跳推理MRC 数据集HotpotQA,共包含11 万个问题,要求模型答题时能够同时给出答案和答案依据.

1.2 机器阅读理解模型

受到大规模开放阅读理解数据集的驱动,相关学者对阅读理解模型开展了广泛研究,在模型设计和训练方法等方面进行了深入探索.

在BERT 等预训练语言模型提出之前,最优的MRC 模型主要探索不同注意力机制的应用.Attentive Reader[13]首次将注意力机制应用到阅读理解任务中,它使用双向长短时记忆网络(Bi-directional long short-term memory,BiLSTM)对文章和问题进行编码,计算从问题到文章的注意力.BiDAF(Bidirectional attention flow)[14]将MRC 模型划分为编码层、交互层和输出层,建立了文章和问题的交互注意力机制.R-NET[15]改进了循环神经网络(Recurrent neural networks,RNN)在阅读理解任务中的应用,将注意力机制融入到RNN,并通过门控机制动态控制信息的取舍.QANet[16]摒弃了RNN复杂的递归结构,只使用卷积神经网络和自注意力机制完成编码工作,提高了模型的速度和准确率.

目前,预训练语言模型已成为一种新的自然语言处理(Natural language processing,NLP)范式,其主要使用大规模文本语料库进行预训练,并用特定任务的小数据对模型进行微调,推动了MRC 研究的快速发展.Google 于2018 年推出了BERT 预训练语言模型,该模型基于Transformer 编码器,引入掩码语言模型(Masked language model,MLM)和下一句预测(Next sentence prediction,NSP)任务.随后,2019 年Facebook 在BERT的基础上提出了RoBERTa (Robustly optimized BERT approach)[17]模型,在预处理阶段采用动态掩码取代了静态掩码,同时还去掉了NSP 任务.显然,预训练语言模型在提高NLP 相关任务效果的同时,也增加了模型参数和训练时长.针对这些问题,Google 又在BERT的基础上提出了ALBERT(A lite BERT)[18]模型,其使用词向量因式分解和跨层参数共享的方法减少了模型的参数量,同时通过引入句子顺序预测(Sentence order prediction,SOP)任务进一步改进了BERT 模型.2019 年,百度推出了中文预训练语言模型ERNIE (Enhanced representation through knowledge integration)[19],它通过对词语、实体等语义单元进行掩码(MASK),使得模型可以学习到潜在的知识和语义依赖关系,提高了模型的泛化能力,ERNIE 在中文任务中全面超越了BERT模型.随后,哈尔滨工业大学讯飞联合实验室发布了中文RoBERTa_wwm_ext[20]模型,它将整词掩码(Whole word masking,WWM)应用到中文BERT 模型中,在多个中文任务中得到了更好的实验结果.

1.3 多跳阅读理解模型

多跳推理要求模型在多个文档中寻找线索并推理出答案,已成为MRC 任务中的研究热点,相关研究人员针对该任务已开展了大量深入研究.CogQA(Cognitive graph question answering)[21]建立了一种认知图谱问答模型,它设计了两个系统来维护一张认知图谱,系统1 遍历文档,抽取与问题相关的实体来扩展认知图谱,系统2 利用图注意力网络(Graph attention network,GAT)在构建的认知图谱上进行推理,并回答问题.DFGN构造了一个动态实体图并通过GAT 在实体图上进行推理.同时,设计了一个融合模块来提高实体图和文章之间的交互性.HDE (Heterogeneous document-entity)[22]通过互注意力机制学习候选答案、问题、文档以及实体之间的关系,同时利用这些关系构建了一个异构图,并通过图卷积神经网络(Graph convolutional network,GCN)在异构图上进行推理,寻找答案证据.QFE (Query focused extractor)[23]将片段抽取任务与多跳推理任务进行联合学习,使用RNN 来依次提取答案支撑句.SAE (Select,answer and explain)[24]设计了一个筛选模块来过滤文档中与问题无关的句子,并将片段抽取与多跳推理两个任务进行联合优化,在多跳推理任务中利用文档句子之间的关系构造关系图,进而利用GCN在关系图上进行推理.

2 模型

本文提出的MJL-model 模型将阅读理解中的片段抽取问题、观点类问题以及答案依据挖掘任务进行联合优化学习,形成了一个端到端的多任务阅读理解模型.模型结构如图2 所示,主要包括编码层、问题解答层、多跳推理层、预测层.在问题解答层,基于MHSA 及RCNN 实现了对观点类问题的分类解答;在多跳推理层,利用词法和句法分析工具识别文章各句子中的人名、地点、时间、组织机构、名词等关键要素以及要素间的依存句法关系,利用要素之间的关联关系以及句法关系建立关联要素关系图,并基于关联要素关系图在DFGN 模型上进行答案依据挖掘.

图2 MJL-model 模型结构Fig.2 Model architecture of MJL-model

2.1 编码层

编码层将文章和问题的每个字或词映射到一个高维的向量空间,获得每个字或者词的向量表示.本文使用RoBERTa_wwm_ext(l=12,d=768)模型来获得文章P和问题O的向量化表示,l代表隐藏层数,d代表隐藏层大小.具体如式(1)和式(2)所示

其中,input表示RoBERTa_wwm_ext 模型的输入,x表示文章和问题的12 层向量表示,本文使用最后4 层作为文章和问题的向量表示u,如式(3)和式(4)所示

2.2 问题解答层

本文将问题类型分为片段抽取(Span)类和观点类问题,其中观点类问题分为是/否(Yes/No)类、不可回答(Unknown)类.Span 类问题的答案为文章中的一个片段,Yes/No 类问题的答案是yes 或no,Unknown 类问题的答案是unknown.针对各个类型的问题,本文采用了不同的处理方法.

1)Yes/No类

针对Yes/No 类问题,模型需要根据文章来回答问题的是否观点,它的答案不在文章中直接出现,而需要通过多个句子推理得到.本文通过引入MHSA进一步挖掘文章中Yes/No 类问题的文字线索,然后利用RCNN 实现对该类型问题的分类解答.MHSA定义为

然后通过RCNN 和全连接(Dense)层进行二分类,得到问题答案是yes/no的概率pyes/pno,具体计算如式(9)~(13)所示

2)Unknown类

在观点类问题中,有些问题仅仅根据文章是无法得到答案的.对于此类问题,模型应该拒绝回答.针对此类问题,本文用[CLS]位置在编码层中得到的向量c来表示当前输入的文章和问题,然后输入一个Wc∈R4d×1的Dense 层,得到答案是unknown的概率punknown,具体计算如(14)和式(15)所示

3)Span类

针对Span 类问题,由于它的答案是文章中的一个片段,模型需要根据问题在文章中标注出正确答案的开始位置和结束位置.本文通过编码层得到问题及文章每个字符的向量化表示u,其中文章P中n个字符的编码为 [u1,u2,···,un],ui∈R4d,然后在编码层后添加一个Ws∈R4d×1的Dense 层,获得分数s,使用分数s来表示每个位置的开始概率ps,具体计算如式(16)和式(17)所示

同理,加入另一个We∈R4d×1的Dense 层,获得分数e,使用分数e来表示每个位置的结束概率pe,如式(18)和式(19)所示

2.3 多跳推理层

本文在关联要素关系图上基于DFGN 模型进行多跳推理,检索答案依据.多跳推理层结构如图3所示,主要包括关联要素关系图构建和多跳推理两部分.

图3 多跳推理层结构图Fig.3 Model architecture of multi-hop reasoning layer

在关联要素关系图中,颜色相同的要素代表它们位于同一句子,左边关系图考虑了位于同一句子中的要素以及不同句子中的相同要素,右边关系图考虑了存在句法关系的要素以及相似度大于η的要素,其中η=0.90,不同类型线条表示了构图过程中不同关系的连边.

1)关联要素关系图构建

对于CAIL2020 中文数据集,本文使用百度开源的LAC1https://github.com/baidu/lac工具从文章中识别时间、地点、人名、组织、名词、专有名词、数量词等关键要素.关联要素关系图利用各要素之间的关系进行连边,在构造关系图时,本文采用了以下规则:a)同一句子中的所有要素进行连边;b)不同句子中的相同要素进行连边;c)为了增强不同句子之间的要素联系,本文计算了不同句子中各要素之间的相似度.首先,利用BERT 得到要素对应的词向量,然后利用余弦相似度计算两个要素之间的相似度,如果该相似度大于η,则对两个要素连边;d)若不同句子间的两个要素存在句法关系,则连接两个要素.首先,将文章根据句号、问号、感叹号等标点符号进行分割得到片段,然后使用DDParser2https://github.com/baidu/DDParser得到该片段的依存句法关系,如果两个要素之间存在句法关系,则连接两个要素.

对于HotpotQA 数据集,本文使用了spaCy3https://github.com/explosion/spaCy从文章中识别时间、地点、人名、名词等关键要素及要素间的依存句法关系.

2)多跳推理

本文基于已构造的关联要素关系图和DFGN进行多跳推理,具体过程如下:

步骤 1.本文在数据预处理阶段构建了要素位置矩阵M与句子位置矩阵B,M记录了每个要素在input中的相应位置,B记录了每个句子在input中的相应位置,M与B中的元素为0 或1.

其中,M为一个w×g的矩阵,w表示文章中的要素个数,g表示input的长度,对于任意要素i在input中的位置为si~ei,则的值为1,Mi中的其余值为0.B为一个r×g的矩阵,r表示文章中的句子个数,对于任意句子k在in-put中的位置为sk~ek,则的值为1,Bk中的其余值为0.

步骤 2.通过要素位置矩阵M得到任意要素i在input中的相应位置si~ei,在编码层得到了input中每个字符的字向量表示u,则要素i对应的字符字向量为本文通过式(20)得到要素的词向量h,初始化关联要素关系图中的要素特征表示.

步骤 3.通过MeanPooling 得到问题句向量然后计算关系图中每个要素关于问题的相关度分数m=[m1,m2,···,mw],然后通过式(23)得到各个要素关于问题的特征表示h′,使模型在推理过程中更加关注与问题相关的要素.

其中,q表示通过编码层得到的问题字向量,E是一个线性变化矩阵.

步骤 4.基于关联要素关系图进行多跳推理.首先,从问题中的某个要素开始推理,关注在关联要素关系图上与该要素有连边的其他要素.然后通过计算它们之间的注意力分数,更新要素的特征表示.假设对于任意要素i,其相邻要素为Ni,则要素i的注意力权重由式(24)和式(25)得出

最后,通过式(26)计算出要素i最终的特征表示

步骤 5.每完成一次推理,使用Bi-Directional Attention 更新问题的向量表示,然后通过步骤3计算关联要素关系图每个要素关于当前问题向量的相关度分数m,并根据m去更新关系图的要素特征表示.

最后,不断重复上述过程更新关联要素关系图各要素的特征表示.

2.4 预测层

预测层基于编码层、问题解答层以及多跳推理层实现了对Span 类、观点类问题以及答案依据挖掘任务的解答.

1)Span 及观点类问题解答

本文在问题解答层得到了观点类问题的答案概率,然后将这些答案概率作为Span 类问题中的答案开始及结束位置概率加入到Span 类问题中,与Span 类问题一起解答.如式(27)和式(28)所示,其中pstart,pend分别表示每个位置作为答案开始位置和结束位置的概率,n表示文章长度.

对于Span 类问题,由于它的答案是文章中的一个片段,答案位置需要满足 1≤b ≤f和f≤n,其中b表示答案的开始位置,f表示答案的结束位置,本文将开始位置和结束位置的概率之和作为答案概率.在Span 类问题中,符合上述条件的答案一般有多个,本文从多个答案中选择概率最大的作为Span类问题的答案.同理,对于观点类问题也需要计算答案概率.本文将观点类问题的概率的2 倍作为答案概率.最后从多个答案中选择答案概率最大的作为最终答案,具体计算如式(29)~(33)所示

2)答案依据挖掘

本文通过多跳推理得到了关联要素关系图中每个要素的特征表示,结合要素位置矩阵M得到了要素对应字符的字向量表示,并进一步通过长短期记忆网络(Long short-term memory,LSTM)得到文章P的特征表示z.然后结合句子位置矩阵B,通过Mean-Max Pooling 得到文章P中r个句子的特征表示,具体计算如式(34)和式(35)所示

然后通过Dense 层得到r个句子关于问题的相关度分数t,使用t来表示每个句子对于文章问题的支持率psup,具体如式(36)和式(37)所示

实验选择psup>0.53的句子作为支撑问题答案的依据.

3 实验

3.1 数据集

本文分别在CAIL2020 阅读理解数据集和HotpotQA 数据集上进行了实验.

CAIL2020 阅读理解数据集包括民事、刑事和行政共3 类中文裁判文书,问题类型涉及Span 类、Yes/No 类以及Unknown 类,且每个问题都需要给出答案依据.具体而言,对于每个问题,需要结合案情描述内容给出回答,同时需要给出支撑答案的依据,即所有支撑答案的句子编号.由于目前CAIL2020只公布了训练集,没有公布验证集与测试集,在实验中,本文根据各问题类型在整体数据中的比例按照4 :1的比例划分了训练集与测试集.

HotpotQA 数据集与CAIL2020 司法阅读理解数据集较为相似,两个数据集的任务形式基本一致.HotpotQA 数据集为每个问题提供了10 篇文章,问题类型包括Span 类和Yes/No 类,要求对每个问题给出答案和答案依据.本文在HotpotQA Distractor 验证集上进行了实验.

3.2 评价指标

实验所用的评价指标包括3 个部分,分别是Span类和观点类问题的F1 值(Ans_F1)、答案依据挖掘任务的F1 值(Sup_F1)以及两部分的联合F1 值(Joint_F1).

Ans_F1 计算过程如式(38)~(40)所示

其中,wc表示预测答案与真实答案中相同的字符数,wp表示预测答案所包含的字符数,wg表示真实答案所包含的字符数.

Sup_F1 计算过程如式(41)~(43)所示

其中,TP表示预测答案与真实答案均为支撑句的句子数;FP表示预测答案是支撑句但真实答案不是支撑句的句子数;FN表示预测答案不是支撑句但真实答案是支撑句的句子数.

Joint_F1的计算过程如式(44)~(46)所示

3.3 基线模型

实验中采用5 个模型作为CAIL2020 数据集的基线模型,分别为:

1)Baseline_BERT (RoBERTa)4https://github.com/china-ai-law-challenge/CAIL2020/tree/master/ydlj:CAIL2020阅读理解任务提供的基于BERT的阅读理解模型;

2)Baseline_DPCNN:将MJL-model 模型中的RCNN 替换为深度金字塔卷积神经网络(Deep pyramid convolutional neural network,DPCNN)[25];

3)Cola5https://github.com/neng245547874/cail2020-mrc(Single model):CAIL2020 阅读理解挑战赛第4 名所用模型;

4)DFGN_CAIL:按照CAIL2020的数据格式,修改了DFGN的数据处理部分.

实验中采用4 个模型作为HotpotQA 数据集的基线模型,分别为:

1)Baseline6https://github.com/hotpotqa/hotpot:HotpotQA 阅读理解任务提供的基于Glove (Global vectors)[26]的阅读理解模型;

2)QFE:通过注意力机制和RNN 进行推理,并将片段抽取与多跳推理任务进行联合优化;

3)DFGN:根据实体间的关系构造动态实体图,通过GAT 在实体图上进行多跳推理;

4)SAE:利用文档句子间的关系构造关系图,通过GCN 在关系图上进行多跳推理.

3.4 实验结果

1)CAIL2020 数据集实验结果

对于CAIL2020 提供的基线模型,本文分别采用了BERT_base 和RoBERTa_wwm_ext 作为模型的编码器.各模型均采用了相同的参数设置,具体为:lr=0.00002,epoch=10,dropout=0.1,batch_size=6,seq_length=512,实验结果如表1所示.由表1 可以看出,Baseline_RoBERTa 模型的Ans_F1 相比Baseline_BERT 提高了1.41 个百分点,Sup_F1 提高了5.37 个百分点,Joint_F1提高了6.49 个百分点.因此,本文提出的方法和采用的基线模型均采用了RoBERTa_wwm_ext 作为编码器.不同模型的实验结果显示,本文提出的MJL-model 模型在3 项评价指标上都优于所有基线模型.

表1 CAIL2020 数据集实验结果(%)Table 1 Results on the CAIL2020 dataset (%)

2)HotpotQA 数据集实验结果

同时,本文在HotpotQA Distractor 验证集上进一步验证了提出的方法,且MJL-model 模型采用与基线模型DFGN、SAE 完全相同的BERT_base_uncase 模型作为编码器.

由表2 可以看出,本文提出的MJL-model 模型的Ans_F1 相比Baseline 模型提高了12.64 个百分点,Sup_F1 提高了19.30 个百分点,Joint_F1提高了22.01 个百分点.MJL-model 3 项评价指标都优于Baseline、QFE、DFGN,并且Sup_F1 优于所有基线模型.不同模型的实验结果表明了本文提出的MJL-model 模型的有效性.

表2 HotpotQA 实验结果(%)Table 2 Results on the HotpotQA dataset (%)

3)实验数据分析

通过分析模型的实验结果和所用的两个数据集,发现MJL-model 模型在中、英文数据集上的表现存在一些差异,具体原因包括以下3 个方面:

a)数据集存在差异.CAIL2020 数据集按照逗号、分号、句号等将一篇文章划分为不同的句子,相邻句子存在较强的关联性,但句子间包括的相同词汇较少;HotpotQA 数据集中的每条句子相对独立,相邻句子间关联性较弱,且不同句子间存在较多的相同单词.

b)构图上存在差异.由于CAIL2020 数据集中不同句子间的相同词汇较少,利用句法关系来增强不同句子间的词汇联系,可以进一步帮助模型推理出答案句.HotpotQA 数据集考虑了一般的命名实体和名词性单词,不同句子间相同实体及单词出现的次数较多,同时由于每条句子较为独立,因此只有少数相邻句子间存在句法关系.

c)句法分析工具存在差异.中文句法分析工具可以分析普通词汇、命名实体间的句法关系;英文句法分析工具SpaCy、Stanford CoreNLP 等在进行句法分析时是以单词粒度进行的,不能将命名实体作为一个整体去考虑.

因此,本文提出的模型在中文数据集上能够扩充更多的节点关系,实验结果也比英文数据集的结果更好.

3.5 消融实验

为了进一步评估模型各个模块的贡献,本文进行了以下消融实验:

1)Question_answering:将片段抽取和观点类问题作为单任务进行实验;

2)Answer_evidence:将答案依据挖掘任务作为单任务进行实验;

3)–MHSA:去掉问题解答层中的多头自注意力;

4)–RCNN:去掉问题解答层中的循环卷积神经网络;

5)–Syntax &Similarity:在构建要素关系图时,去掉要素之间的句法以及相似度关系.

具体消融实验结果如表3 所示.

表3 实验结果显示,Question_answering的Ans_F1 与Answer_evidence的Sup_F1 相比MJL-model 都下降了2 个多百分点,证明了多任务联合优化的有效性;针对观点问题解答层,去掉MHSA后Ans_F1 下降了2.55 个百分点,去掉RCNN后Ans_F1 下降了2.87 个百分点,Sup_F1及Joint_F1 也都有明显下降;针对关联要素关系图,去掉要素之间的句法关系以及相似度关系,Sup_F1 下降了1.12 个百分点,Ans_F1 下降了1.22 个百分点,Joint_F1 下降了1.92 个百分点.通过对消融实验结果的分析,证明了本文所提方法的有效性.

表3 消融实验结果(%)Table 3 Results of ablation experiments (%)

3.6 模型有效性分析

为了进一步验证MHSA 机制和句法关系对模型结果的影响,本文对两个样例的关键过程进行了可视化展示,具体样例如图4~6 所示.

图4 注意力可视化样例Fig.4 Sample of attention visualization

1)图4 呈现了实验数据中某问题对应语句片段的注意力可视化样例,其中颜色越深,代表它的注意力权重越高,对于模型正确作答越重要.图4(a)为引入MHSA 机制的示例,图4(b)为去掉MHSA机制的示例.

显然,引入MHSA 机制后,模型不仅关注问题中出现的词汇,而且也能捕获带有观点类文字线索的词汇,例如“逃匿”、“逃避”;而去掉MHSA 机制后,模型仅关注“文x1”、“支付” 等在问题中出现的词汇,对观点类文字线索的关注较少.因此,引入MHSA 机制可以使模型更好地回答观点类问题.

2)图5 展示出实验数据集中一个真实语句片段生成的关联要素关系图样例,图5(a)为融入依存句法关系和要素相似度的示例,图5(b)为DFGN生成的句子示例.

图5 关联要素关系图样例Fig.5 Sample of related element graph

图5(a)根据本文提出的关联规则将各要素进行连接,可得到“15.2”、“14.9”、“12.8”在句法上存在并列关系,“近端”、“中端”和“末端”间的相似度大于η,根据关系图构建规则可将这3 个要素连接.基于该图,模型可从问题要素“保修单”出发,得到“保修单-末端-12.8”线索关系.图5(b)仅考虑了同一句子中的所有要素以及不同句子中的相同要素,缺乏能够支撑问题与答案的线索关系.同时,为了更直观地展示推理过程中要素之间的注意力关系,进一步输出了上述样例的多跳推理注意力可视化,如图6 所示.

图6 多跳推理注意力可视化样例图Fig.6 Visible sample of multi-hop reasoning attention

从图6 可以看出,“保修单”与“近端”、“中端”、“15.2” 等要素具有较强的关联性,“近端”与“15.2”、“中端”、“末端” 等要素紧密关联,“中端”与“近端”、“15.2”、“末端” 等要素有紧密联系,“末端”与“中端”、“14.9”、“12.8” 等要素关联性较强.显然,可以进一步建立“保修单”与“末端”和“12.8”的关联关系.因此,本文提出的关联要素关系图能得到更有效的实验结果.

4 结束语

本文针对阅读理解任务中的观点类问题以及答案依据挖掘展开研究,提出了一种基于MHSA 与句法关系增强的多任务阅读理解模型.通过引入MHSA 和RCNN,改进了观点类问题的解答方法;利用句法关系与其他要素关系构建关联要素关系图,并基于关联要素关系图进行多跳推理,优化了答案依据挖掘模型;最后将两个任务进行联合优化学习,建立了基于多任务联合学习的阅读理解模型.在CAIL2020 阅读理解数据集和HotpotQA 数据集上的成功应用,验证了所提方法的有效性.

在观点类问题中,仅通过MHSA 机制挖掘文章中观点类问题的文字线索可能还不够充分.在未来工作中,将尝试利用图神经网络来进一步挖掘文章中观点类文字线索;答案依据挖掘对于阅读理解的可解释性具有重要意义,下一步将引入一些外部知识库[27]和其他推理方法来探索更有效的答案依据挖掘方法.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!