本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.
论文标题:
论文作者:
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,其公式可以表达如下:
可以简写为
使用LSTM普遍被认为可以缓解梯度消失和信息遗忘的问题,从而更好地建模长距离语义。
但是,注意到在LSTM中,当前的输入 是和之前的状态 相互独立的,它们只在门中进行交互,在这之前缺乏交互,这可能会导致上下文信息的丢失。
为此,本文提出Mogrifier,不改变LSTM本身的结构,让输入和状态首先进行交互,期望增强上下文建模能力。
形变LSTM (Mogrifier LSTM)
Mogrifier LSTM的主要方法是,在普通的LSTM计算之前,交替地让 和 交互,简写为 ,这里
具体来说,这个过程是:
这里
那幺,这幺做有什幺用呢?我们后面再分析。
我们在字级别和词级别的LM上实验。词级别的有:PTB和Wikitext-2;字级别的有Enwik8、PTB和MWC(Multilingual Wikipedia Corpus)。其他实验设置详见原文。
下表首先列出了词级别的实验结果,dN表示有N层,MoS是混合softmax,MC是Monto-Carlo dropout。
可以看到,Mogrifier普遍比LSTM低3-4个ppl点,而且在几乎不增加参数量的情况下,超过了之前的SOTA结果。
下表是在字级别上的实验结果。可以看到,Mogrifier比baseline LSTM都要好,尽管略逊于Transformer-XL。
分析
首先来探究Mogrifier的影响。下图是不同轮数 r 的影响,在r=4,5 的时候效果较好。
下图是去掉Mogrifier公式中交替影响的部分的示意(这个方法叫做no zigzag):
下表是Mogrifier中对fullrank(Mogrifier将P,Q两个矩阵进行了矩阵分解以减少参数)、no zigzag和与mLSTM的比较。
可以看到,P和Q的分解差别不大,而zigzag有较大的影响,而相比mLSTM有显着提高。
动机与讨论
本文对于Mogrifier的最初动机是,允许其增强上下文中的显着输入特征并减弱其次要特征。
为此,我们在逆复述任务(Reverse Copy)上进行试验。这个任务是指,模型首先读一段文本,在收到一个特定字符后,再倒着输出该文本。下图是实验结果:
可以看到,对长度小于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的表征力。
Be First to Comment