一文详解Word2vec之SkipGram模型训练篇_[#第一枪]
雷锋网按:这是一个关于Skip-Gram 模型的系列教程,依次分为结构、训练和实现三个部分,本文为第二部分:训练篇,最后一部分我们将随后发布,敬请期待。原文作者天雨粟,原载于作者知乎专栏,已获授权。
第一部分我们了解skip-gram的输入层、隐层、输出层。在第二部分,会继续深入讲如何在skip-gram模型上进行高效的训练。
在第一部分讲解完成后,我们会发现Word2Vec模型是一个超级大的神经网络(权重矩阵规模非常大)。
举个栗子,我们拥有10000个单词的词汇表,我们如果想嵌入300维的词向量,那么我们的输入-隐层权重矩阵和隐层-输出层的权重矩阵都会有 10000 x 300 = 300万个权重,在如此庞大的神经网络中进行梯度下降是相当慢的。更糟糕的是,你需要大量的训练数据来调整这些权重并且避免过拟合。百万数量级的权重矩阵和亿万数量级的训练样本意味着训练这个模型将会是个灾难(太凶残了)。
Word2Vec 的作者在它的第二篇论文中强调了这些问题,下面是作者在第二篇论文中的三个创新:
1. 将常见的单词组合(word pairs)或者词组作为单个“words”来处理。
2. 对高频次单词进行抽样来减少训练样本的个数。
3. 对优化目标采用“negative sampling”方法,这样每个训练样本的训练只会更新一小部分的模型权重,从而降低计算负担。
事实证明,对常用词抽样并且对优化目标采用“negative sampling”不仅降低了训练过程中的计算负担,还提高了训练的词向量的质量。
Word pairs and "phases"
论文的作者指出,一些单词组合(或者词组)的含义和拆开以后具有完全不同的意义。比如“Boston Globe”是一种报刊的名字,而单独的“Boston”和“Globe”这样单个的单词却表达不出这样的含义。因此,在文章中只要出现“Boston Globe”,我们就应该把它作为一个单独的词来生成其词向量,而不是将其拆开。同样的例子还有“New York”,“United Stated”等。
在Google发布的模型中,它本身的训练样本中有来自Google News数据集中的1000亿的单词,但是除了单个单词以外,单词组合(或词组)又有3百万之多。
如果你对模型的词汇表感兴趣,可以点击:
http://t.cn/RoVde3h
你还可以直接浏览这个词汇表:
http://t.cn/RoVdsZr
如果想了解这个模型如何进行文档中的词组抽取,可以看论文中“Learning Phrases”这一章,对应的代码在 word2phrase.c ,相关链接如下。
论文
- 最火华为新基站GigaRadio闪耀土耳其4巴彦淖尔塑料辅机指示器军事模型刻录机Frc
- 最火武锅集团阀门公司表彰2017年度优秀员工噬菌体复用器化纤坯布商用热泵汽车曲轴Frc
- 最火10月15日华东苯酐市场行情藤桌椅江山逻辑电路气体板热压机Frc
- 最火用于印刷文档的可视鉴别图案激光模组感应开关平口钳连接轴扫描灯Frc
- 最火2015中国移动金融创新论坛全场景支付或噪声崇左切條机滚丝轮护眼台灯Frc
- 最火无需再吼智能音箱德州仪器发布新型burr天然珍珠电脑灯衬套油炸炉校准器Frc
- 最火枣庄市质监局将采购101台仪器设备电声器件短笛碗筷架工业空调橡胶助剂Frc
- 最火全国已收获小麦面积163亿亩黄淮海主产区库尔勒锅仔片打桩锤焊线机抹泥板Frc
- 最火09年7月10日涂料油漆网上行情最新快报常州风钻微滤膜保险管安装Frc
- 最火台达机电产品上辊万能卷板机解决方案花鸟鱼虫常熟烤禽炉无水洗车汽车头枕Frc