Document Modeling with Graph Attention Networks for Multi-grained Machine Reading Comprehension 论文阅读

目录

论文认为存在的问题:

数据处理:

模型框架:

多粒度文档建模思想:

补充:有关self-attention的一些数学推导:

 数据的输入

Graph Encoder 讲解

实验结果:

下一步工作:


来源:ACL2020

机构:哈尔滨工业大学

论文认为存在的问题:

NQ数据集要求模型得到两个粒度的答案,分别是涵盖推断答案所需的所有信息的长答案(Long Answer),以及使用一个或者多个实体回答问题的短答案(Short Answer)。对于长答案,问答系统需要在给定的长答案候选项中进行选择,短答案则是在长答案内部得到。

下图给出了NQ数据集中的一个例子。

目前解决NQ任务的两类方法主要可以分为两大类,如下图所示,第一类是Pipeline方法,模型首先在长答案候选集合中选出长答案,然后再在选中的长答案内部抽取短答案;第二类是基于BERT的方法,模型直接在文档抽取短答案,然后直接在长答案候选集中选出包含短答案的长答案。

然而,以上两种方法都是将长短答案两个子任务独立考虑,而并没有想办法建模两个粒度答案之间的联系。由于长答案是文档中的段落,短答案是词片段,这里可以很自然用文档使用层次结构(文档->段落->句子->词)表示,并且用段落和词来建模两个粒度答案。由此,论文提出了基于图注意力网络和BERT的多粒度阅读理解框架,并且通过联合训练来建模两个粒度答案之间的联系。

数据处理:

由于NQ中文档的长度很长,和其他基于BERT的阅读理解模型一样,我们首先将问题和文档进行切分,然后将文档切成多个片段进行处理。由于我们的做法基于BERT,所以忽略掉维基百科文章中的所有HTML标签,然后在每个长答案候选项之前添加特殊标识符,形式如“[Paragraph=N]”,“[Table=N]”以及“[List=N]”。

通过判断文档片段中是否存在长答案和短答案,我们将训练数据的答案类别分为以下五类,分别是:

1)文档片段中包含所有短答案实体;2)文档片段中包含长答案,短答案为“yes”;3)文档片段中包含长答案,短答案为“no”;4)文档片段只包含长答案,没有短答案;5)文档不包含任何答案。

通过这种处理方式,我们得到的训练数据绝大部分都为第五种答案类型,为了平衡训练样本的类别,我们将这种不包含答案的样例随机筛选掉97%,最后得到大约660,000训练样例,其中有350,000条训练样例包含长答案,270,000条训练样例包含短答案。

模型框架:

我们针对这种NQ数据集提出了一个新的框架,整体系统架构如上图所示,我们将问题以及文档的每个片段独立的输入到模型中,通过BERT编码器进行编码,得到问题和文档片段的初步表示,然后用我们提出的图编码器用得到的表示进一步建模,最终得到一系列结构化的表示,汇总到答案选择模块得到答案。

上图出了我们图编码器的内部结构。每一层编码器都由三个自注意力(Self-attention)层,一个图信息整合(Graph Integration)层,以及一个前馈神经网络(Feed-forward)层组成。

多粒度文档建模思想:

该思想主要来源于文档自身的层次结构特性,通常来讲,文档可以被分解成一系列段落,而段落可以进一步被分解成句子以及词,所以可以很自然的将文档先表示为树结构,分别有以上四种粒度的节点。由于长答案都是文档中的段落,短答案都是文档中的词片段,所以段落粒度节点的信息可以表示长答案,短答案的信息也可以从词粒度节点中获得。

在以上得到的树结构基础上,我们进一步的加入了词粒度节点和段落粒度节点的边,词粒度节点和文档级别粒度的边,以及句子粒度节点到文档粒度节点的边,这些边在图中都是双向边。通过将树结构进一步建模成图结构,图中的每两个节点的距离都小于等于2,也就是说信息可以在两步之内进行传递。

补充:有关self-attention的一些数学推导:

如上图,在self-attention layer 里,每一个 input 都乘上3个不同的 transformation (不同的 matrix),产生三个不同量:qkv

得到qkv之后,就拿每个 query q 去对每个 key k 做 attention 。 如下图。

Scaled Dot-Product Attention:

如上图,接下来对a  softmax 处理,得到\hat{a}

如上,再通过如下运算,可得到考虑了全局信息的序列(中的第一个元素)。

如果让b^1只考虑前三个输入的影响,如何做呢?很简单,让其余的\hat{a}在运算时为0即可。

b_1,b_2...这些可以同时计算(Can be parallell computed)。

推理过程如下

如上,用大写符号QKV,I代表变量叠加后的矩阵。

Multi-head Self-attention

如上,使用 2 个 head 进行举例。得到了两个b^i.

最后,可以再对两个 head 进行如上操作。

之所以用 Multi-head ,是希望每个 head 的关注点不同:有些看长时间的,有些看短期内的。

Positional Encoding

李老师提供了一种讲法,先讲 concat ,最后达到了与原论文相同的效果(转化回原论文的式子e^i+a^i)。

Transformer的encoder 多层叠加起来就是bert。

 数据的输入

定义六元组:(c,S,l,s,e,t),声明D_i为文章的第i个document 片段

                                                                                            c=([CSL],Q1,...Q|Q|,[SEP],Di,1,...,Di,|Di|,[SEP])   

                                                                                                                               |Q|+|D_i|=512

S表示在D_i中长答案的候选集,l\in S说明它是在S中的候选实例。

s,e\in\left \{ 0,1,...,511 \right \}为目标答案的位置指针。t\in\left \{ 0,1,2,3,4\right \}是答案的类型。

如果包含多个短答案,把s指向第一个答案的最左端,e指向最后一个答案的最右端。

我们的目标是让model知道那个是长答案l,以及短答案的位置s,el中。最后能够进行分数评估。

Graph Encoder 讲解

我们再看回上面两个图,开始大概讲下Graph Encoder。

定义一个图G=(\nu,\varepsilon,X),图是由节点\nu,节点featuresX=(h_1,...,h_{|\nu|}),和一组有向边集合\varepsilon=(\varepsilon_1,...,\varepsilon_K)(其中k为边的数量)组成。每个representation h_i\in R^{d_h}i\in\nu),d_h是模型的hidden size。

图中的self-attention是multi-head attention,论文中描述其中一个attention heads。如果边从j到i,则系数e_{ij}计算公式如下:

计算出所有的e_{ij}之后,softmax所有与i相邻的边j系数e_{ij}。同时也允许self-loop更新。

之后输出attention head{\ z}_i

上面出现的 W^QW^KW^V\in R^{d_h\times d_z},其中d_z是其中一个head的size,即d_z\times m=d_h

最后我们得到的multi-head attention 结果z_i^\prime\in R^{d_h}z_i^\prime用m个head结果串联起来的。

 

上图左边的图表是Graph Integration layer。右边的图表显示更新paragraph

node时传入信息的更新示图。实线表示文档层次树结构中的边,虚线表示我们额外添加的边。

我们利用Integration layer,意味着不同粒度级别的embedding可以利用其他节点的embedding。该层可以构建不同粒度节点答案之间的依赖性。

最后我们把Integration layer的输出和输入concatenate起来,输入feed-forward layer

Forward layer包含了两个线性转换函数中间加个GELU(Gaussian Error Linear Unit)激活函数。

论文受到positional encoding的启发,论文引入了一种新的关系embedding为了对多粒度文档结构中节点之间的相对位置信息进行建模。

我们让边附带上相对位置的信息。并修改了e_{ij}{\ z}_i的公式:

上面公式中的a_{ij}^Ka_{ij}^V\in R^{d_z},代表learnable embedding。我们的关系向量主要加入了文档的结构信息,比如段落节点在接受信息时会考虑另外的节点是这个段落的第几个句子或者词。通过这种方式,我们将文档的结构信息在模型的表示中进一步的加强。

Graph Initialization layer,该层主要提供一个在文档的树结构上自底向上的average-pooling的初始化,因为bert只能提供token-level的embedding,主要是用来获得其他粒度的初始表示。论文使用o_i\in\left \{ 0,1,2,3 \right \}代表不同类型的节点i,分别代表token、sentence、paragraph以及document。初始化公式为:

a_{ij}b_{oi}\in R^{d_h},分别代表了relational embedding和node type embedding。

Output layer 目标函数的预测分布定义为负对数概率之和,最后取平均。计算公式如下:

p_s(s|c,S)p_e(e|c,S)p_t(l|c,S)p_l(t|c,S)各自代表了短答案的开始结束位置的概率,长答案的概率,答案的类型的概率

计算概率的公式如上,其中f_s 是打分函数,来自graph encoder的最后一层。相似的,其他不同粒度也有类似的打分函数。如果没有短答案,我们将把s和e的索引设置为[CLS]的token,同时将[CLS]标记作为第一个句子和段落,如果没有长答案论文也将段落级的[CLS]作为长答案。

之后获取doc的分数g(c,S),长答案g(c,S,l),短答案g(c,S,s,e)

 论文会用g(c,S)g(c,S,l)的和来选择高分数的长答案,g(c,S)考虑作为doc文本的一个偏置。我们会使用g(c,S,s,e)去选择最后的短答案在被选择长答案的区间内。

最后,论文依赖于官方的NQ评估脚本来设置阈值,将长答案和短答案的预测区分为正面和负面。

到这里,Graph Encoder大致就讲完了

实验结果:

在得到这些不同粒度的表示后,我们通过对这些表示进行打分,再进行模型预测。我们进行预测时使用Pipeline策略:先预测长答案,再预测短答案,与之前基于BERT的方法中预测短答案再从长答案候选项中选择不同,我们在实验部分将后者视为基线模型。

使用了三种模型:Model-I: A BERT baseline

Model-II: pipeline model 只有graph  initialization,method去获得sentence、paragraph、document的representation.

Model-III: 在Model-II的基础上增加了两层 graph encoder

Bert encoder 使用了:

bert-base-uncasedBERT-base-uncased model finetuned on SQuAD 2.0

bert-large-uncaseda BERT-large-uncased model finetuned on SQuAD 2.0

bert-synGoogle’s BERT-large-uncased model pre-trained on SQuAD2.0 with N-Gram Masking and Synthetic Self-Training.

 

由于NQ数据集不提供sentence层面的信息,我们额外使用spacy工具包作为句子切分器来获取句子的边界。

上图评估model的层数对F1的影响, 0层设置意味着只使用initialization

method来获取graph representations。我们将其归因于我们提出的图中每两个节点之间的信息可以通过不超过两条边,增加随机初始化参数的大小可能不利于BERT的fine-tuning.

上图中下面都是减去的layer做贡献度分析,对结果的影响。

下一步工作:

改进表示文档的graph structure以及document-level pretraining

tasks也是我们未来的研究目标。此外,当前存在的方法实际上无法在不截断或将其切片为片段的情况下处理长文档。如何对长文档建模仍然是一个需要解决的问题。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
bi-vldoc是一种用于视觉丰富文档的双向视觉-语言建模方法。 bi-vldoc通过将视觉信息与语言信息结合起来,能够有效地处理视觉丰富的文档。传统的自然语言处理方法通常只处理文本信息,忽视了文档中的视觉元素。而bi-vldoc能够同时考虑文本和图像,并将它们作为输入进行建模,从而更全面地理解和分析文档内容。 bi-vldoc的关键思想是利用双向建模技术。它使用了两个模型:一个是基于视觉的模型,另一个是基于语言的模型。这两个模型相互配合,通过互相补充的方式提高了整体的建模效果。 基于视觉的模型主要用于从图像中提取视觉特征,并将其编码为向量表示。这些向量表示包含了图像的语义信息,能够用于理解图像中的内容。 基于语言的模型主要用于处理文本信息。它能够将文本编码为向量表示,并用于生成关于文本的预测。 在训练时,bi-vldoc使用了大量的带有标注的视觉丰富文档数据集。通过最大化真实标注的概率来训练模型,使其能够根据给定的文档内容生成正确的视觉和语言输出。 bi-vldoc在实际应用中具有广泛的应用前景。例如,在图像描述生成中,它可以根据图像内容生成相关的文本描述。在问答系统中,它可以回答关于图像内容的问题。此外,bi-vldoc还可以应用于文档分类、信息检索等领域,提供更准确和全面的分析和理解能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值