(三)Word2vec -- 1 相比神经概率语言模型的改进

1. 相比神经概率语言模型的改进

神经概率语言模型的主要目的是得到语言模型(N-gram模型同上),该过程可以求解出词向量。

而Word2vec模型主要的目的是计算「词向量 word embedding」,因此会引起网络结构的调整;而计算词向量,通常是通过对语言模型的概率求最大似然来实现的。具体展开如下:


1.1 优化网络结构

基于上一小节 神经概率语言模型结尾的内容,可以了解到,对于神经概率语言模型,其缺点主要是计算量太大:具体体现在「隐层和输出层之间的矩阵运算」和「输出层上的Softmax归一化运算」这两点。

Word2vec就是针对上述两点来对神经概率语言模型进行优化的。

Word2vec的网络结构相对于神经概率语言模型简化了很多,也正是因为模型简单,使得训练速度较快,可以训练更多的数据;而神经概率语言模型结构复杂,使得训练速度较慢,难以训练更多的数据。

Word2vec的网络结构,如下图所示:

首先,Word2vec将输入层到投影层的运算从「拼接」变成「叠加」。也就是说,投影层的节点数不再是上下文词数量*词向量维度,而就是词向量维度。

其次,针对「隐层和输出层之间的矩阵运算」,word2vec选择删去隐藏层。
注:Projection Layer和Output Layer和之间的连线没有画完。


假设词向量维度为3维,那么,Projection layer只有3个节点。若词典中只有4个词,那么,输出层只有4个节点,代表的就是词典中的词。

对于上图中的输出层节点而言,任意节点的计算公式如下:

y i = ∑ i = 1 3 x j w i j = w i → T x ⃗ y_i= \sum_{i=1}^3x_jw_{ij}=\overrightarrow{w_i}^T\vec{x} yi=i=13xjwij=wi Tx

其中,输入层的参数是 C o n t e x t ( w ) Context(w) Context(w)中各个词的词向量,而这个词向量就是输出层和映射层之间的参数,即 w i → \overrightarrow{w_i} wi
对于任意输出层节点而言,它与映射层的每个节点都相连接。而映射层节点数就是词向量的维度,所以可将参数 w i 1 , w i 2 , . . . , w i n w_{i1}, w_{i2}, ..., w_{in} wi1,wi2,...,win (n是词向量维度) 看作是词 y i y_i yi的词向量。由此,训练神经网络的参数,就相当于训练了每个词的词向量,也就得到了词典中每个词的词向量。



1.2 优化Softmax归一化

神经概率语言模型,为计算条件概率,引入了Softmax来归一化:

p ( y i ∣ C o n t e x t ( w ) ) = e x p ( y i ) ∑ i = 1 4 e x p ( y k ) = e x p ( w i → T x ⃗ ) ∑ i = 1 4 e x p ( w k → T x ⃗ ) (1) p(y_i|Context(w))= \frac{exp({y_i})}{\sum_{i=1}^4exp({y_k})}\tag{1} \\ \text{} \\ =\frac{exp(\overrightarrow{w_i}^T\vec{x})}{\sum_{i=1}^4exp(\overrightarrow{w_k}^T\vec{x})} p(yiContext(w))=i=14exp(yk)exp(yi)=i=14exp(wk Tx )exp(wi Tx )(1)

对于该神经网络,其参数包括:「词向量 v ( w ) v(w) v(w)」以及「神经网络参数 W , p , U , q W,p,U,q W,p,U,q」。
一旦确定了这些参数,就相当于确定了「函数 F F F」的参数,也就相当于知道了参数 p ( w ∣ C o n t e x t ( w ) ) p(w|Context(w)) p(wContext(w)),继而能求得整个句子的概率。

上述公式的计算瓶颈在于分母:分母需要遍历词典,而词典中词的数目在 1 0 5 10^5 105量级,训练复杂度大。

由此,Word2vec提出了两种优化Softmax计算过程的方法,分别对应Word2vec的两种框架:Hierarchical Softmax 和 Negative Sampling。


1.2.1 使用 Hierarchical Softmax 优化

之所以称作「Hierarchical Softmax」,是因为它利用树实现了分层的Softmax(即,用树形结构替代了输出层的结构)。

使用分层Softmax的原因是:计算更加高效。

Hierarchical Softmax采用的树是二叉树。它将树上的叶子节点分配给词典里的词,同时将从树根到叶子节点的路径上的每个非叶子结点都看作二分类,由此,路径上二分类概率连乘的结果就是该叶子节点对应的词的概率。

一个full softmax需要一次计算所有的 W W W个词,而Hierarchical Softmax却只需要计算大约 l o g 2 ( W ) log_2(W) log2(W)(即,树根到该叶子节点的路径长度)个词,大大减少了计算的复杂度。

实际应用中,Hierarchical Softmax采用是Huffman树而非其他二叉树,这是因为Huffman树对于高频词会赋予更短的编码,使得高频词离根节点距离更近,从而使得训练速度加快。


1.2.2 使用 Negative Sampling 优化

另一种可行的方法是: N o i s e   C o n t r a s t i v e   E s t i m a t i o n ( N C E ) Noise \ Contrastive \ Estimation(NCE) Noise Contrastive Estimation(NCE) N C E NCE NCE 假定好的模型应该能够通过逻辑回归的方法从数据中区别出噪声。

Word2vec采用的Negative Sampling是NCE的一种简化版本,目的是为了提高训练速度并改善所得词的质量。相比于Hierarchical Softmax,Negative Sampling不再采用Huffman树,而是采用随机负采样。

由上述公式 ( 1 ) (1) (1)
p ( y i ∣ C o n t e x t ( w ) ) = e x p ( y i ) ∑ i = 1 4 e x p ( y k ) = e x p ( w i → T x ⃗ ) ∑ i = 1 4 e x p ( w k → T x ⃗ ) p(y_i|Context(w))= \frac{exp({y_i})}{\sum_{i=1}^4exp({y_k})} \\ \text{} \\ =\frac{exp(\overrightarrow{w_i}^T\vec{x})}{\sum_{i=1}^4exp(\overrightarrow{w_k}^T\vec{x})} p(yiContext(w))=i=14exp(yk)exp(yi)=i=14exp(wk Tx )exp(wi Tx )

其中, x ⃗ \vec{x} x C o n t e x t ( w ) Context(w) Context(w)联合构成的词向量, w i → \overrightarrow{w_i} wi 对应 y i ( w i ) y_i(w_i) yi(wi)的词向量。

最大化 p ( y i ∣ C o n t e x t ( w ) ) p(y_i|Context(w)) p(yiContext(w)),相当于最大化分子,最小化分母。
由于两个向量的点积越大,相当于两个向量的余弦相似度越高,因此,需要尽量最大化 w i → \overrightarrow{w_i} wi x ⃗ \vec{x} x 的相似度,尽量最小化 w k → \overrightarrow{w_k} wk x ⃗ \vec{x} x 的相似度。

即,最大化 x ⃗ \vec{x} x 与当前词 w i w_i wi的词向量的相似度,最小化 x ⃗ \vec{x} x 与非当前词的词向量的相似度。

可以将分子的 ( C o n t e x t ( w ) , w i ) (Context(w), w_i) (Context(w),wi)看作一个正样本,将分母的 ( C o n t e x t ( w ) , w k ) (Context(w), w_k) (Context(w),wk)看作负样本(因其未在训练数据中出现)。
问题在于,上述公式将词典里的所有词都看作了负样本,使得分母的计算太耗时间。
因此,使用Negative Sampling,每次只从词典里随机选一些word作为当前词的负样本(称为 N E G ( w ) NEG(w) NEG(w)),而非以字典里的其他所有词作为负样本。



1.3 总结

总结上述Word2vec对于经典神经网络概率语言模型的优化,可以发现:
Word2vec大大简化了网络结构。同时,也因为网络结构简单所带来的低计算复杂度,使得在更大规模的数据集上计算出非常精确的高维词向量成为可能。

由此,值得借鉴的是:需要权衡模型复杂度与可训练数据之间的关系。模型越复杂,可训练数据的量级越小;而模型越简单,可训练数据的量级越多。



参考

博客:Word2Vec-知其然知其所以然

猜你喜欢

转载自blog.csdn.net/m0_38111466/article/details/108032469