Distributed Representation of Words and Phrases and their Compositionality

Abstract

Skip-gram模型是一个学习高质量的词分布向量表示的方法,这个向量可以捕获许多细微的语法和语义关系。在本文将提出一些策略用来提高训练的词向量的质量和提高训练速度。

  1. 提出对高频词语进行下采样,加速训练过程和提高词向量质量(特别出现频率低的词)
  2. 通过负采样替代层次softmax(能够提高高频率词汇的词向量质量)
  3. 提出一个简单的从文本中发现短语,从而学习出短语向量的方法

Hierarchical Softmax

层次softmax是一个用来将得到一个词针对整个词汇表的归一化概率这个操作由直接使用softmax所需要的O(V)时间复杂度降低到 O(log2V) O ( l o g 2 V ) ,具体做法就是通过构造一棵二叉树,用V个叶子代表词汇,由根到叶子的路径上的概率乘积表示相应词汇的乘积。

Negative sample

该方法可以作为层次softmax的替代,并且该方法是Noise Contrastive Estimation(NCE)的一种简化模式。
在这里由几个经验数据,对于较小的数据集每次的负样本的k的取值可以是5-20,而对于大的数据集,负样本的数目可以是2-5。
同时对于负采样的分布,采用的unigram词频的3/4次幂构成的分布。
关于Negative sample为什么能提高高频词的词向量的质量,而层次softmax的低频率词向量较好在于,层次softmax的低频词的词向量可以根据从其父节点继承一些信息过来,所以能够得到较好的更新,而Negative Sample因为是直接随机取负样本,高频的词的出现的概率更高所以能得到更好的更新。该解释参考自stackexchange。

subsampling for Frequent Words

原因:由于一些常用的词语如a、the等它们出现的频率特别高,但是它们与一些词共现时提供的信息比一些低频词共现要少很多。所以要以一定概率丢弃一些高频词
实现:以如下公式丢弃训练集中的一些高频词汇

P(wi)=1tf(wi)(1) (1) P ( w i ) = 1 − t f ( w i )

其中t是个阈值超参数,其一般的取值是 105 10 − 5

Learning Phrases

首先通过如下公式将训练集中的最可能组成Pharse的词汇找出来将其变成一个token,具体公式如下:

score(wi,wj)=count(wi,wj)δcount(wi)×count(wj) s c o r e ( w i , w j ) = c o u n t ( w i , w j ) − δ c o u n t ( w i ) × c o u n t ( w j )

其中 δ δ 是用来防止将很低频的词汇也赋予较高的score,使得其也变成一个Phrase.在处理的时候会多次处理训练集,并将score的阈值不断调小,这样可以使得模型能够将多词组成的phrase通过多次的扫描数据集不断拼接出来。

  1. 在训练Phrase的时候,如果不适用subsample, HS方法的效果不是很好,但是如果使用了subsample,HS的结果最好。
  2. 很大的数据集对于HS训练Phrase也很重要

Additive Compositionality

在模型中训练的词向量存在着如下的关系:vec(Russian)+vec(river) = vec(Volga River).这种可能可以理解成词向量其实是包含了它的分布特性在向量表示中,因为词向量就是通过用目标词的词向量预测它的上下文中的词来训练词向量的。所以它会在向量中包含它的上下文信息。Volga River很频繁的与Russian以及River出现在相同的语境中。而向量加法操作可以看成是两个词语的上下文分布的并操作,因为只有两个向量都很大的维度,才会在结果向量中比较突出,代表这个语义更明显。所以在Russian与river的并操作上下文中,Volga River的上下文也与其类似,所以它们的词向量也很接近。

Conclusion

1.任务敏感,且对结果影响较大的超参数主要有向量的维度、subsample的比率以及的训练的窗口长度

你可能感兴趣的:(Distributed Representation of Words and Phrases and their Compositionality)