NLP---将改变您在未来的沟通方式的7种 nlp 技术 (第一部分(附原始论文))

前面的那么多NLP算法大多数都是传统的自然语言处理的算法思想,还没和深度学习神经网络结合起来,本想打算开始更新一些基于深度学习的NLP处理方面的,在浏览国外博客时发现了一篇很好的文章,因此这里翻译一下,发到这里,大家先看看NLP是如何和深度学习结合在一起的,然后针对几个方向继续学习,后面也会简单介绍一下今年的NLP的进展,详细的细节本人打算在实战时在写,因为他的实用性太强了,单纯的讲解理论很乏味,而且那些深度学习方面的都在前面总结了,只是这里拿来直接使用了,因此大家可以根据自己的情况进行选择,我打算这里放到实战部分,好了,废话不多说,下面开始:

什么是NLP?

自然语言处理(NLP) 是计算机科学,人工智能和语言学交叉领域的一个领域。目标是计算机处理或“理解”自然语言,以执行语言翻译和问答的任务。

随着语音接口和聊天机器人的兴起,NLP是信息时代最重要的技术之一,也是人工智能的重要组成部分。充分理解和表达语言的意义是一个非常困难的目标。为什么?因为人类的语言很特别。

人类语言有什么特别之处?实际上有几件事:

  • 人类语言是专门用于传达说话者/作者意义的系统。这不仅仅是一个环境信号,而是一个刻意的沟通。此外,它使用小孩子可以快速学习的编码; 它也会改变。
  • 人类语言大多是离散/符号/分类信号系统,可能是因为信号可靠性更高。
  • 语言的分类符号可以被编码为用于以几种方式进行通信的信号:声音,手势,书写,图像等。人类语言能够是这些中的任何一种。
  • 人类语言含糊不清(与编程和其他形式语言不同); 因此,在向人类语言表达,学习和使用语言/情境/语境/词汇/视觉知识方面存在高度复杂性。

为何学习NLP?

从这个研究领域衍生出来的快速增长的有用应用程序集合。它们的范围从简单到复杂。以下是其中一些:

  • 拼写检查,关键字搜索,查找同义词。
  • 从网站提取信息,例如:产品价格,日期,地点,人员或公司名称。
  • 分类:学校文本的阅读水平,较长文件的正面/负面情绪。
  • 机器翻译。
  • 口语对话系统。
  • 复杂的问题回答。

实际上,这些应用已在工业中得到广泛应用:从搜索(书面和口头)到在线广告匹配 ; 从自动/辅助翻译到市场营销或金融/交易的情绪分析 ; 从语音识别聊天机器人/对话代理(自动化客户支持,控制设备,订购商品)。

深度学习

大多数这些NLP技术都是由深度学习  - 机器学习的子领域提供支持。深度学习在本十年初才开始再次获得动力,主要是由于以下情况:

  • 更多的培训数据。
  • 更快的机器和多核CPU / GPU。
  • 具有高级功能和改进性能的新模型和算法:更灵活地学习中间表示,更有效的端到端联合系统学习,更有效的使用上下文和在任务之间转换的学习方法,以及更好的正则化和优化方法。

大多数机器学习方法都能很好地工作,因为人工设计的表示和输入功能,以及权重优化,以便最好地进行最终预测。另一方面,在深度学习中,表示学习试图从原始输入中自动学习好的特征或表示。机器学习中手动设计的功能通常是过度指定的,不完整的,并且需要很长时间来设计和验证。相比之下,深度学习的学习特征易于适应和快速学习。

深度学习提供了一个非常灵活,通用且可学习的框架,用于表示视觉和语言信息的世界。最初,它在语音识别和计算机视觉等领域取得了突破。最近,深度学习方法在许多不同的NLP任务中获得了非常高的性能。这些模型通常可以使用单个端到端模型进行培训,而不需要传统的,针对任务的特征工程。

我最近完成了斯坦福大学有关深度学习的自然语言处理CS224n课程。该课程全面介绍了应用于NLP的深度学习的前沿研究。在模型方面,它涵盖了单词矢量表示,基于窗口的神经网络,递归神经网络,长短期记忆模型,递归神经网络和卷积神经网络,以及一些涉及存储器组件的最新模型。

在编程方面,我学会了实现,训练,调试,可视化和发明我自己的神经网络模型。在这个由两部分组成的系列中,我想分享我学到的7种主要NLP技术,以及使用它们的主要深度学习模型和应用程序。

技术1:文本嵌入

在传统的NLP中,我们将单词视为离散符号,然后可以用one-hot向量表示。向量的维度是整个词汇表中的单词数。单词作为离散符号的问题在于,对于one-hot向量没有自然的相似概念。因此,替代方案是学习编码矢量本身的相似性。核心思想是,一个词的含义是由经常出现的词语的上下文给出的

文本嵌入是字符串的实值向量表示(这个就是我们在前面word2vec的表示方法,这里建议大家把Word2vec研究透彻,这里的文本嵌入就是Distributed representation)。我们为每个单词构建一个密集向量,选择它使得它类似于出现在类似上下文中的单词向量。Word嵌入被认为是大多数深度NLP任务的一个很好的起点。它们允许深度学习在较小的数据集上有效,因为它们通常是深度学习架构的第一个输入,也是NLP中最流行的传递学习方式。在Word中的嵌入最流行的名字Word2vec由谷歌(Mikolov)和由斯坦福大学(彭宁顿,Socher和曼宁)研发的。让我们深入研究这些单词表示:

Word2vec中我们有一个大的文本语料库,其中固定词汇表中的每个单词都由一个向量表示。然后我们遍历文本中的每个位置t,其具有中心词c和上下文词o。接下来,我们使用用于字向量的相似性ÇÒ计算的概率ø给出Ç(或反之亦然)。我们不断调整单词向量以最大化这个概率。

为了有效地训练Word2vec,我们可以从数据集中消除无意义(或更高频率)的单词(例如atheofthen ...)。这有助于提高模型准确性和训练时间。此外,我们可以通过更新所有正确标签的权重来为每个输入使用负抽样,但仅限于少量不正确的标签。

Word2vec有2个模型变体值得一提:

Skip-Gram:我们考虑一个包含k个连续项的上下文窗口。然后我们跳过这些单词中的一个,并尝试学习一个神经网络,除了跳过的单词之外的所有术语,并预测跳过的术语。因此,如果2个单词在大型语料库中重复共享相似的上下文,则这些术语的嵌入向量将具有紧密向量。

CBOW(连续词袋模型):我们在大型语料库中使用了大量的句子。每当我们看到一个单词时,我们都会使用周围的单词。然后我们将上下文单词输入到神经网络中,并预测该上下文中心的单词。当我们有数千个这样的上下文单词和中心单词时,我们有一个神经网络数据集的实例。我们训练神经网络,最后编码的隐藏层输出表示特定单词的嵌入。碰巧的是,当我们在大量句子上训练时,类似上下文中的单词会得到类似的向量。

 对Skip-Gram和CBOW的一个缺点是它们都是基于窗口的模型,这意味着语料库的全局统计数据没有被有效使用,导致嵌入次优。该GloVe模型旨在通过捕捉一个字与整个观测语料库的结构嵌入的含义来解决这个问题。要做到这一点,该GloVe模型旨在通过捕捉一个字与整个观测语料库的结构嵌入的含义来解决这个问题。为此,该模型训练单词的全局共现计数,并通过最小化最小二乘误差充分利用统计数据,并因此产生具有有意义子结构的单词向量空间。这样的轮廓足以保留单词与向量距离的相似性。

除了这两个文本嵌入,最近开发了许多更高级的模型,包括FastTextPoincare Embeddingssense2vecSkip-ThoughtAdaptive Skip-Gram。我强烈建议你阅读一下。

技术2:机器翻译

机器翻译是语言理解的经典测试。它包括语言分析和语言生成。大型机器翻译系统具有巨大的商业用途,因为全球语言是每年400亿美元的行业。给你一些值得注意的例子:

  • 谷歌翻译每天翻译 1000亿字。
  • Facebook使用机器翻译自动翻译帖子和评论中的文本,以打破语言障碍,让世界各地的人们相互沟通。
  • eBay使用机器翻译技术实现跨境贸易,并连接世界各地的买家和卖家。
  • Microsoft为Android,iOS和Amazon Fire上的最终用户和开发人员提供了人工智能翻译,无论他们是否可以访问互联网。
  • Systran成为第一家在2016年推出30多种语言的神经机器翻译引擎的软件提供商。

在传统的机器翻译系统中,我们必须使用平行语料库 - 一组文本,每个文本被翻译成一种或多种其他语言而不是原文。例如,给定源语言f(例如法语)和目标语言e(例如英语),我们需要构建多个统计模型,包括使用贝叶斯规则的概率公式,训练的翻译模型p(f | e)平行语料库和在仅英语语料库上训练的语言模型p(e)。

毋庸置疑,这种方法跳过了数百个重要的细节,需要大量的人工特征工程,包含许多不同的和独立的机器学习问题,而且总体来说是一个非常复杂的系统。

神经机器翻译是通过一个大型人工神经网络 (称为递归神经网络(rnn)) 对整个过程进行建模的方法。rnn 是一个有状态的神经网络, 它在其中具有通过、通过时间的连接之间的连接。神经元不仅从上一层提供信息, 而且从以前的过去提供信息。这意味着, 我们为网络提供投入和训练网络的顺序很重要: 给它喂食 "唐纳德", 然后给它喂 "特朗普",和给它喂 "特朗普",在给它喂 "唐纳德", 可能会产生不同的结果。

标准神经机器翻译是一种端到端神经网络, 源句由一个称为编码器的rnn 编码, 目标单词使用另一个称为解码器的rnn 进行预测。rnn 编码器一次读取一个源句子, 然后结尾处是隐藏状态的整个源句子。rnn 解码器使用反向传播来了解此摘要并返回翻译的版本。令人惊讶的是, 神经机器翻译从2014年的边缘研究活动变成了2016年广泛采用的领先翻译方式。那么, 使用神经机器翻译的最大赢家是什么呢? 

  1. 端到端培训:NMT中的所有参数同时进行优化,以最大限度地减少网络输出的损耗功能。
  2. 分布式表示共享强度:NMT可以更好地利用单词和短语的相似性。
  3. 更好地探索背景:NMT可以使用更大的背景 - 包​​括源文本和部分目标文本 - 来更准确地进行翻译。
  4. 更流畅的文本生成:深度学习文本生成的质量远高于并行语料库。

rnn 的一个大问题是梯度消失或者梯度爆炸问题, 在这个问题上, 根据所使用的激活函数, 信息会随着时间的推移迅速丢失。从直觉上看, 这不会是一个很大的问题, 因为这些只是权重, 而不是神经元状态, 但通过时间的权重实际上是过去信息的存储位置;如果权重达到0或 1, 000, 000 的值, 则以前的状态不会非常信息。因此, rnn 在序列中很远的地方记忆前几个单词会遇到困难, 只能根据最新的单词做出预测。(这里大家需要深入理解RNN,我在深度学习系列讲解的很详细,大家可以查看我的这篇文章

长/短期记忆(LSTM)网络试图通过引入门和明确定义的存储器单元来对抗消失/爆炸梯度问题。每个神经元都有一个存储单元和三个门:输入,输出和遗忘。这些门的功能是通过停止或允许信息流来保护信息。

  • 输入门决定了前一层中有多少信息存储在单元格中。
  • 输出层在另一端接受作业,并确定下一层有多少信息影响该单元的状态。
  • 忘记门在开始时似乎是一个奇怪的包含但有时候忘记是好的:如果它正在学习一本书并开始新章节,那么网络可能有必要忘记前一章中的一些字符。

已经证明LSTM能够学习复杂的序列,例如像莎士比亚一样写作或者创作原始音乐。请注意,这些门中的每一个都对前一个神经元中的细胞具有权重,因此它们通常需要更多资源来运行。LSTM目前非常时髦,并且已经在机器翻译中使用了很多。除此之外,它是大多数序列标记任务的默认模型,它具有大量的数据。

门控递归单位(GRU)是LSTM的略微变化,也是神经机器翻译的扩展。它们只有少一个门,并且接线略有不同:它们具有更新门,而不是输入,输出和忘记门。此更新门确定从上一个状态保留多少信息以及从前一个层输入多少信息。

复位门的功能与LSTM的忘记门非常相似,但它的位置略有不同。他们总是发出他们的完整状态 - 他们没有输出门。在大多数情况下,它们的功能与LSTM非常相似,最大的区别在于GRU稍微更快,更容易运行(但表现力稍差)。在实践中,这些往往会相互抵消,因为您需要一个更大的网络来重新获得一些表现力,这反过来取消了性能优势。在某些不需要额外表达能力的情况下,GRU可以胜过LSTM。

除了这三个主要架构外, 神经机器翻译系统在过去几年里还有了进一步的改进。以下是最显著的发展:

  • 利用神经网络进行序列学习的序列化证明了 lstm 在神经机器翻译中的有效性。它提出了一种通用的端到端序列学习方法, 对序列结构进行最小的假设。该方法使用多层长期短期内存 (lstm) 将输入序列映射到固定维度的向量, 然后再将另一个深层 lstm 从矢量解码目标序列。
  • 通过联合学习对齐和翻译进行神经机器翻译引入了 nlp 中的注意机制 (将在下一篇文章中介绍)。作者承认使用固定长度向量是提高 nmt 性能的瓶颈, 因此建议通过允许模型自动 (软) 搜索源句中与预测目标词相关的部分来扩展这一点,而不必将这些部分显式地形成硬段。
  • 用于神经机器翻译的卷积超过递归编码器, 通过额外的卷积层增强 nmt 中的标准 rnn 编码器, 以捕获编码器输出中更宽的上下文。
  • 谷歌建立了自己的 nmt 系统, 称为谷歌的神经机器翻译, 解决了许多问题的准确性和易于部署。该模型由一个深的 lstm 网络组成, 其中包含8个编码器和8个解码器层, 使用剩余连接以及从解码器网络到编码器的注意力连接。
  • facebook ai 研究人员使用卷积神经网络对 nmt 中的学习任务进行排序, 而不是使用递归神经网络。

技巧3:对话和对话

有很多关于会话AI的文章,其中大部分都集中在垂直聊天机器人,信使平台,商业趋势和创业机会上(想想亚马逊Alexa,Apple Siri,Facebook M,Google智能助理,微软Cortana)。AI理解自然语言的能力仍然有限。因此,创建全自动,开放式域名会话助理仍然是一个开放的挑战。尽管如此,下面显示的工作对于想要在对话AI中寻求下一个突破的人来说是一个很好的起点。

 

来自蒙特利尔、佐治亚理工、微软和 facebook 的研究人员构建了一个能够产生上下文相关对话响应的神经网络.这种新颖的响应生成系统可以在大量非结构化推特对话中进行端到端培训。经常神经网络体系结构用于解决将上下文信息集成到经典统计模型时出现的稀疏问题, 从而使系统能够考虑到以前的对话框话语。该模型在上下文相关和非上下文相关的机器翻译和信息检索基线上显示出一致的增益。

神经响应机(nrm) 是在香港开发的一种基于神经网络的短文本对话响应生成器。它采用通用的编码解码器框架。首先, 它将响应的生成形式化为基于输入文本的潜在表示的解码过程, 同时利用递归神经网络实现编码和解码。nrm 接受了从微博服务中收集的大量一轮对话数据的培训。实证研究表明, nrm 可以对超过75% 的输入文本产生语法正确和内容上适当的响应, 在相同的环境中表现优于现有技术。

最后但同样重要的是,Google的神经对话模型是一种简单的会话建模方法。它使用序列到序列框架。模型通过预测给定对话中的前一句子的下一句子进行交谈。模型的优势在于它可以端到端地进行训练,因此需要更少的手工制作规则。

在给定大型会话训练数据集的情况下,该模型可以生成简单的对话。它能够从特定于域的数据集以及电影字幕的大型,嘈杂和通用域数据集中提取知识。在特定于域的IT帮助台数据集上,模型可以通过对话找到技术问题的解决方案。在嘈杂的开放域电影抄本数据集上,该模型可以执行简单形式的常识推理。

这是第一部分的结束。在下一篇文章中,我将回顾剩下的4种自然语言处理技术,并讨论该领域的重要限制和扩展。敬请关注!

编者注:想要了解有关机器学习如何影响语言的更多信息?查看这些有用的Heartbeat资源:

原文链接:点击(需要翻墙)

 

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值