分布式单词表示综述(一)

survey word representation

概览

最近在整理近些年来的词向量相关工作,发现了一篇2016年的相关综述.于是便顺着该篇综述来介绍相关的工作,其中涉及的有意思的工作可以参看后续的一些博文.

单词分布式表示学习主要方法

但更重要的问题在于为什么这样的一个神经网络可以在建模语言模型时,能够学出单词的分布式表示呢?且这种分布式表示可以包含单词间的语义关联呢?其核心思想在于:对于同一个单词,在其前面出现的上下文单词总是相似的。

神经网络语言模型

Bengio等人的[神经网络概率语言模型(Neural Probabilistic Language Model, NPLM)][3] [other][37]提出了一个通用的框架学习单词的分布式表达以及任意的N元语言模型.在该模型中,语言模型是通过给定前文来计算某个单词的概率.NPLM通过将词表示为分布式形式,有效的避免了维度灾难的问题,同时编码了词与词之间的联系,因而自带平滑效果,无需传统N元语言模型中复杂的平滑算法.但该模型的缺点也很明显,主要在于计算方面,NPLM使用$\mathrm{softmax}$层估计下一个词的概率,但这一层的维度是词表大小,分母需要进行$$\vert V\vert$$次计算.因此导致学习和推断的过程都十分耗时.

神经网络语言模型的加速

为了解决上述问题,早期使用神经网络语言模型学习单词表示的工作,主要都集中在于加速神经网络语言模型工作上了.对于神经网络语言模型加速的工作,主要集中于两方面:

  1. 直接近似优化原始目标函数
  2. 简化网络结构

近似优化原始目标函数 Bengio与Ducharme在[Quick Training of Probabilistic Neural Nets by Importance Sampling.][44]中提出使用 重要性采样(Importance Sampling) 的方法近似目标函数梯度中的期望项,提升了模型性能,但代价依旧很高.Minh等人在[A fast and simple algorithm for training neural probabilistic language models.][45]及[Learning word embeddings efficiently with noise-contrastive estimation.][46]中引入了 噪声对比估计(Noise-Contrastive Estimation, NCE) 取代了重要性采样进行训练过程中的概率估计.该方法的基本思想在于训练一个使用相同参数的逻辑斯蒂回归将真实分布的样本从噪声分布中区分出来.
简化网络结构 在[Hierarchical Probabilistic Neural Network Language Model.][48]的工作中,Morin与Bengio将原本NPLM中扁平化的softmax输出层转变为树状输出。这样就将$$\vert V\vert$$次的指数运算减少到$$\log{\vert V\vert}$$次的运算过程了。之外,在[Three New Graphical Models for Statistical Language Modelling.][23]中作者使用了更简单的对数双线性模型取出了之前模型隐层中的非线性计算部分,输入单词的表示经过简单的线性变换后直接与被预测词的向量做交互.

排序模型

Mikolov等人在[Neural network based language models for highly inflective languages.][51]的工作中发现,将单词表示学习与语言模型的训练分离开来进行,首先使用简单的模型在更大的语料上学习词向量,然后以此训练语言模型,同样可以取得很好的训练效果。另外,也有学者尝试将单词的分布式表示用于除语言模型之外的自然语言处理任务上,如C&W模型使用多任务学习来学习单词的分布式表示。
C&W模型做法与之前神经网络语言模型学习单词进行表示模型有如下改进:

  1. 同时使用单词前后的上下文进行学习;
  2. 对单词序列打分使用了排序损失函数而非基于概率的极大似然估计:
    $$
    \max{0, 1-s(w, c)+s(\hat{w}, c)}
    $$
    这里$$c$$代表单词$$w$$的上下文,$$\hat{w}$$表示将当前上下文$$c$$中的单词$$w$$替换为一个随机采样出的无关单词,$$s$$代表打分函数(打分越高,说明这段文本是正确的;打分越低,则说明这段文本不合理)。显然,在大多数情况下,将普通短语中的特定单词随机替换为任意单词,得到的都不是正确的短语。因此,模型的目标便是尽量使正确的语言(也就是观测的语料)得分比随机生成的语言的分数更高。这种技术也被称为 负采样技术

而在[WordRank: Learning Word Embeddings via Robust Ranking][55]中Ji等人进一步将排序损失函数应用在词向量表示学习的过程中,将其建模为一个排序问题,使用精妙设计的排序函数来学习单词表示。在[Hubness and Pollution: Delving into Cross-Space Mapping for Zero-Shot Learning.][56]的工作也发现,使用此类排序损失函数可以解决单词表示空间中离得很近的点不易区分的问题。

上下文单词预测模型

Mikolov等人在[word2vec][4]的工作中也进一步简化了以往的神经网络语言模型,去除了NPLM中间的非线性隐藏层,提出了两个简单的神经网络模型(Continuos Bag-of-Words, CBOW及Skip-gram, SG)来学习单词的分布式表示.上述两种做法十分简单,CBOW通过上下文词语的分布式表示的加权和来预测单词,后者通过单词的分布式表示来预测上下文的词语.为了模型的求解过程中涉及的复杂的求和操作,使用了一系列的加速技巧都与之前的工作类似:使用哈夫曼树压缩预测空间,负采样技术等。

矩阵分解模型

矩阵分解同样也是得到低维词向量的重要途径。
其中经典的单词表示学习模型,隐式语义分析模型(Latent Semantic Analysis/Indexing, LSA/LSI)将奇异值分解应用于单词与文档共现矩阵$$X\in\mathbb{R}^{\vert V\vert\times n}$$中,并只保留其中最大的$$k$$个奇异值,如下
$$
X = W\sum_k D^T
$$
一般使用$$W\sum_k$$作为单词的向量表示.对于SVD分解单词与上下文矩阵,Levy等人在[58]中发现使用$$W(\sum_k)^{1/2}$$在语义相关任务上效果更佳,而Caron则在[59]中推荐使用$$W(\sum_k)^{\alpha}$$(其中$$\alpha$$对于结果有显著影响,需要认真调整),Hu等人在[60]中发现去掉LSA得到表达的第一维后结果也会有提升(因为LSA得到的向量的第一维显著大于其他维度)。

随后,Huffman等人概率化LSI,在[61]中提出PLAS(Probabilistic Latent Semantic Indexing)模型;Blei等人在[62]中将PLSA贝叶斯扩展为LDA(Latent Dirichlet Allocation)模型.

除SVD外,典型相关分析(Canonical Correlation Analysis, CCA [63, 64])同样被广泛用于学习单词表示[65, 66, 67, 68];此外,Lebret与Collobert使用Hellinger距离作为PCA分解单词共现矩阵的损失函数,提出 Hellinger PCA(HPCA)模型;受Mikilov等人的工作启发,Pennington等人中提出[GloVe模型][21]。

模型联系

该节主要讨论上述做法中的一些相关联系。

横向组合与纵向聚合

上述模型实质上都基于同一个假设 分布语义假设(Distributional Hypothesis)[71,72],其含义是:单词的语义来自于上下文。
不同的是,一些模型将文档作为单词的上下文,一些讲单词周边的单词作为上下文。

Sun等人在[74]中表明,上下文的不同,使得不同模型建模了单词间的不同关系:横向组合关系(Syntagmatic)与纵向聚合(Paradigmatic)关系[75]。

横向聚合关系 指的是两个单词同时出现在一段文本区域中。如下图中, “爱因斯坦”与“物理学家”两个词同时出现在一句话中,这两个词间存在着横向组合关系。此关系强调两个词可以进行组合,在句子中往往起到不同的语法作用。
纵向聚合关系 指的是纵向的可替换的关系,如图中的“爱因斯坦”与“费曼”。如果两个词在一句话中互换后,不影响句子的语法正确性以及语义合理性,则这两个词间存在纵向聚合关系。 纵向聚合关系在形式上表现为,这两个单词出现在相似的上下文环境中, 即使这两个单词可能从未共现。
横向组合与纵向聚合实例

使用文档作为上下文的模型,隐含的假设是,如果两个单词经常同时出现在同一个文档,则这两个单词语义相似。这类模型建模了单词间的横向组合关系,其假设单词与和它共现的单词相似。 LSI以及LDA等通常使用在信息检索场景下的模型,都是建模的这类关系。这类模型更多的侧重于单词的话题信息,因而针对如文本分类这类侧重话题的任务,要好于使用纵向聚合关系的模型。如Tang等人[76]实验证实,在文本分类任务上,PV-DBOW(Distributed Bag of Words version of Paragraph Vector)要明显优于 SG 模型,其中PV-DBOW与LSI类似,建模的是单词间的横向组合关系。

而另一类模型,使用单词周边单词作为上下文。 其假设, 如果两个单词周围的单词相似,则这两个单词语义相似,即使这两个单词可能从未同时出现在一段文本区域中。这类模型建模了单词间的纵向关系,包括NPLM、LBL、CBOW、SG、GloVe等。这也是自然语言处理中最常用关系,同时也是分布语义假设最主流的解释。这类模型更加擅长有关单词自身的各项应用。

神经网络与矩阵分解

Levy 和 Goldberg[77]分析表明, SG模型在使用负采样(SGNS)进行学习的情况下,相当于隐式地在分解单词与上下文之间偏移的点间互信息(Shifted Pointwise Mutual Information, shifted PMI)矩阵。 对于PMI矩阵,它是自然语言处理领域表示单词语义的一个常用选择[78]。随后,Li 等人[79]在表示学习的框架下证明了SGNS等同于矩阵分解。

此外,Shi和Liu[80]以及 Shazeer 等人[70]的工作都表明,GloVe模型实际上与使用负采样的SG(SGNS)模型非常相似,其区别只在于模型中的偏移项以及单词权重的选择。而Suzuki和Nagata[81]则提出了一个统一的框架囊括了这两个模型。

模型实验比较

单词相似度

WordSim 353 (WS 353) - 353个单词对,其中每一词对由13或者16位标注者对其进行0到10之间的打分,分数越高表示标注人员认为这两个词语语义更加相关或者更相似.最终对于每一词对都可以得到所有标注者的一个平均打分.

此任务的评价标准为,计算标注者对于单词对打分与模型习得表示得到的打分之间的Spearman排序相关系数:
$$
r=\rho_{x,y}=\frac{\mathrm{cov}(x, y)}{\sigma_x\sigma_y}
$$
其中$\mathbf{cov}(x, y)$表示排序列表$x, y$之间的协方差,$\sigma_x$和$\sigma_y$代表了对应的标准差.

模型得到的打分与人工标注的打分排序越一致,得分则越高.
Rare Word (RW) - 该数据集侧重于评价模型学习稀缺单词表示的能力,其包含了2034个单词对.相比其他数据集,RW包含了更多的词形复杂而又少见的单词.

SimLex-999 (SL-999) - 该数据集修正了WS-353混合相关和相似的缺点,专注于单词之间的相似性,相比较WS-353,该数据集对各个词表示模型的难度更大.

单词类比

在word2vec的工作中,Mikolov发现就单单词向量而言,可以通过简单的向量加减运算反映语法语义上的类比关系,如“北京之于中国,相当于巴黎之于法国”可以通过vec("Beijing") - vec("China") = vec("Paris") - vec("France")来捕捉到。

单词表示用作特征

除了上述两个针对单词向量直接进行比较的实验外,学者们还是用单纯的单词表示作为其他任务的特征,如实体识别和情感分类。

参考资料

分布式单词表示综述
[3]: http://jmlr.org/papers/volume3/bengio03a/bengio03a.pdf “A Neural Probabilistic Language Model. Journal of Machine Learning Research”
[37]: http://repository.cmu.edu/cgi/viewcontent.cgi?article=2405&context=compsci “Can artificial neural networks learn language models?”
[44]: http://www.iro.umontreal.ca/~lisa/pointeurs/submit_aistats2003.pdf “Quick Training of Probabilistic Neural Nets by Importance Sampling.”
[45]: https://www.cs.toronto.edu/~amnih/papers/ncelm.pdf “A fast and simple algorithm for training neural probabilistic language models.”
[46]: https://www.cs.toronto.edu/~amnih/papers/wordreps.pdf “Learning word embeddings efficiently with noise-contrastive estimation.”
[48]: https://www.iro.umontreal.ca/~lisa/pointeurs/hierarchical-nnlm-aistats05.pdf “Hierarchical Probabilistic Neural Network Language Model.”
[23]: https://www.cs.toronto.edu/~amnih/papers/threenew.pdf “Three New Graphical Models for Statistical Language Modelling.”
[51]: http://www.fit.vutbr.cz/research/groups/speech/publi/2009/mikolov_ic2009_nnlm_4.pdf “Neural network based language models for highly inflective languages.”
[55]: http://www.aclweb.org/anthology/D/D16/D16-1063.pdf “WordRank: Learning Word Embeddings via Robust Ranking”
[56]: http://www.aclweb.org/anthology/P/P15/P15-1027.pdf “Hubness and Pollution: Delving into Cross-Space Mapping for Zero-Shot Learning.”
[4]: https://arxiv.org/abs/1301.3781 “Efficient Estimation of Word Representations in Vector Space.”
[58]: http://aclweb.org/anthology/Q15-1016 “Improving Distributional Similarity with Lessons Learned from Word Embeddings.”
[59]: http://dl.acm.org/citation.cfm?id=762556 “Experiments with LSA scoring: optimal rank and basis.”
[60]: http://www.academia.edu/2956517/LSA_The_first_dimension_and_dimensional_weighting “LSA: The first dimension and dimensional weighting.”
[21]: https://nlp.stanford.edu/pubs/glove.pdf “Glove: Global Vectors for Word Representation.”

0%