word2vec中的CBOW模型

word2vec中的CBOW模型

简介

word2vec是Google与2013年开源推出的一个用于获取word vecter的工具包,利用神经网络为单词寻找一个连续向量看空间中的表示。

word2vec有两种网络模型,分别为:

  • Continous Bag of Words Model (CBOW)
  • Skip-Gram Model

CBOW网络模型

使用上下文的词汇来同时预测中间词

  • 滑动时使用双向上下文窗口
  • 输入层:仍然直接使用BOW(词袋)方式表示
  • 投射层:
    • 对向量直接求和(或求平均),以降低向量维度
    • 实质上是去掉了投射层
  • 隐含层:直接去除(输入信号量直接求和,映射到输出层)
  • 输出层:
    • 输出层为一棵二叉树,以词库中的词作为叶子结点,并以词频为权重构造出来的Huffman树,如果词库中有D个词,则有D个叶子结点。
  • 实质上只是一个线性分类器
  • 显然,短语料不适合用word2vec来分析,运算量仍然很大。

降低运算量:分层softmax

降低运算量:负例采样

 Word2Vec仍然存在的问题

CBOW模型流程举例

假设 Courpus = { I drik coffee everyday } ,根据 “I”“drink”“everyday”来预测“coffee”。

投影层将每个词向量加起来,

这里Xw即上图Uo ,当Xw传导到输出层时,因为输出层为一棵二叉树,每一次分支都可视为进行一次二分类,将分到左边为负类,分到右边为正类。
根据sigmoid函数,可将二分类函数写成:

所以,一个结点被分到正类的概率是:

被分到负类的概率是:

这里Θ向量是待定参数。
将每个分支的概率相乘就是所需的 P( W | Context(W) )

对概率函数取对数,即

并对式子求 Xw的偏导 和 Θ 的偏导。

最终,通过大量的数据迭代,使用梯度下降更新W和W’,来最小化loss函数,训练结束后的W就是词向量的矩阵,任何一个单词的One-Hot表示乘以这个矩阵W就可以得到其词向量的表示。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值