Word2vec原理解析
1. 词向量表示
One-hot表示:用词向量的维度代表整个词汇表的大小,每个词对应其在词汇表的位置为1。如:我 今天 中午 吃的 米饭。其中“中午”的One-hot表示为 00100。One-hot表示存在着词之间是孤立的,当词汇表很大时,存在着内存灾难的问题。
分布表示:通过训练,将每个词都映射到一个较短的词向量上来,词向量的长度人为指定。词向量中每一个神经元节点代表属于这一类的程度。
词嵌入/向量(word embedding):基于神经网络的分布表示又称为词向量或者词嵌入,word2vec模型的目的就是为了的到这样的词嵌入表示。
2. Word2vec中的连续词袋模型(CBOW)
连续词袋模型是一个三层神经网络。该模型的特点是输入已知上下文,输出对当前单词的预测。如“我 今天 中午 吃的 米饭”,假设CBOW模型设定滑动窗口为2来进行训练,则用‘我’,‘中午’,‘吃的’来预测‘今天’,然后滑动窗口右移,用‘我’,‘今天’,‘吃的’,‘米饭’来预测‘中午’。