神经网络词向量模型之Word2Vec

1.前言

         基于one-hot对于词汇进行编码的方式着实让人头疼,又无奈。头疼的是占用空间很大,计算量大,无奈的是这么简单粗暴的方式居然一直流传到了现在。今天给大家介绍一款基于神经网络语言模型来生成词向量的神器。在上一篇神经网络语言模型中我们介绍过语言模型的工作方式,将输入通过嵌入层转换为向量,然后使用投影层把各向量拼接在一起,通过隐层,再进入输出层。所以输入层中就得到了词向量矩阵。语言模型的核心是去表达文本,生成文本。词向量只是其中的一个环节,数据预处理的一部分。今天我们要讲解的词向量模型恰恰相反,其核心是借助于语言模型来生成词向量。

2.Word2Vec总述

           如下图,其核心的思想是将词汇映射到向量空间中,使用向量之间的余弦距离来表示词汇之间点的相似度。如下图所示。

          

           Word2Vec包含两种生成向量的模型CBOW和Skip-Gram。如下所示,CBOW使用周围的词来预测中心的词,而Skip-Gram是用中心的词预测周围的词,其思想类似于Gram。下面我们来详细介绍一下。

          

3.Skip-Gram

         在这个模型中,我们给定一个输入,它会给我们输出离这个词比较近的词。如下图所示,我们会将中间词和它周围的词两两组成一队。

         

          下图是skip-gram工作的整体流程,首先我们根据语料库的文本制作词表,然后对词进行one-hot编码。输入层和隐层之间的矩阵相当于词嵌入矩阵,那么隐层的输出就是该context对应的词向量,将该词向量和所有的词向量相乘得到相似度。在输出层使用softmax将相似度转换为概率,真实值就是我们从上下文附近词中选中的一个。

         

       所以,最终我们得到的hidden layer层的权重W就相当于是词嵌入矩阵,该层的输出就是最后的词向量矩阵。训练完成之后我们的输出层也就去掉了。

                    

4.CBOW

             CBOW的思想是使用周围的词来预测中间的词。其流程就是将周围词组成的context进行输入,通过嵌入矩阵找到 对应的词向量,然后将context中各向量加和求平均,作为隐层输出。最后使用softmax预测概率。网络训练完成后隐层的输出就是我们需要的词向量。

                                  

5.哈夫曼树

          哈夫曼树被称为最优二叉树,是带权路径长度最短的树

       

    其构造流程如下,可以 看做是每次选择最小的树作为子节点,将其和作为上层节点,不断迭代来构成一棵树。

         原始的word2vector输出层,每次都需要计算所有词汇的softmax,计算量大,收敛速度慢。采用树结构,每个·节点使用sigmoid进行二分类,正例则往右走,负例1-theta则往左走。可以证明所有的概率之和为1。这样对于相应的节点,我们就计算其对应路径上所有概率的连乘,权重越大其对应的路径就越短,这样一方面加快了计算速度,当一个权重点反向调节的时候其路径上的所有节点都会调节,也就同时加快了收敛速度。

6.负采样

        因为原始的标签是one-hot编码,数据非常的离散。并且每次只有一个正例可以用来调节,这样的话效率就非常低。所以负采样就是选择 一部分负例也用来对损失进行调节,在随机选择负样本时,那些出现次数多的样本被选中的概率会比较大。这样每次损失调整的就会多一点,收敛速度也会快一些。

7.总结

        本文介绍了word2vector中的CBOW和Skip-Gram两种词向量模型,其中CBOW是用周围的词来预测中心的词,而Skip-Gram是用中间的词来预测周围的词。当然预测并不是词向量模型的真正目的,其核心是使用这种语言模型的结构来生成词向量模型。在模型使用的过程中,不需要有后面的输出层,即隐层的输出就是我们所需要的词向量。同时因为传统的损失是计算词表中所有单词的概率,一般来说词表的数量是非常大的,所以速度会很慢,并且每次只会有一个正例来进行反向调节。为此我们介绍了两种优化方法哈夫曼树和负采样,哈夫曼树是最优的带权二叉树,每个节点反向调节时,其路径上的所有参数都会调节到;负采样使用部分的负例样本来进行反向调节,我们采用带权负采样,即出现的次数越大的负例被选中的概率越大。同样是能加快收敛。

8.废话

        写到这块我都快要吐了,我是一个不能够善始善终的人。如果一件事情做的太久我就会很烦,想早点的结束。这就跟达芬奇画画总是画不完就放弃一样,我是不是脸皮有点厚了。但其实我想说的是,要学会接纳不完美的自己。正所谓凡事要留个有余不尽的意思,则造物不能忌之,鬼神不能损之。若业必求满,功必求盈者,不生内变,必招外忧。所以我从小上学总是得第三名,年年得奖,但是我觉得很羞愧,到后来我收到第三名的奖状立马就扔了。直到高中我就想通了,不是我超不过前面那两个,这是上帝有意在隐藏我的才华。想要进步,就得认清自己。不要相信别人,也不要相信时间,时间和别人就是两个最大的骗子。

谎言 BigBang 中文字幕

猜你喜欢

转载自blog.csdn.net/gaobing1993/article/details/108479888