词向量及其在自然语言处理中的应用

标签:
冯志伟语言学自然语言处理人工智能 |
词向量及其在自然语言处理中的应用
【摘要】词向量来源于语言学中的“价值”和“分布”等概念。本文分析了词向量的语言学根据,介绍了词向量的矩阵描述和计算方法,说明了词向量将有助于揭示神经机器翻译这个“黑箱”的秘密。
【关键词】词向量;价值;分布;点互信息;自然语言处理;神经机器翻译
Word Vector and its Application in Natural Language
Processing
Abstract: The concept of word vector originated from the
concepts of value and distribution in linguistics. This paper
analyzes the linguistic background of word vector. It also
introduces the matrix description and the calculation methods of
word vector. The word vector will be helpful for discovery of the
black box secret in neural machine translation.
Key Words: word vector; value; distribution; pointwise mutual
information (PMI); natural language processing (NLP); neural
machine translation (NMT)
近年来“词向量”(word vector)在自然语言处理(Natural Language Processing,
NLP)中得到广泛的使用,也受到语言学界的普遍关注,成为了当代语言学中一个关键性的科学概念。在本文中,我们将详细地分析词向量的语言学根据,介绍词向量的数学计算方法及其与人们语言直觉的联系,最后说明词向量将有助于揭示神经机器翻译(Neural
Machine Translation, NMT)这个“黑箱”(black box)的奥秘。
词向量的语言学根据
“词向量”的概念来源于语言学中的“价值”(value)和“分布”(distribution)等概念。
早在1916年,De Sausuure在《普通语言学教程》中就指出,语言的符号具有特定的“价值”。
他认为,语言符号不纯粹是语言的事实,而是系统的组成要素,这个系统代表了语言。进入系统中的符号的功能,是由系统的组成成员的各个要素之间的相互关系来决定的。语言是一个系统,这个系统中的所有要素形成一个整体。正如象棋可以归结为各个棋子的位置的组合一样,语言是一个仅仅以它的各个具体单位的对立为基础的系统。
他说,“下棋的状态与语言的状态相当。棋子的各自价值是由它们在棋盘上的位置决定的,同样,在语言里,每项要素都由于同其他各项要素对立才能有它的价值”(Saussure
1916: 128)。
“系统永远只是暂时的,会从一种状态变为另一种状态。诚然,价值还首先决定于不变的规约,即下棋的规则,这种规则在开始下棋之前已经存在,而且在下每一着棋之后还继续存在。语言也有这种一经承认就永远存在的规则,那就是符号学的永恒的原则”
(Saussure 1916: 128)。
De Sausuure进一步用下棋来解释“价值”。
他说,“比方一枚卒子,本身是不是下棋的要素呢?当然不是。因为只凭它的纯物质性,离开了它在棋盘上的位置和其他下棋的条件,它对下棋的人来说是毫无意义的。只有当它披上自己的价值,并与这价值结为一体,才成为现实的和具体的要素。假如在下棋的时候,这个棋子将弄坏了或者丢失了,我们可不可以用另外一个等价的来代替它呢?当然可以。不但可以换上另外一枚卒子,甚至可以换上一个外形上完全不同的卒子。只要我们授以相同的价值,照样可以宣布它是同一个东西”(Saussure
1916: 155)。
由此可见,在像语言这样的符号系统中,各个要素是按照一定规则互相保持平衡的,同一性的概念常与价值的概念融合在一起,反过来也是一样。
词既是系统的一部分,就不仅具有一个意义,而且特别是具有一个价值。例如,法语的mouton(羊,羊肉)跟英语的sheep(羊)可以有相同的意义,但是没有相同的价值。这里有几个原因。特别是当我们谈到一块烧好并端在桌子上的羊肉的时候,英语说mutton(羊肉),而不说sheep。英语的sheep和法语的mouton的价值不同,就在于英语除sheep之外,还有另一个要素mutton,而法语的词却不是这样,也就是说,mouton一词在法语词汇系统中的地位与英语sheep一词在英语词汇系统中的地位不一样。
可见,词的价值不是由标志它的客观对象的实体来确定的,而是由它对其他词的关系及其在该语言中的地位来决定的。价值就是系统的功能,价值就是语言事实在该语言系统中的意义。
因此,De Sausuure得出结论:“语言是形式而不是实体” (Saussure 1916: 169)。
价值的概念是De Sausuure语言学说的基本概念,它是“系统”(system)的概念所派生出来的概念之一,与De
Sausuure在分析语言系统的过程中所提出的其他概念交织在一起。“同一性的概念常与价值的概念融合在一起,反过来也是一样”,
“价值的就包含着单位,具体实体和现实性的概念” (Saussure 1916: 156)。
由于价值决定了符号的功能,因此,价值的概念是De
Sausuure语言学说的体系中具有枢纽性意义的概念之一,也是自然语言处理中“词向量”概念的重要的语言学根据。
词向量的另一个重要的语言学根据是“分布”。
“分布”是美国描写语言学中一个有专门含义的术语。
1934年,M.Swadesh在他写的《音素原理》(The phonemic
principle)这篇论文里,第一次把“分布”作为一个专门的术语来使用。他认为,这个术语的用法同“地理分布”的习惯用法是一样的。他说:“如果两个相似类型的语音之中,只有一个通常出现在某些语音环境里,并且只有另一个通常出现在某些其他语言环境里,那么这两个类型可能是同一音素的从属类型。……例如英语speech(口语)这个词中的p,是跟浊唇塞音b以及peak(山顶)、keep(保持)、happen(发生)这些词中的清唇塞音p有互补分布关系的,但是因为语音上与后者相似,所以p的分布属于后一类,而不属于前一类”(Swadesh
1934: 117)。
1950年,M.
Joos指出:“一个语素的语言学意义…可以定义为该语素与上下文中的所有其他的语素出现的条件概率的集合”(Joos 1950:
701)。这意味着,可以根据语素与上下文中的所有其他的语素分布的条件概率来判定语素的意义。
1951年,Z.
Harris在《结构语言学方法》一书中,给分布下的定义是:“一个单位的分布就是它所出现的全部环境的总和,也就是这个单位的所有的(不同的)位置(或者出现的场合)的总和,这个单位出现的这些位置是同其他单位的出现有关系的”(Harris
1951: 15)。
根据这样的定义,可把分布相同的语言单位归类。例如,Z.
Harris就曾把希伯来语中的某些语素用分布分析法加以归类。在希伯来语中有如下片段:
xašavtikax
(我这样想过)
xašavtakax
(你这样想过)
xašavnukax
(我们这样想过)
xašavtemkax
(你们这样想过)
xašavukax
(他们这样想过)
xašavakax
(她这样想过)
xašavkax
(他这样想过)
其中的-ti-、-ta-、-nu-、-tem-、-u-、-a-和零形式ø都同样出现在xašav-kax这同样的环境中,它们的分布相同,因此,Harris把它们归为一类,也就是“代词”这一类(Harris
1951: 17)。
Hocket用分布分析法,把一组可以在构造更大的形式中具有类似的出现权利的形式归为一类,称为“形式类”(form-class)。例如,能够同样出现在can(能)、can
go(能去)、can go
there(能去那儿)之前的she(她)、he(他)、it(它)、I(我)、we(我们)、they(他们)、the men
across the street(走过街道的人)归为一个形式类(Hocket 1954:215)。
可见,这样的“分布分析法”,是一种以寻找同类环境为原则的归类法。
分布定义中的所谓“位置”,也包括周围的环境。正如Bloch和Trager所说的:“位置的相同不仅意味着对形式的头尾(开头、中间、末尾)来说的地位上的相同,而且还意味着由前面接的音和后面跟的音、音渡条件以及重音所决定的环境上的相同”(Bloch
et al., 1942)
Harris也给分布的“环境”下了定义:“话语里的某个单位的环境或者位置是由它邻近的单位组成的……所谓‘邻近’是指处于上述那个单位之前或之后,或者同时出现的单位的位置”(Harris
1951: 15)。
可见,分布分析法是美国描写语言学的最重要、是关键的方法。Harris甚至把分布分析法绝对化,认为它是描写语言学的惟一的方法。他在《结构语言学》一书中说:“描写语言学主要研究的以及本书认为适用于语言结构的惟一的形式之间的关系,是彼此有关的某些部分或者特征在语流中的分布或者配列”(Harris
1963: 5)。因此,有人干脆把美国描写语言学家称为“分布主义者”(distributionist)。
1954年,Harris 指出,“Oculist(眼科大夫)和eye-doctor(眼科医生) …
出现在几乎相同的环境中”,因此,他更概括地说,“如果A和B具有几乎相同的环境… 我们就说它们是同义词” (Harris 1954:
146),具有相似上下文的单词倾向于具有相似的词义。
1957年,J. R. Firth更加明确地指出,“观词伴而知词义!”(Firth, 1957) 。这句话成为J. R.
Firth的名言而广为传播。
1975年,Nida指出,单词的含义与该单词周围分布的环境有关(Nida,
1975)。假定我们从来没有看到过tesgüino这个单词,但是根据下面四个句子:
A bottle of tesgüino is on the table.
Everybody likes tesgüino.
Tesgüino makes you drunk.
We make tesgüino out of corn.
值得注意的是,在心理学中也有与语言学中的“分布”相关的思想。1957年,Osgood
等提出,一个单词的意义可以使用欧几里得空间中的一个点来建模,而两个单词之间的意义的相似性可以使用欧几里得空间里这些点之间的距离来建模(Osgood,
et al, 1957)。
由此可见,我们可以根据某个单词周围的其他单词的分布来表示这个单词的意义。分布的概念是自然语言处理中“词向量”概念的另外一个重要的语言学根据。
词向量的矩阵描述
一个单词的意义可以简单地根据它邻近的其他单词出现的频度来确定,在文本中单词频度分布的向量表示叫做词向量。这样的方法将会导致产生很长的、高维度的词向量,这些词向量是非常稀疏的,由于大多数的单词从来也不会出现在其他单词的上下文中,所以会出现大量为零的词向量。
从直觉上说,所谓语义“向量空间模型”(vector space
model)就是把一个单词嵌入(embedding)到一个向量空间中去的模型。正因为这样的原因,把一个单词表示为一个词向量通常就叫做“词嵌入”(word
embedding)。词嵌入这种方法有助于我们使用更加丰富的参照来描绘单词的意义。研究词向量的语义表示的学问叫做“向量语义学”(vector
semantics)
一般说来,单词或意义的分布模型都是基于“共现矩阵”(co-occurrence
matrix)的。共现矩阵又可以分为“词项-文献矩阵”和“词项-上下文矩阵”两种,下面分别加以介绍。
2.1词项-文献矩阵
首先我们来研究第一种共现矩阵:“词项-文献矩阵”(term-document matrix)。
在词项-文献矩阵中,每一个行表示词汇表中的一个单词,每一个列表示某种文献集合中的一篇文献。图1从词项-文献矩阵中选出的一个例子,说明了在《As
You Like It》(皆大欢喜)、《Twelfth Night》(第十二夜)、《Julius
Caesar》(凯撒大帝)、《Henry V》(亨利五世)四部莎士比亚戏剧中battle(战斗), soldier (士兵),
fool
(蠢人)和clown(小丑)四个单词出现频度(frequency)的分布情况。矩阵中的每一个单元(cell)表示在一个特定的文献(由列来确定)中,某一个特定单词(由行来确定)的出现频度。例如,clown这个单词在《Twelfth
Night》这个剧本中的出现频度为117次,在《Julius Caesar》这个剧本中的出现频度为0次。
图1中词项-文献矩阵被首先确定为信息检索的向量空间模型的一部分(Salton,
1971)。在这个模型中,文献被表示为如图2中的列所示的一个可数的向量。
由线性代数的知识可知,一个向量说到底就是数字阵列的一个表。所以,《As You Like It》可以表示为列中的[1, 2,
37, 5]这样的表,《Julius Caesar》可以表示为列中的[8, 12, 1,
0]这样的表。一个向量空间就是这些词向量的总和,用它们的维数(dimension)来加以描述。在向量空间中的数字的顺序不是任意的,其中的每一个位置都指明了一个有意义的维数,其中的文献可以变化。所以,这些向量的第一维就相应于单词bottle的出现频度,我们可以比较这些维度的数目,例如,bottle这个单词在《As
You Like It》和《Twelfth Night》 的第一个维度中具有相同的值,它的出现频度都是1。
我们可以把一个文献的向量想象成|V|维空间中的一个点,因此,图2中的文献就是4维空间中的一些点。由于4维空间很难在书面上画出来,图3用二维空间来表示它以便使其可视化,我们随便选出其中对应于单词battle和fool的频度。可以看出,在《As
You Like
It》这样的喜剧中,单词fool具有较高的频度,其频度为37,而单词battle具有较低的频度,其频度为1。在图3中,这种二维表示写为As
You Like It [37,1]。同理,我们有Twelfth Night [58,1], Henry V [5,15],
Julius Caesar[1,8],形成了不同的词向量。
图3
词项-文献矩阵中,莎士比亚剧本的文献向量的空间可视化表示,只显示了相应于单词battle和fool的二维表示。
词项-文献矩阵本来是在文献的信息检索中用于发现文献相似性的一种方法。两个相似的文献倾向于具有相似的单词,而如果两个文献具有相似的单词,那么,它们的列向量也倾向于是相似的。向量As
You Like It [1, 2, 37, 5]和Twelfth Night [1, 2, 58, 117]与向量Julius
Caesar [8, 12, 1, 0]和Henry V [15, 36, 5,
0]相比,彼此之间更加相似,同理,fool与clown更相似,soldier与battle更相似。我们从矩阵的行的数字中也可以观察到这样的直觉,在第一个维度中(battle),喜剧的数字较低,而在其他维度中其数字较高,我们在图3中可以直观地看到这种情况;我们很快就可以看到怎样更加形式化地来解释这样的语言直觉。
当然,真正的词项-文献矩阵不会只有4行,也不会只用2列来进行解释。更加一般地说,词项-文献矩阵X具有|V|行(表示词汇表中的单词类型)和D列(表示所收集的文献);在自然语言处理的实际应用中,词汇表的规模至少是数万个单词,而文献的数量也是非常之大的,有时甚至可以包含一个网页中的全部页码。
信息检索的任务是从文献D中找到与提问q相匹配的文挡d.
因此,在信息检索中,我们也可以用长度为|V|的向量来表示一个提问,为此我们需要找到一种方法来比较这两个向量,从而发现它们之间的相似性。在信息检索中,我们还需要找到一种途径来存储和处理这些向量,而且应当注意到这样的事实:这些向量是很稀疏的,大多数的向量值为零。
从上所述我们已经看到,文献可以表示为向量空间中的向量。在向量语义学中,也可以把每一个单词与一个向量关联起来,用来表示单词的意义。
这时,词向量是一个行向量(row vector),而不是一个列向量(column
vector)。在向量中每一个数字表示单词在该维度对应的文献中出现的频度。单词fool可以表示为四维的向量[37, 58, 1,
5],其中的四个数字分别对应于该单词在莎士比亚戏剧的四个剧本的出现频度。这四个维度也可以用来表示其他的三个单词:clown [5,
117, 0, 0], battle [1, 1, 8, 15]. soldier [2, 2, 12, 36]。
对于文献来说,因为相似的文献倾向于具有相似的单词,
所以可以认为相似的文献具有相似的词向量。同样的原则也可以适用于单词:因为相似的单词倾向于出现在相似的文献中,所以可以认为相似的单词具有相似的词向量。这样一来,我们就可以用词项-文献矩阵,通过单词倾向于出现在其中的文献来表示单词的意义。
2.1词项-上下文矩阵
但是,最常见的办法是使用不同种类的上下文单词作为词向量表示的维度。这时我们不使用“词项-文献矩阵”,而使用“词项-词项矩阵”(term-term
matrix)作为词向量的维度,更加常见的说法,是把它叫做“词项-上下文矩阵”(term-context
matrix),其中矩阵的列上标记的是上下文单词而不是文献。这种矩阵的维度是|V| x
|V|的,其中的每一个单元记录着列中单词(目标单词)的出现频度,而在训练语料库的某个上下文中出现的单词则记录在行中。在大多数情况下,倾向于使用较小的上下文,这样的上下文一般是该单词出现的窗口,例如,在某些训练语料库中,左边为4个单词、右边为4个单词的窗口,在这种情况下,单元就表示矩阵的列中的单词在±4个上下文单词窗口的行中的出现频度。例如,下面是Brown语料库中的4个实例单词apricot(杏子),
pineapple(菠萝),
digital(数字的)和information(信息)在左右为7个上下文单词的窗口中出现的例子(每一个单词只有一个实例):
对于每一个单词,我们从包围每一个出现该单词的窗口中来采集上下文单词的出现频度。
图4显示了我们根据Brown语料库计算出的apricot, pineapple, digital和information
4个单词的单词-上下文共现矩阵。
图4只显示了aardvark(土豚), computer(计算机), data(数据), pinch(掐),
result(结果), sugar(糖) 6个维度的上下文单词。图中单词digital的词向量用框子标出: 0, 2, 1, 0,
1, 0。注意:真正的词向量计算需要的维度比这高得多,因而数据也就更加稀疏。
图5是这种情况的可视化表示。
图5中的单词digital和information只是与上下文中的data和result这两个单词关联,因此只是二维的。在实际的语料库中,|V|是词向量的长度,一般来说就是指词汇的规模,通常在10,000词到50,000词之间(在训练语料库中,一般使用50,000个高频词,高于50,000个高频词不会有什么帮助)。当然,这些计数大多数都是零,从而导致数据稀疏,现在已经设计了有效的算法使用数据稀疏的矩阵进行存储和计算。
用来计数的窗口的大小可以根据表示目标的不同而有所变化,不过一般是在目标单词的每一侧取1至8个单词,这样上下文的总长度就是3-17个单词。一般来说,窗口越小,表示的句法信息就越多,因为句法信息总是来自比较临近的单词,而窗口越长,表示的相关语义信息就越多。
词向量的计算方法
由于采用向量来表示单词在文献或在上下文中的分布,这样,词向量便是可计算的了。下面我们来讨论词向量的两种计算方法:点互信息(pointwise
mutual
information,PMI)和词向量夹角的余弦值(cosine)。点互信息可以描述目标单词与上下文中的单词的接近程度,从而揭示单词与上下文之间的语义联系;词向量夹角的余弦值可以描述文本中单词与单词之间的接近程度,从而揭示文本中单词之间的语义联系。它们都是向量语义学研究中重要的数学指标。
点互信息
图4中的单词-上下文共现矩阵,使用矩阵行中的单元来表示两个单词的简单的共现频度。然而,事实证明,简单的频度并不是单词之间关联关系的最好的度量。问题在于,行的频度偏差较大,区分度不很高。如果我们想知道什么类型的上下文是单词apricot
和pineapple共享的,而不是digital和information共享的,仅仅根据诸如the, it,
或者they这样的高频度单词,是不可能得到很好的区分度的,因为这些单词经常出现在各种类型单词的前后,而且对于任何一种特定类型的单词都没有区分度。
我们不采用这样的方法,而更乐意使用那些对于目标单词具有特定区分度的上下文单词。单词之间关联性的最好的权重或度量将告诉我们两个单词共现的频繁程度,而不仅仅是它们是否共现。这样就可以揭示目标单词与上下文中具有特定区分度的单词之间的语义关联程度。
点互信息(Pointwise Mutual
Information,PMI)正是这样的度量方法。点互信息是Church和Hanks在互信息概念的基础上提出来的(Church et
al., 1989)。
两个随机变量X和Y的互信息(mutual information)I(X, Y)是:
点互信息(pointwise mutual
information)是两个事件x和y是否经常出现的度量,如果它们是彼此独立的,I(x, y)可按如下公式计算:
因此,我们把目标单词w和它的上下文单词c之间的点互信息PMI(w,c)表示如下
点互信息PMI公式中的分子p(w,
c)表示我们观察到的两个单词共同出现的频繁程度。分母p(w)p(c)表示在两个单词彼此独立出现的情况下,我们期望这两个单词共同出现的频繁程度,所以,要把这两个单词的概率相乘。因此,其比值PMI(w,
c)就可以估计出目标词和特征共同出现的频繁程度。
PMI的范围可以从负到正无限地进行取值。不过,负值的PMI意味着事物的共现比我们随便地估计的更加不频繁,除非我们的语料库非常大,否则,将会导致计算结果不可靠。为了凸显出单独出现的概率分别为10-6的两个单词是否比我们随便的估计共同出现得更加经常,我们就需要这两个单词共同出现的有意义的区分度的概率不小于10-12,这样的颗粒度要求语料库的规模非常之大,由于这样的原因,我们更为通常地使用“正值点互信息”(positive
pointwise mutual information,PPMI)来计算,用零来代替所有的负值的PMI(Dagan et
al., 1993)。
更加形式地说,假定我们有一个单词-上下文共现矩阵F,这个矩阵有W行(单词)和C列(上下文),fij表示在上下文cj中单词wi出现的频度。这可以转换为PPMI矩阵,其中PPMIij给出在上下文cj中单词wi的PPMI的值如下:
这样一来,我们就可以举例来计算PPMI (w=information,
c=data)了。根据图4,我们可以计算出的相关数据如下:
图4的单词-上下文共现矩阵中,所有单词的出现频度之和为:
目标单词information在上下文data中的出现频度为:
目标单词information在上下文单词中出现频度之和为:
上下文单词data在所有目标单词中出现频度之和为:
Pi* = P(w = information) = 11/19 = 0.576
由此可知,单词information与上下文中的单词data之间的点互信息PPMI为0.568,可见它们之间的关联度比较高,对于目标单词information来说,上下文中的单词data具有较高区分度。在实际的语言中,information与data是经常一起出现的,因此,点互信息这样的计算结果符合我们的语言直觉。
词向量夹角的余弦值
为了定义两个目标单词v和w之间的相似性,我们需要取这两个单词的词向量并计算词向量之间的相似度。迄今为止,最通常的相似度的计算方法是使用词向量夹角之间的“余弦值”(cosine)来进行的。
这个“余弦值”在自然语言处理中被广泛地应用来计算词向量的相似性。余弦值的根据是线性代数中的“点积”(dot
product):
词向量之间相似度的大多数计算都是根据点积来进行的。点积之所以被用来计算相似性,是由于当处于同样维度中两个词向量具有很高的值的时候,点积的值也很高。而处于不同维度的词向量具有零值,那么,点积也为零,这表明这些词向量压根儿就没有相似性。
但是,这种原始的点积在计算相似性时存在一个问题:它更喜欢长的词向量。词向量长度可定义为:
如果词向量越长,则点积就越大,在每一个维度中的值也就越大。高频单词的词向量较长,因为高频词倾向于与更多的单词共现,因而与这些单词具有较高的共现值。所以,高频词的原始点积会比较大。然而,尽管如此,我们更加希望相似度告诉我们两个单词究竟怎样相似,而不管它们的出现频度是多少。
改善这种点积表示的最为简单的办法是把词向量长度归一化,也就是用两个词向量的长度来除点积的值,得到“归一化点积”(normalized
dot product)。这个归一化点积恰好等于这两个词向量夹角的余弦值
,根据点积的定义,两个词向量 和 之间的点积为:
这样一来,两个词向量 和 之间的余弦值可以使用如下公式来计算:
这个余弦值从1(指向同样方向的词向量)经过0(正交的词向量)到
-1(指向反方向的词向量)。不过,原始频率的值是非负的,所以,这些词向量夹角余弦值的范围是0 到1之间.
现在我们使用图6中单词-上下文共现矩阵的粗略计数,来计算词向量夹角的余弦值,看一看单词apricot和digital在意思上与单词information的接近程度。
所以得到:
由于0.58>0.16 ,所以,这样的模型可以判定,information与
digital更加接近,而与apricot不太接近。图7是这种情况的可视化表示。
从图7可以看出在使用上下文单词data和large的计数定义的二维空间中三个单词(apricot, digital,
information)的词向量,digital与information词向量之间的夹角小于apricot与information词向量之间的夹角,这说明与apricot相比较,digital更接近于information。在实际的语言中,information与digital是经常一起出现的,而很少与apricot一起出现,因此,点互信息这样的计算结果符合我们的语言直觉。
一般说来,两个词向量越相似,它们夹角的余弦值就越大,而夹角的角度就越小,当两个词向量之间夹角的角度最小时(
),它们夹角的余弦值最大(1);其他夹角的余弦值都小于1。
词向量与人们的语言直觉
图8显示了Sweden这个国家的词向量与一些国家的词向量之间的余弦距离(cosine
distance),也就词向量夹角的余弦值。可以看出,Sweden(瑞典)与Norway(挪威),
Denmark(丹麦)等北欧国家的余弦距离都是0.7以上,说明这些国家与Sweden相似度高,与Sweden最为接近,而其他国家的余弦距离都比0.7低,说明这些国家与Sweden的相似度比较低,离开Sweden比较远。这与我们的语言直觉也是相符的。因此我们认为,词向量可以反映人们的语言直觉。
2006年,Rohde等使用层次聚类的方法从词嵌入(embedding)中把名词自动地分为4类:身体类(wrist,
ankle, foot等),动物类(dog, cat, bull等),城市类(Chicago, Atlanta,
Tokyo等),国家地区类(China, Russia, Africa等),并加以可视化表示。这些词嵌入使用了一个大小为
的窗口,14,000维,删除了157个封闭类的单词。与PPMI不同,这些词嵌入使用平方根通过正关联对于每一个单元进行计算(词对之间的关联为负值时,用0来替换)。这里的可视化表示使用了层次聚类,关联起来的每一类单词之间具有的很高的相似度。例如,wrist(手腕)与ankle(脚腕),hand(手)与foot(脚),dog(狗)与cat(猫),lion(雄狮)与bull(公牛),Chicago(芝加哥)与Atlanta(亚特兰大),China(中国)与Russia(俄罗斯),Africa(非洲)与Asia(亚洲)等等(Rohde
et al , 2006)。图9使用向量聚类的方法来显示单词之间的相似程度,聚类的结果符合我们的语言直觉。
2013年,T.
Mikolov等使用词向量研究中的skip-gram算法对单词进行聚类,可以把相似的单词聚合在一起。例如,对于目标单词Redmond(雷德蒙德)
,算法把Redmond Wash.(华盛顿州的雷德蒙德), Redmond Washington(华盛顿州的雷德蒙德),
Microsoft(微软公司)等单词(或短语)聚在一起;对于目标单词capitulate(投降),算法把capitulation,
capitulated, capitulating等单词聚在一起;聚类的结果与我们的语言直觉相吻合(Mikolov et al.,
2013)。图10是聚类的一些结果:
同年,T.
Mikolov等在机器学习研究中发现,相关的单词与单词之间在语义上存在着补偿关系(offset),如果用单词King(国王)的词向量减去单词Queen(王后)的词向量,再加上单词Woman(女人)的词向量,就能得到单词Man(男人)的词向量。类似地,如果用单词Paris(巴黎)的词向量减去单词France(法国)的词向量,再加上单词German(德国)的词向量,就能得到单词Berlin(柏林)的词向量(Mikolov
et al., 2013)。这样的计算结果与我们对于这些单词的语义补偿关系的直觉不谋而合。如图11所示。
Mikolov等在词嵌入的向量空间中,根据单词的词向量的数值,还发现了如图12所示的非常有趣的单词偶对关系。
我们可以看到,在单词偶对关系France – Paris(法国–巴黎)中,还有Italy : Rome(意大利:罗马),
Japan : Tokyo(日本:东京), Florida:
Tallahassee(佛罗里达:塔拉哈西),表示的是某地区与该地区首府之间的关系;在单词偶对关系big –
bigger中,还有small : larger, cold : colder, quick :
quicker,表示是的是形容词基本形式与形容词比较级形式之间的关系 ;等等(Mikolov et al.,
2013)。尽管有些小错,这样的结果也说明了词向量与我们的语言直觉基本上是相符的。
这些关于词向量的计算结果生动地揭示了词向量与语言意义之间的紧密联系,词向量在数学上的计算结果与我们在普通常识中的直觉不谋而合,这是非常令人振奋和激动的科研结果。词向量来源于语言学,而词向量的计算结果又与人们的语言直觉相符合,这说明词向量确实是描述自然语言数学面貌的一种可行的好方法。
词向量在自然语言处理中已经使用了50多年的历史了。在命名实体识别(recognition of naming
entities)、自动句法分析(automatic parsing)、语义角色标注(annotation of semantic
roles)等应用领域,都使用词向量作为特征来表示单词。词向量也是计算两个单词、两个句子、两个文献之间的相似性的最常用的方法,在信息检索(Information
retrieval)、神经机器翻译(neural machine translation)、问答系统(question answer
system)、文本摘要(Text Summarization)、自动文章分级(automatic essay
grading)等实际应用中,词向量也是一个重要的工具(Jurafsky et al.,
2008)。词向量在自然语言处理中受到了普遍的欢迎,得到了广泛的应用。我们这里着重讨论一下词向量对于神经机器翻译的作用。
目前学术界对于神经机器翻译(neural machine translation,
NMT)的机理还不十分清楚,神经机器翻译虽然取得了很好的成果,但是其机理还是一个“黑箱”(black
box),词向量有可能帮助我们揭开这个黑箱的神秘面纱。
词向量有助于揭示神经机器翻译“黑箱”的奥秘
2007年以来,采用深度学习的方法,以大规模的双语对齐的口语语料库作为语言知识的来源,从双语对齐的口语语料库中获取翻译知识,研制了神经机器翻译系统,机器翻译的水平大大提高,口语神经机器翻译正确率已经超过了
90%,针对日常口语的神经机器翻译基本上已经可以付诸实用了,引起了自然语言处理学界的触目(冯志伟, 2018)。
神经机器翻译系统的翻译原理如图13所示:
图13中,e表示源语言英语,f表示目标语言法语,把e翻译为f通过一个“黑箱”来进行,这个“黑箱”从双语对齐语料库(corpora)中获取知识,把语言序列e翻译成语言序列f。例如,把英语的语言序列Economic
growth has slowed down in recent years(近年来经济增长的速度减慢了)翻译成法语的语言序列 La
croissance économique s’est ralentie ces dernières
années。那么,这个“黑箱”的内幕究竟是什么呢?
目前,我们对于这个“黑箱”的内幕还不十分清楚,但是,初步的研究发现,这个“黑箱是通过词向量来表示单词信息的多层次神经网络,使用了如下的编码-解码框架:
在图14的编码-解码框架中,-W的左侧是编码器(encoder),-W的右侧是解码器(decoder)。A, B, C,
表示源语言的输入序列,X, Y, Z, 表示目标语言的输出序列,表示一个句子的终结符(End Of
Sentence)。W是编码器对输入语言序列A, B, C,
编码的词向量表示,这样的词向量表示W在解码器中进行解码,得到线性化的目标语言的输出。这样看来,这个编码-解码框架的核心就是词向量。
构造单词的向量化特征表示也就是进行“词嵌入”(word
embedding)。“嵌入”本来是一个数学上的概念,表示形如f(X)
Y这样的函数,该函数需要满足“单射”(injection)和“态射”(morphism)两个特征。第一个特征“单射”要求函数f(X)
Y中的每一个X的值只有一个Y的值与之对应。第二个特征“态射”也叫做“结构保持”(structure
preserving),是一个与具体任务有关的概念,例如,在输入空间中存在某种偏序关系,如果对于任意的偏序关系X1
因此我们认为,词向量是帮助我们打开神经机器翻译这个“黑箱”的一把钥匙,通过对于词向量的深入研究,将可能帮助我们揭开神经机器翻译这个“黑箱”的奥秘。而词向量的语言学根据是“价值”和“分布”的概念,从这个意义上,我们可以说,神经机器翻译在理论上是与语言学有着密切关系的,促进神经机器翻译与语言学的结合,在神经机器翻译研究中充分地关注语言学理论,有助于我们进一步提高神经机器翻译研究的学术水平和理论高度。
前一篇:关于我的家庭
后一篇:网络时代的自然语言处理