nlp相关(一)——word2vec

初次接触word2vec可是花了好久的时间才弄明白。。其中两篇博文参考价值最大,所以整理到自己的博客中~~~

1.word2vec原理

一种训练词向量的方法。训练的目标是为了获得分布式词向量

对词向量的理解:由于计算机无法理解自然语言,因此首先要做的就是将语言数学化。

就是采用一层神经网络将one-hot形式的词向量转化为分布式形式的词向量。

分布式词向量隐含了词语的信息,之间的夹角隐含了词语之间的相关性。利用了词的上下文,语义信息更加丰富。

 

One-hot形式:词向量的维度大小为整个词汇表大小,对于每个词汇表中的词,将该位置为1.

分布式表示形式:经过训练,将每个词映射到一个较短的向量上,这些词向量就构成了向量空间。

 

word2vec两个重要的模型——CBOW(continuous Bag-of-Words Model)与Skip-Gram(Continuous skip-gram 模型)

两个重要的框架(训练方式)——Hierarchical softmax模型(层次softmax)和Negative Sampling(负采样)模型

 

2.CBOW与Skip-Gram对比(重要)

主要突然理解了w2v是源于这一篇博客。。。。

https://zhuanlan.zhihu.com/p/37477611

cbow和skip-gram都是在word2vec中用于将文本进行向量表示的实现方法,具体的算法实现细节可以去看word2vec的原理介绍文章。我们这里大体讲下两者的区别,尤其注意在使用当中的不同特点。

cbow方法中,是用周围词预测中心词,从而利用中心词的预测结果情况,使用GradientDesent方法,不断的去调整周围词的向量。当训练完成之后,每个词都会作为中心词,把周围词的词向量进行了调整,这样也就获得了整个文本里面所有词的词向量。

要注意的是, cbow的对周围词的调整是统一的:求出的gradient的值会同样的作用到每个周围词的词向量当中去。

可以看到,cbow预测行为的次数跟整个文本的词数几乎是相等的(每次预测行为才会进行一次backpropgation, 而往往这也是最耗时的部分),复杂度大概是O(V);

而skip-gram是用中心词来预测周围的词。在skip-gram中,会利用周围的词的预测结果情况,使用GradientDecent来不断的调整中心词的词向量,最终所有的文本遍历完毕之后,也就得到了文本所有词的词向量。

可以看出,skip-gram进行预测的次数是要多于cbow的:因为每个词在作为中心词时,都要使用周围词进行预测一次。这样相当于比cbow的方法多进行了K次(假设K为窗口大小),因此时间的复杂度为O(KV),训练时间要比cbow要长。

但是在skip-gram当中,每个词都要收到周围的词的影响,每个词在作为中心词的时候,都要进行K次的预测、调整。因此, 当数据量较少,或者词为生僻词出现次数较少时, 这种多次的调整会使得词向量相对的更加准确。因为尽管cbow从另外一个角度来说,某个词也是会受到多次周围词的影响(多次将其包含在内的窗口移动),进行词向量的跳帧,但是他的调整是跟周围的词一起调整的,grad的值会平均分到该词上, 相当于该生僻词没有收到专门的训练,它只是沾了周围词的光而已。

因此,从更通俗的角度来说:

在skip-gram里面,每个词在作为中心词的时候,实际上是 1个学生 VS K个老师,K个老师(周围词)都会对学生(中心词)进行“专业”的训练,这样学生(中心词)的“能力”(向量结果)相对就会扎实(准确)一些,但是这样肯定会使用更长的时间;

cbow是 1个老师 VS K个学生,K个学生(周围词)都会从老师(中心词)那里学习知识,但是老师(中心词)是一视同仁的,教给大家的一样的知识。至于你学到了多少,还要看下一轮(假如还在窗口内),或者以后的某一轮,你还有机会加入老师的课堂当中(再次出现作为周围词),跟着大家一起学习,然后进步一点。因此相对skip-gram,你的业务能力肯定没有人家强,但是对于整个训练营(训练过程)来说,这样肯定效率高,速度更快。

 

3.层次Softmax与负采样训练细节

传送门。。这篇博客讲的特别好,认真看一遍手写推导一遍就可以完全明白训练过程了。

https://blog.csdn.net/itplus/article/details/37969979

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值