博文: 秒懂词向量Word2Vec的本质
什么是Word2Vec?
词性标注:是动词还是名词,样本(x,y)中,x是词语,y是它们的词性
f(x)->y
中的f(神经网络、SVM)只接受数值型输入,而NLP里的词语,必须转换为数值型形式
语言模型: 把 x 看做一个句子里的一个词语,y 是这个词语的上下文词语,那么这里的 f,便是 NLP 中经常出现的『语言模型』(language model),这个模型的目的,就是判断 (x,y) 这个样本,是否符合自然语言的法则,更通俗点说就是:词语x和词语y放在一起,是不是人话。
而Word2Vec就是集结了上面两个特征,既要将词语向量化,又能很好的保证上下文信息。 这里的f则是上面两个的集合。 但是我们的结果不是为了得到它是什么词性,它们符不符合语法,而是得到这之间的中间产物——模型参数,并用这些来得到输入x的向量化表示!
Skip-gram 和 CBOW 模型
上面我们提到了语言模型
- 如果是用一个词语作为输入,来预测它周围的上下文,那这个模型叫做『Skip-gram 模型』
- 而如果是拿一个词语的上下文作为输入,来预测这个词语本身,则是 『CBOW 模型』
但是作为输入的词语该怎么表示呢? 肯定不是Word2Vec,而是one-hot encoder。
这个词向量的维度(与隐含层节点数一致)一般情况下要远远小于词语总数 V 的大小,所以 Word2vec 本质上是一种降维操作——把词语从 one-hot encoder 形式的表示降维到 Word2vec 形式的表示。
再具体的内容请看原博文,写的很细