对Skip-Gram模型优化扩展


对Skip-Gram模型优化扩展

目录
  • 对Skip-Gram模型优化扩展
    • 优化计算量:hierarchical softmax
    • 对高频词重采样
    • Negative Sampling 负采样
    • 从基于单词的模型扩展到基于短语的模型
      • Skip-Gram词向量模型的影响因素

论文解读:Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, Jeffrey Dean. Distributed Representations of Words and Phrases and their Compositionality http://arxiv.org/abs/1310.4546v1, 2013.

Skip-gram的训练目标:预测文本中某个词周围可能出现的词

模型动机: 每个词都决定了相邻的词

产生模型正样本:长度2c+1的滑动窗口(c是上下文窗口大小)

优化目标:样本的条件概率之积最大,
\(1/T\sum_{t=1}^{T}\sum_{-c<=i<=c,j!=0}log{P(w_{t+j}|w_t)}\)

多分类问题,softmax,向量之间越相似,点乘结果越大,从而归一化后得到的概率值越大
\(p(w_O|w_I)=\frac{exp(v_{w_O}^{T}v_{w_I})}{\sum_{w=1}^{W}exp(v_{w}^{T}v_{w_I})}\)

优化计算量:hierarchical softmax

利用二叉树表示输出层,W个词分别作为叶节点,每个节点表示其子节点的相对概率,Sigmoid函数判别正类(右)和负类(左)。输出层的计算量从需要计算W个节点,减少到只需计算log(W)即二叉树的高度。

霍夫曼树:加速训练技术,高频词靠近树根,需要更少时间被找到。

优缺点:

  • 提高了模型训练效率
  • 如果训练样本中心词w是一个生僻词,则耗时很久

对高频词重采样

二次采样(sub-sampling)解决低频词和高频词的不平衡,每个词都有一定的概率被丢弃:
\(P(w_i)=1-sqrt(t/f(w_i))\) ,f(w_i)是每个词的词频

Negative Sampling 负采样

NEG思路来源于NCE噪声对比估计(noise contrastive estimation),假设一个好的模型可以通过逻辑回归来区分正常数据和噪声。

NEG负采样将输出的多分类转为二分类问题。给定两个词,其中一个词做Content判读另一个词是不是target,如果是则输出1,不是输出0.

一组正取样+n组负取样(小数据集n取5-20,大数据集n取2-5)

词向量和字典中每个词都会进行一次二分类,来判断这个词是Content的target,每次迭代只涉及k+1个单元。

如何选取负样本?

均匀分布——无代表性;根据词频取样:高词频的词容易出现次数多,模型做无谓训练。

折中办法:\(P(w_i)=\frac{f(w_i)^{3/4}}{\sum_{j=1}^{n}f(w_j)^{3/4}}\)

从基于单词的模型扩展到基于短语的模型

短语phase的含义并不是由单个单词的含义组成:new york times,Canada Air等。

利用数据驱动方法识别短语,组成一个Token作为一个词处理:

  • Ngram词表增大
  • 基于unigram bigram方法,引进惩罚项避免太多无关词组合
    \(score(w_i, w_j)=\frac{count(w_iw_j)-\delta}{count(w_i) \times count(w_j)}\)

评估短语质量:
最好的短语表示(phase representation)是通过一个hierarchical softmax和Subsampling结合的模型来学习。

Q: 词向量存在可加性/合成性A+B=?

好的词嵌入:词相似度,词在整个空间的相对位置。

A+B=C

词向量可以看做是其上下文分布的表征,A和B相加得到的向量C可以看做是一个feature,只有与A和B在相同的上下文经常出现的词才会接近这个feature。

Skip-Gram词向量模型的影响因素

  • 架构选择
  • 词向量的维度
  • 采样率
  • 训练窗口的大小