http://www.hankcs.com/nlp/word2vec.html
https://www.jianshu.com/p/1c73e01f9e5c
做Graph相关paper,提到Skip-gram和Nagitive采样,有些记忆混淆,特地查阅读相关博客
1) CBOW 和Skip-Gram的区别为多对一和一对多的关系
2)传统的语言Embedding模型是纯粹基于神经网络的,输入到隐藏层再到输出,训练W和W‘,softmax多分类,计算量巨大
3)引入google的word2vec实现,模型的训练是方法,副产物vector才是我们想要的代表
4)google的word2vec里面通过hierarchical Softmax实现,引入huffman树,CBOW输入为求和,skip-gram为单个单词的vector,中间节点为隐藏层,叶子节点为对应的词向量。通过最大似然概率来实现,根据预测路径,得到路径编码0101010,根据路径,来更新节点的参数ceta和输入x_w, Skip-gram的不同是要集成多个相邻词向量,但要训练的参数ceta和x_w没变化。最终通过语料不断地训练,来更新vec,即我们想要的embedding词向量。
CBOW和skip-gram的核心区别为vector的更新,skip_gram要整体求和之后再更新
5)负采样理解类似
文章众多,博客众多,个人觉得上面两篇的理解会稍微好点,如果时间充裕,那么还是去读原始paper吧,这样更加精准。