V-NET 多文档阅读理解任务思路论文(上)

前言

之前我们短暂地说了一下 R-NET ,但是由于模型出来已久,各种解析也十分全面,因而有种拾人牙慧的感觉。为了更好地了解当前的阅读理解任务。我们关注一下此前在 MS MARCO 数据集上获取了第一名的百度 V-NET 模型。在找遍了全网,还是没有人对它进行解剖。现在我开始尝试解剖一下这个模型结构。并且尝试复现一下。


文章内容

Abstract
Machine reading comprehension (MRC) on real web data usually requires the machine to answer a question by analyzing multiple passages retrieved by search engine. Compared with MRC on a single passage, multi-passage MRC is more challenging, since we are likely to get multiple confusing answer candidates from different passages. To address this problem, we propose an end-to-end neural model that enables those answer candidates from different passages to verify each other based on their content representations. Specially, we jointly train three modules that can predict the final answer based on three factors: the answer boundary, the answer content and the cross-passage answer verification. The experimental results show that our method outperforms the baseline by a large margin and achieves the state-of-the-art performance on the English MS-MARCO dataset and the Chinese DuReader dataset, both of which are designed for MRC in real-world settings.

简而言之,百度指出如今基于网络数据的阅读理解任务通常都需要通过分析搜索引擎提供的多篇文章来提供相应的相对正确的回答。所以,相比起单文章的回答,我们通常会在多文章的阅读理解任务中遭遇到比较难以解决的问题。为了解决这个问题,百度提供了对应的端对端神经网络模型来让从多文章中找到的答案进行一次置信度的分析后,提供答案。模型包括了三部分,第一个是回答区域,回答的内容,以及多文档的答案认证。
而我们也准备就 V-NET 中的优点和缺点/可改进点进行描述。

V-NET 亮点

由上,这篇文章用了四个 module 也就是以下显示的四个模组,V-NET Structure
其中分别是:

  • 问题-文章对/Q-P pair
  • 指针网络/Pointer Network
  • 答案内容/Answer-content
  • 答案验证/多文档必须/Answer Verification

Q-P Pair

这次,我们先开始说一下其中的第一个 module ,也就是 Q-P 对。模型采用了 Seo 等人在 2016 年做的工作,[1]其中重点就是提出了 问题与文章配对的 Q-P Matching 模型。这个模型的特点是 提出了字符向量与文章向量,其中 character level CNN 负责将每个词映射到高维空间。然后再利用 Glove 将每个词映射到高维空间。然后把以上的 character embedding 和 word embedding 拼接起来,然后经过两次的 highway network 处理后,可以先得到对应的 passage 矩阵和 query 矩阵,然后经过处理以后。我们可以得到,文章中所需要的 $U^{Q}$ 和 $U^{P_{1}}$, 两者拼接起来以后,就可以得到相应的$v^{P_{n}}$ 。这个模组相对来说是目前最成熟的一种做法,能够将问题的信息与文章的信息相结合起来,通过类似人类找问题答案的方式来了解文章。

注意点

此前,我曾经研究过相关的 初始化向量的办法,我们可以从前人的主要工作中看到,一开始,做这个任务的人,都是想着将 passage 的内容化为序列,然后再带着 question 的对应信息,重新地将每个 passage 的词重新输入到 LSTM。然后再得到一次 passage 的 Encoding 信息。[2]利用 attention 机制的办法,将带有 question 的 passage 信息输入到 pointer net 中,从而得到想要的 answer 。在接近两年以后,其实方法大体上并没有什么改变,但是现在已经开始变成了,使用 BiLSTM 分别将每篇文章独自编码,以及每个问题进行独自编码:

我们可以从中得出矩阵相乘以后,得出的相似度矩阵。然后,V-NET 文章中再提出了将从上文提及到的 Bidirectional attention flow for machine comprehension 中提到的Q-A Pair 重新将其与刚刚提到的 $U^{Q}$ 和 $U^{P_{1}}$, 两者拼接起来以后得到的$v^{P_{n}}$ 。再次经过一轮 BiLSTM 层,也就是以以下的公式进行的处理:

可以得到更好的与上下文信息相关的 representation 。

答案范围确认 - 指针网络

为了找到文章中的答案所对应的 Golden Span 。 V-NET 使用了 [2] 中所提到的 pointer net 来计算每个词作为开头或者结尾的可能性。此外,需要注意的是,为了减少答案处于文章的开头或者结尾的负面日志概率,同时也是为了大大提高得到的 boundary 的信息,因此文章中使用以下公式进行处理。

其中 $N$ 是在数据中的样本个数,而 $y_{i}^{1}$ 和 $y_{i}^{2}$ 分别对应了答案区域的开头与结尾。然后我们就可以得到相应的答案。

注意点

其中 V-NET 所使用的 pointer-net 结构与 R-NET , QANET,以及猿辅导的 MARS 都相似。但是分别有其中的不同,因此我会在 阅读理解任务综述 这篇未来的文章中提及他们的差异点和优点缺点等。

由于 answer layer 并没有什么问题,所以,我们将在下篇文章中着重介绍一下 multi-answer verification layer 的核心要点。

谢谢阅览。

参考文献

[1] Min Joon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. 2016. Bidirectional attention flow for machine comprehension. arXiv preprint arXiv:1611.01603.
[2] Wang S, Jiang J. Machine comprehension using match-lstm and answer pointer[J]. arXiv preprint arXiv:1608.07905, 2016.

本文作者: Bon
本文地址https://bonxg.com/p/17.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

# Bon
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×