找回密码
 立即注册
搜索

一文了解自然言语生成演化史!

自然言语生成(Natural Language Generation,NLG)是自然言语处理的一部分,从知识库或逻辑方式等等机器表述系统去生成自然言语。实践上,自然言语生成出现已久,至今已有 71 年了。早在 1948 年,Shannon 就把团圆马尔科夫过程的概率模型运用于描画言语的自动机。但商业自然言语生成技术知道最近才变得普及。但是,你了解自然言语生成的演化史吗?
自从科幻电影诞生以来,社会上就对人工智能非常着迷。每当我们听到“人工智能”这个词的时分,浮如今我们脑海的,往往是科幻电影中那样的将来机器人,比如《Terminator》(《终结者》)、《The Matrix》(《黑客帝国》)和《I, Robot》(《我,机器人》) 等。





虽然我们离可以独立思索的机器人尚有几年的工夫,但在过去的几年里,机器学习和自然言语了解范畴曾经获得了严重停顿。个人助理(Siri/Alexa)、聊天机器人和问答机器人等运用程序正在真正彻底改变我们与机器的交互方式,并末尾浸透我们的日常生活。
自然言语了解(Natural Language Understanding,NLU)和自然言语生成(Natural Language Generation,NLG)是人工智能发展最快的运用之一,由于人们越来越需求从言语中了解并推导出意义,而言语的特点是,有许多歧义和多样的结构。据 Gartner 称,“到 2019 年,自然言语生成将成为 90% 的古代商业智能和分析平台的标准功能”。在本文中,我们将讨论自然言语生成成立之初的简史,以及它在将来几年的发展方向。
什么是自然言语生成?
言语生成的目的是经过预测句子中的下一个单词来传达信息。运用言语模型可以处理(在数百万种能够性中)哪个单词能够被预测的成绩,言语模型是对单词序列的概率分布。言语模型可以在字符级别、n 元语法级别、句子级别甚至段落级别构建。例如,为了预测 I need to learn how to __ 之后的下一个单词,该模型为下一个能够的单词集分配了一个概率,可以是 writedrive 等等。神经网络(如递归神经网络和长短期记忆网络)的最新停顿是的长句的处理成为能够,分明提高了言语模型的正确率。
马尔科夫链
马尔科夫链是最早用于言语生成的算法之一。它们仅经过运用当前单词来预测句子中的下一个单词。例如,假如模型仅适用以下句子停止训练:I drink coffee in the morningI eat sanwiches with tea,那么,它预测 coffee 会跟随 drink的能够性是 100%,而 I 跟随 drink 的能够性是 50%,跟随 eat 的能够性也是 50%。马尔科夫链思索到每一个独一单词之间的关系来计算下一个单词的概率。在早期版本的智能手机输入法中,马尔科夫链用于为句子中的下一个单词生成建议。





但是,由于马尔科夫模型只关注当前单词,因此会得到句子中后面单词的一切上下文和结构,从而有能够会导致错误的预测,如此一来,就限制了它们在许多生成场景中的适用性。
递归神经网络(RNN)
神经网络是受人类大脑运作的启示而建立的模型,经过对输入和输入之间的非线性关系建模,为计算提供了另一种方法,它们在言语建模中的运用被称为神经言语建模。
递归神经网络是一种可以应用输入的顺序性质的神经网络。它经过前馈网络传递序列的每一项,并将模型的输入作为序列中下一项的输入,从而可以允许存储来自后面步骤的信息。递归神经网络一切用的“记忆”才能使得它们非常合适言语生成,由于他们可以随着工夫的推移记住对话的上下文。递归神经网络和马尔科夫链不同之处在于,它们也会观察之前看到的单词(而马尔科夫链只观察后面的单词)来停止预测。





用于言语生成的递归神经网络
在递归神经网络的每次迭代中,模型都会将之前遇到的单词存储在内存中,并计算下一个单词的概率。例如,假如模型生成了文本 We need to rent a __,那么它如今就必须计算出这句子中的下一个单词。对于词典的每个单词,模型根据它所看到的前一个单词来分配概率。在我们的这个示例中,housecar这两个词的概率要比riverdinner这样的单词高得多。然后选择概率最高的单词并将其存储在内存中,然后模型继续停止下一次迭代。





递归神经网络存在一个次要的限制:梯度消逝成绩。随着序列的长度添加,递归神经网络不能存储在句子后面很远的地方遇到的单词,且只能根据最近的单词停止预测。这就限制了递归神经网络在生成听起来连接的长句的运用。
长短期记忆网络(LSTM)





基于长短期记忆网络的神经网络是递归神经网络的一个变种,它比普通的递归神经网络可以更正确地处理输入序列中的长期依赖(long-range dependencies)成绩。它们被用于各种各样的成绩中。长短期记忆网络具有相似递归神经网络的链状结构;但是,它们是由四层神经网络组成,而不是递归神经网络那样的单层网络。长短期记忆网络由单元、输入门、输入门和遗忘门四部分组成。这样递归神经网络可以经过调理单元内外的信息流,在恣意工夫间隔内记住或遗忘单词。
用于言语生成的长短期记忆网络





将下面这句话作为模型的输入: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 只执行大批的、恒定数量的步骤,同时运用自留意力机制。这种机制直接模拟句子中一切单词之间的关系,而不思索它们各自的地位。当模型处理输入序列中的每个单词时,自留意力机制允许模型查看输入序列的其他相关部分,以便更好地对单词停止编码。它运用多个留意力头(attention head),扩展了模型关注不同地位的才能,而无需思索它们在序列中的间隔。
近年来,对普通 Transformer 架构停止了一些改进,分明提高了它们的速度和正确度。2018 年,Google 发布了一篇关于 Transformer(BERT)双向编码器表示的论文,该论文为各种自然言语处理生成了最先进的结果。异样,2019 年,OpenAI 发布了一个基于 Transformer 的言语模型,它有大约 15 亿个参数,只需寥寥可数的几行输入文本即可生长大篇连接的文章。





用于言语生成的 Transformer
最近,Transformer 也用于停止言语生成。其中最著名的例子之一是 OpenAI 的 GPT-2 言语模型。该模型学习预测句子中的下一个单词,是经过将留意力集中在于预测下一个单词相关的单词上停止学习的。





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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评4

离愁尽 2019-5-5 07:28:39 显示全部楼层
基于概率,而不是实践意义的模型都是耍流氓!
回复

使用道具 举报

分享了
回复

使用道具 举报

分享了
回复

使用道具 举报

k风 2019-5-5 15:13:24 显示全部楼层
打酱油的人拉,回复下赚取积分
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies