![9493b6d6c66bacca14e98c7929d75bf9.png](https://i-blog.csdnimg.cn/blog_migrate/ab805c4f4e75965a178db8eb6ea8ee77.jpeg)
论文标题:Mogrifier LSTM
论文作者:Gábor Melis, Tomáš Kočiský, Phil Blunsom
论文链接:https://openreview.net/forum?id=SJe5P6EYvS
收录情况:ICLR 2020 (Oral)
本文提出形变LSTM(Mogrifier LSTM),在普通LSTM上稍作修改,令输入和状态首先进行多轮交互,再送入到LSTM中参与运算。这种简单的修改在语言模型上取得显著效果。
长短时记忆网络LSTM
自从深度学习兴起以来,长短时记忆网络(Long Short-Time Memory, LSTM)就一直被广泛应用在各类NLP任务中。LSTM是一种RNN,其公式可以表达如下:
![3852f0c3219cab5fc820d2b776e6de94.png](https://i-blog.csdnimg.cn/blog_migrate/a0f686ce89dcef5cb45437bfb234b402.png)
可以简写为
使用LSTM普遍被认为可以缓解梯度消失和信息遗忘的问题,从而更好地建模长距离语义。但是,注意到在LSTM中,当前的输入
形变LSTM(Mogrifier LSTM)
Mogrifier LSTM的主要方法是,在普通的LSTM计算之前,交替地让
![c4377e513f5e88d243305d4cd62228b6.png](https://i-blog.csdnimg.cn/blog_migrate/f12e7704fb79d34b5f8283c090bea496.png)
这里
![eade4f5ed14bad982bba5d072129db20.png](https://i-blog.csdnimg.cn/blog_migrate/dff6ea9aa43e290c10f729be6dcd24c2.png)
那么,这么做有什么用呢?我们后面再分析。
实验
我们在字级别和词级别的LM上实验。词级别的有:PTB和Wikitext-2;字级别的有Enwik8、PTB和MWC(Multilingual Wikipedia Corpus)。其他实验设置详见原文。
下表首先列出了词级别的实验结果,dN
表示有N层,MoS
是混合softmax,MC
是Monto-Carlo dropout。可以看到,Mogrifier普遍比LSTM低3-4个ppl点,而且在几乎不增加参数量的情况下,超过了之前的SOTA结果。
![88aaa6d04a7e6a7b33429cf2fdaba704.png](https://i-blog.csdnimg.cn/blog_migrate/79d809d7a5a43226fe8e55c78651c3c3.jpeg)
下表是在字级别上的实验结果。可以看到,Mogrifier比baseline LSTM都要好,尽管略逊于Transformer-XL。
![52e24aad0d3cdd3c08e399bd9e577eef.png](https://i-blog.csdnimg.cn/blog_migrate/7cec7e92d5e9f950993d3d823660cd83.jpeg)
分析
首先来探究Mogrifier的影响。下图是不同轮数
![f83ce84889633c541b941c24b3dd6c9d.png](https://i-blog.csdnimg.cn/blog_migrate/471c1f6bd72352bd70c589c27da904ec.png)
下图是去掉Mogrifier公式中交替影响的部分的示意(这个方法叫做no zigzag):
![9637ec94424bce3178687f4dd64063bf.png](https://i-blog.csdnimg.cn/blog_migrate/0fb57d54b6653a00e9941cab42605eb5.jpeg)
下表是Mogrifier中对fullrank(Mogrifier将P,Q两个矩阵进行了矩阵分解以减少参数)、no zigzag和与mLSTM的比较。可以看到,P和Q的分解差别不大,而zigzag有较大的影响,而相比mLSTM有显著提高。
![e39d0d41bdc5f62af267538deaff67aa.png](https://i-blog.csdnimg.cn/blog_migrate/01dd66a9ee86f459d5474c178e59925f.png)
动机与讨论
本文对于Mogrifier的最初动机是,允许其增强上下文中的显着输入特征并减弱其次要特征。为此,我们在逆复述任务(Reverse Copy)上进行试验。这个任务是指,模型首先读一段文本,在收到一个特定字符后,再倒着输出该文本。下图是实验结果:
![dceb383ebf2c163efafa8abe49a3e8c1.png](https://i-blog.csdnimg.cn/blog_migrate/3cddf0886ea60e485e46ba4ed620b5fd.png)
可以看到,对长度小于100的句子而言,二者都表现得很好,但随着文本长度的增加,Mogrifer越能和LSTM拉开差距尤其是在字典很大(10K)的时候。检验最好的超参,发现在第150步的时候,LSTM的embedding维度是498,而Mogrifier是41;在第200步的时候,分别是493和181。显然,Mogrifier能够大大减小embedding维度,也就意味着它能更好地建模输入和当前状态的关系。
下面,我们做出一些假设,这些假设被实验证否,也即不能从下面的角度来解释Mogrifier:
- 有效性来自
大小的收缩
- 有效性来自简化模型优化:在多种优化器(如SGD、RMSProp)和多种优化方法(如Norm)下,LSTM并不能达到Mogrifier的效果
- 有效性来自不常见词上的更好效果:在字级别上的实验无法解释这个观点
- 有效性和语言有关:MWC上的实验无法解释这个观点
- 有效性来自更好的长距离依赖:在句子级别的LM上也存在效果的差距
小结
本文提出了一种Mogrifier LSTM,只需要在普通的LSTM计算前让当前输入和前一个状态充分交互,就能显著提高LM上的效果。其原始动机是,上下文无关的输入表示可能是LM的一个瓶颈,让这个输入和之前的状态(也就是上文)充分交互之后再输入到LSTM中可能会提高效果。尽管这不能完全解释Mogrifier的优越性,至少在LM上它的有效性能让我们进一步考虑如果增强context-dependent的表征力。