来源:互联网2020-10-27 00:26:59 热度:

全局语义语境能改善神经语言模型吗?

AI中国网 h ttps://www.cnaiplus.com

往智能手机中输入文本,搜索你可能喜欢的新闻,或找到你可能关心的问题的答案,以及许多其他与语言相关的NLP任务都依赖于强大的自然语言处理( NLP )模型。Word embedding也是一种NLP模型,它将word映射成数值向量。这使得寻找某个word相似的向量或向量cluster变得相当简单,然后通过反向映射以获得相关的语言信息。这些模型是新闻、搜索、Siri、Keyboards和地图查找等常见应用的核心部分。在本文中,我们将探讨是否可以使用全局语义上下文(Global Semantic Context)来改进QuickType keyboard的单词输入时,下一个输入单词的预测问题。

介绍

You shall know a word by the company it keeps.

语言学家,John Rupert Firth

如今,大多数训练Word embedding的技术,对于句子中一个给定的单词,只是选择单词前后固定窗口(比如,5个单词),捕捉固定窗口中local的上下文信息,正如上文所说的“the company it keeps”。例如,美国独立宣言中的“self-evident”这个词的local context,左边是上文是“hold these truths to be”,右边下文是“that all men are created”。

在本文中,我们将这种方法的进行扩展,捕获了文档的整个语义结构信息例如,《独立宣言》整个文本信息。这种全局语义上下文信息能产生更好的语言模型吗?首先,让我们来看一下当前Word embedding的用法。

Word Embedding

通过无监督的方式训练的连续空间Word embedding对于各种自然语言处理( NLP )任务都是非常有用,如信息检索[1]、文档分类[2]、问答[3]和语言建模[4]等。最简单的embedding是采用one-hot-to-vector方式进行编码。更复杂的embedding方法是将单词映射到低维连续向量空间中的密集向量表示方法。在这种降维过程中,mapping有利地捕获了一定量的关于单词的语义、句法和语用(pragmatic)信息。然后,计算向量之间的距离可以得到单词之间的相似性,而这些度量不可能直接使用单个单词本身进行计算。

对embedding进行降维的方法可以分为两类:

1、从单词的local上下文得到的表示(representation)(例如,某个单词的前后L个单词,其中L通常是比较小的整数)。

2、利用单词周围的全局上下文得到的表示(例如,它出现的整个文档)

利用local上下文的获取representation的方法

(1)、使用神经网络结构的基于预测的方法,如连续单词袋和skip=gram模型[5]

(2)、来自connectionist语言建模的投影层技术[6]

(3)、基于自动编码器的Bottleneck表示[7]

利用全局上下文的方法包括

(1)、全局矩阵分解方法,如潜在语义映射(latent semantic mapping, LSM ),它使用单词-文档共现次数信息[8]

(2)、对数线性回归建模(log-linear regression modeling),如单词矢量化的全局向量( GloVe),使用单词-单词共现次数信息[9]

像LSM这样的全局共现计数方法得到的word representation可以被认为是真正语义embedding,因为它们捕获了整个文档所包含的语义概念的统计信息。相比之下,使用神经网络的典型基于预测的解决方法只包含语义关系,以至于它们在以每个单词为中心的局部窗口中表现出来(预测时使用的所有内容)。因此,当涉及全局语义信息时,这种方法得到的embedding具有有限表达能力。

尽管有这些限制,但基于神经网络的embedding使用场景越来越多。尤其是连续词袋和skip-gram模型越来越受欢迎,因为他们能够实现这么一种类比:“king is to queen as man is to woman”。“因为基于LSM的方法在很大程度上不能实现这种词的类比,所以普遍认为基于LSM的方法产生了次优的空间结构,这是由于向量空间的各个维度缺乏精确的含义。

这一认识促使我们探索基于深度学习的替代方案是否能比我们现有的LSM风格的Word embedding获得更好地结果。我们特别研究了是否可以通过使用不同类型的神经网络架构来获得更强大的语义embedding。

在下一节中,我们将讨论在Apple QuickType keyboards中使用这些embedding来提高word预测精度所面临的挑战。首先介绍bi - LSTM架构,然后描述用这种架构获得的语义embedding,以及它们在神经语言建模中的应用。最后,讨论我们所获得的一些结果以及我们对未来发展的看法。

Neural Architecture

word 2vec是创建Word embedding的最著名的框架之一。相反,我们决定研究一种能够提供全局语义embedding的神经架构。我们选择了bi - LSTM递归神经网络( RNN )架构。这种方法允许模型访问关于先前、当前和未来输入的信息,从而产生能够捕捉全局上下文的模型。

我们设计了模型结构,以便它可以接受多达一个完整的文档作为输入。它提供了一个与该文档相关联的语义类别(semantic category)作为输出,如图1所示。由此产生的embedding不仅仅捕获一个词的local上下文它们还捕获输入document的整个语义结构。

这个架构解决了两个主要问题。第一个问题是以某个单词为中心的有限大小窗口内的local上下文的限制。通过切换到用于embedding计算的双向递归实现,该架构原则上可以捕捉无限长度的左右上下文信息。这不仅可以处理整个句子,还可以处理整个段落,甚至整篇文档。

图1. 用于全局语义embedding的RNN模型结构

第二个问题与预测目标本身有关。迄今为止,所有的神经网络解决方法要么预测上下文中的单词,要么预测局部上下文本身,这并不能充分反映全局语义信息。相反,图1所示的模型结构直接从输入文本预测全局语义类别。为了简化语义标签(semantic labels)的生成过程,我们发现,可以使用LSM [8]来获得初始word - document embedding的聚类类别(clustered categories)。

让我们仔细看看网络是如何工作的。假设当前处理的文本块(可能是句子、段落或者时整个文档)包含T个单词x ( t ),1≤t≤T,并且与全局的语义类别z相关。我们将这个文本块作为输入提供给双向RNN架构。

输入文本中的每个单词x ( t )使用1-of-N方式进行编码;因此,x ( t )是稀疏的,其维数等于n。维数为H的上文向量H ( t-1 )包含来自前一时间步隐藏层中输出的上文表示。同样,维度为H的下文向量g ( t + 1 )包含来自未来时间步长的隐藏层中的下文表示。网络在当前时间步计算隐藏节点的输出值如下:

h ( t ) = F { X*X ( t ) + W*h ( t-1 ) } h ( t ) = F { X * x( t ) + W *h ( t-1 ) }

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

其中:

f { .}表示激活函数,如sigmoid、tanh或relu。

s ( t )表示网络的状态,它的维度为2H,由左右上下文隐藏层输出拼接而成:s ( t ) = [g(t) ,h (t)]。将此状态视为维度2H的向量空间中单词x ( t )的连续空间表示。

网络的输出是与输入文本相关联的语义类别。因此,在每个时间步,对应于当前word的输出标签z采用1-of-K方式编码,并且采用如下公式计算:

Z = G { Z [ G ( t ) h ( t ) ] Z = G { Z* [ G ( t ) h ( t ) ]

其中:

g { }表示softmax激活函数。

当我们训练网络时,我们假设有一组可用语义类别注释。如前所述,这些注释可能来自使用LSM获得的初始word-document embedding。

为了避免典型的消失梯度问题,我们将隐含层的节点改为LSTM或门控递归单元( GRU )。此外,可以根据需要将图1所示的单个隐藏层扩展到任意复杂、更深的网络。例如,两个相互堆叠的RNN或LSTM网络在许多应用中都已经获得了良好的结果,比如语言识别。

Semantic word embedding

对于给定词汇表中的每个单词,我们使用给定每个单词出现的文本块(句子、段落或文档),训练一个神经网络模型,并把模型输出hidden state当作其word representation。当这个词只出现在一段文字中时,我们会直接使用相应的state(维度2H )做为其表示。如果一个词出现在多个文本中,我们会相应地对所有相关向量进行平均。

与LSM一样,与特定语义类别密切相关的词往往与代表该语义类别的少量维度相关。相反,虚词(如“the”、“at”、“you”)倾向于聚集在向量空间的原点附近。

请注意,最初的语义类别随后可以通过迭代获得的连续语义embedding和您想要实现的语义粒度来refine。

Out-of-Vocabulary(OOV )词需要特殊处理,因为它们不属于1 / N编码模式。一种方法是给OOV的词分配一个额外的维度,从而使用1-of-(N+1)的embedding作为输入。网络的其余部分保持不变。在这种情况下,维度2H的单个向量可以表示任何OOV单词。

神经语言建模

在实验开始前,我们用一个包含约7000万word的专门构造的段落语料库,训练了semantic embedding,维度2H设置为256。然而,我们发现,即使长度归一化,也很难处理每个输入段落长度的巨大变化。此外,由段落数据(paragraph data)训练得到的embedding和由句子数据(sentence data)的训练语言模型得到的embedding的不一致性似乎超过了外部加入全局语义信息带来的好处。这与我们之前所观察到的一致,即任何embedding都是在将要使用它的确切数据集上才能获得最好的结果。一般来说,数据驱动的Word embedding在不同任务之间很难移植。

因此,我们决定在用于训练QuickType神经语言模型的(句子)语料库的子集上训练embedding。然后,我们根据我们的标准语言建模测试集上的perplexity来衡量embedding的质量,如表1所示。符号“1-of-N”表示稀疏embedding,而“word 2vec”指的是在大量数据上训练的Word2vec embedding。

表1. 语言建模测试集的perplexity结果(训练语料的大小依指示而变化)

我们惊讶地看到,在少量数据上训练的bi-LSTM embedding与在大量数据上训练的word 2vec embedding(7倍)效果大致相同。类似地,bi-LSTM embedding与更大数据集( 5000倍)数据集上训练的one-hot向量得到结果一致。因此,所提出的方法非常适合于收集大量训练数据繁琐或昂贵的场景。

结论

我们评估了将全局语义信息纳入神经语言模型的潜在好处。因为这些模型主要是针对局部预测进行了优化,因为它们没有恰当地利用可能相关的全局内容。因此,挖掘全局语义信息通常有利于神经语言建模。然而,正如我们发现的那样,这种方法需要解决段落数据上的训练词embedding和句子数据上的训练语言模型之间的长度不匹配。

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

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

未来,我们认为多任务训练框架有潜力通过利用local和全局语义信息来实现两者的最佳平衡。

参考文献

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

[2] F. Sebastiani. Machine Learning in Automated Text Categorization. ACM Computing Surveys, vol. 34, pp. 147, 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. 4147, JulyAugust 2003.

[4] H. Schwenk. Continuous Space Language Models. Computer Speech and Language, vol. 21, issue 3, pp. 492518, 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. 194197, September 2012.

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

[8] J.R. Bellegarda. Exploiting Latent Semantic Information in Statistical Language Modeling. Proceedings of the IEEE, vol. 88, issue 8, pp. 12791296, 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 15321543, October 2014.

AI中国网 h ttps://www.cnaiplus.com

本文网址:

欢迎关注微信公众号:人工智能报;合作及投稿请联系:editor@cnaiplus.com

AI中国号...

关注微信公众号,了解最新精彩内容