word2vec公式推导及原理简记

https://www.cnblogs.com/pinard/p/7243513.html

http://www.cnblogs.com/pinard/p/7249903.html

  1.  word2vec区别于one_hot映射方法,将词向量赋予含义并映射到向量空间,通过向量减法、点乘表示两词相差、相关性。
  2. 两种预测模型:Cbow(周围词向量预测中间词向量)和skip-gram(中间词向量预测周围词向量)。
  3. 两种训练模型:Hierachical softmax(huffman树)和negtive sampling(权重采样负例)。
  • Hierachical softmax:(以Cbow为例, negative的区别只是一开始和误差叠加到一个向量。)
  • 用huffman树代替传统神经网络, 速度快。但是对出现频率少对词需要对路径较长,比较慢。
  1. 按照词频构建哈夫曼树。
  2. 先把周围词向量加和,然后\sigma \left (x_{i} \Theta^{T} \right )为预测值。
  3. 顺着哈夫曼树走,与哈夫曼码比较。算梯度误差,累加误差给x,修正\Theta

推导过程:(人为规定左子树为负类0,右子树为负类1)

哈夫曼树往左走的时候,预测概率为1-sigmoid, 往右走为sigmoid。

先求似然函数,也就是(根据dj为0和为1记住)

取对数求导,得到梯度为1-d-sigmoid()。对于sita偏导数乘xi,对于xi偏导数乘sita。

修正sita,累加x。

  • negtive sampling:以词频为依据赋权重建立单位线段。采用随机投影方式获取n个负样本。
  • 将模型简化。

                          

推导过程:假设上下文为y0=1,其他负例均为yi=0。

取对数求导得:采用梯度上升法,对sita导数为xi*(yi - sigmoid),对x为sita(yi-sigmoid)求和。

猜你喜欢

转载自blog.csdn.net/silent_crown/article/details/84786404
今日推荐