NLP自然语言处理学习笔记(二)Word2Vec
一、Word2Vec二、负采样本文是根据吴恩达教授的教学视频来整理的学习笔记,部分图片来源于视频的截图。原教学视频连接 https://mooc./learn/2001280005?tid=2001391038#/learn/content
一、Word2Vec
Word2Vec是词嵌入的一种算法。分为Skip-grams和CBOW两种。Skip-grams是给定中心词来预测上下文,CBOW是给定上下文来预测中心词。
下图中,以Orange为中心词,来预测上下文。
训练过程如下图:
Skip-grams算法的缺点主要是运行速度太慢。
改善方式一:softmax层需要对10000个样本求和,速度慢。因此使用分级softmax的算法,构建一课分类树,先判断预测出来的词是位于词汇表的前5000还是后5000,然后再继续做更细的分类。在实际使用中,这棵树通常可能不是对称的,将频繁出现的词放在贴近树根部的位置,将出现频率较低的词放到离树根部较远的位置。
改善方式二:负采样,下一小节将介绍。
二、负采样
正样本的分类结果是1,负样本的分类结果是0。
训练模型:
模型的输出是10000个softmax分类器,每次迭代选择1个正样本和k个负样本,来对参数进行更新。
如何选择负采样的样本?
如果按频率选择,会出现很多the, and, a, an这样的高频词,造成干扰。
如果完全均匀地选择,不考虑频率,效果又不太好。
因此有研究者建议,按频率的3/4次方来采样,可以取得比较好的效果。