14  神经语言建模

语言模型是许多重要的自然语言处理任务的核心。最近,在很多具有挑战性的自然语言处理问题上,基于神经网络的语言模型已证明比独立或部分使用经典方法获取的结果更好。在本章中,您将了解用于自然语言处理的语言建模方法和过程。阅读本章后,您会清楚:

  • 为什么语言建模对于解决自然语言处理中的任务至关重要。
  • 什么是语言模型以及使用它们的一些示例。
  • 神经网络如何用于语言建模。

14.1 概要

本教程分为以下几部分:

  1. 建模语言问题
  2. 统计语言建模
  3. 神经语言模型

14.2 建模语言的问题

形式语言,如编程语言,是完全确定的,不会产生任何歧义。不但所有保留字可以精确定义,他们有效的使用规则也能严格定义出来。对于自然语言无论是保留字还是使用规则都做不到形式语言的那两点。自然语言不是人为设计的它们自然而然地出现的,没有严格的正式规范。

对于大部分语言而言,可能有正式的规则和启发式方法,但只要定义了规则,您就能设计或遇到与规则相矛盾的反例。自然语言涉及大量术语,他们可以以各种歧义的方式被使用,但使用者仍然可以理解。此外,语言可以改变,字用法也可以改变:它没有一成不变的成分。然而,语言学家试图用正式的语法和结构来定义语言模型,这个可以做到,但是非常困难,结果也很脆弱。定义语言模型的另一种有效的方法是从示例中学习它。

14.3 统计语言建模

统计语言建模,或语言建模,简称LM,是开发语言概率模型,给出前面的单词,它能够预测序列中的下一个单词。

语言建模是将给语言中的句子分配概率。[...]除了为每个单词序列分配概率之外,语言模型还指定给定单词(或单词序列)跟随单词序列的可能性的概率

Page 105, Neural Network Methods in Natural Language Processing, 2017.

语言模型基于文本示例学习单词出现的概率。简单模型可以确定短序列单词的上下文,较大的模型可以在句子或段落的级别上工作。最常见的是,语言模型在单词级别上工作的。

语言模型的概念本质上是概率问题,语言模型是从词汇表中提取字符串的概率度量的函数。

  • Page 238, An Introduction to Information Retrieval, 2008.

语言模型可以独立开发和使用,例如生成看似来自语料库的新文本序列。语言建模是大量自然语言处理任务的根本问题。更实际地,语言模型用于需要语言理解的任务的复杂模型的前端或后端。

...语言建模是机器翻译和自动语音识别等实际应用中的关键组成部分。[...]出于这些原因,语言建模在自然语言处理、人工智能和机器学习研究中发挥着核心作用

Page 105, Neural Network Methods in Natural Language Processing, 2017

一个很好的例子是语音识别,其中音频数据被用作模型的输入,并且输出需要语言模型来解释输入信号并且识别已经识别的单词的上下文中的每个新单词。

语音识别主要涉及将语音信号转化为单词序列的问题。[...]从这个角度来看,假定语音是由语言模型生成的,该语言模型为所有单词串w提供Pr(w)的估计,与观察到的信号无关[...]语音识别的目标是在给定观察到的声学信号的情况下找到最可能的单词序列。

Pages 205-206, The Oxford Handbook of Computational Linguistics, 2005

类似地,语言模型用于在许多类似的自然语言处理任务中生成文本,例如:

  • 光学字符识别(OCR)
  • 手写识别。
  • 机器翻译。
  • 拼写纠正。
  • 图像标题。
  • 文字摘要
  • 以及更多。

语言建模是确定一系列单词概率的艺术。这在许多领域都很有用,包括语音识别,光学字符识别,手写识别,机器翻译和拼写校正

A Bit of Progress in Language Modeling, 2001.

开发更好的语言模型通常会使模型在预期的自然语言处理任务中表现更好。这是开发更好,更准确的语言模型的动力。

[语言模型]在传统的NLP任务中发挥了关键作用,例如语音识别,机器翻译或文本摘要。通常(尽管不总是),训练更好的语言模型改进了下游任务的基本指标(例如语音识别的单词错误率,或翻译的BLEU得分),这使得训练更好的LM的任务本身是有价值的。

Exploring the Limits of Language Modeling, 2016.

14.4 神经语言模型

最近,神经网络在语言模型开发中的使用已变得非常流行,以至于它现在可能是首选方法。在语言建模中使用神经网络通常称为神经语言建模,简称NLM。神经网络方法在独立语言模型上以及在和其他较大模型协作时,如语音识别和机器翻译等具有挑战性的任务中,都比传统方法获得效果好。性能提高的一个关键原因可能是该方法的泛化能力

非线性神经网络模型解决了传统语言模型的一些缺点:它们允许在越来越大的上下文大小上进行调整,只需要参数数量的线性增加,它们减少了手动设计后退顺序的需要,并且它们支持跨不同上下文的泛化。

Page 109, Neural Network Methods in Natural Language Processing, 2017

具体地,采用字嵌入,其使用实值向量来表示投影向量空间中的每个字,这种基于其用法的单词的表示方式允许具有相似含义的单词具有相似的表示。

神经语言模型(NLM)通过将单词参数化为向量(单词嵌入)并将其用作神经网络的输入来解决n-gram数据稀疏性问题,参数作为训练过程的一部分进行学习调整。通过NLM获得的单词嵌入表现出这样的特性:即语义上接近的单词在转换后向量空间中同样接近。

  • Character-Aware Neural Language Model, 2015.

这种泛化能力是经典统计语言模型中使用的表示方法所不能轻易实现的。

由于在单词索引之间没有明显的关系,因此在离散的单词索引空间中很难获得真正的泛化

Connectionist language modeling for large vocabulary continuous speech recognition, 2002.

此外,分布式表示方法允许词嵌入表示可以随着词汇量的大小更好地缩放。每个单词具有一个离散表示的经典方法使用越来越大的单词词汇表来对抗维度的诅咒,这导致更长和更稀疏的表示。语言建模的神经网络方法可以使用以下三个模型属性来描述,这些属性取自A Neural Probabilistic Language Model2003

  1. 将词汇表中的每个单词与分布式单词特征向量相关联。
  2. 根据序列中单词的特征向量表示单词序列的联合概率函数。
  3. 同时学习单词特征向量和概率函数的参数。

这代表了一种相对简单的模型,其中表示和概率模型直接从原始文本数据一起学习。最近,基于神经的方法已开始优于传统的统计方法。

  • 我们提供了充分的实证证据,表明连接语言模型优于标准的n-gram技术,除了它们的高计算(训练)复杂性。

Recurrent neural network based language model, 2010.

最初,前馈神经网络模型引入了这个方法。最近,循环神经网络和具有长期记忆的网络(如长短期记忆网络或LSTM)允许模型在比较简单的前馈网络更长的输入序列上学习相关的上下文。

[RNN语言模型]提供了进一步的泛化能力:通过使用具有循环连接的输入的神经元代表短期记忆来取代仅考虑前面几个单词方法,该模型从数据中学习如何表示记忆。浅前馈神经网络(仅具有一个隐藏层的神经网络)只能聚类相似的词,而递归神经网络(可以被认为是深层架构)可以聚类相似的具有前置短期记忆串的单词,这允许句子序列的实例可以使用变长模式表示,这种表示方式对自然语言处理更具效率。

  • Extensions of recurrent neural network language model, 2011.

最近,研究人员一直在寻求这些语言模型的极限。在论文探索语言建模的局限性中,在大型数据集上评估语言模型,例如,一百万字的语料库,作者发现基于LSTM的神经语言模型胜过经典方法。

......我们已经证明RNN LMs可以接受大量数据的训练,并且优于竞争模型,包括精心调校的N-gram模型

Exploring the Limits of Language Modeling, 2016.

此外,他们提出了一些启发式方法来开发一般的高性能神经语言模型:

  • 小问题。最好的模型是最大的模型,特别是记忆单元的数量。
  • 则问题。在输入连接上使用正规化(如丢失)可改善模型的性能。
  • CNNsVS嵌入式。字符级卷积神经网络(CNN)模型可用于前端而不是字嵌入,从而实现类似且有时更好的结果。
  • 集成很重要。结合多个模型的预测可以大大提高模型性能。

 


0 条 查看最新 评论

没有评论
暂时无法发表评论