Huiyuan Zhuo 路编译

苹果发文:全局语义信息能否改进神经语言模型?

用于训练词嵌入的大多数技巧是捕捉给定词在句子中的局部上下文,但当涉及全局语义信息时,此类嵌入的表达能力有限。然而,目前基于局部上下文训练的词嵌入仍然是主流,那么使用全局语义信息能否改善神经语言模型呢?苹果的框架自然语言处理团队对此进行了探讨。全局语义上下文能否改善 QuickType 键盘的词预测?苹果是否会将这一技术应用于实际生产?

在 iPhone 上输入文本、发掘用户可能感兴趣的新闻、查明用户遇到问题的答案,以及其他语言相关的任务都取决于稳健的自然语言处理(NLP)模型。词嵌入是一类 NLP 模型,它在数学上将词映射为数值向量。这种能力使得找到数值相似的向量或向量簇变得非常简单,而后通过反向映射来得到相关的语言信息。这些模型是 News、搜索、Siri、键盘和 Maps 等常见应用程序的核心。本文将探讨能否通过全局语义上下文(global semantic context)改善 QuickType 键盘的词预测。

简介

你应该通过上下文去了解一个词。

——语言学家 John Rupert Firth

如今,用于训练词嵌入的大多数技巧是捕捉给定词在句子中的局部上下文,也就是一个包含在所讨论词之前和之后相对少量(比如说 5 个)词的窗口。例如,在《美国独立宣言》中,词「self-evident」就拥有局部上下文,词左边是「hold these truths to be」,右边是「that all men are created」。

本文介绍了这种方法的扩展版本,它是捕捉文档的整个语义上下文,例如整本《独立宣言》。这种全局语义上下文能否改善语言模型?我们首先来看目前词嵌入的使用情况。

词嵌入

以无监督方式训练的连续空间词嵌入对于各种自然语言处理(NLP)任务是非常有用的,如信息检索 [1]、文档分类 [2]、问答 [3] 和联结主义语言建模 [4]。最基本的嵌入基于 1-N 编码,即大小为 N 的基础词汇表中的每个词都由 N 维稀疏向量来表示(词的索引为 1,其他为 0)。更复杂的嵌入是将词映射为低维连续空间上的密集向量。在维度减少的过程中,映射有效地采集到词一定量的语义、语法和语用信息。计算向量间的距离然后生成词的相似性度量,这些都是无法仅仅通过词本身去直接计算的。

有两种基本的降维词向量类型:

  • 从词的局部上下文生成的表示(如前 L 个词和后 L 个词,其中 L 通常是一个小的整数)。

  • 利用词的全局上下文生成的表示(如它所在的整个文档)。

利用局部上下文的方法有:

  • 使用神经网络架构的基于预测的方法 [5],如连续词袋模型和 skip-gram 模型。

  • 源自联结主义语言建模的投影层技术 [6]。

  • 使用自编码器配置的瓶颈表示 [7]。

利用全局上下文的方法有:

  • 全局矩阵分解法,如潜在语义映射(latent semantic mapping,LSM),它使用词—文档共现数 [8]。

  • 对数线性回归建模,如 GloVe,它使用词—词共现数 [9]。

像 LSM 这样的全局共现计数法会形成被认为是真正语义嵌入的词表示,因为它们公开了统计信息,而这些信息采集了整个文档传达的语义概念。相比之下,使用神经网络的基于预测的典型解决方案仅封装了语义关系,它们在一个以每个词为中心的局部窗口中出现(这是预测中使用的所有内容)。因此,当涉及全局语义信息时,由此类解决方案产生的嵌入本身的表达能力有限。

尽管有这种限制,研究人员仍然更多地采用基于神经网络的嵌入。特别是连续词袋模型和 skip-gram(线性)模型,因为它们能够传达与「king is to queen as man is to woman」同一类型的词类比。因为基于 LSM 的方法大多无法呈现这样的词类比,所以普遍的观点是,由于向量空间的单个维度缺乏精确的含义,基于 LSM 的方法产生了一个次优的空间结构。

这种认识促使我们探索基于深度学习的替代方案能否比现有的 LSM 方法表现得更好。我们特别研究了是否可以通过使用不同类型的神经网络架构来实现更强大的语义嵌入。

在下一节中,我们将讨论在 Apple QuickType 键盘上使用这些嵌入提高预测准确率所涉及的挑战。我们回顾了我们所采用的双向长短期记忆架构(bi-LSTM)。然后介绍了这种架构获得的语义嵌入,及其在神经语言建模中的用途。最后,我们讨论了从中获得的见解以及对未来发展的看法。

神经架构

创建词嵌入最有名的框架之一是 word2vec。我们决定研究一种可以提供全局语义嵌入的神经网络架构,因此我们选择 bi-LSTM 循环神经网络(RNN)架构。此方法允许模型访问过去、现在与未来的输入信息,从而使得模型能够采集全局上下文。

我们设计了这个架构,使之能够接受多达一个完整文档的输入。至于输出,它提供与文档相关联的语义类别,如图 1 所示。生成的嵌入不仅采集了词的局部上下文,该采集了输入的整个语义结构。

该架构解决了两个主要障碍。第一个障碍是对围绕每个词的有限大小窗口中包含的局部上下文的限制,这个窗口用来预测输出标签。通过转换为嵌入计算的双向循环实现,该架构原则上能够容纳无限长度的左右上下文。这样不仅可以处理句子,还可以处理整个段落,甚至是一整个文档。

图 1:全局语义嵌入的 RNN 架构。

第二个障碍与预测目标本身有关。到目前为止,所有的神经网络解决方案都可以预测上下文中的词或局部上下文,而这并不能充分反映全局语义信息。相反,图 1 所示架构直接从输入文本预测全局语义类别。为了简化语义标签的生成过程,我们发现去获得合适的聚类类别更加方便,例如,从使用 LSM [8] 获得的初始词—文档嵌入中获得聚类类别。

让我们仔细看看该网络是如何运作的。假设当前所考虑的文本块(无论是句子、段落还是整个文档)由 T 个词组成 x(t),1 ≤ t ≤ T,并且与语义类别 z 全局相关。我们把这个文本块作为双向 RNN 架构的输入。

输入文本中的每个词 x(t) 使用 1-N 编码进行编码,因此,x(t) 是 N 维的稀疏向量。左边上下文的 H 维向量 h(t-1) 包含左边上下文的内部表示,它来自于前一个时间步的隐藏层中的输出值。右边上下文的 H 维向量 g(t+1) 包含下一个时间步的隐藏层中的右边上下文输出值。该网络在当前时间步计算隐藏节点的输出值:

h(t)=F{X⋅x(t)+W⋅h(t−1)}

g(t)=F{Y⋅x(t)+V⋅g(t+1)}

其中:

  • F{·} 表示激活函数,如 sigmoid、双曲正切或线性修正单元。(或者,纯线性激活函数可用来确保在词类比上的良好性能。)

  • s(t) 表示网络状态,它是左右上下文隐藏节点的级联:s(t) = [g(t) h(t)],维度是 2H。将此状态看作是维度 2H 的向量空间中的词 x(t) 的连续空间表示。

该网络的输出是与输入文本相关联的语义类别。因此,在每个时间步中,对应于当前词的输出标签 z 被编码为 1-K,通过以下公式计算并获得:

z=G{Z⋅[g(t)h(t)]}

其中:

  • G{·} 表示 softmax 激活函数

在训练该网络时,我们假设有一组可用的语义类别注释。如前所述,这些注释可能来自于使用 LSM 获得的初始词—文档嵌入。

为了避免典型的梯度消失问题,我们使用 LSTM 或门控递归单元(GRU)作为隐藏节点。此外,你可以根据需要将图 1 所示的单个隐藏层扩展到任意复杂的、更深的网络。例如,两个堆叠的 RNN 或 LSTM 网络在许多应用上取得了良好的表现,如语种识别。

语义词嵌入

对于基础词汇表中的每个词,给定每个文本块(句子、段落或文档),我们要寻找的词表示是与该词相关的已训练网络的状态。当词只出现在一个文本中时,我们使用对应的向量(维度是 2H)。如果一个词出现在多个文本中,我们相应地求所有相关向量的平均值。

与 LSM 一样,与特定语义类别密切相关的词倾向于和代表该语义类别的维度一致。相反,功能词(即「the」、「at」、「you」这样的词)倾向于聚集在向量空间的原点附近。

注意,可以通过迭代所获得的连续语义嵌入和你想实现的语义粒度来细化初始语义类别集。

词表外(OOV)的词需要特殊处理,因为它们超出了 1—N 编码范例。一种可能方法是为 OOV 分配一个额外的维度,使得输入维度变为 1-(N+1)。网络的其余部分保持不变。这样的话,维度 2H 的单个向量最终是任意 OOV 词的表示。

神经语言建模

在最初的实验中,我们在一个约 7000 万词、维度 2H 为 256 的专用段落语料库中训练语义嵌入。然而,我们发现,即使在长度标准化的条件下,仍然难以处理每个输入段落的长度显著变化的情况。此外,在段落数据上训练词嵌入与在句子数据上训练语言模型之间的不匹配似乎超过了添加全局语义信息带来的好处。这与我们之前的观察一致,即任何嵌入都是在将使用的确切数据类型上训练得最好。通常,数据驱动的词嵌入在任务中并不是可移植的。

因此我们决定在用于训练 QuickType 预测类型神经语言模型的(句子)语料库的一个子集上训练嵌入。然后,我们在标准语言建模测试数据集上测量嵌入的质量,如表 1 所示。符号「1-of-N」表示我们的标准稀疏嵌入,而「word2vec」表示在大量数据上训练的标准 word2vec 嵌入。

表 1:语言建模测试集上的困惑度结果(训练语料库的大小有变化,如图所示)。

我们惊讶地发现,在少量数据上训练的 bi-LSTM 嵌入与在更大(7 倍以上)数据上训练的 word2vec 嵌入表现差不多。类似地,bi-LSTM 嵌入与在更大(5000 倍以上)数据上训练的 one-hot 向量表现得一样好。因此,我们提出的方法十分适合那些收集大量训练数据耗时且昂贵的应用。

结论

我们评估了将全局语义信息纳入神经语言模型中的潜在好处。由于这些模型本身是为局部预测而设计优化的,因此它们无法正确利用可能十分相关的全局信息。利用全局语义信息通常有利于神经语言建模。然而,正如我们所发现的那样,这种方法需要解决段落数据上训练的词向量与句子数据上训练的语言模型之间的长度不匹配问题。

我们认为解决这个问题最好的办法是修改语言模型训练中使用的客观标准,这样我们就可以在同一段落数据上同时训练嵌入和语言模型。目前,我们正在试验一个多任务目标,以同时预测语义类别(用来训练语义嵌入)和下一个词(用来训练神经语言模型)。

总之,使用 bi-LSTM RNN 训练全局语义词嵌入确实可以提高神经语言建模的准确率。它还可以大大减少训练所需的数据量。

在未来,我们认为多任务训练框架有可能通过利用局部和全局语义信息来实现两全其美。

参考文献

[1] C.D. Manning, P. Raghavan, and H. Schütze. Introduction to Information Retrieval. Cambridge University Press, 2008.

[2] F. Sebastiani. Machine Learning in Automated Text Categorization. ACM Computing Surveys, vol. 34, pp. 1–47, March 2002.

[3] S. Tellex, B. Katz, J. Lin, A. Fernandes, and G. Marton. Quantitative Evaluation of Passage Retrieval Algorithms for Question Answering. Proceedings of the 26th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, pp. 41–47, July–August 2003.

[4] H. Schwenk. Continuous Space Language Models. Computer Speech and Language, vol. 21, issue 3, pp. 492–518, July 2007.

[5] T. Mikolov, W.T. Yih, and G. Zweig. Linguistic Regularities in Continuous Space Word Representations. Proceedings of NAACL-HLT 2013, June 2013.

[6] M. Sundermeyer, R. Schlüter, and H. Ney. LSTM Neural Networks for Language Modeling. InterSpeech 2012, pp. 194–197, September 2012.

[7] C.Y. Liou, W.C. Cheng, J.W. Liou, and D.R. Liou. Autoencoder for Words.Neurocomputing, vol. 139, pp. 84–96, September 2014.

[8] J.R. Bellegarda. Exploiting Latent Semantic Information in Statistical Language Modeling. Proceedings of the IEEE, vol. 88, issue 8, pp. 1279–1296, August 2000.

[9] J. Pennington, R. Socher, and C.D. Manning. GloVe: Global Vectors for Word Representation. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pp 1532–1543, October 2014.


原文链接:https://machinelearning.apple.com/2018/09/27/can-global-semantic-context-improve-neural-language-models.html

理论语言模型自然语言处理苹果
1
相关数据
深度学习技术

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

自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

信息检索技术

信息检索(IR)是基于用于查询检索信息的任务。流行的信息检索模型包括布尔模型、向量空间模型、概率模型和语言模型。信息检索最典型和最常见的应用是搜索引擎。

机器学习技术

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

GloVe技术

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

词嵌入技术

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

联结主义技术

联结主义是统合了认知心理学、人工智能和心理哲学领域的一种理论。联结主义建立了心理或行为现象模型的显现模型—单纯元件的互相连结网络。联结主义有许多不同的形式,但最常见的形式利用了神经网络模型。

神经网络技术

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

词袋模型技术

词袋模型(英语:Bag-of-words model)是个在自然语言处理和信息检索(IR)下被简化的表达模型。此模型下,像是句子或是文件这样的文字可以用一个袋子装着这些词的方式表现,这种表现方式不考虑文法以及词的顺序。最近词袋模型也被应用在电脑视觉领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合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)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

自然语言处理技术

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

梯度消失问题技术

梯度消失指的是随着网络深度增加,参数的梯度范数指数式减小的现象。梯度很小,意味着参数的变化很缓慢,从而使得学习过程停滞,直到梯度变得足够大,而这通常需要指数量级的时间。这种思想至少可以追溯到 Bengio 等人 1994 年的论文:「Learning long-term dependencies with gradient descent is difficult」,目前似乎仍然是人们对深度神经网络的训练困难的偏好解释。

神经语言模型技术

语言模型是估计单词序列的联合概率函数,比如给一个长度为m的单词序列,通过使用语言模型,可以获得这m个单词分布的概率P(W1,...,Wm)。对于许多的自然语言处理的应用,可以估计不同短语的概率是极具应用价值的。语言模型可以应用于语音识别,机器翻译,语音标记,解析,手写识别,信息检索等领域。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

推荐文章
暂无评论
暂无评论~