Efficient and Robust Question Answering from Minimal Context over Documents

先筛后选

概览

本篇论文的思路是通过深度学习的句子编码器对文档D中的各个句子进行编码,并针对句子包含答案的可能性进行打分。倘若分数高过一定阈值则保留;否则从D中删除。之后将精简过的文档作为神经网络阅读理解模型进行求解。
这样做的好处有两点,一是由于输入到阅读理解模型中的数据变少,模型求解的速度加快了;二是同样由于输入数据变少,也压缩了模型的解空间(答案是文档中的某个片段)。但该做法的隐患是在于倘若前者直接删除了包含正确答案的句子,则后一步骤中一定无法正确求解。好在作者通过数据分析及一些训练技巧有效的保证了前一步骤(“句子选择”)的高准确率(在SQuAD数据上高达99.3%,在NewsQA数据上高达94.6%)。

数据分析

作者在本文中对SQuAD及NewsQA进行了详尽的数据分析。这为后期实验的开展打下了数据基础,也让我们认识到该方法有效的原有。
作者从SQuAD中随机采样了50个数据组,发现其中98%的问题是可回答的,而剩余2%的问题即便是通览全文也无法回答。举例来说,在阅读完一篇关于Charles Dickens的文档之后也无法正确回答问题“The papers of which famous English Victorian author are collected in the library?”,这是由于外部知识的缺乏。而在可回答的问题集合中,作者进一步调研回答问题时需要的语句数量,发现其中92%的问题仅仅需要阅读一句之后就可以进行回答,6%的问题需要文档中的两句,而只有2%的问题需要三句乃至更多。
作者同样也在TriviaQA上进行了数据分析:与SQuAD平均每个文档仅包含5句的数据特征不同,TriviaQA平均每个文档包含有488句;其中88%的问题是可以回答的,而这其中的95%只需要一或两句就已经足够进行回答了。
为了进一步验证先进行句子筛选,再利用当前阅读理解模型进行问题求解的做法不会损害模型的性能。作者在DCN+模型上进行了实验。总体来看,在全文档(即不进行句子筛选)上训练的模型最终的F1为83.1;而在筛选过句子上训练的模型最终的F1为85.1。接着,作者分析后者模型回答错误的原因:40%是已经选择了正确的句子,但阅读理解模型回答错误;58%是由于模型预测部分正确答案,但并没有和标准答案完全一致;2%是由于问题在给予全文的情况下也无法正确回答。另外,作者还比较了全文档模型与筛选过句子模型回答正确的问题集合关系,发现:后者分别在SQuAD和NewsQA上可以正确回答93%和86%的问题。基于上述数据,作者认为采用“筛选-回答”的模式可以提供一个有效且高效的阅读理解模型。

模型介绍

下图是本篇论文的模型总体框架。如前所述,该模型可分为“句子筛选”与“阅读理解”两部分。而阅读理解部分,作者直接采用较为成熟的阅读理解模型:DCN+。此处将着重介绍该文的“句子筛选”部分,关于DCN+模型的细节请参见文[5]。

Our Model Architecture.

句子编码器首先将文档中的句子与问题作为输入,分别计算出句子的编码$D\in \mathbb{R}^{h_d\times L_d}$和问题的编码$Q\in \mathbb{R}^{h_d\times L_q}$(其中$h_d$是词向量的维度,$L_d$和$L_q$分别是文档与问题的序列长度)。之后通过下式计算融入问题表示的句子表示$D^q\in\mathbb{R}^{h_d\times L_d}$:
$$
\begin{align}
\alpha_i = \mathbf{softmax}(D_i^T W_1 Q)\in\mathbb{R}^{L_q}\
D_i^q = \sum_{j=1}^{L_q} (\alpha_{i,j} Q_j) \in\mathbb{R^{h_d}}
\end{align}
$$

其中$D_i\in\mathbb{R}^{h_d}$是句子中第$i$个词语的表示,$W_1\in\mathbb{R}^{h_d\times h_d}$是训练参数。为了交互句子中词语之间的信息,作者将上述分布式表示通过BiLSTM进行编码:
$$
\begin{align}
D^{\text{enc}}=\mathbf{BiLSTM}([D_i;D_i^q])\in\mathbb{R}^{h\times L_d}\
Q^{\text{enc}}=\mathbf{BiLSTM}(Q_j )\in\mathbb{R}^{h\times L_q}\
\end{align}
$$
其中,;表示向量拼接的操作,h是BiLSTM的隐层表示的维度。
之后,解码器对于上述得到的文档表示及问题表示进行打分:
$$
\begin{align}
\beta= \mathbf{softmax}(w^T Q^\text{enc})\in \mathbb{R}^{L_q}\
\tilde{q}^{\text{enc}}= \sum_{j=1}^{L_q} (\beta_j Q_j^{\text{enc}}) \in \mathbb{R}^h\
\tilde{h}_i=(D_i^{\text{enc}} W_2 q^\text{enc})\in \mathbb{R}^h\
\tilde{h}=\max(h_1, h_2, \cdots, h_{L_d})\
\text{score}=W_3^T \tilde{h}\in\mathbb{R}^2
\end{align}
$$
其中,$w^T\in\mathbb{R}^h$,$W_2\in\mathbb{R}^{h\times h\times h}$,$W_3\in\mathbb{R}^{h\times 2}$都是模型训练的参数。而最终得到的score的两维分别代表给定问题下该句是支撑语句或不是支撑语句的打分。

除了上述训练模型外,作者还引入了三个训练技巧:一是将句子筛选的句子编码器作为后续阅读理解模型的句子(问题)编码部分,二是倘若后续阅读理解没有正确回答问题,则将该句标记为错误句子(无论其是否包含正确答案),三是计算出的打分函数在段落上进行归一化。上述三种方式都被后续实验验证为可以切实提高模型表现的。

在最终确定句子时,作者使用了基于阈值的方法,而不是基于Top-K的筛选算法。这是由于作者认为不同的问题需要不同数量的支持语句。后续实验也表明,基于阈值的筛选方法不仅能够提高筛选的准确率,还能挑选出(平均)更少数量的句子。

参考资料

Efficient and Robust Question Answering from Minimal Context over Documents

0%