Distributed Representations of Words and Phrases and their Compositionality 阅读笔记
2014-07-26 by Leonvia: liustrive.com
文章提出了一些对Skp-gram模型的扩展,提出一种NCE(Noise Contrastive Estimation )方法用以代替上文hierarchical softmax方法,从而获得更高的效率和对高频词的更好的词向量结果。 文中提到词向量表示的一大弊端是它们无法表示一些词组成的常用短语,这短语不是字面上把其组成词连接起来的意义,于是提出扩展,将基于词的模型变成基于短语的模型,扩展的原理是先抓出这些短语,然后把这些短语作为整体的“词”加入训练集,然后使用上文实验部分中提到的方法,利用词向量代数运算验证准确性。
The Skip-gram Model
上文介绍过skip-gram模型的结构,给定一句由训练词{w1,w2,w3…wT},其目标是最大化平均对数概率,c为目标词的前后上下文长度
即:
Hierarchical Softmax
Hierarchical Softmax是full softmax的一种计算量优化,其目标是减少计算:
Negative Sampling
文章提出一种代替hierarchical softmax的方法(NCE),NCE能够求出softmax的对数概率函数近似最大,由于skip-gram模型只关心词向量的质量,所以在保证词向量准确性的条件下,还可以进一步简化NCE,文章定义了NCG方法:
每个$\log p(W_O | W_I) $的运算被下式替代:
其中k是为每个数据样本选用k个负类样本,在小的数据集时可以取5-20,大的数据集甚至取2-5就够用,Negative sampling 和NCE的主要区别是NCE同时需要样本和噪声分布的数值概率 ?
Subsampling of Frequent Words
在大型的语料中,一些词会有非常高的词频,比如the, a , in 这种类型词,但是这种高频词往往比一些低频词提供更少的有效信息,所以为了逆转这种不平衡性,文章提出一种二次抽样方法:
实验部分:
传统的实验
这篇文章的实验任务也采用上文的代数运算准确率衡量,实验描述参见上文Task description 文中实验Skip-gram采用10亿数据量的数据集,抛弃词频少于5次的词,实验结果如图Table1
可以观察到Negative Sampling准确率高于HS算法,比原版的NCE也有少许提升,同时观察到以\(10^{-5}\)为阈值二次采样过滤后,大幅缩短了训练时间,同时少量提升了词向量准确度。
短语实验
上文提到过,一些由词组成的固定短语并不是其字面意义,于是作者抓出这些固定短句,并以其为整体加入词库而不是拆分成单个的词,抓出这些词的具体方法是:
这里具体怎么个2-4次法,前次的输出作为后次的数据集还是什么,文中没说清。
而后作者设计了针对固定短语的实验,与前文代数运算实验相近,只是测试用例变成:
组成固定短语的词 →固定短语
的关系,采用的样例如Table2:
Additive Compositionality
文章最后还讨论了词向量的加法语义合成,如Table4所示:
词向量加法能得到与相加的两词语义最接近的词或短语,这主要是因为在训练过程中,相加的两词有更大可能与结果短语或词在同一句中,比如“中国”+“首都”= “北京”
文章最后横向与相近工作的其它模型做了比较,比较训练时间以及词向量的准确率,结果表明Skip-gram phrase model 具有最快的训练时间(随着数据集规模的增长只有少量时间增加)和很好的准确性。