Graph探索之word2vec

谷歌无监督神器之word2vec

本文参考:https://blog.****.net/peghoty/article/details/37969979

  word2vec是用来生成词向量的工具,是一种无监督的学习方法,将词语数字化后就可以做很多处理了。此处的词语向量化后其中的数字是有意义的,代表的是不同词语间的相似度。word2vec包含两个模型:CBOW和Skip-gram模型,其中基于这两个模型又提出了对应的改进措施:Hierarchical Softmax和Negative Sampling 两种优化。除了词向量,还可以有句向量,文档向量等。

预备知识之Huffman编码

   对于word2vec中也会用到此编码,将训练语料中的词语的出现次数当作叶子结点的权值,通过相应的Huffman树构造对应的每个词编码。其中词频越大的词离根结点越近
Graph探索之word2vec
其中若叶子结点个数为n个,则构造的Huffman树中的新增结点个数为n-1个,此例中,总共有六个词对应六个叶子结点,对应新增5个结点。对应的Huffman编码方式如下:
Graph探索之word2vec
Graph探索之word2vec

一、Hierarchical Softmax

Graph探索之word2vec
Graph探索之word2vec
Graph探索之word2vec
假设我们的目标词汇为足球,则对于足球来说,从根节点到目的地共经历了4次分支,可以对应看作四次二分类任务,分到左边就是正类,分到右边就是负类。结合逻辑回归函数,最后的损失函数对应的就是四次损失函数的级联相乘。
Graph探索之word2vec

对于Skip-gram是同理。

二、Negative Sampling

Negative Sampling(简称为NEG)是NCE的一个简化版本,目的是用来提高训练速度并改善词向量的质量。其思想就是:在已知词w的上下文Context(w),需要预测w;那么对于给定的Context(w),词w就是一个正样本,其他词就是负样本。对于正样本label给1,对于负样本label给0,此处负样本较多不一定全部选取。
Graph探索之word2vec
这样以来损失函数就变成增加正样本的概率,降低负样本的概率,对于一个给定的语料库C,

Graph探索之word2vec
作为整体优化目标。

对于负样本过多的采样方法

Graph探索之word2vec