word2vec详解
预备知识
以下为word2vec的基础知识,如已经了解可跳过。
1、逻辑斯蒂回归
2、语言模型
词向量理解
词向量其实就是将自然语言数学化。
One-hot represention
One-hot represention 就是用一个很长的向量来表示一个词。向量的长度是词典的大小N,向量的分量只有一个是1,其他均为0。1的位置对应该词在词典中的索引。
如下图所示:
这存在两个不足之处:
(1)当很大时,就会造成维度灾难。
(2)忽略了词与词之间的相似性。
Distributed Representation
分布式词向量表示法克服了One-hot represention的缺陷。其基本想法是:通过训练将某种语言中的每一个词映射成一个固定长度的短向量(当然这里的“短”是相对于one-hot representation的“长”而言的),所有这些向量构成一个词向量空间,而每一向量则可视为该空间中的一个点,在这个空间上引入“距离”,就可以根据词之间的距离来判断它们之间的(词法、语义上的)相似性了,word2vec中采用的就是这种Distributed Representation的词向量。如下图所示:
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模型