文章原名:Language Modeling with Gated Convolutional Networks
作者:Yann N. Dauphin, Angela Fan, Michael Auli, David Grangier
单位:Facebook AI Research
译者:梁健楠
链接:
https://arxiv.org/abs/1612.08083(可戳下方阅读原文)
1
导读
目前,主要的比较好的语言模型建模方法是基于RNN的,LSTM在NLP领域中广泛应用。而本文介绍了一种基于卷积网络CNN的语言模型建模方法,引入一种新的gate机制来简化梯度传播,这种gate机制执行效果比目前的LSTM效果好,而且效率明显提升。
2
模型
RNN计算H是通过递归函数hi=f(hi-1,wi-1),而CNN使用H=f*w,因此CNN没有时序先后的问题,很容易地对句子里的单独的字进行并行计算。
我们通过计算以下公式得到各隐藏层:
具体的流程如下图:
Gate机制控制网络中信息流的路径,在RNN中已经证明是可行的。LSTM使长期记忆通过对一个单独的细胞的输入和遗忘门来控制,具体形式。
以下是LSTM所使用的gate机制梯度为:
梯度公式中加号两端的子公式都缩减因子。作者提出的公式的梯度会将该缩减因子去掉,得到以下梯度公示:
作者把以上两种方法称为GTU(gated tanh unit)和GLU(gated linear unit),并在下面的实验中对比了两者的效果。
3
实验
本实验室在the Google Billion Word数据集进行实验。
Table1,GCNN-13在目前技术来说,单GPU上表现最好。只有在非常大的LSTM中才出现比GCNN更好的效果,但是该方法再32个GPU上运行三周才得出的效果,而GCNN-13只在单GPU上跑了两周而已。GCNN-13是有13层,每层1268个单元。
由于the Google Billion Word数据集中,每个句子平均只有20个单词,非常的短。因此,使用WikiText-103测试GCNN在长文中的可行性,结果同样比LSTM效果好。GCNN-8是有13层,每层800个单元。LSTM有1024个单元。
在处理能力上,LSTM-2048与GCNN-22达到了43.9和43.8的PPL,但GCNN-22的响应能力是LSTM-2048的20倍。
在运算上,GCNN-22只需要更少的参数和浮点运算。
以上是对GCNN使用不同的gate机制的效果分析,可以观察到作者提出的GLU效果是最佳的。
同时GLU比单线性模型和双线性模式能得到更好的PPL值。
观察上图可以发现,GCNN在使用不同深度的时候表现不同,增加网络深度可以获得更好的效果。
以上是模型与上下文长度关系的分析。
在训练算法上,分析Weight normalization与Gradient clipping对训练效率的影响。
4
贡献
本文的贡献在于在语言模型建模中尝试卷积神经网络与一种简易的gate机制相结合,在实验中取得的非常优异的效果。长久以来,CNN在图像处理中有明显优势,而RNN在自然语言处理中也得到广泛应用。本文提出的GCNN,借鉴了LSTM中的gate机制对自身进行改良,而且凭借自身特定进行并行计算进行提速。这是CNN在语言模型建模中的一次成功的应用。