尽管我们离能够独立思考的机器人尚有几年的时间,但在过去的几年里,机器学习和自然语言理解领域已经取得了重大进展。个人助理(Siri/Alexa)、聊天机器人和问答机器人等应用程序正在真正彻底改变我们与机器的交互方式,并开始渗透我们的日常生活。
自然语言理解(Natural Language Understanding,NLU)和自然语言生成(Natural Language Generation,NLG)是人工智能发展最快的应用之一,因为人们越来越需要从语言中理解并推导出意义,而语言的特点是,有许多歧义和多样的结构。据 Gartner 称,“到 2019 年,自然语言生成将成为 90% 的现代商业智能和分析平台的标准功能”。在本文中,我们将讨论自然语言生成成立之初的简史,以及它在未来几年的发展方向。
什么是自然语言生成?
语言生成的目标是通过预测句子中的下一个单词来传达信息。使用语言模型可以解决(在数百万种可能性中)哪个单词可能被预测的问题,语言模型是对单词序列的概率分布。语言模型可以在字符级别、n 元语法级别、句子级别甚至段落级别构建。例如,为了预测 I need to learn how to __ 之后的下一个单词,该模型为下一个可能的单词集分配了一个概率,可以是 write、drive 等等。神经网络(如递归神经网络和长短期记忆网络)的最新进展是的长句的处理成为可能,显著提高了语言模型的正确率。
马尔科夫链
马尔科夫链是最早用于语言生成的算法之一。它们仅通过使用当前单词来预测句子中的下一个单词。例如,如果模型仅适用以下句子进行训练:I drink coffee in the morning 和 I eat sanwiches with tea,那么,它预测 coffee 会跟随 drink的可能性是 100%,而 I 跟随 drink 的可能性是 50%,跟随 eat 的可能性也是 50%。马尔科夫链考虑到每一个唯一单词之间的关系来计算下一个单词的概率。在早期版本的智能手机输入法中,马尔科夫链用于为句子中的下一个单词生成建议。
用于语言生成的递归神经网络
在递归神经网络的每次迭代中,模型都会将之前遇到的单词存储在内存中,并计算下一个单词的概率。例如,如果模型生成了文本 We need to rent a __,那么它现在就必须计算出这句子中的下一个单词。对于词典的每个单词,模型根据它所看到的前一个单词来分配概率。在我们的这个示例中,house 或 car这两个词的概率要比river 或dinner这样的单词高得多。然后选择概率最高的单词并将其存储在内存中,然后模型继续进行下一次迭代。
将下面这句话作为模型的输入:I am from Spain. I am fluent in __. 为了正确地预测下一个单词为Spanish,该模型将重点放在前一句中的Spain 一词上,并利用单元记忆来“记住”它。该信息在处理序列时由单元存储,然后用于预测下一个单词。当遇到句号时,遗忘门会意识到句子的上下文可能有所变化,当前单元状态信息就可以被忽略。这样网络就可以选择性地只跟踪相关信息,同时最小化梯度消失问题,模型就能够在更长的时间内记住信息。
长短期记忆网络及其变体似乎就是消除梯度来产生连贯句子问题的答案。但是,由于从以前的单元到当前单元仍然有一条复杂的顺序路径,因此可以保存多少信息还是有限制的。如此一来,长短期记忆网络能够记住的序列长度就限制在几百个单词以内。另外一个缺陷就是,由于计算要求很高,因此长短期网络很难训练。由于顺序性,它们很难并行化,这就限制了它们利用现代计算设备(如 GPU、TPU 之类)的能力。
Transformer
Transformer 最初是在 Google 论文《Attention Is All You Need》引入的,它提出了“自注意力机制”(self-attention mechanism)的新方法。Transformer 目前被广泛应用于各种自然语言处理任务,如语言建模、机器翻译和文本生成。Transformer 由一组编码器和一组解码器组成,前者处理任意长度的输入,后者输出生成的句子。
Transformer 生成文本是基于类似于机器翻译的结构。如果我们举一个例句: Her gown with the dots that are pink, white and __.模型将会预测下一个单词是blue,因为它通过自注意力机制将列表中的前一个单词分析为颜色(white 和 pink),并理解预测的单词也应该是一种颜色。自注意力允许模型有选择地关注每个单词的句子的不同部分,而不是仅仅记住递归块(recurrent block)(在递归神经网络和长短期记忆网络中)的一些特征,这些特征大部分不会用于几个块中。这有助于模型能够回忆起前面句子的更多特征,并得到更准确和连贯的预测。与以前的模型不同,Transformer 可以在上下文中使用所有单词的标识,而无需将所有信息压缩为固定长度的表示。这种架构允许 Transformer 在更长的句子中保留信息,而不会显著增加计算需求。它们在不需要进行特定域修改的情况下,跨域的性能要比以前的模型表现得更好。
语言生成的未来
在本文中,我们看到了语言生成的演变过程,从使用简单的马尔科夫链生成句子,到使用自注意力机制的模型生成更长的连贯文本。然而,我们仍然处于生成语言建模的早期,而 Transformer 只是朝着真正自主文本生成方向迈出的一步。除此之外,生成模型也正在开发其他类型的内容,如图像、视频和音频等。这开启了将这些模型与生成文本模型集成的可能性,从而开发出具有音频 / 视频界面的高级个人助理。
然而,作为一个社会,我们需要谨慎地应用生成模型,因为它们为在网上生成虚假新闻、虚假评论和冒充他人开辟了多种可能性。OpenAI 决定不发布 GPT-2 模型,因为担心被滥用。这反映了这么一个事实:我们现在已进入一个语言模型强大到足以引起关注的时代。
生成模型有望改变我们的生活;然而,它们也是一把双刃剑。我们必须对这些模型进行适度的审查,无论是通过研究机构还是政府监管。在未来几年里,这一领域肯定还会取得更多进展。不管结果如何,展望未来,应该终会有激动人心的一刻!
原文链接:
https://medium.com/sfu-big-data/evolution-of-natural-language-generation-c5d7295d6517