初学者指南:神经网络在自然语言处理中的应用

作者: 机器之心 2017-09-19 13:56:46

看完这篇文章之后,你将会知道:

  • 给自然语言处理领域带来最深刻影响的神经网络结构;
  • 深度学习可以对自然语言处理的各个层面制定学习任务;
  • 密集词汇表示的重要性和学习表示的方法。

让我们开始吧。

概览

这篇文章将分成 12 个 section,并按以下结构排布,分别是:

  1. 介绍;
  2. 神经网络结构;
  3. 特征表示;
  4. 前馈神经网络;
  5. 词嵌入;
  6. 神经网络训练;
  7. 串联和多任务学习;
  8. 结构化输出预测;
  9. 卷积层;
  10. 循环神经网络;
  11. 具体的 RNN 结构;
  12. 模型树。

1. 关于这篇论文

这篇论文的标题是「基于神经网络模型的自然语言处理入门」(A Primer on Neural Network Models for Natural Language Processing)。

对应的论文 2015 年发表在 ArXiv 上。与其说是论文,不如说是一篇技术报告或者说是教程,面向研究员和学生,对基于深度学习方法的自然语言处理(NLP)作了综合性的介绍。

这篇教程审视了针对自然语言处理的研究的几个深度学习模型,以求自然语言的研究能加快神经网络技术的发展。

入门教程由曾是 Google Research 科学家和 NLP 研究员的 Yoav Goldberg

(https://www.cs.bgu.ac.il/~yoavg/uni/) 编写。这是一篇技术报告,有大约 62 页以及 13 页的参考文献。

这对于初学者来说是很理想的教材,因为:

  • 它对读者的基础要求不高,不需要对先了解机器学习和语言处理的相关知识;
  • 涉及领域宽泛,包括了很多深度学习方法和自然语言处理的问题。

在这篇教程中,我希望能为 NLP 开发者和新手介绍一些基础背景知识,术语,实用工具以及方法论,从而明白其背后的神经网络模型的理论,应用到他们自己的工作中... 面向的是那些有志于利用已有的,有价值的技术,并创造新方法去解决他们最感兴趣的 NLP 的人。

通常情况下,在语言学和自然语言处理中,关键的深度学习方法需要翻模(重命名)以建立有用的沟通桥梁。

最后,这篇 2015 年的入门教程在 2017 年出书了,书名为「Neural Network Methods for Natural Language Processing (https://amzn.to/2tXn2dZ)」。

2. 神经网络结构

这一小节将介绍神经网络结构的不同类型,作为后面章节的参照。

全连接前馈神经网络是非线性学习器,因此在极大程度上可以随意取代线性学习器。

这里介绍 4 种类型的神经网络结构,这里着重介绍其应用案例和参考文献:

  • 全连接前馈神经网络,例如多层感知网络;
  • 带有卷积和池化层的网络,例如卷积神经网络;
  • 循环神经网络,例如长短时记忆网络;
  • 递归神经网络。

如果你只对应用感兴趣,以上内容将为你提供直接寻找更多资源的线索。

3. 特征表示

这一节着重介绍深度学习模型训练稀疏或者密集型表示的各种方法。

也许,从稀疏输入(sparse-input)线性模型到神经网络模型最大的飞跃,就是放弃将每一个特征作为一个维度的表示方式(所谓的 one-hot 表示),而使用密集型向量的表示方式。

NLP 分类系统的一般结构总结如下:

  • 提取核心语言特征的集合;
  • 为每一个向量检索关联向量;
  • 组合特征向量;
  • 将组合向量反馈给非线性分类器。

这个结构的关键在于使用密集型特征向量而不是稀疏特征向量,使用核心特征而不是特征组合。

需要注意在特征提取阶段中,神经网络只有提取核心特征。这和传统的基于线性模型的 NLP 不同,传统的 NLP 的特征设计必须手动设置以明确规定核心特征和其中的相互作用。

4. 前馈神经网络

这一节将提供前馈人工神经网络的速成课程。

人工神经网络的速成课程

以「A Primer on Neural Network Models for Natural Language Processing」中含两个隐藏层的前馈神经网络为例。这些神经网络都是使用数学概念和脑启发的形式而表示出来的。通常神经网络的研究论题包括如下几个:

表示能力(e.g. 一般近似);

  • 一般非线性特征(e.g. 变换函数);
  • 输出的变换(e.g. softmax);
  • 词汇嵌入(e.g. 嵌入式学习的密集型表征);
  • 损失函数(e.g. 折叶(ReLU)和对数损失函数)。

5. 词嵌入

对于自然语言处理的神经网络方法来说,词嵌入表征是很重要的论题。这一节将展开这一论题并举几个关键方法的例子。神经网络在 NLP 中的流行一个重要原因是嵌入方法的使用,在低维空间中将每一个特征表征为一个向量。我们将回顾以下几个关于嵌入的论题:

  • 随机初始化(e.g. 以统一的随机向量启动);
  • 有监督特定任务的预训练(e.g. 迁移学习);
  • 无监督预训练(e.g. 统计方法,如 word2vec 和 GloVe);
  • 训练目标(e.g. 目标对输出向量的影响);
  • 上下文的选择(e.g. 每一个词受到的周围的词的影响)。

神经词嵌入方法源于语言模型化方法,即训练网络以通过上文序列预测下一个词。

6. 神经网络训练

这一节篇幅较大,着重介绍神经网络的训练方式,面向对神经网络范式不熟悉的读者。神经网络的训练是通过梯度方法,尝试在一个训练数据集内最小化损失函数的过程。

这一节重点关注随机梯度下降(以及类似的 mini-batch)以及训练过程中的正则化方法。

有趣的是,神经网络的计算图观点的提出为一些实现深度学习模型的符号化数值程序库(symbolic numerical libraries),如 Theano 和 TensorFlow 提供了很好的入门方法。

只要图被建立起来,就能很直观的理解前向计算(计算输出结果)或者方向计算(计算梯度)。

7. 级联(Cascading)和多任务学习

这一节将在前一节的基础上,我们将总结级联 NLP 模型和多语言任务的学习模型。

级联模型:利用神经网络模型的计算图定义加入中间表征(编码)以建立更加复杂的模型。例如,我们可以通过近邻词汇,以及/或者其组成特征建立一个前馈网络来预测词汇。

多任务学习:各种相关的语言预测任务,并不互相反馈,但会在任务中分享信息。

预测命名实体的边界,以及语句的下一个词汇,都依赖于一些潜在的句法-语义表征上。这些高级概念都是在神经网络语境中描述的,以在模型之间建立关联的理解,或者在训练过程(误差反向传播)和预测过程中,共享信息。

8. 结构化输出的预测

这一节关注使用深度学习方法进行结构化预测的几个自然语言处理任务的例子,比如,序列、决策树和计算图。

典型例子有序列标注(e.g. 词性标注)的序列分割(分组,NER(命名实体识别)),以及句法分析。本节内容包括基于贪婪算法的和以搜索为核心的结构化预测,而主要集中讨论后者。

以搜索为核心是自然语言结构化预测的一般方法。

9. 卷积层

这一节提供了卷积神经网络的速成课程,以及讨论卷积网络对自然语言处理研究带来的变革。CNN 被证明在自然语言处理的分类任务上表现出色,比如情绪分析,e.g. 在文中寻找特定的子序列或者结构进行预测。

卷积神经网络一般被设计成在大型结构中用以识别 indicative local predictors,并将其组合以生成结构的固定大小的向量表征,捕捉这些 local aspects 对于预测任务来说是很有用的。

10. 循环神经网络

正如前一节一样,这一节也将介绍一种特定的网络和其在 NLP 中的应用。比如,应用 RNN 的序列建模。

循环神经网络允许在一个固定大小的向量中表示任意大小的结构化输入,而只关心输入的结构化性质。

由于 RNNs 在 NLP 中很受欢迎,尤其是 LSTM,这一节将讨论如下几个关于循环的论题和模型:

  • RNN 抽象概念(e.g. 网络图中的循环连接);
  • RNN 训练过程(e.g. 沿时间的反向传播);
  • 多层(堆叠)RNN(e.g. 深度学习的「深」的解释);
  • BI-RNN(e.g. 前向和反向序列作为输入);
  • 用于表示的 RNN 堆叠。

我们将集中讨论 RNN 模型结构或者结构元素中,特别是:

  • 接收器(acceptor):在完整输入序列之后的输出的损失计算;
  • 编码器(encoder):最后的向量作为输入序列的编码器;
  • 变换器(transducer):在输入序列中,每一次观测生成一个输出;
  • 编码器-译码器(encoder-decoder):输入序列在被译码成输出序列之前,编码成一个固定长度的向量。

11. 具体的 RNN 结构

这一节将在上一节的基础上讨论特定的 RNN 算法。比如:

  • 简单 RNN(SRNN);
  • 长短时记忆(LSTM);
  • 门控循环单元(GRU)。

12. 模型建模

最后一节着重讨论一种更加复杂的网络,学习树型建模的递归神经网络。所谓的树包括了句法树,话语树,甚至是表示(由一句话的几个部分表达的)情绪的树。我们希望在特定的树节点上预测价值,价值预测以根节点为基础,或者为整棵树或者部分树指定一个预测值。

正如循环神经网络保持输入序列的状态,递归神经网络保持树节点的状态。

这里有一个递归神经网络的例子,取自「A Primer on Neural Network Models for Natural Language Processing.」

递归神经网络

总结

这篇文章介绍了自然语言处理的深度学习方法入门。

具体来说,你学到了:

  • 在自然语言处理领域中最重要的几种神经网络结构;
  • 成功应用深度学习的几类自然语言处理任务;
  • 密集型词表征和对应的学习方法的重要性。

原文:

https://machinelearningmastery.com/primer-neural-network-models-natural-language-processing/

【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】

戳这里,看该作者更多好文

神经网络 自然语言 深度学习
上一篇:深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD 下一篇:对话创新—51CTO首届开发者大赛启动啦!
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

图灵奖得主Yoshua Bengio:深度学习当务之急,是理解因果关系

深度学习擅长在大量数据中发现模式,但无法解释它们之间的联系,而图灵奖获得者Yoshua Bengio想要改变这一点。

佚名 ·  2天前
18个挑战项目带你快速入门深度学习

AlphaGo 大战李世?h之后,深度学习技术便在国内变得异常火。吸引了大批的技术人员争相学习,那么到底如何才能更快速的入门深度学习呢?下面给大家介绍的 18 个挑战项目,通过实践动手带你快速入门深度学习!

实验楼 ·  2019-10-10 14:48:19
盘点 | 8个你可能不知道的深度学习应用案例

深度学习与传统机器学习系统的不同之处在于,它能够在分析大型数据集时进行自我学习和改进,因此能应用在许多不同的领域。

天极网 ·  2019-10-10 14:15:18
预测分析:重新考虑组织中的时间和数据

时间序列是一种标准的分析方法,但是较为先进的机器学习工具引入了统计技术,来建立更精确的预测模型。时间是无法倒流的,但是使用现有的工具,您有更多的机会预测时间,更准确地说,是可以预测时间序列样本中的事件是否会继续影响决策趋势。

IT168 ·  2019-09-27 09:57:09
微众银行AI首席科学家NeurIPS论文揭示“神经网络防盗最新技术”

随着深度神经网络(DNN)的快速发展,机器学习服务(MLaaS)等有潜力的商业模式迅速崛起,AI产业化进入发展快车道。然而,保护训练好的DNN模型免于被非法复制,重新分发或滥用(即知识产权侵权)是AI产业化进程中必须要面临和解决的问题。尤其是当下各国企业在深度学习模型和平台方面进行巨额研发投入,对知识产权的保护刻不容缓。

屈鑫 ·  2019-09-26 15:27:09
2019年较热门的5大深度学习课程

今天,我们将和大家盘点一下,当下较流行的深度学习资源/课程,可以帮助你们提升深度学习技能。

猿哥 ·  2019-09-26 05:16:24
DSSM文本匹配模型在苏宁商品语义召回上的应用

文本匹配是自然语言处理中的一个核心问题,它不同于MT、MRC、QA 等end-to-end型任务,一般是以文本相似度计算的形式在应用系统中起核心支撑作用1。它可以应用于各种类型的自然语言处理任务中,例如信息检索、搜索引擎、问答系统、信息流推荐、复述问题、知识检索、机器翻译等。

周杰,李春生,孙鹏飞 ·  2019-09-20 13:34:35
DeepMind一次性开源3个新框架!深度强化学习应用落地即将迎来春天?

深度强化学习(Deep Reinforcement Learning,DRL)一直是近年来人工智能的一些重大突破的核心。然而,尽管 DRL 有了很大的进步,但由于缺乏工具和库,DRL 方法在主流解决方案中仍然难以应用。

杨鲤萍 ·  2019-09-20 09:38:18
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载