Efficient Estimation of Word Representations in Vector Space 阅读笔记

2014-07-25 by Leon
via: liustrive.com

背景

现有模型,比如前文Bengio的采用非线性激活函数tanh的神经网络模型,虽然准确度上有优势,但是算法的复杂度较高,无法训练更大的数据集,比如特征向量维度为50-100情况下训练超过几百兆个的语料。

目标

提出一种模型使其能够训练百万级词表下数十亿词量的训练集,并产出优质词特征向量。

Model Architectures

Feedforward Neural Net Language Model (NNLM)

此即前文所述前向神经网络语言模型,采用四层神经网络(原文讲实际是三层神经网络) 输入层、投影层、隐藏层、输出层 每个训练样本的计算复杂度为:

$$Q = N × D + N × D × H + H × V$$
其中,N为n-gram模型中n值,D为词向量维度,H是隐藏层size(通常500-1000),V是词表大小,同时也是输出层的节点数量,ND为输入层到投影层权重个数,HV表示隐藏层到输出层的权重个数,NDH是投影层到隐藏层权重个数。
在文中的模型中,使用Huffman树来表示输出层hierarchical softmax,从而输出层参数从\(H*V\rightarrow H*log(V)\)
但是这个提速并不能使神经网络语言模型获得决定性提升,因为计算瓶颈变成了NDH,于是提出了没有隐藏层的模型结构。

recurrent neural net language model(RNNLM)

递归神经网络语言模型没有投影层,只有输入层、隐藏层、输出层,该模型使用延时连接将隐藏层相连接,以使模型具有短期记忆,训练样本计算复杂度为: \(Q = H × H + H × V\) 其中词向量与隐藏层维度都是H,这种模型也可以通过Huffman树表示输出层的方式提升效率

New Log-linear Models

前文提到,隐藏层计算复杂度成为性能瓶颈,作者观察到,隐藏层的非线性结构导致了需要大量的计算,虽然这种非线性结构更加精确,但是在这一节中作者介绍了两种模型,去除了隐藏层,并且分两步训练:1、计算词特征向量,2、在词特征向量基础上训练n-gram神经网络,以此大幅提升效率。

Continuous Bag-of-Words Model

CBOW模型与前向神经网络模型相近,但是去除了隐藏层,所有词都通过加和平均投影到同一个D维向量上,训练的复杂度为:

$$Q = N × D + D × \log_2(V)$$

Continuous Skip-gram Model

Skip-gram模型与CBOW模型相似,只不过后者根据上下文预测当前词,而前者根据当前词预测上下文可能存在的词,训练的计算复杂度为:
$$Q = C × (D + D × \log_2(V ))$$
其中C是词间最大距离

实验部分

作者表示中国相似法国相似意大利这种例子太没意思,前文也提到了训练产出的词向量具有(一定程度的)代数运算性质,于是文中设计了一系列实验,用代数运算的结果来验证模型的训练结果能否反映词之间的关系,并以此表示词向量的好坏。

Task description

作者采用的测试分类

作者设计了五类语义问题以及九类语法问题,比如男-女类 兄弟→姐妹 孙子→孙女,于是应该得到vector(“兄弟”) – vector(“姐妹”) + vector(“孙子”) = vector(“孙女”) 通过验证这些类别中的词组是否得到正确的代数运算结果,衡量词向量的准确性

Maximization of Accuracy

本文实验采用的是Google News语料训练词向量,文中为了衡量模型什么样的输入和参数下最快时间内得到最好的训练产出,先采用一半的语料与一半的向量维度,再依次同步增加,结果如Table2

可以通过结果观察到各在一定范围内,增加向量维度和增大训练集都能提升准确率,文中使用的学习速率为0.025.

Comparison of Model Architectures

模型间在相同维度和训练集大小情况下的比较结果,既采用了前文的代数运算方式统计准确性,也引入了通用的词间语法相似性的统计结果来反映词向量准确性。 结果如Table4所示:


RNNLM效果最差,虽然NNLM的非线性隐藏层理论上提供更高的精确性,但是由于运算量限制了词向量维度和训练集大小,NNLM的效果仍然不如CBOW和Skip-gram(排名分先后) 另外根据Table5的结果
3次迭代会提升准确度,但是影响不如其它因素那么大。

Large Scale Parallel Training of Models

前文提到过,模型提出的目的就是能更快速的训练更大的语料,作者在分布式平台上实现了文中模型,用Google News的6B数据集做输入,实验结果如Table6:

可以发现CBOW和Skip-gram首先在速度上有绝对优势,NNLM甚至无法计算1000维词向量,准确性上也超过了NNLM模型。

Microsoft Research Sentence Completion Challenge

作者最后引入微软的句子补完测试,其内容是1040个句子,去掉其中一个词,提供五个词作为候选,目标是找出最合适的词使句子完整,文中使用的skip-gram模型测试,其准确率并不如LSA模型,但是结合RNNLM,通过加权平均,能使结果准确率提升到历史最高的58.9%。


Comments