平衡矩阵 c++_香侬读 | 用深度分解矩阵给词向量矩阵瘦身

3313fa612b878973eb8cb2753a19591e.gif

论文标题:

DeFINE: Deep Factorized Input Word Embeddings for Neural Sequence Modeling

论文链接:

https://openreview.net/pdf?id=rJeXS04FPH

收录情况:

Under blind submission for ICLR 2020


肥胖的词向量矩阵

众所周知,词向量矩阵一共有Vm个参数,当词表大小V很大的时候,这巨大的参数量不但会降低计算效率,还会因为数据分布的不平衡性导致效果无法更上一层楼。

我们想要给词向量矩阵瘦身。一个常见的做法是,使用简单的矩阵分解方法。

即把词向量矩阵E分解为两个矩阵的乘积E=E_1E_2,其中E_1的维度是V*n,E_2的维度是n*m,这样,总的参数量就是n(V+m),当pp很小的时候,参数量就会有很明显的减少。

换句话说,就是先把词映射为一个低维向量,然后再映为一个高维向量。

本文就是在这种基本的矩阵分解方法上的改进,称为DEFINE。下面是普通词向量和DEFINE的示意图,以及它们在Transformer-XL上的参数量。

a115f1b184f5ce6468c94b44e27c7350.png

深度矩阵分解

除了DEFINE之外,矩阵分解还有如下几种变体:

  • LT(Linear Transform):使用多个FFN逐步将低维向量映为高维向量。

  • GLT(Group Linear Transform):采用分组的策略将低维向量映为高维向量。

  • HGT(Hierarchical Group Transform):采用先分组,再聚合的策略将低维向量映为高维向量。

下图是几种变体的示意图,以及它们参数量的比较。接下来我们详细介绍第三种策略。

98a9c6a85e79c6fb96b8e129762e9926.png

现在假设HGT有N层,第l层有g^l个组(group),输入维度是n^l,输出维度是k^l。

在第1层,HGT有g_{max}个组,之后组的个数按照指数2递减。

使用这种方法,可以期望学得表示之间的层级关系。而LT和GLT分别是HGT在g^l=1和g^l=g时的特殊情况。

这样,DEFINE单元就是由HGT组合而成。另外,DEFINE还引入了skip connection。下图是DEFINE的示意图:

679f9ccfb4431a1debfcf922b9cef95d.png

这里,Split是把上一层的输入和输出(上一层的输出就是这一层的输入,也就是skip connection)分别分成这一层需要的组数g^l,然后把各自的第k个组拼接起来,一共形成g^l个组,之后把这g^l个组继续往下送即可。

使用这种方法,可以巧妙地结合skip connection,并且也不失分组的效率。

实验

本文在LM和NMT上实验。LM上实验WT-103和PTB,且使用LSTM和Transformer-XL两种方法。具体实验设置详见原文。

下表是使用LSTM在LM上的实验结果。首先看(a),Adaptive方法(Grave et al. 2017a)参数量最少,训练时间也最快,但是效果最差。

而Standard方法参数量最多,但效果也很烂。使用DEFINE,虽然比Adaptive增加了一些参数量,但效果显著提高,并且也比Standard少一半参数。

再看(b)(c),和AWD-LSTM与QRNN相比,参数量都有所减少,并且效果几乎没有明显下降。

7099d553b618e87f97404a5092397188.png

下表是使用Transformer-XL在WT-103上的实验结果。和原Transformer-XL相比,使用DEFINE可以在减少50%参数量的情况下使得PPL只减少2个点,而同等情况下不使用DEFINE会有5个点的下降。

9f86306574d756ab0013072dc098511f.png

下表是WMT14 EN-DE上的结果,同样使用OpenNMT实现。可以看到,参数量减少26%而效果有所提高。

646b347d96f8be667fb25c5a2b9d0ebf.png

下面来考虑几个影响因素:变换策略,深度和宽度,连接方式,映射方式。

下表是不同变换策略的影响,HGT显著最好,而使用mixer也有很大帮助。

89cb77e5f5feeb34ddb58fadd81f7c39.png

下表是不同深度和宽度的影响。一个趋势是,越深越好,但宽度似乎没有显著的影响。

956431691f42e34b6a78af5b7b8ce6d3.png

下表(a)表明了普通的residual connection和DEFINE中的skip connection方法的不同,显然,DEFINE使用的方法更好。

而(b)表明,在把词向量送入到上下文建模模型(如LSTM)之前,是否去掉低维映射的影响(称为reduce)。

结果显示,去掉reduce,参数量增加,但效果却没有编好,这也说明了单纯增加参数并不一定就是最好。

fdae866bc0dbd974b662de83bb32877d.png

小结

本文提出一种减少输入/输出词向量参数量的方法——DEFINE,十一弄了一种深层、分层、稀疏的skip connection网络结构,减少参数量,加速训练,学得更好的词向量。

在LM和NMT上的实验表明,这种方法可以在更少参数的情况下达到很好的效果。

本文可以在下面几点上进一步follow:

  • 在非sequence modeling任务上实验,进一步验证该方法的有效性;

  • 精简结构,继续减少参数量而不失效果;

  • 与multi-head联系,研究分组与multi-head之间的相关性,甚至对其中hierarchical的部分进行解释;

……

附录

下面是不同层的堆叠方法。

981b3df07626840ce0ddfdbdb216f2bc.png

22f2a099167dac5d42e7ab4a226ca1f2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值