LSTM模型的两种分解技巧

介绍

LSTM模型在语言模型,机器翻译等领域取得了非凡的成就,然后LSTM网络有几百万的参数以及需要数周在多GPU系统中进行训练。因此,一下介绍两种方法来缩减网络参数以及训练时间。两种方法分别为factorized LSTM(FLSTM)以及group LSTM(GLSTM)。

FLSTM

FLSTM网络主要是将大的LSTM矩阵转化为两个小的矩阵。

LSTM模型简单介绍

在LSTM网络中,
LSTM模型的两种分解技巧
其中xt表示输入,ht表示cell state,ct表示cell memory。
令cell gates(i,f,o,g)可以计算为:
LSTM模型的两种分解技巧
其中xtRp,htRp.andT:R2pR4n是一个仿射变换 T=W[xt,ht1]+b,则htRp,ctRn
LSTM模型的两种分解技巧
其中,P:RnRp是一个线性的映射,这里主要的计算量是在仿射变换T,由于其涉及到4n*2p的矩阵W,因此,FLSTM网络主要减少W的参数。

优化方法

在FLSTM网络中,主要是将矩阵W转化为两个矩阵,可以近似为WW2W1,其中W1大小为2p*r,W2大小为r*4n。并且,r < p <= n ,这里主要的假设是矩阵W能够被r阶矩阵所表示,因为转换后的参数大小为(r*2p+r*4n),而LSTM网络的参数为2p*4n。
LSTM模型的两种分解技巧

GLSTM

GLSTM主要是将不同的LSTM cell分到独立的组里。
假定一些输入xt以及隐藏层ht可以被分到不同的独立的组中。例如,如果有两个组,则xtht能够有效的被分成两个向量,xt=(xt1,xt2)ht=(ht1,ht2),其中hti仅依靠xti,ht1i以及cell memory state。因此,分为k个组的公式可以表示为:
LSTM模型的两种分解技巧

其中,Tj是组j的从R2p/kR4n/k的放射变换,组T有k4n2pkk个参数,这种结构适合并行计算,因为每个组的计算都是独立的。具体结构如图1所示。

实验结果

LSTM模型的两种分解技巧

LSTM模型的两种分解技巧

源码

https://github.com/okuchaiev/f-lm

参考文献:
factorization tricks for lstm networks