《基于BiDAF多文档重排序的阅读理解模型》论文阅读

0 引言

目前的机器学习方法主要有两类:抽取式和生成式,抽取式通过给定问题以及相关的文章进行训练,让机器具备阅读的能力,并对提出的新问题,在相关文章中抽取出相应的答案。另一种是生成式,从理论_上来说不受知识的局限,对于问题自动生成答案,但是生成式有时产生的答案答非所问,句式不通,不能很好地体现出人类的思维逻辑以及自然表述的特点。

在本文中,提出了一种基于BiDAF模型的RBiDAF机器阅读理解模型。该模型是一-种抽取式的机器阅读理解模型,在BiDAF模型四层网络框架的基础,上添加了ParaRanking层,针对ParaRank-ing,本文提出了多特征融合的ParaRanking 算法,此外本文还在答案预测层,提出了基于先验知识的多答案交叉验证算法,进而对答案进行综合预测。

1 机器阅读理解和相关工作

自斯坦福机器阅读理解数据集SQuAD问世以来,经过谷歌、微软、百度、科大讯飞、腾讯、斯坦福大学等在内的众多研究机构的不懈努力,形成了“词向量化-语义编码-语义交互-答案预测”这样一-套四层机器阅读理解模型体系。该体系的主要思想是:首先将自然文本表示为可计算的向量,其次融合问题向量与支撑文档向量来学习到语义交互信息,最后根据交互信息预测答案的位置或逐一输出最大概率的字词来生成答案。

词向量化层(Word-Embedder) 的作用是使用词向量技术将分词后的自然文本转化为稠密、连续且可计算的低维向量。

文本编码层(Encoder)
的作用是进行语义加工,向量化层输出的结果是一串独立的词向量序列,而编码层根据这些词向量捕捉词与词的前后语义关系,并把这种语义关系融入词向量中,生成一串互相关联的文本编码序列。

语义交互层(Interaction-Layer)
是整个模型体系中最重要的一环。在进入这一层之前,问题与给定支撑文档在大多数情况下是分别独立进行向量转化与语义编码的。当然,在有些模型中,问题词向量序列也会被提前融合到文档向量中。当前大部分研究工作集中在语义交互层的设计上,在这一层,将最终得到混合两者语义的交互向量。此外,交互向量也时常与未交互前的问题编码向量直接拼接,以强调问题语义的重要性。

答案预测层(Answer-Layer)负责根据语义交互向量产出 最终的答案。目前,答案预测模型主要是生成模型与边界模型(边界模型常用的有Pointer Network指出答案所在的开始、结束位置)。答案预测层将答案均视作一串词序列,生成模型逐个预测该序列中每个词应使用给定文档中哪个词进行填充,每次预测均基于之前预测完成的结果。边界模型则相当于一个简化的生成模型,其预先假定问题都可以使用给定文档中的一个连续短语或句子进行回答,因此只需预测答案的起点与终点词的位置即可。目前,边界模型的预测效率与结果均好于生成模型。

以下作者对比了近年来在SQuAD榜上的部分阅读理解模型:

Match-LSTM(2016提出, 发表于ICLR 17)

Match-LSTM是首个应用于SQuAD数据的端到端机器阅读理解模型,并成功超越原有使用人工特征进行答案抽取的基线模型。该模型的特点是:(1)在文本编码层使用单向LSTM进行语义建模;(2)在语义交互层对支撑文档中的每个词计算该词在问题编码向量上的注意力分配向量,将这一注意力分配向量与问题编码向量点乘获得文档词–问题交互向量,并再拼接上文档词编码向量,最后用一个新的单向LSTM网络对拼接后的向量进行二次语义编码;(3)用反向LSTM重复(1)、(2)操作,并将正反向二次语义编码向量拼接。

BIDAF(2016提出, 发表于ICLR 17)

BIDAF可以视作对Match-LSTM匹配模型的改进。其主要变化在于:(1)词向量化层增加了对字的向量化;(2)在语义交互 充了问题中每个词在文档编码向量上的注意力分配向量, 以提升文档词-问题交互向量的语义交互程度;(3)改用双向LSTM网络二次语义编码。与单向LSTM相比,双向LSTM可以同时提取到每个词相关的上下文信息。

R-Net(发表于ACL 17)

R-Net是对Match-LSTM匹配模型的改进。这一模型最大的特点是采用了双语义交互层设计。在一级语义交互层,R-Net仿照Match-LSTM实现将问题信息融入到每个文档词中去;而在二级语义交互层,R-Net则使用相同办法将已经获得的文档词–问题语义编码向量再度与问题编码向量二次融合,进一步加强语义匹配。

QANet(发表于ICLR 18)

QANet则是一种在BIDAF模型基础上为追求效率而设计的模型。该模型非常创新地在文本编码层使用CNN与Multi-Head Self-Attention机制实现语义编码,由于CNN可以捕捉局部特征、Self-Attention能够捕捉全局特征,因此完全可以用
它们替代传统的LSTM网络。此外,由于CNN的建模效率显著高于LSTM网络,该模型以在更大规模的数据集上进行深度学习——泛化能力得到了进一步提升。这一模型可以在SQuAD数据集上达到训练速度提高3〜13倍!推理速度提高4~9倍,且获得与先前基于LSTM网络媲美的精度。

V-net(百度公司发表于ACL 18)

V-net是一种新的多文档校验深度神经网络建模方法,该模型通过注意力使不同候选文档抽取的答案能够互相印证,从而预测出更好的答案。

2 数据探索和数据处理

百度数据集与其他数据集很大的区别在于,每篇文章中包含了很多个段落,而SQuAD数据集的支撑文档直接是一个最相关段落,微软数据集MS MARCO则是若干篇只有一个段落的文章。因
此,在百度机器阅读理解任务中,需要在主流四层体系的基础上,增加一个段落定位层。

在DuReader原文中提到,使用recall指标增加的段落定位层,并使用recall指标进行段落选择,可以使模型的效果至少10%

3 RBiDAF模型设计与实现

本文提出的基于BiDAF模型的RBiDAF模型,主要是在BiDAF模型的基础上添加了ParaRanking,在该层提出了ParaRanking算法,从而对候选段落进行排序(ParaRanking)操作,进而筛选出含答案概率更高的候选段落。

此外在答案预测层,提出了基于先验知识的多答案交叉验证(MACVerify)算法,从而对答案进行综合预测。

3.1 ParaRanking算法

DuReader数据集中,每一个问题对应多个段落,尤其是在Search数据集中,问题和段落的比接近1:57,所以应该尽量检索出含有答案的段落,从而减小候选段落集的数据规模。在这里本文提出了多特征融合的ParaRanking算法,图8是ParaRanking算法的大体架构,主要包括段落过滤、段落重组、语义匹配、最大覆盖度、特征加权以及多文档投票。

3.1.1 段落过滤

本文利用特征工程根据问题类型对不相关段落进行过滤,例如,实体类型的问题中,问题中的关键词是“联系方式”、“热线”,那么本文利用正则表达式将不含电话号码的段落进行过滤,最终本文设计了23条规则对段落进行初步过滤。

3.1.2段落重组

DuReader数据集中的段落长度极度不平衡,有些段落的长度很短,这种情况会造成段落的上下文信息缺失,不利于模型的Match操作。而且本文通过观察训练集中答案的分布,发现有些答案是跨段落的,尤其是描述类的问题,所以如果仅仅以某-一个原始段落作为预测的输人,那么将无法解决答案跨段落的问题,因此本文将原始的段落进行重组,重组后长度控制在长度splice_ L之内。

3.1.3语义匹配

问题(question)与段落(paragraph)间的匹配不仅要考虑问题和段落之间的显式关系,还要考虑两者之间的隐式关系,即两者之间的语义关系。例如,question:北京2017年的商业住房的均价是多少?paragraph:据我所知是四万元一平。上例question和paragraph之间的最大覆盖度虽然为0,但是两者之间具有极大的语义相关性,并且“四万元一平”极有可能是答案。所以为了克服字词匹配上的弊端,本文选择利用深度神经网络计算question和para-graph之间的语义相关性。

由于ARC-II保留了词序信息,更具一般性,所以本文采用ARC-II文本匹配模型对question以及paragraph之间的语义相关度进行计算,在第一层中,首先把卷积窗口设定为k1,然后对句子Squestion和句子Sprangraph中所有组合的二维矩阵进行卷积,每一个二维矩阵输出一个值(文中把这个称作一维卷积,因为实际上是把组合中所有词语的vector排成一行进行的卷积计算),构成Layer-2,然后进行2X2的MaxPooling。后续的卷积层均是传统的二维卷积操作,与第一层卷积层后的简单MaxPooling方式不同,后续的卷积层的Pooling是一种动态Pooling方法。输出固定维度的向量,接着输人MLP层,最终得到文本相似度分数ps。

3.1.4 最大覆盖度

本文沿用了基线模型的最大覆盖度算法,DuReader的基线模型采用问题和段落的最大词级别的覆盖度算法对段落进行排序,然后对每一个篇章挑选top-1作为模型的输入,本文将问题与段落的最大覆盖度作为ParaRanking的一个重要特征值定义为pc,其中不同于基线模型中最大覆盖度算法的是,这里分别选择了词和字两个粒度进行最大覆盖度计算,两者相加作为最终pc的值。

3.1.5 特征加权

首先通过分析DuReader的训练集可知,在描述类问题的答案中存在大量列表类型的答案,所以本文针对描述类问题识别出段落中的列表信息,并根据这一特征对段落的ParaRanking值进行加权,定义权值为B。
经过语义匹配、最大覆盖度计算以及特征加权可以得到问题和段落i的最终匹配得分,如式下式所示。

3.1.6 多文档投票

本文两次用到多文档投票,一次在ParaRanking操作中,一次在答案预测中,前后两次所用到的方法有些不同。使用多文档投票是基于某一问题的正确答案在多个段落中会多次出现这一假设。首先 定义候选段落集合为Dp,对于段落i属于Dp,那么每一个段落的投票得分如下式所示。

image

所以最终得分段落,的最终得分为:

image

其中,f函数是指数平滑函数,最终经过ParaRanking 算法 ,每一个段落,i(属于Dp)会生成一个分score,随后根据score选择输人模型的段落集合Df,并且Df数量远远小于Dp。

image

image

RBiDAF模型架构

image

5 总结与展望

本文提出了一种基于BiDAF模型的RBiDAF机器阅读理解模型。首先对DuReader数据集进行分析并对数据进行清洗,从而提取出有利于模型训练的特征;然后本文对RBiDAF机器阅读理解模型进行相关设计和实现,该模型的创新点在于在BiDAF模型四层网络框架的基础上添加了ParaRanking层,在该层,本文提出了基于多特征融合的ParaRanking算法。此外本文还在答案预测层,提出了基于先验知识的MACVerify算法,利用该算法对答案进行综合预测。最后经过实验和分析,RBiDAF模型能够产生有效的答案。在未来的工作中,首先将尝试实验多种词嵌入方法,很多学者证实选择合适的词嵌人方法对该任务会产生很大的影响;其次尝试采用机器翻译模型与对抗式生成模型(GAN)增强训练语料;最后在文本交互层融合双向注意力(Bi-Attention)与多轮匹配机制(Multi-Matching),从而可以在多文档场景下取得更好的效果。

论文地址

Author: CinKate
Link: http://renxingkai.github.io/2019/04/03/rbidaf/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.