再BiDAF模型之前,阅读理解模型中使用的attention类型大致分为三类:
1、Attention Reader:通过动态 attention 机制从文本中提取相关信息(context vector),再依据该信息给出预测结果。使用这种attention的相关论文有:
(1)Bahdanau et al. 2015. 这篇论文算是attention机制的开山之作,针对的是机器翻译任务中传统双向RNN模型的不足。传统双向RNN模型再预测下一个词时依据的是上一个预测词,隐含层状态向量和encoder形成的上下文向量。这样做的缺点在于上下文信息向量包含了原句的所有信息,而再翻译当前词是并不需要所有信息,可能只需要原句中的个别词作为参考,这就涉及到了"对齐"的观点。因而文章将改成,计算方式如下:
, .
其中,其中的是一个前馈神经网络。通过这种方式形成的上下文信息是动态的,根据当前要翻译的词决定。
(2)Hermann et al. 2015. 这篇论文率先提出了使用机器学习的方法解决机器阅读理解问题,并整理了CNN和Daily Mail websites两个数据集。同时这篇文章提出了三个神经网络模型来解决这个问题。其中第一个模型用的是Deep-LSTM,文中将document和query用||连在一起,并在上面应用两层LSTM,将每层的最后时刻的隐含层向量拼接起来得到encoder的结果。
第二个模型Attentive Reader用到了attention,为了计算document中每个词相对于query的attention值,即query-to-document attention,计算方式是,首先通过两个双向LSTM模型分别encode document和query,将query两个方向的最后时刻隐含层向量拼接在一起作为query