PaperNotes: attention系列 (3) - LSTMN

560 阅读1分钟

1. paper

Long Short-Term Memory-Networks for Machine Reading 2016

2. keypoint

提出了intra-attention,也就是有名的self-attention。

3. 简介

提出了Long Short-Term Memory-Network(LSTMN)。在原来LSTM的基础上增加了一个memory/hideen tape ,和描述词与词之间的相关程度的attention。 本文主要在机器阅读领域实验,进一步扩展到了翻译、自然语言处理。

文章提出了当前seq模型的三个问题和现状:

  • 梯度弥散和梯度爆炸,可以通过LSTM等门控激励函数和梯度剪切来改善。
  • 记忆压缩,多个词压缩到一个定长vector,对长文本不友好。
  • 当前还没有模型处理结构化的输入。

4. 模型

LSTMN增量读入一次新的词,并计算当前词与之前写入memory的词之间的attention。效果如下图所示。

4.1 LSTM

ng给出的lstm大概是这样的:

论文中给出的公式:
本文公式中的i_t就是ng中的更新门\Gamma_f

4.2 LSTMN

LSTMN为每一个输入的词都提供一个memory slot,memory大小不断递增。模型有一个hidden state tape 用于计算attention和一个memory tape 用于保存。每一个词对应一个hidden vector和一个memory vector。 x_i为当前输入的词,C_{t-1}=(c_1,c_2...c_{t-1}表示当前memory tape,H_{t-1}=(h_1,...,h_{t-1})表示之前的hidden tape,在时间t,模型通过h_1...h_{t-1}来计算x_tx_1,...,x_{t-1}之间的attention:

\alpha_i^t=v^\top tanh(W_hh_i+W_xx_t+W_{\widetilde{h}}\widetilde{h}_{t-1}) (4)
s_i^t=softmax(\alpha_i^t)(5)

接下来就可以计算hidden 和cell:

最后更新整个lstm:

4.3 seq2seq

用于seq2seq encoder-decoder模型。

浅层模型只是替换了encoder decoder内部的lstm。encoder decoder之间用inner attention。

深层融合模型将encoder的memory也用于decoder初始化。 这部分有点复杂且刻意了。。

5. 实验

intra-attention可视化: