《R-NET: Machine Reading Comprehension with Self-Matching Networks》阅读笔记

《R-NET: Machine Reading Comprehension with Self-Matching Networks》阅读笔记

摘要:

这一篇介绍R-NET,一个端到端的神经网络,目标任务是机器阅读理解任务。

本文特色是,首先设置一个门控注意力网络(gated attention-based recurrent networks)获得包含问题信息的文章表征;

其次设置一个自匹配的注意力机制(self-matching attention),用与文章自己匹配的方式来改善文章表征;

最后,我们设置了一个答案指针网络(pointer networks)来定位文章中的答案。

本文模型在SQuAD和MS-MARCO两个数据集上都获得了最好的结果。

 

R-NET: Machine Reading Comprehension with Self-Matching Networks

 

In this paper, we introduce R-NET, an end-to-end neural networks model for reading comprehension style question answering, which aims to answer questions from a given passage. We first match the question and passage with gated attention-based recurrent networks to obtain the question-aware passage representation. Then we propose a self-matching attention mechanism to refine the representation by matching the passage against itself, which effectively encodes information from the whole passage. We finally employ the pointer networks to locate the positions of answers from the passages. We conduct extensive experiments on the SQuAD and MS-MARCO datasets, and our model achieves the best results on both datasets among all published results.

 

keywords:R-NET ; Machine Reading Comprehension ; Attention Mechanism

 

 

介绍

机器阅读理解任务

SQuAD

斯坦福大学2016年开放的数据集。

数据集从536篇Wikipedia的文章中获取,每篇文章分成若干段,并对每段内容提出5个问题,总计有100000+个问题-文章对。

SQuAD实例

 

任务描述

对于 完形填空式问答任务来说,提供一个问题和一篇文档,我们的任务是预测 信息源于文章的 问题的答案

SQuAD数据集中的答案总是文章中的一个片段,答案内容常常包括非实体或者很长的短语。这种设置可以训练我们的理解能力和推理能力。上图就是SQuAD的一个例子。

在MS-MARCO数据集中,会提供从Bing搜索上找到的好几个与问题相关的文章,而且MS-MARCO的答案也往往是人类总结出来的,可能不是文章的某个子段。

R-NET 框架

首先提供R-NET的整体框架。

整体结构

我们再介绍整体结构。

1.Question and Passage Encoder

问题与文章的编码层。

我们首先有问题表征,文章表征

使用GloVe将问题表征和文章表征进行嵌入,得到词级嵌入

字符级嵌入由应用在字符级嵌入的双向RNN的最终隐藏状态生成

字符级嵌入主要解决未登录词的表征问题。

使用双向RNN来获得问题和文章的新表征,如下

 

这一层的含义是,让问题和文章中的每一个词都包含自己的上下文的信息。

我们选择使用GRU作为RNN的模型,因为它具有类似于LSTM的性能,计算起来花费却很小。

2.Gated Attention-Based Recurrent Networks

门控的基于注意力的循环网络。

这是基于注意力的循环网络的一个变体(指加了一个额外的门)。

我们从上一层得到了问题和文章的表征:

目的是用两个表征生成句子对表征  ,他的计算方法是RNN:

 

其中的输入,计算方式如下:

其中问题的第j个单词、文章的第t个词与(上一个词的句子对表征)加权相加,得到的 作为文章第 t 个单词的注意力分数

对注意力分数取softmax,然后将问题的每个词乘以他的注意力分数,相加得到新的输入

 

在实际使用中,它的RNN网络的输入向量实际上由两个向量连接而成,如下

 

为了过滤掉不重要的信息,我们加入了一个额外的门,计算方法如下

来代替我们把这整个过程称为门控注意力网络

这一层的含义是,为了使得文章的每个单词与问题联系起来,我们使用门控注意力层使得文章中的每个词的表征 包含了以注意力分数为权重的问题的信息,丰富了表征的含义。

 

3.Self-Matching Attention

自匹配注意力层。

这一层与上一层几乎相同,唯一的区别是将文章相对于问题的attention改为文章与文章本身的attention,即自匹配。

文章的上下文信息是用双向RNN获取的,因为双向RNN只能得到较近的词的信息,所以用自匹配层,将文章的每个单词与整篇文章做attention,这样得到的表征会无视距离包含整篇文章的信息。

我们从上一层得到了文章的新表征:

接着,我们要得到新包含文章本身信息的文章新表征,计算方式为双向RNN :

 

其中,的计算方式如下:

具体思路同上一层,将文章的第j个词与文章的第t个词的表征加权相加,最后得到的,是文章第t个词相对于文章的第j个词的注意力分数,对注意力分数取softmax,,然后将文章的每个词乘以他的注意力分数,相加得到新的输入

最后同样是在biRNN的基础上增加了一个额外的门。我们把这个过程称为自匹配注意力层。

这一层的含义是,使得文章的每个单词可以包含整篇文章的信息,丰富表征的含义。

 

4.Output Layer

输出层,答案指针层。

这一步依然是做attention,门控注意力层是做问题与文章之间的attention,自匹配层是做文章与文章之间的attention,答案层则是做文章与答案之间的attention,哪些词与答案最接近,他就最有可能是答案。

 

答案指针层的思想是使用attention机制来预测答案的开始和结束位置,形成的片段就是答案。

为了得到答案的位置,我们使用如下公式计算位置:

其中,表示答案的上一个单词的隐藏状态,答案对文章取attention,得到注意力分数,最后我们不是将注意力分数与文章向量相乘,而是直接获得注意力分数里最大的作为答案的预测位置。

这个网络的初始状态向量是由attention-pooling得来的,具体公式如下:

其中我们将作为初始状态向量,的计算方式为:

预测了答案的起始位置和终止位置之后,中间的片段就是我们的预测答案。这就是答案指针层。

这一层的含义是,判断文章中谁对答案的注意力最高,将它预测为答案的位置,得到预测答案。

 

Experiment

r-net模型在SQuAD数据集上的实验结果如下:

r-net模型在MS-MARCO数据集上的实验结果如下:

 

结论

首先,我们提出了r-net这个网络模型,这个网络具有以下这些特点。

有一个问题与文章的encoder层,用于将文章与问题转换为包含各自上下文的信息的表征。

有一个门控注意力网络层,利用attention机制,用于使文章中的每个词包含问题的信息,获得丰富的表征。

有一个自匹配注意力层,利用attention机制,使得每个文章词对文章本身更加了解,解决biRNN得缺陷,获得语义更加丰富的表征。

有一个答案指针层,使用attention机制,确定答案的起始位置和终止位置,预测我们的答案。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值