Character-Aware Neural Language Models
Character-Aware Neural Language Models
Yoon Kim, Yacine Jernite, David Sontag, Alexander M. Rush
Intro
language modeling是NLP中应用面很广的一个话题,可以用于语音识别,文本生成,和机器翻译.
传统的language modeling使用n阶段马尔可夫假设,基于计数的方法估计n-gram概率.训练简单,但是准确性低(因为数据有稀疏性).
Neural Language Model通过word embedding的方法解决了稀疏性,并且将embedding vector作为训练模型的输入.word embedding能够让语义上相近的单词,在向量空间上相近.NLM模型的缺点是无法获取subword information(比如语素,类似单复数,过去式).因此一些出现率比较低的词就无法充分的学习到.
这篇paper提出了使用character-level CNN来获取subword information,也就是不使用embedding作为NLM的输入,而是使用CNN的输出作为输入.而且与word embedding相比,模型的参数减少.
Model
Recurrent Neural Network
在每一个事件点t,RNN将输入$$xt$$和隐藏状态$$h{t-1}$$,来生成$$t_{t}$$:
$$ht = f(W \cdot x_t + U \cdot h{t-1} + b)$$
理论上,RNN在第t步,能够将所有的历史信息存储在隐藏状态$$h_t$$中.但实际上,vanilla LSTM很难存储长范围的信息,因为存在vanishing/exploding gradient问题,解决的方案是使用Jacobian's multiplication.
LSTM通过增加一个记忆单元,来学习长范围的依赖性.记忆单元能够减缓gradient vanishing问题,但是gradient explosion还是没有解决.RNN/LSTM当有多层的时候,性能更好.
Recurernt Neural Network Language Model
词库的大小为$$\nu$$.语言模型就是给定前面$$[w1, ..., w{t-1}]$$,求$$w_t$$的概率分布.Recurrent Neural Network Language Model(RNN-LM)通过隐藏层使用softmax函数,来获取该概率.而输入就是embedding,$$X \in \mathbb{R}^{n \times |\nu|}$$.我们的模型使用character-level CNN.
训练的目标是最小化序列的negative log-likelihood(NLL)
$$NLL = - \sum{t=1}^T log \, Pr(w_t | w{1:t-1})$$
Character-level Convolutional Neural Networks
首先对character embedding.每一个单词都用都用character-embedding表示.如果传统的LSTM,就会直接对character进行hash,然后对word进行embedding.
然后在character-level representation和长为w的filter/kernel(类似长为w的sliding window)之间使用卷积(比如Frobenius inner product).之后通过一个非线性的转换,得到feature map.最后使用max-over-time,来找到对应于filter H的特征,直觉上的理解就是给定一个filter,获取最重要的特征;而一个filter就是在长度为w的n-gram中选出最重要的特征.
所以不同的filter matrix,都对应一个特征.一般对应NLP的应用,会有[100,1000]个filter.
Highway Network
使用最终的h个特征代替word embedding,作为输入,而且很好的解决了variable length的问题,不需要padding.
还可以使用highway network对convolution的结果进一步操作.引用到了两个概念,transform gate和carry gate.
Experimental Setup
使用perplexity(PPL)评估.
在English Penn Treebank(PTB)上,使用hyper parameter search, model intro.spection, ablation studies.
Optimization
最终结果预测时候,使用了hierarchical softmax.