Denoising Distantly Supervised Open-Domain Question Answering 阅读报告

简介

Denoising Distantly Supervised Open-Domain Question Answering 这篇文章是 清华的林衍凯同学和刘知远老师团队在 ACL2018 上发表的文章, 主要解决 开放问答领域中的 远程监督的噪声问题。原文链接

模型动机

1) 现在的阅读理解,严重依赖于提前提供好的段落,这个和现实中的问答情况不符。

Despite their success, existing reading comprehension systems rely on pre-identified relevant texts, which do not always exist in real-world question answering (QA) scenarios.

2) 针对上述情况,斯坦福的陈丹琦提出基于远程监督的开放域自动问答系统(DS-QA)。首先从维基百科当中找到相关的信息,然后使用阅读理解的技术去提取答案

Chen et al. (2017) propose a distantly supervised open-domain question answering (DS-QA) system which uses information retrieval technique to obtain relevant text from Wikipedia, and then applies reading comprehension technique to extract the answer.

3)DS-QA的严重的不足是:远程监督带来了大量的噪音。

Although DS-QA proposes an effective strategy to collect relevant texts automatically, it always suffers from the noise issue.

4)一些现存的DS-QA系统,仅仅只是选取最相似的段落,然后对其进行阅读理解。而没有综合考虑多个段落。而往往一个问题的答案会在多个段落中提到(mentioned)

These methods only extract the answer according to the most related paragraph. … In fact, the correct answer is often mentioned in multiple paragraphs, and different aspects of the question may be answered in several paragraphs.

本文贡献

本文提出了由粗到细的远程监督开放域问答模型(coarseto-fine denoising model for DS-QA),

  • 首先通过信息检索找到一些跟问题相关的段落
  • 使用所有检索到的段落,做快速阅读,并淘汰噪音段落
  • 使用精读算法(即阅读理解的算法)在上述段落中的各个段落进行精度。
  • 综合各个段落得到的答案,给出最终答案

The overview of the model

本文在Quasar-T、SearchQA、TriviaQA三个数据集效果上显示了显著的提升。并将代码公布到了Github

模型详解

模型分为两部分:1)段落选择器(Paragraph Selector) 和2)段落阅读器(Paragraph Reader)。

假设问题为$q$,选择到的段落为$P={p_1,p_2,\cdots,p_m}$, 答案为$a$

段落选择器的目标是,给定$q$,计算$P$中每个段落是相关段落的概率,即:$\text{Pr}(p_i|q,P)$

段落阅读器的目标是,给定$q$,计算$P$中每个段落$p_i$中得到答案$a$的概率,即:$\text{Pr}(a|q,p_i)$

综上,给定$q$,得到答案$a$的概率为:
$$\text{Pr}(a|q,P)=\sum_{p_i\in P}{\text{Pr}(a|q,p_i)\text{Pr}(p_i|q,P)}$$

段落选择器

编码

使用全连接网络(MLP)或循环神经网络(RNN)对问题和段落进行了编码。并对问题$q$做了self attention

最后,通过交互、池化和softmax求的概率
$$\text{Pr}(p_i|q,P)=\text{softmax}(\text{max}_j{(p_i W q)})$$

段落阅读器

段落阅读实际上是选择一个span,选择span的头尾指针。即
$$\text{Pr}(a|q,p_i) = P_s(a_s)P_e(a_e)$$
其中,头尾概率的算法分别是:
$$P_s(j) = \text{softmax}(p^j_i W_s q)$$
$$P_e(j) = \text{softmax}(p^j_i W_e q)$$

因为多多个段落进行阅读,所以可能会有多个不同的答案。这里作者使用了两种方式,
一种是选取最大值,另一种是求和。
最大值
$$\text{Pr}(a|q,p_i) = \max_j P_s(a^j_s)P_e(a^j_e)$$
求和
$$\text{Pr}(a|q,p_i) = \sum_j P_s(a^j_s)P_e(a^j_e)$$

损失函数

随时函数的定义即为$\text{Pr}(a|q,P)$的对数损失logloss
$$L(\theta) = - \sum \text{Pr}(a|q,P)-\alpha R(P)$$

其中$R(P)$是段落选择器的正则化项。定义为概率$\text{Pr}(p_i|q,P)$和段落中实际包含答案个数的倒数$\chi_i = \frac{1}{c_P}$之间的正则化KL散度,即:

$$R(P)=\sum_{p_i \in P}\chi_i \log\frac{\chi_i}{\text{Pr}(p_i|q,P)}$$

文章使用了Adam优化器进行优化。

一些细节

  1. 文章的模型定义为Our+FULLOur+AVG,前者为原文的模型,后者将所有的段落看做相同的均匀分布。在训练前者时,先在后者的基础上在训练集上训练10代。
  2. Quasar-T, SearchQA and TriviaQA 三个数据集的方法和Wang等人的相同,即找到100个候选段落。而CuratedTREC and WebQuestions数据集使用的是2016年12月21日维基百科的语料,并选取了50个作为候选答案,并使用了Lucene作为检索引擎。

    Each question is compared to 100 sentence-level candidate passages, retrieved by their IR model from the ClueWeb09 data source, to extract the answer.

  3. 模型的分开训练版本为Our+SINGLE或者Our+INDEP(这里不知道为什么文中说法不统一)。其表示将段落选择器段落阅读器的两个网络分开训练。因为应用了相同的目标函数,所以它们的表现相似

结论和未来工作

本文提出了一个去噪的远程监督的开放域问答系统。并取得了不错的效果

  • 未来工作一:更加精细的段落重排序算法。
  • 未来工作二:加入先验知识。
文章作者: Victor Zhang
文章链接: http://cupdish.com/2018/12/20/denoising-review/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Cupdish.com