什么是NLP

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

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

人类语言有什么特别之处?

1.人类语言是专门为传达说话人的意图而构建的系统。这不仅仅是一个环境信号,更是一个有意识的交流。
2.人类语言大多是离散/符号的/分类的信号系统,大概是因为信号可靠性更高。
3.一种语言的分类符号可以用几种方式编码为通信信号:声音,手势,写作,图像等。人类语言只是其中的一种。
4.人类语言是不明确的(与编程和其他正式语言不同)。 因此,在表达、学习和使用语言/情境/情境/文字/视觉知识对人类语言方面存在高度复杂性。

NLP应用到哪里?

从NLP研究领域衍生出了一批快速增长的应用程序。以下是其中几个:

1.拼写检查,关键字搜索,查找同义词;

2.从网站提取信息,例如:产品价格,日期,地点,人员或公司名称;

3.分类:长文档的积极/消极情绪;

4.机器翻译;

5.口语对话系统;

6.复杂的问答系统;

事实上,这些应用程序已经在现实中大量使用,从搜索到在线广告匹配 ; 从自动/辅助翻译到营销或财务/交易的情绪分析 ; 从语音识别到chatbots /对话代理(自动化客户支持,控制设备,订购商品)。

268fe30ccc510f28d7d74cecdec2817e5f41c7bd

深度学习

大部分NLP技术都是由深度学习提供技术支持。近几年,深度学习才开始发挥作用,主要是因为:

·大量的训练数据;

·更快的机器和多核CPU / GPU;

·性能高的新模型和算法:有效的端到端联合系统学习、有效的使用上下文和任务间转换的学习方法,以及正则化优化方法。

在深度学习中,表示学习试图自动学习来自原始输入的良好特征或表示。而在机器学习中手动设计的特征通常过多且不完整,需要花费很长时间进行设计和验证。而且深度学习提供了一个非常灵活、通用且可学习的框架,用于呈现视觉和语言信息的世界。最初,它在语音识别和计算机视觉等领域取得突破。最近,深度学习方法在许多不同的NLP任务中表现出了非常高的性能。这些模型通常可以通过单一的端到端模型进行训练,并且不需要传统的,特定于任务的特征工程。

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

在此我想分享我学习的7种主要NLP技术以及使用它们的主要深度学习模型和应用程序。

福利:你可以在此GitHub中获得相关课程!

技术1:文本嵌入(Text Embeddings

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

文本嵌入是字符串的实值向量表示。我们为每个单词建立一个密集的向量,选择它以便类似于类似上下文中出现的单词的向量。对于大多数NLP任务而言,词嵌入被认为是一个很好的起点。它们允许深度学习在较小的数据集上也是有效的,因为它们通常是深度学习体系的第一批输入,也是NLP中最流行的迁移学习方式。在词嵌入中最流行的应该是Word2vec,它是由谷歌(Mikolov)开发的模型,另外一个是由斯坦福大学(彭宁顿,Socher和曼宁)开发的GloVe。接着我们重点介绍这两种模型:

bb4685bac5fca503d1ad3c565d3bf30ffdc3fa18

Word2vec中我们有一个庞大的文本语料库,其中固定词汇表中的每个词都由一个向量表示。然后,我们通过文本中的每个位置t,其中有一个中心词c和上下文词o。接下来,我们使用字向量的相似性ÇÒ计算的概率ø给出Ç(或反之亦然)。我们不断调整单词向量来最大化这个概率。为了有效地训练Word2vec,我们可以从数据集中去除无意义的单词。这有助于提高模型的准确性。

Word2vec有两个变体值得一提:

d1809a8961d50380bf031044c712ff7f0afceaa3

1.Skip-Gram:我们考虑一个包含k个连续项的上下文窗口。然后,我们跳过其中一个单词,尝试学习一个神经网络,该网络可以获得除跳过的所有术语外的所有术语,并预测跳过的术语。因此,如果两个单词在大语料库中反复共享相似的上下文,那么这些术语的嵌入向量将具有相似的向量。

2.Continuous Bag of Words我们在一个大的语料库中获取大量的句子,每当我们看到一个词,我们就会联想到周围的词。然后,我们将上下文单词输入到神经网络,并预测该上下文中心的单词。当我们有数千个这样的上下文单词和中心单词时,我们就有了一个神经网络数据集的实例。我们训练神经网络,最后编码的隐藏层输出表示一个特定的词嵌入。当我们通过大量的句子进行训练时,类似上下文中的单词会得到相似的向量。

a300e086a0811580d01303c08205f6515e3cc4ba

对Skip-Gram和CBOW的一个吐槽就是它们都是基于窗口的模型,这意味着语料库的共现统计不能被有效使用,导致次优的嵌入(suboptimal embeddings)。

GloVe模型旨在通过捕捉一个字与整个观测语料库的结构嵌入的含义来解决这个问题。为此,该模型训练单词的全局共现次数,并通过最小化最小二乘误差来充分利用统计量,从而产生具有有意义子结构的单词向量空间。这样的做法足以保留单词与向量距离的相似性。

除了这两种文本嵌入外,还有许多最近开发的高级模型,包括FastTextPoincare嵌入sense2vecSkip-ThoughtAdaptive Skip-Gram,我强烈建议你学习一下。

技术2:机器翻译

机器翻译是语言理解的经典测试。它由语言分析和语言生成组成。大型机器翻译系统具有巨大的商业用途,给你一些值得注意的例子:

·       谷歌翻译每天翻译1000亿字;

·       Facebook使用机器翻译自动翻译帖子和评论中的文字,以打破语言障碍,让世界各地的人们相互交流;

·       阿里巴巴使用机器翻译技术来实现跨境贸易,连接世界各地的买家和卖家;

·       微软为Android、iOS和Amazon Fire上的最终用户和开发人员提供基于人工智能的翻译,无论他们是否可以访问互联网。

在传统的机器翻译系统中,我们必须使用平行语料库:一组文本,每个文本都被翻译成一种或多种不同于原文的其他语言。例如,给定源语言f(例如法语)和目标语言e(例如英语),我们需要建立多个统计模型,包括使用贝叶斯规则的概率公式,训练的翻译模型p(f | e)平行语料库和语言模型p(e)在纯英文语料库上训练。这种方法跳过了数百个重要细节,需要大量的手工特征工程,整体而言它是一个非常复杂的系统。

神经机器翻译是通过一个称为递归神经网络(RNN)的大型人工神经网络对整个过程进行建模的方法。RNN是一个有状态的神经网络,它通过时间连接过去。神经元的信息不仅来自前一层,而且来自更前一层的信息。

2c17a658d8c714d10bdbd94975328c71867ff4a5

标准的神经机器翻译是一种端到端神经网络,其中,源语句由称为编码器的RNN 编码,目标词使用另一个称为解码器RNN编码器一次读取一个源语句,然后在最后隐藏状态汇总整个源句子。RNN解码器使用反向传播学习这个汇总并返回翻译后的版本。神经机器翻译从2014年的一项边缘研究领域发展到2016年广泛采用的领先机器翻译方式,那么,使用神经机器翻译的最大成功是什么?

1.端到端训练:NMT中的所有参数同时被优化,以最大限度地减少网络输出的损耗性能。

2.分布式表示的优势:NMT更好地利用单词和短语的相似性。

3.更好地探索上下文:NMT可以使用更多的上下文——源文本和部分目标文本以此进行更准确地翻译。

4.更流利的文本生成:深度学习文本生成质量高于平行语料库。

RNN的一个大问题是梯度消失(或爆炸)问题,其中取决于所使用的激活函数,随着时间的推移信息会迅速丢失。直观地说,这不会成为一个很大问题,因为这些只是权重而不是神经元状态,但是时间的权重实际上是存储过去的信息的地方,如果权重达到0或1,000,000的值,那么以前的状态将不会提供很多信息。因此,RNNs在记忆序列中的前几个单词时会表现的很困难,并且只能根据最近的单词进行预测。

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

·输入门决定了来自上一层的多少信息存储在单元中;

·输出层在另一端获取任务,并确定下一层有多少单元知道该单元的状态。

·忘记门的作用起初看起来很奇怪,但有时候忘记门是个不错的设计:如果它正在学习一本书并开始新的一章,那么网络可能需要忘记前一章中的一些字符。

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

05b16b6bb566445f934dd3c07809944137423ce9

门控重复单元(GRU)是在LSTM的基础上变形得来的,也是神经机器翻译的扩展。它拥有更少的门,并且连接方式略有不同:它不是输入、输出和忘记门组成的,而是具有更新门。这个更新门决定了从最后一个状态开始保留多少信息以及从上一个层开始输入多少信息。

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

a69565f6b94ccb846947f01079c4f6504a3c8cda

除了这三大体系结构之外,过去几年神经​​机器翻译系统还有进一步的改进。以下是最显着的发展:

·       用神经网络进行序列学习的序列证明了LSTM在神经机器翻译中的有效性。它提出了序列学习的一种通用的端到端方法,对序列结构进行了最少的假设。该方法使用多层Long Short Term Memory(LSTM)将输入序列映射为固定维度的向量,然后使用另一个深度LSTM从向量解码目标序列。

·       通过联合学习对齐和翻译的神经机器翻译引入了NLP中的注意机制(将在下一篇文章中介绍)。认识到使用固定长度矢量是提高NMT性能的瓶颈,作者建议通过允许模型自动(软)搜索与预测目标相关的源句子部分来扩展,而不必将这些部分明确地形成为一个固定的长度。

·       用于神经机器翻译的循环编码器上的卷积利用附加的卷积层增强NMT中的标准RNN编码器,以在编码器输出中捕捉更广泛的上下文。

·       谷歌的神经机器翻译,它解决了准确性和部署方便性的问题。该模型由一个深度LSTM网络组成,该网络包含8个编码器和8个解码器层,使用残余连接以及从解码器网络到编码器的注意力连接。

·       Facebook AI研究人员不使用递归神经网络,而是使用卷积神经网络序列对NMT中的学习任务进行排序。

技巧3DialogueConversations

关于会话AI的文章很多,其中大部分着重于垂直聊天机器人,商业趋势和创业机会(比如Amazon Alexa,Apple Siri,Facebook M,Google Assistant,Microsoft Cortana)。人工智能理解自然语言的能力仍然有限。因此,创建全自动的对话助理仍然是一个巨大的挑战。尽管如此,下面将要介绍的内容对于想要在对话AI中寻求下一个突破的人们来说是一个很好的起点。

6763891df3eb6a8f33fc8591e34163003aad0c23

来自蒙特利尔、乔治亚理工学院、微软和Facebook的研究人员构建了一个能够产生上下文敏感的会话响应神经网络。这种新颖的响应生成系统是在大量的非结构化Twitter对话上进行端对端训练。循环神经网络架构用于解决将上下文信息集成到经典统计模型时出现的稀疏性问题,使系统能够考虑以前的对话话语。该模型显示了对上下文敏感和非上下文敏感的机器翻译和信息检索的所有优势。

香港开发的神经反应机器(NRM)是一种基于神经网络的短文对话生成器。它采用通用的编码器-解码器框架。首先,它将响应的生成的形式化为基于输入文本的潜在表示的解码过程,而编码和解码都是用递归神经网络实现的。NRM通过从微博服务收集的大量谈话数据进行训练。实验表明,NRM可以对超过75%的输入文本产生语法正确当反应,在同样的环境中表现优于现有技术。

eb1acf4c7963829f05be4c04f219a5b21a82abbb

最后,Google神经会话模型是一种简单的会话建模方法,它使用序列到序列框架。该模型通过预测对话中前一个句子的下一个句子进行对话。该模型的优势在于它可以进行端对端训练,因此需要的手动规则更少。

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

第1部分中,我介绍了自然语言处理(NLP)领域以及为其提供支持的深度学习。我还介绍了NLP中的3个关键概念:文本嵌入(字符串的矢量表示),机器翻译(使用神经网络翻译语言),以及Dialogue和Conversations(可以实时与人进行对话的技术)。在第2部分中,我将介绍另外4项重要的NLP技术,你应该关注这些技术,以跟上这一研究领域快速增长的步伐。

技术4:情绪分析

人际交往不仅仅是文字和其明确的含义,而且它还是微妙且复杂的。即使在完全基于文本的对话中,你也可以根据单词选择和标点符号判断客户是否感到愤怒。你可以阅读产品在天猫平台的评论,并了解评论者是否喜欢或不喜欢它,即使他们从未直接说过。为了使计算机真正理解人类每天的交流方式,他们需要理解的不仅仅是客观意义上的词语定义、而且他们需要了解我们的情绪。情绪分析是通过较小元素的语义组成来解释较大文本单元(实体、描述性术语、事实、论据、故事)的含义的过程。

传统情感分析的方法是将句子视为一个词袋,并查阅“积极”和“消极”单词的策划列表,以确定该句子的情绪。这需要手工设计的特征来捕捉情绪,所有这是非常耗时和不可扩展的。

用于情感分析的现代深度学习方法可用于形态学、语法和逻辑语义,其中最有效的是递归神经网络。顾名思义,递归神经网络开发的主要假设递归是描述语言的自然方式。递归在消歧方面很有用,有助于某些任务引用特定的短语,并且对于使用语法树结构的任务非常有效。

递归神经网络非常适合具有嵌套层次结构和内部递归结构的设置。语法的句法规则是高度递归的,因此,我们利用递归神经网络!使用RNN对句子进行建模的另一个好处是,我们现在可以输入任意长度的句子,这对于在NLP中使用神经网络来说是一个巨大的难题,使用非常聪明的技巧使句子的输入向量具有相同的大小,尽管句子的长度不相等。

标准RNN是一种递归神经网络的最基本的版本。它具有最大边距结构预测架构,可以在复杂的场景图像和句子中成功地运用这种结构。它用于为自然语言句子提供有竞争力的语法分析器比如说Penn Treebank。作为参考,Penn Treebank是第一个大型树形数据集,由华尔街日报三年(WSJ)收集的24,799个故事组成,它广泛用于句法注释。此外,它优于语义场景分割、注释和分类的替代方法。

然而,标准RNN并不能捕获语法短语的完整语法。在语法上解开RNN,也被称为成分矢量语法(CVG),这个方法是解决这个问题的一个重大升级。它使用语法解开的递归神经网络来学习句法语义和组合向量表示。该模型能够像标准RNN一样快速地进行训练和实施。

另一个演变是Matrix-Vector RNN,它能够捕获更长短语的组成含义。该模型为解析树中的每个节点分配一个向量和一个矩阵:向量用于捕获成分的固有含义,而矩阵捕获它如何改变相邻单词或短语的含义。而且该矩阵向量RNN可以在命题逻辑和自然语言中学习运算符的含义。

该模型在三个不同的实验中获得过不错的表示:

· 预测副词-形容词对的细粒度情感分布;

· 对电影评论的情感标签进行分类;

· 使用它们之间的句法路径对名词之间的语义关系(例如因果关系)进行分类。

迄今为止用于情感分析的最强大的RNN模型是递归神经张量网络,其在每个节点处具有神经网络的树结构。该模型可用于边界分割,以确定哪些词组是积极的,哪些是消极的。在Sentiment Treebank上接受训练时,该模型在几个指标上的表现优于所有以前的方法。

技术5:问答系统

问答(QA)系统的想法是直接从文档、对话、在线搜索和其他地方提取信息,以满足用户的信息需求。QA系统不是让用户阅读整个文档,而是更喜欢简短而简洁的答案。如今,QA系统可以非常容易地与其他NLP系统结合使用,并且一些QA系统甚至超越了对文本文档的搜索,并且可以从图片集合中提取信息。

事实上,大多数NLP问题都可以被视为一个问题回答问题。范例很简单:我们发出查询指令,机器提供响应。通过阅读文档或一组指令,智能系统应该能够回答各种各样的问题。

强大的深度学习架构(称为动态内存网络(DMN))已针对QA问题进行了专门开发和优化。给定输入序列(知识)和问题的训练集,它可以形成情节记忆,并使用它们来产生相关答案。该体系结构具有以下组件:

· 语义内存模块(类似于知识库)被用来创建从输入句子的嵌入字序列预先训练手套载体。

· 输入模块处理与问题有关的输入矢量称为事实。该模块使用门控循环单元实现,GRU使网络能够了解当前正在考虑的句子是否相关或与答案无关。

· 问题模块逐字处理疑问词,并且使用输出相同权重的GRU输入模块的向量。事实和问题都被编码为嵌入。

· 情景记忆模块接收从输入中提取和编码的嵌入事实和问题载体。这使用了一个受大脑海马体启发的想法,它可以检索由某些反应触发的时间状态,如景点或声音。

· 答案生成模块,通过适当的响应,情景记忆应该包含回答问题所需的所有信息。该模块使用另一个GRU,使用正确序列的交叉熵错误分类进行训练,然后可以将其转换回自然语言。

DMN不仅在质量保证方面做得非常好,而且在情感分析和词性标注方面也优于其他架构。自开发以来,动态内存网络已经有了重大改进,进一步提高其在问答环境中的准确性,包括:

· 用于视觉和文本问题的动态存储网络问答应用基本上是将DM​​N应用于图像,其内存和输入模块已升级,以便能够回答视觉问题。该模型改进了许多基准Visual Question Answering数据集的现有技术水平,而不支持事实监督。

· 用于问题应答的动态Coattention网络解决了从对应于不正确答案的局部最大值恢复的问题。它首先融合了问题和文件的共同依赖表示,以便集中于两 者的相关部分。然后,动态指向解码器迭代潜在的答案跨度,该迭代过程使模型能够从对应于不正确答案的初始局部最大值中恢复。

技术6:文本摘要

人类很难手动汇总大型文本文档。文本摘要是NLP为源文档创建简短、准确和流畅的摘要问题。随着推送通知和文章摘要获得越来越多的注意力,为长文本生成智能且准确摘要的任务每天都在增长。

通过首先计算整个文本文档的单词频率来自动汇总文本。然后,存储和排序100个最常用的单词。然后根据它包含的高频词数对每个句子进行评分,更高频率的词,价值更大。最后,根据它们在原始文本中的位置来获取和排序前X个句子。

文本摘要有两种基本方法:提取和抽象。前者从原始文本中提取单词和单词短语以创建摘要。后者是学习内部语言表示以生成更像人类的摘要,解释原始文本的意图。

提取摘要的方法是通过选择子集来工作。这是通过从实际文章中提取短语或句子以形成摘要来完成的,LexRank和TextRank是众所周知的摘要总结,它们都使用了Google PageRank算法的变体。

· LexRank是一种无监督的基于图形的算法,它使用IDF修改的余弦作为两个句子之间的相似性度量。该相似度用作两个句子之间的图形边缘的权重。LexRank还采用了智能后处理步骤,确保为摘要选择的顶级句子彼此不太相似。

· TextRank是一种类似于LexRank的算法,具有一些增强功能,例如使用词形化而不是词干,结合词性标注和命名实体分辨率,从文章中提取关键短语,以及根据这些短语提取摘要句子。除了文章摘要外,TextRank还从文章中提取了有意义的关键短语。

抽象概括的模型属于深度学习。使用深度学习的文本摘要已经取得了一定的突破。以下是一些NLP领域最大公司最显着的公布结果:

· Facebook的神经注意是一种神经网络架构,它利用基于本地注意力的模型,能够根据输入句子生成摘要中的每个单词。

· Google Brain的Sequence-to-Sequence模型遵循编码器-解码器架构。编码器负责读取源文档并将其编码为内部表示,解码器是一种语言模型,负责使用源文档的编码表示在输出摘要中生成每个单词。

· IBM Watson使用类似的序列到序列模型,但具有注意力和双向递归神经网络功能。

技术7:注意力机制

神经网络中的注意力机制是基于人类的视觉注意机制。人类的视觉注意力虽然存在不同的模型,但它们都基本上归结为能够以“高分辨率”聚焦于图像的某个区域,同时以“低分辨率”感知周围的图像,然后随着时间的推移调整焦点。

想象一下,你正在阅读一篇完整的文章:不是按顺序浏览每个单词或字符,而是潜意识地关注一些信息密度最高的句子并过滤掉其余部分。你的注意力有效地以分层方式捕获上下文信息,这样就可以在减少开销的同时做出决策。

那为什么这很重要?诸如LSTM和GRU之类的模型依赖于读取完整的句子并将所有信息压缩为固定长度的矢量。这需要基于文本统计属性的复杂特征工程,用几个单词表示的数百个单词的句子肯定会导致信息丢失,翻译不足等。

通过注意力机制,我们不再尝试将全文编码为固定长度的矢量。相反,我们允许解码器在输出生成的每个步骤处理源语句的不同部分。我们让模型根据输入句子以及它到目前为止产生的内容来学习要注意的内容。

根据上面从基于注意力的神经机器翻译的有效方法的图像,蓝色表示编码器,红色表示解码器,因此我们可以看到上下文向量将所有单元格的输出作为输入来计算每个单元格的源语言单词的概率分布。解码器想要生成单个字,通过利用该机制,解码器可以捕获全局信息而不是仅基于一个隐藏状态进行推断。

除了机器翻译之外,注意力模型还可以处理各种其他NLP任务。在Show,Attend和Tell:使用视觉注意生成神经图像标题,作者将注意力机制应用于生成图像描述的问题。他们使用卷积神经网络对图像进行编码,使用具有注意力机制的递归神经网络来生成描述。通过可视化注意力,他们可以在生成单词时解释模型正在查看的内容:

语法作为外语中,作者使用具有注意力机制的递归神经网络来生成句子解析的树。可视化的注意力矩阵可以深入了解网络如何生成这些树:

阅读和理解的教学机器中,作者使用回归神经网络来阅读文本,阅读问题,然后产生答案。通过可视化关注矩阵,它们可以在尝试查找问题答案时显示网络的外观:

然而,注意力机制需要付出代价。我们需要计算输入和输出字的每个组合的注意力值。如果你有一个100字的输入序列并生成一个100字的输出序列,那将是10,000个注意力值。如果你进行字符级计算并处理由数百个令牌组成的序列,上述机制可能变得非常昂贵。

自然语言处理已经解决的障碍

值得注意的是,研究人员不得不处理各种障碍:算法的局限性、模型的可扩展性、对人类语言的模糊理解。好消息是,这个领域的发展似乎是一个巨大的开源项目:研究人员不断构建更好的模型来解决现有问题并与社区分享他们的结果。由于最近的学术研究进展,以下是NLP中已经解决的主要障碍:

· 没有单一的模型架构,跨任务具有一致的最新结果。例如,在Question Answering中,我们有强监督的端到端内存网络 ; 在情感分析中,我们有Tree-LSTM ; 在序列标记中,我们有双向LSTM-CRF。我之前在问题回答部分中提到的动态内存网络以某种方式解决了这一挑战,因为它可以在多个域中一致地运行。

· 机器学习中一种强大的方法是多任务学习,它共享相关任务之间的表示,以使模型能够更好地概括原始任务。然而,相关的多任务学习很难,因为它通常仅限于较低层,仅在任务相关时才有用,并且在所提出的模型中具有相同的解码器/分类器。在联合多任务模型中:为多个NLP任务增长,作者预先定义了一个由几个NLP任务组成的分层架构,作为多任务学习的联合模型。该模型包括字符n-gram和短路以及最先进的纯前馈解析器,能够执行依赖解析,多句子任务和联合训练。

· 另一个挑战是重复字表示的问题,其中模型中编码器和解码器的不同编码导致重复的参数/含义。对此最简单的解决方案是将单词向量联系在一起并联合训练单个权重,如“绑定单词向量” 和“单词分类器:语言建模的损失框架”中所示

· 另一个障碍是,与诸如卷积神经网络或前馈神经网络相比,任何Deep NLP技术的基本构建块Recurrent Neural Networks相当慢。准递归神经网络采用RNN和CNN的最佳部分来提高训练速度,使用卷积跨越时间的并行性和跨越信道的并行性的元素级门控递归。这种方法比语言建模和情感分析中的任何其他模型更好,更快。

· 最后,在NLP中,架构搜索使用机器学习自动化人工神经网络设计的过程 非常缓慢,因为传统的手动过程需要大量的专业知识。如果我们可以使用AI为任何问题找到合适的架构怎么办?使用Google Brain进行强化学习的神经架构搜索是迄今为止开发的最可行的解决方案。作者使用循环网络生成神经网络的模型描述,并使用强化学习训练此RNN,以最大化验证集上生成的体系结构的预期准确性。

结论

本系列文章展示了主要的自然语言处理技术的基本概要,这些技术可以帮助计算机从单个文本或文本序列中提取,分析和理解有用的信息。从跨文化连接人的机器翻译到帮助客户服务的对话聊天机器人; 从深刻理解人类情绪的情感分析,到可以模仿我们视觉注意力的注意力机制。因为NLP的领域过于庞大可能我并没有完全介绍,所以我鼓励你进一步探索,无论是通过在线课程,博客教程,或研究论文。