word2vec详解

预备知识

以下为word2vec的基础知识,如已经了解可跳过。

1、逻辑斯蒂回归

2、语言模型

3、Huffman编码

词向量理解

词向量其实就是将自然语言数学化。

One-hot represention

One-hot represention 就是用一个很长的向量来表示一个词。向量的长度是词典D\mathcal D的大小N,向量的分量只有一个是1,其他均为0。1的位置对应该词在词典中的索引。

如下图所示:

word2vec详解

这存在两个不足之处:

(1)当NN很大时,就会造成维度灾难。

(2)忽略了词与词之间的相似性。

Distributed Representation

分布式词向量表示法克服了One-hot represention的缺陷。其基本想法是:通过训练将某种语言中的每一个词映射成一个固定长度的短向量(当然这里的“短”是相对于one-hot representation的“长”而言的),所有这些向量构成一个词向量空间,而每一向量则可视为该空间中的一个点,在这个空间上引入“距离”,就可以根据词之间的距离来判断它们之间的(词法、语义上的)相似性了,word2vec中采用的就是这种Distributed Representation的词向量。如下图所示:

word2vec详解

word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系。
word2vec 中有两个重要模型一CBOW 模型(Contimuous Bag- of-Words Model)和Skip-gram模型(Continuous Skip-gram Model)。对于CBOW和Skip-gram两个模型,word2vec给出了两套框架,它们分别基于Hierarchical Softmax 和 Negative Sampling。
具体细节见以下两篇文章:

基于Hierarchical Softmax的word2vec模型
基于Negative Sampling的word2vec模型