深度学习对自然语言处理领域产生了巨大影响。
但是,作为初学者,您从哪里开始?
深度学习和自然语言处理都是一个巨大的领域。每个领域需要关注的突出方面是什么,深度学习对NLP的哪些领域影响最大?
在这篇文章中,您将发现有关自然语言处理深度学习相关的入门知识。
阅读这篇文章后,您将知道:
- 对自然语言处理领域影响最大的神经网络架构。
- 可以通过深度学习成功解决的自然语言处理任务的广泛视图。
- 密集单词表示的重要性以及可用于学习它们的方法。
概述
这篇文章分为 11 个部分,它们是:
- 神经网络架构
- 特征表示
- 前馈神经网络
- 词嵌入
- 神经网络训练
- 级联和多任务学习
- 结构化输出预测
- 卷积层
- 递归神经网络
- 具体的循环神经网络架构
- 建模树
神经网络架构
本节主要介绍不同类型的神经网络架构,并在后面的章节中交叉引用。
全连接前馈神经网络是非线性学习器,在大多数情况下,可以在使用线性学习器的地方用作直接替代品。
总共涵盖了 4 种类型的神经网络架构,重点介绍了每种类型的应用示例和参考:
- 完全连接的前馈神经网络,例如多层感知器网络。
- 具有卷积层和池化层的网络,例如卷积神经网络。
- 递归神经网络,例如长短期记忆网络。
- 递归神经网络。
如果您只对特定网络类型的应用程序感兴趣并希望直接转到源论文,本节提供了一个很好的来源。
特征表示
本节重点介绍如何使用从稀疏表示过渡到密集表示,这些表示又可以与深度学习模型一起训练。
从稀疏输入线性模型转向基于神经网络的模型时,最大的跳跃可能是停止将每个特征表示为唯一维度(所谓的独热表示),而是将它们表示为密集向量。
介绍了NLP分类系统的总体结构,总结为:
- 提取一组核心语言特征。
- 检索每个向量的相应向量。
- 组合特征向量。
- 将组合向量馈送到非线性分类器中。
该公式的关键是密集而不是稀疏的特征向量以及使用核心特征而不是特征组合。
请注意,神经网络设置中的特征提取阶段仅处理核心特征的提取。这与传统的基于线性模型的NLP系统形成鲜明对比,在传统的基于线性模型的NLP系统中,特征设计者不仅必须手动指定感兴趣的核心特征,还必须手动指定它们之间的交互。
前馈神经网络
本节提供前馈人工神经网络的速成教程。
网络既使用受大脑启发的隐喻,也使用数学符号来呈现。涵盖了常见的神经网络主题,例如:
- 表示能力(例如通用近似)。
- 常见非线性(例如传递函数)。
- 输出转换(例如软最大值)。
- 词嵌入(例如内置的学习密集表示)。
- 损失函数(例如铰链和对数损失)。
词嵌入
词嵌入表示的主题是自然语言处理中神经网络方法的关键。本节扩展该主题并枚举关键方法。
神经网络方法的一个主要组成部分是嵌入的使用——将每个特征表示为低维空间中的向量。
回顾了以下词嵌入主题:
- 随机初始化(例如,从均匀的随机向量开始)。
- 监督特定任务的预训练(例如迁移学习)。
- 无监督预训练(例如 word2vec 和 GloVe 等统计方法)。
- 训练目标(例如,目标对结果向量的影响)。
- 上下文的选择(例如,单词对每个单词的影响)。
神经词嵌入起源于语言建模的世界,其中网络被训练为根据前面的单词序列预测下一个单词
神经网络训练
这个较长的部分重点介绍如何训练神经网络,是为那些刚接触神经网络范式的人编写的。
神经网络训练是通过尝试使用基于梯度的方法最小化训练集上的损失函数来完成的。
本节重点介绍随机梯度下降(以及像小批量这样的朋友)以及训练期间的重要主题,如正则化。
有趣的是,介绍了神经网络的计算图视角,为Theano和TensorFlow等符号数字库提供了入门,它们是实现深度学习模型的流行基础。
构建图形后,可以直接运行前向计算(计算计算结果)或反向计算(计算梯度)
级联和多任务学习
本节在上一节的基础上,总结了级联 NLP 模型和跨多种语言任务学习模型的工作。
模型级联:利用神经网络模型的计算图定义来利用中间表示(编码)来开发更复杂的模型。
例如,我们可能有一个前馈网络,用于根据相邻的单词和/或组成单词的字符来预测单词的词性。
多任务学习:存在相关的自然语言预测任务,这些任务不会相互馈送,但可以在任务之间共享信息。
用于预测块边界、命名实体边界和句子中下一个单词的信息都依赖于一些共享的基础句法语义表示
这两个高级概念都是在神经网络的上下文中描述的,这些神经网络允许在训练(错误的反向传播)和进行预测期间模型或信息之间的连接。
结构化输出预测
本节涉及自然语言任务的示例,其中深度学习方法用于进行结构化预测,例如序列、树和图形。
规范的例子是序列标记(例如.part语音标记)、序列分割(分块、NER)和句法解析。
本节介绍贪婪和基于搜索的结构化预测,重点是后者。
预测自然语言结构的常用方法是基于搜索。
卷积层
本节提供卷积神经网络 (CNN) 及其对自然语言影响的速成课程。
值得注意的是,CNN已被证明对于情感分析等分类NLP任务非常有效,例如学习在文本中寻找特定的子序列或结构以进行预测。
卷积神经网络旨在识别大型结构中的指示性局部预测因子,并将它们组合以生成结构的固定大小的向量表示,从而捕获这些对于手头的预测任务最有用的局部方面。
递归神经网络
与上一节一样,本节重点介绍特定类型网络的使用及其在 NLP 中的作用和应用。在这种情况下,循环神经网络(RNN)用于对序列进行建模。
递归神经网络 (RNN) 允许在固定大小的向量中表示任意大小的结构化输入,同时注意输入的结构化属性。
鉴于RNN的流行,特别是NLP中的长短期记忆(LSTM),这个更大的部分通过各种反复出现的主题和模型,包括:
- RNN 抽象(例如网络图中的循环连接)。
- RNN 训练(例如随时间反向传播)。
- 多层(堆叠)RNN(例如深度学习的“深度”部分)。
- BI-RNN(例如,提供向前和向后的序列作为输入)。
- 用于表示堆栈的 RNN
时间花在 RNN 模型架构或架构元素上,具体来说:
- 受体:完成输入序列后在输出上计算的损耗。
- 编码器:最终向量用作输入序列的编码。
- 传感器:为输入序列中的每个观测值创建一个输出。
- 编码器-解码器:输入序列在解码为输出序列之前被编码为固定长度的矢量。
具体的循环神经网络架构
本节通过介绍特定的 RNN 算法在上一节的基础上进行构建。
具体涵盖的是:
- Simple RNN (SRNN)。
- 长短期记忆(LSTM)。
- 门控循环单元 (GRU)。
树建模
最后一部分重点介绍一种更复杂的网络类型,称为递归神经网络,用于学习模型树。
树可以是句法树、话语树,甚至是代表句子各个部分所表达的情感的树。我们可能希望根据特定的树节点预测值,根据根节点预测值,或者为整个树或树的一部分分配质量分数。
当递归神经网络保持有关输入序列的状态时,递归神经网络维护有关树中节点的状态。
总结
在这篇文章中,你发现了一本关于自然语言处理深度学习的入门书。
具体而言,您了解到:
对自然语言处理领域影响最大的神经网络架构。
自然语言处理任务的广泛视图,可以通过深度学习成功解决。
密集单词表示的重要性以及可用于学习它们的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:自然语言处理神经网络模型入门概述 - Python技术站