NLP词向量表示:CBOW、Skip-gram、hierarchical softmax、negative sampling

词向量表示

  词向量表示模型比较基础的有word of bag、word2vec等,现在比较流行的还有Bert、Xlnet等,这篇blog先主要讲一下有名的skip-gram模型和CBOW模型,这俩都属于word2vec模型,同时总结一下比较有名的优化方法hierarchical softmax和negative sampling。

CBOW

  对于一段文本 w 1 , w 2 … w n w_1, w_2\dots w_n w1,w2wn,CBOW就是根据背景词预测中心词,设词库总量是 V V V,假设考虑邻近的 2 c 2c 2c个词,如果我们想要预测 w i w_i wi,那模型的输入就是 w i − c , … , w i − 1 , w i + 1 , … , w i + c w_{i-c},\dots,w_{i-1},w_{i+1},\dots,w_{i+c} wic,,wi1,wi+1,,wi+c,输出是一个包含有 V V V个值的一维向量,一维向量的每个值代表着选取词库中各个词的概率,所以这个一维向量的每个值的总和为1,概率最高的词即是输出,如果模型效果好,概率最高的值指代的词就是预测结果,模型示意图如下:

  模型的参数主要体现在两个参数矩阵 A , B A,B A,B,其中 A = W V × N , B = W N × V ′ A=W_{V\times N},B=W'_{N\times V} A=WV×NB=WN×V,其中 N N N是我们事先规定的词向量的表示维度(dimension),对于输入的2c个词,我们会用one-hot编码记录成矩阵 X 2 c × V X_{2c\times V} X2c×V,V是词库大小, ( X ⋅ A ) 2 c × N (X·A)_{2c\times N} (XA)2c×N得到这2c个词的词向量表示,通过求和取平均,压缩成一维向量 A v g ( ( X ⋅ A ) ) 1 × N Avg\big((X·A)\big)_{1\times N} Avg((XA))1×N,那么 ( A v g ( ( X ⋅ A ) ) ⋅ B ) 1 × V \Big(Avg\big((X·A)\big) \cdot B\Big)_{1\times V} (Avg((XA))B)1×V在经过softmax就是对词库V个词的概率映射。

  上述是模型的前向传播过程,利用随机梯度下降,反向传播更新参数矩阵 A , B A,B A,B,最后使用模型时只用矩阵 A A A,对于输入的单词 w w w,经过相同规则的one-hot编码得到 w ′ w'

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值