Word2vec 笔记|总结

Word2vec 总结

  • 两类模型:continuous bag-of-words (CBOW)根据上下文预测中心词;skip-gram 根据中心词预测上下文
  • 两种训练方式:负采样和层次 softmax,负采样通过抽取负的样本建立目标函数,而层次 softmax 使用树结构来计算每个词的概率。

word2vec 是基于神经网络的语言模型,输入词嵌入矩阵 V V V和输出词嵌入矩阵 U U U是模型要训练的参数,CBOW 通过上下文 one-hot 向量和 V V V相乘求平均得到中心词词向量估计 v v v,中心词词向量再和 U U U相乘得到一个得分向量(相当于求 v v v和每个词的相似度),用 softmax 归一化把得分向量变成概率输出 y ^ \widehat{y} y 表示已知上下文后中心词的条件概率分布 。skip-gram 通过中心词 one-hot 向量和 V V V相乘求平均得到中心词词向量,后面步骤和 CBOW 相同。
CBOW

训练目标函数:使用交叉熵损失衡量生成的概率分布和真实分布的差距。在这里插入图片描述
而真实的分布向量只在 要预测的词 的位置为 1,其他位置为 0,所以目标函数可以把求和简化掉。在这里插入图片描述

但可以发现每次计算Loss 开销很大,因为 softmax 归一化会遍历所有词。所以对模型或者优化目标进行改进,提出了基于层次 softmax 和负采样的方法。

Hierarchical Softmax 的 Word2vec 模型

通过建立一个 Huffman 树,把 Huffman 树接到了原始模型的隐藏层后计算每个词的概率输出,每个叶子节点代表一个词典中的词。 对于词典中的每一个词,在树中都有一条唯一路径到达它,
这条路径的每个节点的分叉是一个逻辑回归的结果,向右走代表 sigmoid 值大于 0.5被分为正类(霍夫曼树编码0),向左走代表 sigmoid 值小于 0.5被分为负类(霍夫曼树编码1)。把这条路径走所有节点的概率相乘得到每个词的输出概率。对于所有词向量和内部节点的参数 θ \theta θ ,我们要最大化目标词的概率。最后通过梯度上升法一步步求解参数。 细节参考 1. 细节参考 2.

负采样的 Word2vec 模型

请先看这篇博客,以下是我的概括:
对于一个来自语料库的训练样本 ( c o n t e x t ( w c ) , w c ) (context(w_{c}),w_{c}) (context(wc),wc),我们认为它是一个正例,再到词典中按频率抽词 w i w_{i} wi作为 c o n t e x t ( w c ) context(w_{c}) context(wc)的中心词生成负例样本,建立逻辑回归模型预测条件概率 P ( w ∣ c o n t e x t ( w ) ) P(w|context(w)) P(wcontext(w))或者 P ( w i ∣ w ) P(w_{i}|w) P(wiw),训练参数 θ \theta θ x x x 使得正例的概率大,负例的概率小。对于这一批样本我们通过梯度上升最大化对数似然函数(由逻辑回归计算的条件概率相乘得到)。

在这里插入图片描述

在计算频率时,每个词的次数按原本次数的 3 4 \dfrac{3}{4} 43次幂来算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值