殷子&沈圆圆作者

NeurIPS 2018 oral论文解读:如何给词嵌入模型选择最优维度

最近结束的 NeurIPS 2018 会议上,斯坦福大学的研究者们在论文《On the Dimensionality of Word Embedding》中提出了一个理解词嵌入维度的理论框架。通过推广词嵌入空间的几何不变性,这篇论文解决了该领域一个悬而未决的问题,即如何给模型选择合适的维度。该论文是大会 30 篇 oral 论文之一(top 0.6%),并受到自然语言处理领域的广泛关注。在这里,论文的两位作者将亲自为我们解读其中的核心思想。

论文地址:https://papers.nips.cc/paper/7368-on-the-dimensionality-of-word-embedding.pdf

引言

在 2013 年一篇划时代的论文中,Milokov 等人提出了 Word2Vec 词嵌入(word embedding)算法。随后于 2014 年,斯坦福自然语言处理小组的 Pennington 等人提出了 GloVe 方法。自此之后,词嵌入成为了自然语言处理中最具影响力的工具。在当前的深度学习时代,词嵌入在诸如情感判别、阅读理解、机器翻译等各种任务上几乎随处可见。词嵌入深度学习模型应用到自然语言处理中不可或缺的一环:神经网络的输入是连续空间中的向量,而自然语言运用的则是离散的字符,词嵌入将自然语言转换成空间中的向量,是连接两者不可或缺的桥梁。

维度(dimensionality)是词嵌入模型里最重要的一个超参数。大家或许都训练过词嵌入模型,但是当我们训练的时候,有没有想过该如何选择维度这个超参数呢?纵观自然语言处理的论文,研究者对词嵌入维度的选择似乎都颇为随意。在 Word2Vec、GloVefastText 的原论文中,研究者们都选取 300 作为词向量的维度。这些颇有影响力的文章导致随后的研究者纷纷选择 300 维的词向量。除此之外,100、200 或者 50 也是常见的选择。然而,这些随意做出的选择并不能保证模型的最优性;事实上,大量的实证研究表明,词嵌入的学习过程也有欠拟合/过拟合的风险。如果维度选择得过小或过大,模型的表现将受其影响(见图 1)。普林斯顿大学的 Sanjeev Arora 教授在一篇博文中就探讨了这一现象,并提到这个现象并没有完善的理论解释。欠拟合/过拟合的存在导致研究者选择维度时需要格外谨慎。

Figure 1 过小或过大的维度对词向量的表现产生负面影响

一个词向量维度的理论框架

在《On the dimensionality of word embedding》这篇文章中,作者探讨了如何通过理论研究理解词嵌入的维度对模型本身的影响。这篇文章的贡献主要有:

  • 提出了 Pairwise Inner Product(PIP)损失函数

  • 利用矩阵微扰理论对词嵌入进行研究,并揭示了维度选择中的偏差-方差权衡(bias-variance tradeoff)。

  • 从理论上证明了 Word2Vec 和 GloVe过拟合具有鲁棒性(robustness to overfitting)。

  • 通过最小化 PIP 损失函数,提出了选择最优维度的理论指导。

灵感来源

维度选择是模型选择(model selection)的一种情形。在统计学习的框架中,模型选择有一套基于参数估计(parameter estimation)的完整理论。该理论通常可以分解为三个基本步骤:

  1. 定义一类估计量(class of estimators)

  2. 定义一个损失函数

  3. 选择损失函数期望最小的估计量

该理论框架包括了大多数机器学习中的算法及模型,例如我们所熟悉的线性回归利用的就是线性估计量+平方损失函数。再如,多层感知机(multi-layer perceptron)利用的是全连接网络估计量+交叉熵损失函数

不幸的是,这个理论框架并不能直接运用到词嵌入模型的选择中。事实上,目前的研究中并无词嵌入损失函数。而且就算此类损失函数存在,我们也不知道有没有有效的方法去计算它。本文解决了这两方面的问题,并建立起一套基于矩阵微扰理论的维度选择框架。

问题 1:词嵌入损失函数

在介绍文中提出的 Pairwise Inner Product(PIP)损失函数前,我们先简单复习一下词嵌入本身。假设有 n 个需要学习的词汇集词嵌入算法寻找的是从 V 到 (d 维欧几里得空间)的一个映射:对每个词,分配一个 d 维向量。这个过程可以等效为寻找一个词嵌入矩阵(embedding matrix)E:E 的第 i 行是。大家用 TensorFlow 训练深度模型时,一定都用过 tf.nn.embedding_lookup 这个算符。而我们研究的词嵌入矩阵就是这个算符中的第一个参数。

有许多算法可以帮助我们寻找这个映射,例如 Word2Vec 或 GloVe。然而,我们如何定义词嵌入间的损失函数

词嵌入的蓬勃发展带动了一大批的深入研究。研究者们探讨如何提高词嵌入在不同任务上的表现,例如相似性(word similarity)和类比性(word analogy)。然而我们发现,这类的研究往往是「只见树木,不见森林」。本文提出的 PIP 损失函数所研究的是嵌入的几何性质。

词嵌入的几何性质与几何不变性

词向量是一个典型的几何模型。在这个模型中,向量的几何性质与词语的语义性质存在着对应关系,这是多么美妙的巧合!最常见的几个例子有:

  • 相似性。词语的相似性可以通过向量夹角的余弦值来表示。对于两个词向量,它们夹角的余弦值为

的范围在-1 到 1 之间。这个值越大,代表第 i 个和第 j 个词之间的相似度越高。在下图的例子中,love 和 adore 对应的向量之间夹角很小,而 love 和baseball 之间的夹角则较大。

Figure 2 词向量的几何相似性

  • 类比性。类比性考察的是两对词语之间的性质是否相同。Mikolov 的论文中提出的例子 king-queen=man-woman 即体现了这一性质。类似的还有 walk-walking=run-running,Paris-France=Berlin-Germany 等。词类比这一语义性质对应的几何性质为平行度:两对词向量的差是否互相平行。

Figure 3 词向量的类比性

  • 聚类性。通过观察训练出的词向量,研究者们发现词向量可以被聚类:义类似的向量之间的距离总是较小,因而这些词会倾向于聚成一类。例如,距离狗(dog)最近的词向量是猫(cat)、鼠(mouse)等等,这些词都代表了动物。聚类性的几何对应为向量间的距离。

Figure 4 词向量的聚类性

已知的超参数选择方法往往仅针对某一类语义学任务。比如,研究者们通过词向量在人工标注测试集(例如 WordSim353)上的表现来选择维度。既然我们不知道最优维度是多少,那么我们就通过暴力测试来解决!我们把 100-1000 维的词向量统统训练一遍,然后观察它们在测试集上的表现。通过这个方法,我们可以选择和人工标注数据集上表现最好的维度。然而这个解决方案却不甚优雅:训练许多词嵌入模型浪费了大量计算资源,并且有过拟合的风险:在相似性任务测试集上表现最佳的词嵌入可能在类比性任务中表现不佳。

究其原因,这种研究方法掉入了「只见树木,不见森林」的思维陷阱。这些不同语义学任务体现的只是词向量的部分几何学性质:

  • 相似性:向量间夹角

  • 类比性:向量的平行度

  • 聚类性:向量间距离

既然这些任务都是碎片化的几何性质,那我们为什么不上升一个视角,去研究词嵌入整体的几何性质呢?这就是 PIP 损失函数的中心思想。

酉不变(unitary invariant)性质

我们注意到,无论是向量夹角,还是平行度,亦或是距离—它们的共同点都具有酉不变性。假如把词嵌入整体做一个旋转或者镜面对称,这些几何性质都不会发生变化。原因在于,酉变换并不改变向量之间的相对位置!这并不是一个巧合。本文作者从逻辑上论证了以下结论:语义学任务所对应的几何性质一定具有酉不变性。语义学的基础是分布式假设(distributional hypothesis),而该假设要求一个词的意义只能通过其他词来相对定义。正因如此,如果我们对词嵌入实施了一个保持向量间相对位置的变换(即酉变换),向量所对应的语义学任务不应有任何改变。相似性、类比性、聚类性等具体的语义学任务只是词嵌入酉不变性的部分体现。因而当我们寻找一个损失函数时,我们应该着重测量词嵌入酉不变性质之间的距离。PIP 损失就是这样的一个损失函数。假如我们有两个词嵌入矩阵,它们之间的 PIP 损失函数定义如下:

注意到 PIP 损失函数的酉不变性:假如 是一个酉矩阵(), 的一个酉变换(),那么易见 。除此之外,作者证明了 PIP 损失函数可以用来测量所有酉不变性质:假如之间的 PIP 损失较小,那么它们之间所有的酉不变性质都较为接近(包括夹角、平行度、距离等等),并且反之亦然。换句话说,PIP 损失函数测量的是「森林」,而无论是相似、类别还是聚类性,都只是其中的某棵树木。

PIP 损失函数有一个漂亮的几何解释。的第 i 行是一个 n 维向量。该向量可以看成是的相对坐标;其参照物是所有其他的词向量(见下图)。在 PIP 损失函数中,当我们比较的差时,我们测量的其实是词向量们的相对位移。通过建立这样的相对坐标系,我们摆脱了对绝对坐标系的依赖,从而得到了一个酉不变的损失函数

Figure 5 PIP 损失函数的几何解释

问题 2:对 PIP 损失函数的矩阵微扰分析

至此,我们已经解决了第一个难题:如何定义词嵌入损失函数。而我们如何分析一个通过训练得到的词嵌入 和未知的最优词嵌入之间的 PIP 损失,从而找到最优维度呢?

我们发现多数的词嵌入算法本质上都是矩阵分解。例如潜在语义分析(Latent Semantic Analysis, LSA)通过奇异值分解(SVD)得到词向量,而最近的论文证明了 Skip-gram Word2Vec 和 GloVe 都是通过随机梯度的优化方法实现某类矩阵(统称为信号矩阵)的分解。既然词嵌入是通过分解信号矩阵得到的,我们自然想到利用矩阵分析的方法来了解 PIP 损失函数。本文的作者通过将词嵌入转化为带噪音的矩阵分解问题,开发了一套基于微扰理论(perturbation theory)的分析技术。通过这个技术,作者发现 PIP 损失函数有偏差-方差分解(bias-variance decomposition)。文章的主定理证明了如下结论:

该定理将训练得到的词嵌入矩阵与未知的最优词嵌入矩阵 之间的 PIP 损失分解为三项:其中第一项为偏差(bias),第二和第三项均为方差(variance)。这三项也对应了一个基于信噪比的解释,其中信号为信号矩阵的频谱(spectrum),而噪音为信号矩阵的估计误差:

  • 第一项:当我们选择一个 k 维的词嵌入时,我们丢失了 k+1 维及之后的信号,这导致了模型产生偏差。该项随着 k 的增大而减小。

  • 第二项:噪音的存在导致我们对信号矩阵谱的大小产生估计误差。随着 k 的增大,更多的谱信号被引入,导致该项随着 k 的增大而增加。

  • 第三项:同样由于噪音的存在,我们对信号矩阵谱的方向产生估计误差。同理于第二项,该项随着 k 增大而增加。

这个偏差-方差分解直接证明了最佳维度的存在。并且通过寻找偏差和方差的平衡点,我们可以直接求解理论上最优的维度!下图是 GloVe 算法在 Text8 数据集上的 PIP 损失函数。图中明显可见偏差和方差的存在,并且注意在 700 维左右,偏差与方差的和最小。这个就是最优维度。

Figure 6 PIP 损失函数的偏差-方差分解及最优维度

这套理论完整解释了维度对词嵌入的影响:当选取的维度过低时,词嵌入将有较大的偏差(high bias),因为模型丢失了较多信号。而维度过高时,词嵌入将有较大的方差(high-variance),因为模型中夹杂了大量的噪音。

文中比较了通过最小化 PIP 损失函数得到的最优维度在语义学任务中的表现。这些维度几乎达到最优表现。

通过对 PIP 损失函数的深入分析,作者证明了常用的词嵌入算法(例如 Word2Vec 和 GloVe)对过拟合具有鲁棒性。这个发现被实验所进一步证明(图 7 和图 8)。当 Word2Vec 和 GloVe 的维度选取过大时,由于过拟合的存在,它们在词义相似性任务上的表现有所下降;但是下降的幅度随维度的增加并不明显。甚至当维度达到 10000 时,它们的表现仍然处在可以接受的范围内。

Figure 7 过拟合对 Word2Vec 的影响

Figure 8 过拟合GloVe 的影响

本文用于词向量维度选择的代码已经在 GitHub 上放出:

https://github.com/ziyin-dl/word-embedding-dimensionality-selection

目前源代码支持 Word2Vec、GloVe 和 LSA 三种算法。使用者只需要提供一个用来训练词嵌入的文本(txt 或 zip 格式),算法即可以自动选择该文本上词嵌入的最佳维度。

参考资料:

  1. Sanjeev Arora. Word embeddings: Explaining their properties, 2016. URL http://www. offconvex.org/2016/02/14/word-embeddings-2/. [Online; accessed 16-May-2018].

  2. Omer Levy and Yoav Goldberg. Neural word embedding as implicit matrix factorization. In Advances in neural information processing systems, pages 2177–2185, 2014.

  3. Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781, 2013a.

  4. Zi Yin and Yuanyuan Shen. On the dimensionality of word embedding. In Advances in Neural Information Processing Systems, 2018.

理论词向量词嵌入NeurIPS 2018
62
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

欠拟合技术

使用太少参数,以致于不能很好的拟合数据,称为拟合不足(欠拟合)现象

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

GloVe技术

Stanford开发的用于词向量表示的一个库/工具

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

Skip-gram技术

CBOW和skip-gram是word2vec的核心概念。CBOW模型是用词的前后几个词来预测这个词,skip-gram的输入是当前词的词向量,而输出是周围词的词向量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

线性回归技术

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

fastText技术

Facebook开发的文本处理工具,是一个用于高效学习单词表示和句子分类的库。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语义学技术

语义学,也作“语意学”,是一个涉及到语言学、逻辑学、计算机科学、自然语言处理、认知科学、心理学等诸多领域的一个术语。虽然各个学科之间对语义学的研究有一定的共同性,但是具体的研究方法和内容大相径庭。语义学的研究对象是自然语言的意义,这里的自然语言可以是词汇,句子,篇章等等不同级别的语言单位。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

前沿科学,应用无限!
感谢精彩的解读~文中关于词向量的三个特性:相似, 类比,聚类请问能给出出处吗,我在末尾的四篇引用文献里没有找到 - -!