其他分享
首页 > 其他分享> > 论文解读:A Self-Training Method for Machine Reading Comprehension with Soft Evidence Extraction

论文解读:A Self-Training Method for Machine Reading Comprehension with Soft Evidence Extraction

作者:互联网

论文解读:A Self-Training Method for Machine Reading Comprehension with Soft Evidence Extraction

摘要:
  深度神经网络网络在机器阅读理解(MRC)任务上得以成功应用,诸多经典的方法都是基于两个部分,一个是evidence extractor(证据抽取器),另一个是answer prediction(答案预测器)。其中前者目的是从上下文中寻找更相关的信息,后者则是根据抽取的信息生成答案。但是在一些是否问答或多项选择类型问答时,由于evidence extractor模块没有监督类信息使得训练并不简单。为了解决这个问题。我们提出一种Self-Training(自训练方法),通过迭代的过程自动生成evidence label实现对evidence extractor的模块的监督。在每一次迭代过程中,一个传统的MRC模型根据ground truth和noisy label进行训练,并将训练好的模型去预测一个结果作为下一个迭代过程的监督标签。

动机

  (1)机器阅读理解可以分为两个类:一个是基于抽取式问答,即根据question从passage中抽取一个span作为答案;另一种是非抽取式式,例如Yes/No是非类,或者选择类等。他们都基于一种范式,即在evidence extractor部分抽取证据信息,在answer prediction部分做预测。在抽取类MRC中,由于其有真实的span进行监督,因此很好训练;但是在非抽取式MRC中,数据集中只有答案,而没有在passage中的evidence span,这使得无法直接训练evidence extractor部分。

  (2)这一类问题属于典型的只知道结果(answer),但不知道中间正确结果(evidence label),因此传统的方法典型的有基于人工标注golden evidence,远程监督,以及使用强化学习自主地发现evidence等。但是这类方法(尤其是强化学习)训练非常不稳定;同时远程监督方法也会带来大量噪声;

  (3)Self-Training策略是一种迭代训练,在MRC任务中,即每次训练时,根据最终的结果golden answer以及上一轮预测得到的evidence label,一同进行训练;本轮预测的evidence label再次用于下一轮的;

方法:

Self-Training策略:

  在训练过程中,维护两个数据池,分别记做U(unlabeled data)和L(labeled data),两个数据池分别对应不包含evidence label和包含evidence label。首先在两个数据池上对MRC的base模型进行训练;其次训练好的模型对U数据池上数据进行预测;通过Selector模块挑选置信度最高的示例并转移到L数据池中。以此反复迭代,如下图所示:

base model

(1)输入question Q和document D,其中D包含若干个句子S。
(2)token attention:根据Q与D中第i个句子的每个token计算权重,并对第i个句子的所有token进行加权求和,得到每个句子的表示:

  其次,每个句子根据自身再次计算每个token之间的权重,并加权去和得到句子的表示:

(3)sentence-level attention:根据每个句子的表示,学习一个权重并对所有句子进行加权求和,得到整个文档的表示:

理解:句子被分配权重越高,说明该句子对预测的贡献越大。

loss

  loss分为两个部分,一个是根据golden answer使用negative log损失函数,这部分和传统的目标一样,本文记做task-specific loss

  第二部分是本文的核心,记做evidence loss:

  假设我们的目标是要挑选K个evidence sentence,我们一步步地计算loss。第一步step,挑选最合理的句子(理解为权重最大的)并计算loss,第二步step在剩余的句子上计算loss,而前面已经被挑选的句子则不再计算loss;最终所有step的loss进行平均,直到K个evidence sentence全部挑选完成。第二部分的loss公式可以定义为:

其中 D , Q , E D,Q,E D,Q,E 分别表示document,question和evidence label(0/1值), M K M^K MK表示mask。

  对于每一个step,均在unselected的句子上计算权重,不过要注意的是,其本质是在所有sentence上计算权重,但是为了不去计算已被挑选的sentence,则显式添加一个mask。因为在计算attention时,神经网络的输出维度是固定的,即sentence总的数量没法变,因此只能通过添加mask方法来控制已被挑选的句子不去计算attention,这部分比较类似于transformer中的mask,通过添加一个非常小的数使得其权重接近于0:


因此每个step的loss表示为:

其中mask矩阵中,已被挑选的句子设置为非常小的数(无穷小),未被挑选的句子则使用上一step的mask值:

最终模型的loss是task-specific和evidence两个loss的和。

Selector

  事实上,每一个迭代包含两个部分,一个就是上面介绍的训练,另一个就是在U数据池上进行预测,并挑选置信度高的。假设在一个包含evidence label的数据上,作者定义置信度为

即两个loss的负数的指数乘积,事实上其表示loss越小,其置信度就越高。对于预测的evidence label则可以通过上面的式子重新计算一次loss,并获得置信度,挑选两个loss分别都低于阈值的样本加入到L数据池中。

标签:loss,Training,训练,Self,evidence,Machine,挑选,label,句子
来源: https://blog.csdn.net/qq_36426650/article/details/113727778