论文解读-Long Short-Term Memory as a
这是一篇自己以前看到的觉得挺有意思的文章。论文是 ACL 2018年上的一篇短文。
论文分析了LSTM里面哪些部件是比较重要的。发现LSTM里面的加性循环操作可以看成是一种类似attention的加权操作,这是LSTM最重要的部分。作者通过解耦LSTM的门控单元验证了这一点。
普通的RNN为下面 (1) 式,这里我们把它简写为S-RNN (simple-rnn):
RNN
LSTM为了解决它的梯度消失问题,和由此引起的无法学习到长时依赖的问题。加入了门机制,且引入记忆单元 存储长期记忆。
LSTM可以看成是在普通的RNN上加入了3个门:输入,输出,遗忘门。
在这里可以理解为普通的RNN,,,分别为输入,遗忘,输出门。记忆单元根据i控制记忆多少当前信息ct~,遗忘多少过去信息,得到的信息是长期的(相对于普通RNN)。
如果把 (5) 式展开,就有下面的式子。可以看到记忆单元 可以看成前面t个时刻的普通RNN的结果和一个门控的element-wise乘积的和。(简洁优美🙂
消解实验:
在LSTM基础上消解。
1)– S-RNN: 把(2)换成了普通线性函数,相当于去掉普通RNN。
2)– S-RNN - OUT: 在(1)基础上还去掉了输出门。
3)– S-RNN - HIDDEN: 在(1)基础上,去掉所有门里的隐层单元(计算时不含,这时模型只剩处的循环)。
4)– GATES: 去掉所有门,这时没有处循环,也没有处循环,可以看成一个普通RNN。
其中,通过2)的简化也可以写成一个简洁的式子:
实验结果如下:
-
语言建模:
语言建模结果 -
QA:
QA结果
3.依存解析:
依存解析结果
-
机器翻译:
机器翻译结果
可以看出,gate是最重要的,没有门就没有了和门里的两种循环。而门中去掉h,效果会下降但影响不大,说明h这个乘性循环连接并不是特别重要,相反,中的加性循环连接很重要。
升华:和attention的联系。公式(8)的加权和可以看成一种时间维度上的 attention, 这样就把LSTM和attention联系起来了。两者不同点在于:1)LSTM中attention的权重是个vector且是element-wise运算. 2)LSTM复杂度线性而非attention中quadratic。3) LSTM中attention权重是通过和之间的计算得到的0~1之间的值,离当前时刻越远,值贡献越小,离越近,值贡献越大,而非普通attention中全局的归一化。
缺点:直接读文章会觉得消解实验对比稍奇怪。
以上是个人理解,不当之处欢迎批评指正。