lstm中look_back的大小选择_香侬读 | 形变LSTM(Mogrifier LSTM)

9493b6d6c66bacca14e98c7929d75bf9.png

论文标题: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

可以简写为

。这里,
是遗忘门(forget),用来控制前一个记忆单元
保留多少;
是输入门(input),用来控制当前的信息
应输入多少;
是输出门(output),用来控制当前记忆单元
应该输出多少。

使用LSTM普遍被认为可以缓解梯度消失和信息遗忘的问题,从而更好地建模长距离语义。但是,注意到在LSTM中,当前的输入

是和之前的状态
相互独立的,它们只在门中进行交互,在这之前缺乏交互,这可能会导致上下文信息的丢失。为此,本文提出Mogrifier,不改变LSTM本身的结构,让输入和状态首先进行交互,期望增强上下文建模能力。

形变LSTM(Mogrifier LSTM)

Mogrifier LSTM的主要方法是,在普通的LSTM计算之前,交替地让

交互,简写为
,这里
定义为
中上标最大的那个值。具体来说,这个过程是:

c4377e513f5e88d243305d4cd62228b6.png

这里

,轮数
是一个超参数,如果
,那么这就是普通的LSTM。一个图示如下:

eade4f5ed14bad982bba5d072129db20.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

下表是在字级别上的实验结果。可以看到,Mogrifier比baseline LSTM都要好,尽管略逊于Transformer-XL。

52e24aad0d3cdd3c08e399bd9e577eef.png

分析

首先来探究Mogrifier的影响。下图是不同轮数

的影响,在
的时候效果较好。

f83ce84889633c541b941c24b3dd6c9d.png

下图是去掉Mogrifier公式中交替影响的部分的示意(这个方法叫做no zigzag):

9637ec94424bce3178687f4dd64063bf.png

下表是Mogrifier中对fullrank(Mogrifier将P,Q两个矩阵进行了矩阵分解以减少参数)、no zigzag和与mLSTM的比较。可以看到,P和Q的分解差别不大,而zigzag有较大的影响,而相比mLSTM有显著提高。

e39d0d41bdc5f62af267538deaff67aa.png

动机与讨论

本文对于Mogrifier的最初动机是,允许其增强上下文中的显着输入特征并减弱其次要特征。为此,我们在逆复述任务(Reverse Copy)上进行试验。这个任务是指,模型首先读一段文本,在收到一个特定字符后,再倒着输出该文本。下图是实验结果:

dceb383ebf2c163efafa8abe49a3e8c1.png

可以看到,对长度小于100的句子而言,二者都表现得很好,但随着文本长度的增加,Mogrifer越能和LSTM拉开差距尤其是在字典很大(10K)的时候。检验最好的超参,发现在第150步的时候,LSTM的embedding维度是498,而Mogrifier是41;在第200步的时候,分别是493和181。显然,Mogrifier能够大大减小embedding维度,也就意味着它能更好地建模输入和当前状态的关系。

下面,我们做出一些假设,这些假设被实验证否,也即不能从下面的角度来解释Mogrifier:

  • 有效性来自
    大小的收缩
    :在LSTM增加一个缩放因子并没有什么用
  • 有效性来自简化模型优化:在多种优化器(如SGD、RMSProp)和多种优化方法(如Norm)下,LSTM并不能达到Mogrifier的效果
  • 有效性来自不常见词上的更好效果:在字级别上的实验无法解释这个观点
  • 有效性和语言有关:MWC上的实验无法解释这个观点
  • 有效性来自更好的长距离依赖:在句子级别的LM上也存在效果的差距

小结

本文提出了一种Mogrifier LSTM,只需要在普通的LSTM计算前让当前输入和前一个状态充分交互,就能显著提高LM上的效果。其原始动机是,上下文无关的输入表示可能是LM的一个瓶颈,让这个输入和之前的状态(也就是上文)充分交互之后再输入到LSTM中可能会提高效果。尽管这不能完全解释Mogrifier的优越性,至少在LM上它的有效性能让我们进一步考虑如果增强context-dependent的表征力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值