2.6 Word2Vec
Last updated
Last updated
选择context和target的方法中,比较流行的是采用Skip-Gram模型
Skip-Gram模型的做法是:首先随机选择一个单词作为context,例如“orange”;然后使用一个宽度为5或10(自定义)的滑动窗,在context附近选择一个单词作为target,可以是“juice”、“glass”、“my”等等。最终得到了多个context—target对作为监督式学习样本:
训练的过程是构建自然语言模型,经过softmax单元的输出为:
为target对应的参数,为context的embedding vector,且
相应的loss function为:
由于 是一个one-hot向量,所以上式实际上10000个项里面只有一项是非0的
然后,运用梯度下降算法,迭代优化,最终得到embedding matrix
然而,这种算法计算量大,影响运算速度。主要因为softmax输出单元为10000个,计算公式中包含了大量的求和运算
解决的办法之一是使用hierarchical softmax classifier,即树形分类器:
这种树形分类器是一种二分类。它在每个数节点上对目标单词进行区间判断,最终定位到目标单词。最多需要步就能找到目标单词,N为单词总数
实际应用中,对树形分类器做了一些改进。改进后的树形分类器是非对称的,通常选择把比较常用的单词放在树的顶层,而把不常用的单词放在树的底层。这样更能提高搜索速度
关于context的采样:如果使用均匀采样,那么一些常用的介词、冠词,例如the, of, a, and, to等出现的概率更大一些。但是这些单词的embedding vectors通常不是最关心的,更关心的例如orange, apple, juice等这些名词。所以实际应用中一般不选择随机均匀采样的方式来选择context,而是使用其它算法来处理这类问题