自然语言处理中的深度学习发展史和待解难题

2023-12-13 10:32

本文主要是介绍自然语言处理中的深度学习发展史和待解难题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自然语言处理(NLP)是指机器理解并解释人类写作与说话方式的能力。近年来,深度学习技术在自然语言处理方面的研究和应用也取得了显著的成果。

这篇文章讨论了自然语言处理方法的发展史,以及深度学习带来的影响。量子位编译如下:

在深度学习时代来临前

在2006年Hinton提出深度信念网络(DBN)之前,神经网络是一种极其复杂且难以训练的功能网络,所以只能作为一种数学理论来进行研究。

在神经网络成为一种强大的机器学习工具之前,经典的数据挖掘算法在自然语言处理方面有着许多相当成功的应用。我们可以使用一些很简单且容易理解的模型来解决常见问题,比如垃圾邮件过滤、词性标注等。

但并不是所有问题都能用这些经典模型来解决。简单的模型不能准确地捕捉到语言中的细微之处,比如讽刺、成语或语境。

基于总体摘要的算法(如词袋模型)在提取文本数据的序列性质时效果不佳,而N元模型(n-grams)在模拟广义情境时严重受到了“维度灾难(curse of dimensionality)”问题的影响,隐马尔可夫(HMM)模型受马尔可夫性质所限,也难以克服上述问题。

这些方法在更复杂的NLP问题中也有应用,但是并没有取得很好的效果。

第一个技术突破:Word2Vec

神经网络能提供语义丰富的单词表征,给NLP领域带来了根本性突破。

在此之前,最常用的表征方法为one-hot编码,即每个单词会被转换成一个独特的二元向量,且只有一个非零项。这种方法严重地受到了稀疏性的影响,不能用来表示任何带有特定含义的词语。

△ Word2Vec方法中被投射到二维空间中的单词表征

然而,我们可以尝试关注几个周围单词,移除中间单词,并通过在神经网络输入一个中间单词后,预测周围单词,这就是skip-gram模型;或是基于周围单词,进行预测中间单词,即连续词袋模型(CBOW)。当然,这种模型没什么用处,但是事实证明,它可在保留了单词语义结构的前提下,用来生成一个强大且有效的向量表示。

进一步改进

尽管Word2Vec模型的效果超过了许多经典算法,但是仍需要一种能捕获文本长短期顺序依赖关系的解决方法。对于这个问题,第一种解决方法为经典的循环神经网络(Recurrent Neural Networks),它利用数据的时间性质,使用存储在隐含状态中的先前单词信息,有序地将每个单词传输到训练网络中。

△ 循环神经网络示意图

事实证明,这种网络能很好地处理局部依赖关系,但是由于“梯度消失”问题,很难训练出理想效果。

为了解决这个问题,Schmidhuber等人提出了一种新型网络拓扑结构,即长短期记忆模型(Long Short Term Memory)。它通过在网络中引入一种叫做记忆单元的特殊结构来解决该问题。这种复杂机制能有效获取单元间更长期的依赖关系,且不会显著增加参数量。

现有的很多常用结构也是LSTM模型的变体,例如mLSTM模型或GRU模型。这得益于提出了基于自适应简化的记忆单元更新机制,显着减少了所需的参数量。

在计算机视觉领域中,卷积神经网络已经取得了很好的应用,迟早会延伸到自然语言处理研究中。目前,作为一种常用的网络单元,一维卷积已成功应用到多种序列模型问题的处理中,包括语义分割、快速机器翻译和某些序列转换网络中。由于更容易进行并行计算,与循环神经网络相比,一维卷积在训练速度上已提高了一个数量级。

了解常见的NLP问题

有许多任务,涉及到计算机与人类语言之间的交互,这可能对人类来说是一件简单的小事,但是给计算机带来了很大的麻烦。这主要是由语言中细微差异引起的,如讽刺、成语等。

按照复杂程度,下面列出了当前还处于探索阶段的多个NLP领域:

最常见的领域是情绪分析(Sentiment Analysis),这方面也许最为简单。它通常可归结为确定说话者/作者对某个特定主题的态度或情感反应。这种情绪可能是积极的、中性的和消极的。文末的链接1给出了一篇关于使用深度卷积神经网络学习Twitter情绪的经典文章。链接2的一个有趣实验偶然发现,深度循环网络也可用来辨识情绪。

△ 生成对话网络中的多个激活神经元。明显看出,即使进行无监督训练,网络也能分辨出不同情绪类别。

我们可以将这种方法应用到文件分类(Document Classification)中,这是一个普通的分类问题,而不是为每篇文章打几个标签。链接3的论文通过仔细比较算法间差异,得出深度学习也可作为一种文本分类方法的结论。

接下来将要介绍一个真正有挑战的领域——机器翻译(Machine Translation)。这是一个与先前两个任务完全不同的研究领域。我们需要一个预测模型,来输出一个单词序列,而不是一个标签。在序列数据研究中,深度学习理论的加入给这个领域带来了巨大的突破。通过链接4的博文中,你可以了解更多关于循环神经网络在机器翻译中的应用。

我们可能还想要构建一个自动文本摘要(Text Summarization)模型,它需要在保留所有含义的前提下,提取出文本中最重要的部分。这需要一种算法来了解全文,同时能够锁定文章中能代表大部分含义的特定内容。在端到端方法中,可以引入注意力机制(Attention Mechanisms)模块来很好地解决这个问题。

最后一个领域为自动问答(Question Answering),这是一个与人工智能极其相关的研究方向。相关模型不仅需要了解所提出的问题,而且需充分了解文本中的关注点,并准确地知道在何处寻找答案。关于深度学习在自动问答中的详细说明,请查看链接5的相关博文。

△ GNMT英译法的注意力机制示意图。

由于深度学习为各种数据(如文本和图像)提供相应的向量表征,你可以利用不同的数据特性构建出不同模型。

于是,就有了图片问答(Visual Question Answering)研究。这种方式比较简单,你只需要根据给出图像,回答相应问题。这项工作简单到听起来好像一个七岁小孩就能完成,但是深层模型在无监督情况下不能输出任何合理的结果。链接6的文章给出了相关模型的结果和说明。

END

碧茂课堂精彩课程推荐:

1.Cloudera数据分析课;

2.Spark和Hadoop开发员培训;

3.大数据机器学习之推荐系统;

4.Python数据分析与机器学习实战;

详情请关注我们公众号:碧茂大数据-课程产品-碧茂课堂

现在注册互动得海量学币,大量精品课程免费送!

这篇关于自然语言处理中的深度学习发展史和待解难题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识