
                            
                            因收到Google相关通知，网站将会择期关闭。相关通知内容
                            
                            
                            105 Word2Vec算法有哪些应用？
                            周一，我们分享了三个比较有代表意义的Word2Vec的扩展模型，主要有两种思路，从词的上下文入手重新定义上下文，或者对完全不同的离散数据进行建模。

今天，我们来看一看Word2Vec在自然语言处理领域的应用。如果我们已经通过SG模型、CBOW模型或者其他的算法获得了词向量，接下来我们可以把这些词向量用于什么样的任务中呢？

Word2Vec的简单应用

最直接的也是最常见的Word2Vec应用就是去计算词与词之间的相似度。当我们的数据还是原始的“词包”（Bag of Word），这时候是没法计算词与词之间的相似度的，因为每个词都被表示为某个元素为1其余元素都为0 的离散向量。按照定义，两个离散向量之间的相似度都是0。因此，从词包出发，我们无法直接计算词与词之间的相似度，这是从定义上就被限制了的。

Word2Vec就是为了跨越这个障碍而被发明的，这一点我们在前面就已经提到过了。所以，当我们可以用Word2Vec的词向量来表示每一个单词的时候，我们就可以用“余弦相关度”（Cosine Similarity）来对两个词向量进行计算。余弦相关度其实就是计算两个向量的点积，然后再归一化。如果针对已经归一化了的向量，我们就可以直接采用点积来表达两个向量的相关度。不管是余弦相关度还是点积，我们都假设计算结果的值越大，两个词越相关，反之则不相关。

既然我们可以计算两个词的相关度，那么很多依赖相关度的任务就都能够轻松完成。比如，我们希望把词进行聚类，也就是说把相关的词都聚合在一起。通常的聚类算法都可以直接使用，比如我们熟悉的“K均值”算法。这些算法的核心是计算两个数据点的距离，就可以利用我们刚刚讲的余弦相关度来实现。

我们在谈Word2Vec扩展模型的时候，曾经提到了一些扩展模型，可以用于表达比词这个单位更大的文本单元，比如段落和文档向量的获取。其实，当时我们就提到了一种可以得到这些单元向量的简单方法，那就是直接利用Word2Vec来进行加权平均。在获得了词向量之后，我们就可以用一个文档里所有词的加权平均，甚至是简单的叠加来达到表达文档的目的。这个时候，我们也就可以利用诸如余弦相关度来计算文档之间的相关度了。

另外一个随着Word2Vec的推出而大放异彩的应用则是“词语的类比”。Word2Vec的原作者们用类比来表达，这种词向量能够完成一些与众不同的任务。词向量本质上就是一个连续空间的向量，因此从数学上来说，这种向量其实可以进行任何“合规”的运算，比如加、减、乘、除。于是，作者们就利用向量的加减关系，来看能否得到有意义的结果，而得到的结果令人吃惊。

比如，如果我们把“国王”（King）这个单词的向量减去“男人”（Man）这个向量然后加上“女人”（Woman）这个向量，得到的结果，竟然和“王后”（Queen）这个向量非常相近。类似的结果还有“法国”（France）减去“巴黎”（Paris）加上“伦敦”（London）等于“英格兰”（England）等。对于传统的方法来说，这样的行为是无法实现的。因此，Word2Vec的流行也让这种词语的类比工作变得更加普遍起来。

Word2Vec的其他使用

在自然语言处理中有一系列的任务，之前都是依靠着“词包”这个输入来执行的。当我们有了Word2Vec之后，这些任务都可以相对比较容易地用“词向量”来替代。

一类任务就是利用词来进行某种分类任务。比如，我们希望知道某些文档是属于什么类别，或者某些文档是不是有什么感情色彩，也就是通常所说的“基于监督学习的任务”。词向量会成为很多文本监督学习任务的重要特性。在诸多的实验结果中，得到的效果要么好于单独使用词包，要么在和词包一起使用的情况下要好于只使用词包。

在进行监督学习的任务中，词向量的重要性还体现于其对深度学习架构的支持。众所周知，即便是最简单的深度学习架构，比如多层感知器，都需要输入的数据是连续的。如果我们直接面对离散的文本数据，常常需要把这些离散的文本数据学习成为连续的向量，其实就是在学习Word2Vec。经过了这一层的转换之后，我们往往再利用多层的神经网络结果对这些信号进行处理。

在很多实践中人们发现，与其利用不同的任务来学习相应的词向量，还不如直接拿在别的地方学好的词向量当做输入，省却学习词向量这一个步骤，而结果其实往往会有效果上的提升。这种使用词向量的方法叫作“提前训练”（Pre-trained）的词向量。其实，不仅仅是在简单的多层感知器中，甚至是在RNN等更加复杂的深度架构中，也都更加频繁地利用提前训练的词向量。

总结

今天我为你介绍了Word2Vec模型在各种实际任务中的应用。

一起来回顾下要点：第一，我们聊了Word2Vec这个模型的一些简单应用，比如如何计算词与词之间的相关度，以及如何进行词的类比计算；第二，我们讨论了如何利用词向量进行更加复杂的自然语言任务的处理。

最后，给你留一个思考题，Word2Vec和主题模型提供的向量，是互补的还是可以相互替换的呢？

                        
                        
                            