distributional similarity based representations: word2vec

什么是word2vec

word3vec从广义上讲是泛称,指用来使文本向量化成计算能读懂的形式的技术。word2vec通过训练神经网络进行预测任务,来得到该词的向量表示。

两种训练的方法:

  1. Given a sentence with a missing word, find me the missing word:用语境来预测目标词,即continuous bag of words, or CBOW
  2. Given a word, predict me which other words should go around:用词来预测语境,即skip-gram

后者可以在大数据集上有更准确的效果,下面分别说明这两种方法。


CBOW

在这里插入图片描述
从上图可以看到,CBOW构建训练集时,对于一个句子,挖去其中的一个词,然后将这个词作为输出,句中其余的词作为输入。


skip-gram

在这里插入图片描述
从上图可以看到,skip-gram在构建训练集时,对于中央词"red",一个滑动窗口(n-gram,后面会提到)所涵盖的其余词by, a, bus, in就是中央词"red"的context,根据skip-gram的方法:通过词预测他的context,构建出了input为red,output分别为by, a, bus, in的训练数据。

skip-gram之n-gram

定义:Words are read into the vector one at a time, and scanned back and forth within a certain range.

从上一段可以看到,n-gram的方法体现在了构建训练集上


skip-gram的具体实现过程

在这里插入图片描述
假设字典大小为1000,词向量长度为300. 可以看到输入的是一个中央词的one-hot的编码,然后乘上一个矩阵,得到他的vector,之后乘上一个矩阵,再进入softmax函数,得到每个词会作为context的概率。


skip-gram改进

skip-gram改进之subsampling

subsampling方法是如果一个词出现的次数很多,如the,可以知道,以the作为context时,对那个词的语义的向量表示并没有太多贡献;并且对于the的语义的向量表示来说,因为the的出现频率高,会太多的训练数据。
所以改进方法为:

  1. 如果the在某个词的context中,不会把这对数据加入训练集
  2. 只选择部分以the作为中央词汇的数据对加入训练集

skip-gram改进之negative sampling

在这里插入图片描述
上图为一个skip-gram模型的流程,输入词为not,第一步可以理解为为在一个look-up table查找not对应的向量,第二步为输出层计算出logits,第三部使用softmax函数计算字典中每个词为context的可能性,可以想象到计算量会十分巨大。
为了改进,我们把任务转换为,输入变为同时输入input word和target word,让模型预测target word是否是inout word的context,如下图:
在这里插入图片描述
但这样的训练集只会训练出只能预测1的模型,生成的word embedding也是不可用的,所以需要引入negative samples来解决这个问题。
引入后的训练集如下图:
在这里插入图片描述
这样,数据集便能平衡。

skip-gram之negative sampling的具体实现

首先可以理解一下这句话:Negative sampling addresses this by having each training sample only modify a small percentage of the weights, rather than all of them.

具体实现时,只需要更新中央词的look-up table,还有对应的context word和negative sampling的对应词。


参考资料:
[1]: CS224n
[2]: http://mccormickml.com/2017/01/11/word2vec-tutorial-part-2-negative-sampling/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值