调节阀厂家
免费服务热线

Free service

hotline

010-00000000
调节阀厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

一文详解Word2vec之SkipGram模型训练篇_[#第一枪]

发布时间:2021-06-07 14:41:34 阅读: 来源:调节阀厂家

雷锋网按:这是一个关于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 ,相关链接如下。

论文

曲轴加工

婚姻心理咨询

塑料注射模