词向量
本篇论文是2013年发表在ICLR上的论文。在NLP领域拥有里程碑式的意义,以至于后期的ELMo、Bert、GPT都是受词向量的影响而诞生的。同时本篇论文也是受到神经语言模型NNLM的启发而创造了NLP时代的大发展。
Abstract
本文提出了两个创新性的模型架构计算词的连续向量表示,在低计算资源花费的情况下效果有巨大的提升。在语法和语义相似度测试集上有较好的表现。
Introduction
许多NLP系统和技术,将词汇视为原子单元——没有词汇之间相似性的概念,并且被表征为词表中的索引。
N-garm语言模型,是在所有可获得的数据上进行计算的。数据集的质量制约了系统的性能。
近年来的最成功的概念就是词汇的分布式表达
Goals of the Paper
本文的目标在于介绍在大数据集中训练学习高质量词向量以及大词表的技术。
本文采用测试词向量质量的方式不仅是相似的词汇在空间上也相近,而且词汇间有多种方面的相似性。
Previous Work
词汇表示为连续的向量已有很长的历史了,一个非常流行的模型架构就是NNLM。以及后来有许多以此为基础的变种。
Model Architectures
许多不同类型的模型被用来估计单词的连续表示,包括著名的潜在语义分析(LSA)和潜在狄利克雷分配(LDA)。
在本文中,我们重点研究了神经网络学习到的单词的分布式表示,因为之前的研究表明,神经网络在保持单词之间的线性规律方面的表现明显优于LSA ,此外,对于大型数据集,LDA在计算上变得非常昂贵。
对于模型的复杂度的计算本文采用
O
=
E
×
T
×
Q
O=E\times T\times Q
O=E×T×Q
其中,E为epoch,T为训练集中的词汇的个数,Q是根据模型而定。
Feedforward Neural Net Language Model(NNLM)
NNLM由输入层、投影层、隐藏层、输出层组成。
在输入层N个词汇编码为one-hot形式的向量,V代表词表的大小,投影层P的维度为N*D,隐藏层的维度为H,输出层的维度为V
所以整个模型的复杂项Q为:
Q
=
N
×
D
+
N
×
D
×
H
+
H
×
V
Q=N \times D +N \times D \times H+H\times V
Q=N×D+N×D×H+H×V
主要的复杂度集中于输出层的权重
H
×
V
H\times V
H×V,针对这个本文采用了hierarchical softmax来减小复杂度使得最终这项变为
l
o
g
(
V
)
log(V)
log(V)。然后计算复杂度集中于
N
×
D
×
H
N \times D \times H
N×D×H,针对这项本文模型将其隐藏层去掉直接使用softmax进行归一化处理。
Recurrent Neural Net Language Model (RNNLM)
基于递归神经网络的语言模型克服了前馈神经网络的某些局限性,如需要指定上下文长度(模型N的阶数),以及理论上的神经网络比浅层神经网络更能有效地表示复杂的模式。
复杂度计算项Q:
Q
=
H
×
H
+
H
×
V
Q=H \times H + H \times V
Q=H×H+H×V
其中 HH代表输入层与隐藏层间的权重矩阵,HV代表隐藏层与输出层之间的权重矩阵。其中第一个H为D由于D的维度和H一样,所以统一记为H。
其中H*V仍是计算量较大的部分可以替换为层序softmax降低计算复杂度
Parallel Training of Neural Networks
采用分布式框架使得模型可以并行训练。
New Log-linear Models
本章介绍两种新的模型架构,用于学习词汇的分布式表征,并且可以降低计算复杂度。
模型的计算复杂度集中于非线性变换的隐藏层。
研究发现,神经网络语言模型的训练可以分为两个步骤:首先,使用简单的模型学习连续的单词向量,然后在这些单词的分布式表示上训练N-gram NNLM。
Continuous Bag-of-Words Model
CBOW模型结构类似于NNLM,但是除去了隐藏层,而且将所有的投影层的向量做了求和运算。之所以被称为连续词袋模型是因为历史的词序不会影响最终的结果。
计算复杂度为:
Q
=
N
×
D
+
D
×
l
o
g
(
V
)
Q=N\times D + D \times log(V)
Q=N×D+D×log(V)
模型的结构图为:
Continuous Skip-gram Model
我们将每个当前单词作为一个连续投影层的对数线性分类器的输入,并在当前单词前后预测一定范围内的单词。增加范围可以提高结果字向量的质量,但也增加了计算复杂度。
计算复杂度为
Q
=
C
×
(
D
+
D
×
l
o
g
(
V
)
)
Q=C\times( D + D \times log(V))
Q=C×(D+D×log(V))
其中,C代表最大的词汇距离。
skip-gram的模型图如下:
Result
本章针对各种词向量进行对比,同时词与词之间的关系可以通过简单的数学操作来度量。
X
=
v
e
c
t
o
r
(
"
b
i
g
g
e
s
t
"
)
−
v
e
c
t
o
r
(
"
b
i
g
"
)
+
v
e
c
t
o
r
(
"
s
m
a
l
l
"
)
X = vector("biggest")-vector("big")+vector("small")
X=vector("biggest")−vector("big")+vector("small")
Task Description
结果依据给定例子的语法与语义相似性准确性来度量,一共设置了5类语义关系和9类语法关系。如表1所示:
Maximization of Accuracy
随着词向量维度的增加,和训练数据的增加,正确率也会增加,但是到了一定程度后就会进入平台区。
Comparison of Model Architectures
本节对不同的模型进行了对比
NNLM比RNNLM表现好,因为RNNLM的词向量直接链接到非线性隐藏层。
CBOW与Skip-gram比NNLM都好一些。
表4中可以看出,维度的增加会对NNLM的性能提升。
除了维度的增加和数据量的增加,在训练轮次的增加后,效果也会提升。
Large Scale Parallel Training of Models
模型训练所花费的时间的结果,Skip-gram最快,其次是CBOW最慢的是NNLM
Microsoft Research Sentence Completion Challenge
这个任务由1040个句子组成,每个句子中缺少一个单词,目标是选择与句子其余部分最连贯的单词,给出五个合理的选择。
只是Skip-gram模型的正确率并不高,但是将其与RNNLM结合便可以达到很高的分数。
Examples of the Learned Relationships
表8显示了次会见的各种关系
在大数据集和高维向量下,word2vec的表现会更好。
Conclusion
在本文中,我们研究了在一系列句法和语义语言任务上,由各种模型导出的单词向量表示的质量。
可以使用更简单的模型来训练词向量(花费更少的时间)
由于计算复杂度低得多,可以从更大的数据集计算非常精确的高维字向量。
我们正在进行的工作表明,词向量可以成功地应用于知识库中事实的自动扩展,以及对现有事实正确性的验证。