[论文阅读]Language Modeling with Gated Convolutional Networks
论文名:Language Modeling with Gated Convolutional Networks
论文作者:Yann N.Dauphin ∣ | ∣Angela Fan ∣ | ∣Michael Auli ∣ | ∣David Grangier
期刊/会议名:ICML 2017
本文作者:XMU_MIAO
摘要
目前语言建模的主要方法是基于循环神经网络(CNN),其在任务上的成功往往与其能够无限制捕获上下文信息的特性相关联。在本文中,我们开发出一种通过堆叠卷积实现的有限上下文方法,由于其能够在符号序列上并行化,因而更加高效。 我们提出一种新的简单的门控机制,其性能优于Oord et al.(2016b)并研究了关键架构选择的影响。 所提出的方法在WikiText-103基准数据集上取得了最先进的结果,同样地,在Google Billion Words(GBW)基准数据集上取得了具有竞争力的结果。相较于循环模型,我们的方法将评估句子的延迟降低了一个数量级。据我们所知,这是非循环方法首次在大规模语言任务上能够与强大的循环模型相抗衡。
文章贡献
1.提出一种基于线性门控单元(Gated Linear Units)的卷积网络并将其运用于语言建模。
GLU在保持一定非线性能力的同时通过为梯度提供线性的传播路径使得在深度架构中能够有效减少“梯度消失”的问题。
2.在GBW数据集上证明了该卷积网络性能优于其他语言模型:如LSTMs,并在段落数据集WikiText-103上验证了该模型处理长距离依赖(long-range depenencies)的能力。
3.证明了GLU比LSTM-style门控具有更高的准确度和更快的收敛速度。
方法介绍
卷积网络通过堆叠,能够表示大量的上下文信息并且提取更为抽象的层次特征。本文的模型由L个
C
o
n
v
o
l
u
t
i
o
n
+
G
a
t
i
n
g
B
l
o
c
k
Convolution+Gating\, Block
Convolution+GatingBlock(下称:
B
l
o
c
k
Block
Block)堆叠而成,每一个Block的输出采用residual connection的方式将块输入加在块输出上,即:
B l o c k O u t p u t = B l o c k ( B l o c k I n p u t ) + B l o c k I n p u t BlockOutput=Block(BlockInput)+BlockInput BlockOutput=Block(BlockInput)+BlockInput如图所示,每一个 B l o c k Block Block由 W o r d E m b e d d i n g , C o n v o l u t i o n , G a t i n g , S o f t m a x Word\,Embedding,Convolution,Gating , Softmax WordEmbedding,Convolution,Gating,Softmax等部分构成,下面对每一个部分进行具体的介绍。
-
Word
Embedding
\textbf{Word \, Embedding}
Word Embedding
单词表示以向量的形式存储在词嵌入查找表 D ∣ ν ∣ × e D^{|\nu|\times e} D∣ν∣×e中,其中 ∣ ν ∣ |\nu| ∣ν∣表示单词表中的单词数量, e e e表示嵌入大小。每个单词 w i w_i wi在词嵌入查找表中都能找到一个向量表示 E = D w i E=D_{w_{i}} E=Dwi -
Convolution
\textbf{Convolution}
Convolution
每一个Block中由卷积层 h 0 , . . . , h L h_0,...,h_L h0,...,hL如下表示
h l ( X ) = ( X*W+b ) ⊗ σ ( X*V+c ) h_l(\textbf{X})=(\textbf{X*W+b})\otimes\sigma(\textbf{X*V+c}) hl(X)=(X*W+b)⊗σ(X*V+c)其中 k k k表示卷积核的高(卷积核的宽与词嵌入大小 e e e相同), m m m和 n n n分别表示输入和输出特征图的数量, X ∈ R k × m × n X\in R^{k\times m\times n} X∈Rk×m×n为 h l h_l hl的输入(为词嵌入或者前一层的输出), W ∈ R k × m × n W\in R^{k\times m\times n} W∈Rk×m×n, b ∈ R n b\in R^n b∈Rn, V ∈ R k × m × n V\in R^{k\times m\times n} V∈Rk×m×n, c ∈ R n c\in R^n c∈Rn都为训练参数, σ \sigma σ为 S i g m o i d Sigmoid Sigmoid函数, ⊗ \otimes ⊗表示两个矩阵之间对应位置元素相乘的结果。 -
Gating
\textbf{Gating}
Gating
通过添加门控机制,能够显著提升模型的性能,本文中,在每一个卷积层都添加了门控机制,形式如下: X ⊗ σ ( X ) \textbf{X}\otimes \sigma(\textbf{X}) X⊗σ(X)观察其梯度算子
▽ X ⊗ σ ( X ) = ▽ X ⊗ σ ( X ) + X ⊗ σ ′ X ▽ X \bigtriangledown\textbf{X}\otimes \sigma(\textbf{X})=\bigtriangledown\textbf{X}\otimes\sigma(\textbf{X})+\textbf{X}\otimes\sigma ^{'} \textbf{X}\bigtriangledown\textbf{X} ▽X⊗σ(X)=▽X⊗σ(X)+X⊗σ′X▽X发现有一条梯度传播路径 ▽ X ⊗ σ ( X ) \bigtriangledown\textbf{X}\otimes\sigma(\textbf{X}) ▽X⊗σ(X)没有被**函数 σ ( X ) \sigma(\textbf{X}) σ(X),这能够有效缓解在梯度反向传播过程中弥散的问题。 -
Softmax
\textbf{Softmax}
Softmax
在模型预测时最简单的方法是使用一个 s o f t m a x softmax softmax层进行预测,但对于词量大的词表来说,在计算上显然不够有效率,本文中采用 a d a p t i v e s o f t m a x adaptive\,softmax adaptivesoftmax,其为高频词提供更高的容量,为低频词提供更低的容量。这在训练和测试时降低了内存需求以及提供了更快的计算速度。
结果分析
待更新