读懂智能&未来
AI开发 正文
雷锋网按:这是一个关于 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”等。
申请专栏作者
首页 AI研习社 AI影响因子 活动 专题 精选 爱搞机
业界 人工智能 智能驾驶 AI+ Fintech&区块链 未来医疗 网络安全 AR/VR
机器人 开发者 智能硬件 物联网 GAI
一文详解 Word2vec 之 Skip-Gram 模型(训练篇)
本文作者:AI研习社 2017-06-23 10:34
导语:这可能是关于 Skip-Gram 模型最详细的讲解。
0