发现一篇好文,介绍word2vec非常清楚

mark一下,链接

https://zhuanlan.zhihu.com/p/89637281

这篇介绍word2vec的文章通俗易懂


    word2vec 是用128维的向量表示一个词,如果有5w个常用词,那么需要训练的参数由5w*128。

     假设需要用onehot的方式表示一个词的向量,那么一个词‘我’,就是一个5w维的稀疏向量,那么5w个词就是5w*5w的稀疏矩阵。

如果令 A = 5w*5w 的稀疏矩阵, 一个权重矩阵 W=5w*128 ,则通过A*W 得到一个5w*128的B矩阵,每个词的向量被截断(压缩)到128维。而word2vec就是不断学习,得到这个权重矩阵W的过程。

word2vec的两种表示方法cbow和n-gram,而帮助训练的方法是霍夫曼树和负采样,最终经过一个softmax函数得到概率。而学习的方法是梯度下降法。

下面来看一下,作者推导一个词的训练公式。这是一个霍夫曼树。

这个图生动的表示了一个词通过霍夫曼树求概率,二分类用逻辑回归,多分类用softmax,对一个词当然是二分类。

作者推导的公式,直接贴出来。


梯度上升,梯度下降是一回事,取负号就可以。

这里红色线框出来的,就是我们开头说的权重矩阵。

这里作者说这个是反响传播误差,我没有明白word2vec的反相传播。


这里我整个都没懂的!

今天突然有点想清楚了何为误差反响传递,感觉这只是对训练权重的一种描述

输入x  输出y,然后输入再加上权重w

这在单层网络中可能并不明显,多层网络比较容易理解。

你可能感兴趣的:(发现一篇好文,介绍word2vec非常清楚)