深度学习在自然语言处理中的应用全景图-下

2024-03-21 20:30

本文主要是介绍深度学习在自然语言处理中的应用全景图-下,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

机器翻译

机器翻译研究的是如何使用计算机自动翻译人类语言。

深度学习用于机器翻译主要有两类方法:

  1. 将深度学习用于改进统计机器翻译的各个组件,如词对齐,翻译规则概率估计,短语重新排序模型,语言模型和模型特征组合。
  2. 基于编码器-解码器框架的端到端翻译系统,可以直接用神经网络将源语言映射到目标语言。

端到端神经机器翻译与传统统计机器翻译的主要区别是它可以直接从数据中学习,无需手动设计特征来捕获翻译规则。

Sutskever et al. 2014) 提出用一个 RNN 作为编码器,将源上下文编码为向量表示,用另一个 RNN 作为解码器,逐字生成翻译。

Jn7Nf6

在 Sutskever 的编码-解码框架中,不管句子的长度是多少,编码器需要将整个源句子表示为一个固定长度的向量。 Bahdanau et al. 2015) 表明这样会使神经网络难以处理长期依赖,并引入了注意机制,动态地选择相关源上下文来生成目标词。

TbVA39

神经机器翻译有一个很大的挑战是如何解决目标语言词汇引起的效率问题,因此 Sutskever 和 Bahdanau 使用的都是完整词汇表的子集,但这样会显著影响子集或词典外的词的翻译质量。 Luong et al. 2015) 提出的模型可以识别源语句和目标句子中的词典外单词之间的对应关系,并在后期处理步骤中翻译词典外单词。

神经机器翻译还有一个重要课题是如何将先验知识整合到神经网络中。 Zhang et al. 2017b) 在 (Ganchev et al. 2010) 提出的后验正规化的基础上,提出了一个框架可以整合任意知识来源。


问答系统

问答系统 (QA: Question answering QA) 是自然语言处理中一个非常有挑战性的任务,

深度学习在 QA 中两个比较典型任务上有了很不错的应用:

  1. 深层学习问答知识库,即用深度学习来理解问题的含义,并将它们翻译成结构化查询。2. 深度学习机器理解,用来直接计算问题和答案之间的深层语义匹配。

很多神经网络或它们的变种都已经被用于这个任务,例如 CNN,RNN(LSTM,BLSTM),注意机制和记忆网络。这些研究主要分为两类:信息提取方式(information extraction)或语义解析方式(semantic parsing)。信息提取即使用一些关系提取技术从知识库中获得一组候选答案,然后将其与问题进行比较。 语义解析是设法借助新颖的网络结构从句子中提取出符号表示或结构化查询。

信息提取方式的工作通常是在一个神经网络结构中对答案进行 retrieval–embedding–comparing。

Bordes et al. 2014a) 最早提出了一个联合嵌入框架,可以学习出一个结构化知识库中对单词,实体,关系等语义项的向量表示,并设法将一个自然语言问题映射到知识库的某个子图。

Dong et al. 2015) 用 CNN 来编码问题和候选答案之间的不同类型的特征。他们提出了一种多列卷积神经网络(MCCNN)来捕捉问题的不同方面,并通过三个渠道,答案路径,答案语境,答案类型进一步对一组问答进行评分。

Hao et al. 2017) 提出的一种基于交叉注意力机制的神经网络比基于知识库的问答系统要好。

记忆网络是一种新颖的学习框架,根据一个记忆机制设计,可以在特定任务期间被读取,修改和添加。 Miller et al. 2016) 研究了记忆知识的各种 Key- Value 形式,他们的模型还可以从存储器中进行多次寻址和读取,可以收集上下文,动态地更新问题并获得最终答案。

基于 KBQA 的另一种主流是语义分析的模型,这种模型尝试正规地表示问题的含义,然后使用知识库进行实例化,并在知识库上面建立结构化查询,进而可以显式地捕获复杂查询。 Xu et al. 2016) 提出了一个多通道卷积神经网络(MCC-NNs),可以从词汇和句法角度学习紧凑稳健的关系表示。这个方法很适合开放域知识库问答系统。因为在开放域知识库中通常存在数千个关系,传统的基于特征的模型会遇到数据稀疏问题,而且在看不见的单词上的泛化能力也差。

在语义理解领域,Seo et al. 2016) 提出了双向注意流网络(BiDAF),采用多阶段分层过程,可以不需要提前总结就能在不同粒度下表示上下文。

YOTDpe


情感分析

情感分析要做的是从社交网络,博客或产品的评论中识别和提取用户的情绪,在数据挖掘,网络挖掘和社交媒体分析方面有广泛应用。主要任务有情绪分类,意见提取,细粒度情绪分析。 接下来我们主要看深度学习在 句子级,文档级的应用。

句子级别的情感分析就是对句子的情感极性进行分类。 很多神经网络结构都可以用来处理这个问题,卷积神经网络,循环神经网络,递归神经网络和辅助增强句子表示。

CNN 可以更好地捕获基于窗口的局部组合, 基本的 CNN 有一个卷积层和池化层,Kalchbrenner et al. 2014) 将其扩展为多层结构,并用动态k-max 池化来更好地表示句子。 Yin and Schütze 2015) 构建了多通道的多层 CNN,可以使用若干个不同的词嵌入。

RNN 可以有效学习隐式长期依赖性, Wang et al. 2015) 提出了用长期短期记忆(LSTM)神经网络进行推文情绪分析。

Zhang et al. 2016c) 结合了 LSTM 和 CNN,提出了一个依赖敏感的 CNN 模型,使 CNN 网络结构也能够捕获长距离依赖性,很好地利用了二者的优点。

文档级的情感分类是要识别一个文档的情感类型。

Tang et al. 2015a) 用 CNN 来计算句子向量,然后用双向 GRU 来计算整个文档的嵌入表示。

eOuQ1a


视觉字幕

由图像生成自然语言,或者称为视觉字幕,是一种新兴的深度学习应用,属于自然语言生成(NLG),是计算机视觉和自然语言处理的交叉。是很多重要应用的基础技术,如语义视觉搜索,聊天机器人的视觉智能,帮助视障人士感知视觉内容等等。

过去2年深度学习技术发展迅速才使这一领域得到突破性进展,在这之前这个任务几乎是不可能完成的。

Sutskever et al. 2014); Bahdanau et al. 2015) 将 sequence-to-sequence 用于机器翻译取得了比较成功的效果后,(Vinyals et al. 2015); (Karpathy and Fei-Fei 2015); (Fang et al. 2015); (Devlin et al. 2015); (Chen and Zitnick 2015) 也研究了用于图像字幕的端到端的 end-to-end encoder–decoder 框架。

在这个框架中,原始图像通过深度 CNN 被编码为一个全局视觉特征向量,承载着图像的整体语义信息,

提取出全局视觉特征向量后,被投入到基于 RNN 的解码器中来生成字幕,

上述 encoder–decoder 结构不仅可以用于图像字幕,还被 (Ballas et al. 2016) 用于视频字幕,主要区别是用了不同的 CNN 的结构和基于 RNN 的语言模型。

(Xu et al. 2015) 也将注意力机制用于这个方向,来学习字幕生成时应该聚焦在图像的什么位置。

(Anderson et al. 2017) 提出的 bottom-up 注意力模型,可以将整个模型的所有部分,包括 CNN,RNN 和 attention,从头到尾共同训练,实现端对端并且达到了非常好的效果。

此外,(Rennie et al. 2017) 提出了一种自我批判序列训练算法,是强化学习在视觉字幕领域的应用。 强化学习在视觉字幕领域也越来越流行,

生成对抗网络(GAN)也被用于文本生成,SeqGAN(Yu et al.2017)将生成器建模为一种强化学习的随机策略,用于输出文本,RankGAN (Lin et al.2017)提出了一种基于排序的鉴别器的损失,可以更好地评估生成文本的质量。

8DTtCB

kfyptY


以上就是简要介绍了深度学习在 NLP 的其中几个领域的重要研究,会话语言理解,对话系统,知识图谱,机器翻译,问答系统,情感分析还有视觉字幕,由此我们也可以看出 RNN,LSTM,GRU,双向RNN,Seq2seq,Attention机制在深度学习自然语言处理领域的重要作用,本门课程也会对其中几个应用进行详细讲述和给出代码实战。 在提到的文献中都给出了论文链接,如果大家有兴趣可以点击学习,也可以进一步找相关论文学习,了解更新的研究进展,另外推荐大家看一下这本书《Deep Learning in Natural Language Processing》。

这篇关于深度学习在自然语言处理中的应用全景图-下的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/833838

相关文章

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

浅析Java中如何优雅地处理null值

《浅析Java中如何优雅地处理null值》这篇文章主要为大家详细介绍了如何结合Lambda表达式和Optional,让Java更优雅地处理null值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录场景 1:不为 null 则执行场景 2:不为 null 则返回,为 null 则返回特定值或抛出异常场景

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定