Merge pull request #191 from Quorafind/master

NLP 发展史
This commit is contained in:
scutan90 2018-11-15 18:50:47 +08:00 committed by GitHub
commit 2f4f1bb36d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 10 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -18,3 +18,7 @@ modify_log---->用来记录修改日志
3. 修改modify内容
4. 修改章节内容,图片路径等
<----shw2018-2018-11-15---->
1. 新增24个基本问题
2. 新增 NLP 发展史

View File

@ -5,10 +5,11 @@
**负责人(排名不分先后):**
xxx研究生-xxxxxx
xxx博士生-xxx
xxx-xxx
深圳乌灵图明科技有限公司-何建宏
**贡献者(排名不分先后):**
内容贡献者可自加信息
何建宏
###########################################################

View File

@ -1,16 +1,58 @@
[TOC]
# 第十六章 NLP
Markdown Revision 1;
Date: 2018/10/29
Editor: 盛泳潘-电子科技大学
Contact: shengyp2011@163.com
```
Markdown Revision 1;
Date: 2018/11/14
Editor: 盛泳潘-电子科技大学;何建宏-学生
Contact: shengyp2011@163.com;Bonopengate@gmail.com
```
## 16.0 NLP 发展史简述
50多年来 NLP 的历史发展可以分为三个浪潮前两波以理性主义和经验主义的形式出现为当前的深度学习浪潮铺平了道路。NLP的深层学习革命的主要支柱是: 1语言嵌入实体的分布式表征2由于嵌入而产生的语义泛化 3自然语言的大跨度深序列建模4能够从低到高表示语言层次的分层网络以及5解决许多联合 NLP 问题的端对端深度学习方法。
### 第一个浪潮:理性主义
在第一个浪潮中NLP的实验持续了很长一段时间可以追溯到20世纪50年代。1950年阿兰·图灵提出了图灵测试以评估计算机表现出与人类无法区分的智能行为的能力。这项测试是基于人类和计算机之间的自然语言对话旨在生成类似人类的反应。1954年George-IBM 实验产出了能够将60多个俄语句子翻译成英语的rrst机器翻译系统。
这些方法是基于这样一种信念即人类思维中的语言知识是由泛型继承提前进行的而这种信念在大约1960年至1980年代后期占据了NLP的大部分研究中的主导地位。这些方法被称为理性主义方法Church 2007。理性主义方法在 NLP 中的主导地位主要是由于诺姆·乔姆斯基Noam Chomsky关于先天语言结构的论点被广泛接受以及他对 N-grams 方法的批评Chomsky 1957。理性主义者一般假设语言的关键部分在出生时就被硬连接到大脑中作为人类遗传遗传的一部分因此他们试图设计手工制作的规则将知识和推理机制纳入智能 NLP 系统。直到20世纪80年代最著名的成功的NLP系统如为模拟 Rogerian psychotherapist 的 ELIZA 系统和为了规则化真实世界信息为规则本体的 MARGIE 系统,都是基于复杂的手写规则。
这一时期恰逢以专家知识工程为特点的早期智能的早期发展即领域专家根据其所掌握的非常狭窄的应用领域的知识设计计算机程序Nilsson 1982; Winston 1993。专家们使用符号逻辑规则设计了这些程序这些规则基于对这些知识的仔细表征和工程。这些以知识为基础的智能系统往往通过检测"Head"或最重要的参数并就每种特殊情况采取特定的解决办法而这在解决狭义问题方面往往是有效的。这些“Head”参数由人类专家预先确定使“tail”参数和案例不受影响。由于缺乏学习能力他们有必要将解决方案推广到新的情况和领域。这一时期的典型方法是专家系统所提供的证据这是一个模拟人类专家决策能力的计算机系统。这种系统旨在通过知识推理来解决复杂的问题Nilsson 1982。第一个专家系统建立于1970年代然后在1980年代推广。使用的主要"算法"是以"if-then-else"为形式的推断规则Jackson 1998。这些智能系统的主要优点是其在进行逻辑推理方面有限能力的透明度和可解释性。像NLP系统如 ELIZA 和 MARGIE ,一般专家系统在早期使用手工制作的专家知识,这往往是有效的狭隘的问题,虽然推理无法处理不确定性,是普遍存在的实际应用。
同样,语音识别研究和系统设计,这又是另一个长期存在的 NLP 和反智能挑战在这个理性主义时代主要基于专家知识工程的范式如elegantly analyzed inChurch and Mercer 1993。在1970年代和1980年代初专家系统的语音识别方法相当流行Reddy 1976; Zue 1985。然而研究人员敏锐地认识到缺乏从数据中学习和处理推理不确定性的能力导致了接下来描述的第二波语音识别、NLP和对于文本的人工智能浪潮也走向失败。
### 第二波浪潮:经验主义
第二波 NLP 浪潮的特点是利用语料库数据以及基于浅层机器学习、统计学等来利用这些数据Manning and Schtze 1999。由于许多自然语言的结构和理论都被贬低或抛弃而倾向于数据驱动的方法这个时代发展的主要方法被称为经验或务实的方法ChurchandMercer 1993;Church 2014。NLP 的一个主要会议甚至被命名为“自然语言处理的经验方法Empirical Methods in Natural Language ProcessingEMNLP最直接地反映了NLP研究人员在那个时代对经验方法的强烈积极情绪。
与理性主义方法相反经验方法认为人类的思维只是从关联、模式识别和泛化的常规操作开始。丰富的感官输入需要使大脑学习自然语言的详细结构。经验主义盛行于1920年至1960年间自1990年以来一直在兴起。NLP的早期经验方法主要是开发生成模型如隐马尔可夫模型 HMM Baum and Petrie 1966 IBM 翻译模型 Brown et al. 1993 和 head-driven parsing 模型Collins 1997以发现大型语料库的规律性。自1990年代后期以来在各种NLP任务中歧视性模式已成为事实上的做法。NLP的典型判别模型和方法包括最大熵模型ratnaparkhi 1997、支持向量机Vapnik 1998、条件随机Lafferty et al. 2001、最大相互信息和最小区分器错误He et al. 2008还有感知器Collins 2002
在这种经验主义时代中、NLP 与同样的智能方法如语音识别和计算机视觉是平行的。这是在明确的证据表明,学习和感知能力对复杂的智能系统至关重要,但在前一波流行的专家系统中却不存在。例如,当 DARPA 开始对自动驾驶提出重大挑战时大多数车辆随后依赖于基于知识的智能智能。正如语音识别和NLP 一样,自主驾驶和计算机视觉研究人员意识到基于知识的范式的局限性,因为机器学习需要进行不确定性处理和泛化能力。
在第二波浪潮中NLP的经验主义和语音识别是基于数据密集型机器学习的我们现在称之为“shallow”因为在下一节中描述的第三波浪潮中数据的多层或“deep”表征通常缺乏抽象结构。在机器学习中在第一次浪潮中研究人员不需要考虑构造精确规则为知识为基础的 NLP 和语音系统。相反他们把重点放在统计模型Bishop 2006; Murphy 2012或作为一个基本引擎的简单的神经网络Bishop 1995。然后他们使用足够的训练数据进行自动学习或“tune调整”系统的参数使它们能够处理不确定性并尝试从一个条件泛化到另一个条件从一个领域泛化到另一个领域。机器学习的关键算法和方法包括EM (期望最大化)、贝叶斯网络、支持向量机、决策树以及神经网络的反向传播算法。
一般来说基于机器学习的NLP、语音和其他智能系统的性能比早期的基于知识的智能系统要好得多。成功的例子包括语音识别 Jelinek 1998 脸部识别 Viola and Jones 2004 实体识别 Fei-Fei and Perona 2005 手写字体识别 Plamondon and Srihari 2000 以及机器翻译 Och 2003
在语音识别方面从20世纪80年代初到2010年前后近30年利用基于 HMM 与高斯混合模型相结合的统计生成模型以及其推广的各种版本Baker et al. 2009ab; Deng and OShaughnessy 2003; Rabiner and Juang 1993的统计生成模式。泛化 HMM 的许多版本都是基于统计和神经网络的隐动态模型Deng 1998; Bridle et al. 1998; Deng and Yu 2007。前者采用 EM 和 switching extended Kalman filter 算法学习模型参数Ma and Deng 2004; Lee et al. 2004后者采用反向传播Picone et al. 1999两者都广泛地利用多个潜在层表示法进行语音分析的生成过程。将这种“深度”生成过程转化为端到端过程的对应方案导致了深度学习的工业化成功Deng et al. 2010 2013; Hinton et al. 2012 ,从而形成了第三波浪潮的驱动力。
### 第三波浪潮:深度学习
在第二波浪潮中开发的 NLP 系统包括语音识别、语言理解和机器翻译表现得比在第一波浪潮时更好鲁棒性更高但它们远远没有达到人的水平而这留下了很多需求。除了少数例外NLP的浅层机器学习模型通常没有足够的容量来吸收大量的训练数据。此外学习算法、方法和基础设施也都不够强大。所有这一切都在几年前发生了变化而这导致了第三波 NLP 浪潮这股浪潮是由深层机器学习或深度学习的新范式推动的Bengio 2009; Deng and Yu 2014; LeCun et al. 2015; Goodfellow et al. 2016
深度学习起源于人工神经网络它可以被看作是受生物神经系统启发的细胞类型的级联模型。随着反向传播算法的出现Rumelhart et al. 198690年代对深度神经网络的训练引起了广泛关注。在没有大量训练数据和没有适当的设计和学习范式的情况下在神经网络训练过程中学习信号随着层次数或更严格的信用分配深度在层层传播时呈指数形式消失使得调整深层神经网络特别是递归的版本的连接权重变得异常艰难。Hinton 等人2006克服了这个问题使用无人监督的预训练模型来进行学习有用的特征探测器。然后通过监督学习进一步训练网络对标记数据进行分类。因此可以学习使用低维表征的方式来学习高维的表征的分布。这项开创性的工作标志着神经网络的复兴。此后提出和发展了各种网络结构包括 Deep Belief 网络Hinton et al.2006、堆积自编码器Vincent et al.2010、深层玻尔兹曼机Hinton and Salakhutdinov 2012、深度卷积神经网络Krizhevsky et al. 2012深层堆积网络 Deng et al. 2012和深层 Q-networks Mnih et al. 2015。深度学习自2010年以来已成功地应用于实际智能领域的实际任务包括语音识别Yu et al. 2010; Hinton et al. 2012图像识别Krizhevsky et al. 2012; He et al. 2016以及 NLP 绝大多数领域。
其中由于微软公司在工业化上的成功以及愈来愈高的准确率等迹象这些2010-2011年语音识别的惊人成功预示着 NLP 的第三波浪潮和人工智能的到来。随着深度学习在语音识别方面取得成功计算机视觉Krizhevsky et al. 2012和机器翻译Bahdanau et al. 2015被类似的深度学习范式所取代。特别是虽然 Bengio 等人在2001的工作在2011年就开发了强大的神经词嵌入技术Bengio et al. 2001但由于大数据的可用性和更快的计算它直到10多年后才被证明在一个大规模和实际有用的规模上才能够实际有用Mikolov et al. 2013。此外许多其他现实世界的NLP应用如图像字幕Karpathy and Fei-Fei 2015; Fang et al. 2015; Gan et al. 2017视觉问题回答Fei-Fei and Perona 2016语音理解系统Mesnil et al. 2013网络搜索Huang et al. 2013b和推荐系统由于深度学习而取得成功此外还有许多非NLP任务包括药物发现和药理学、客户关系管理、推荐系统、手势识别、医学信息、广告投放、医学图像分析、机器人、自动驾驶车辆、纸板和电子游戏例如 Atari Go Poker and the latest DOTA2等。详情请参阅维基上的深度学习领域。
在更多基于文本的应用领域中,机器翻译可能受到深度学习的影响最大。从 NLP 第二波浪潮中发展起来的浅层——统计机器翻译开始看起的话目前在实际应用中最好的机器翻译系统是基于深神经网络的。例如谷歌在2016年9月宣布了其转向神经机器翻译的阶段两个月后微软也发布了类似的声明。Facebook已经进行了大约一年的机器神经网络翻译的转换工作到2017年8月它已经完全将这个系统部署成功。
在口语理解和对话系统领域深度学习也正在产生巨大影响。目前流行的技术以多种方式维护和扩展了第二波时代浪潮中发展起来的统计方法。与经验浅层机器学习方法一样深度学习也是基于数据密集型方法以降低手工制作规则的成本对噪声环境下的语音识别错误和语言理解错误具有很强的鲁棒性并利用决策过程和强化学习的力量来设计对话策略例如Gasic et al. 2017; Dhingra et al. 2017。与早期的方法相比深度神经网络模型和表征方法更强大它们使端到端学习成为可能。然而深度学习也没有解决可解释性和领域泛化问题。
将深度学习应用于 NLP 问题方面的最近的两个重要技术突破是序列到序列学习Sutskevar et al. 2014和注意力机制建模Bahdanau et al. 2015以及最近的 BERT模型Jacob el al.2018 。序列到序列学习引入了一个强大的学习范式,即使用递归神经网络以端到端的方式进行编码和解码。注意力机制建模最初是为了克服编码一个长序列的难度而开发的,后来的持续发展又扩展了它的能力,提供了两个任意序列的高度可塑对齐能力,而其两个可以同时学习神经网络参数。而 BERT 则是实现了双向建模获取以得到更好的语言表征能力。序列到序列学习和注意力机制的关键概念在基于统计学习和词局部表征的最佳系统上提高了基于分布式单词嵌入的神经机器翻译的性能,而 BERT 更重要的意义是双向获取同一文段的高维意义。在这一成功之后这些概念也被成功地应用到许多其他与NLP相关的任务中如图像字幕Karpathy and Fei-Fei 2015; Devlin et al. 2015、语音识别Chorowski et al. 2015、一次性学习、句法分析、唇读、文本理解、摘要以及问答系统等。撇开他们巨大的经验成功不谈基于神经网络的深度学习模型往往比早期浪潮中的传统机器学习模型更简单、更容易设计。在许多应用中在端到端的任务中模型的所有部分都同时进行深度学习从特征抽取到预测。导致神经网络模型相对简单的另一个因素是相同的模型构建成的块即不同类型的层通常在许多不同的应用中使用。为多种任务使用相同的构建块这种方法使得模型更容易迁移到其它任务和数据上。此外谷歌等公司还开发了软件工具包以便更快、更有效地实现这些模型。由于以上这些原因神经网络在数据量大而且基于云的方式上是更常用的。
尽管深度学习在重塑语音、图像和视频的处理方面被证明是有效的,而且具有它的革命性,但在将深度学习与基于文本的 NLP 相结合方面的有效性冰不那么明确,尽管它在一些实用的 NLP 任务中取得了经验上的成功。在语音、图像和视频处理中,深度学习通过直接从原始数据学习规律来解决语义差距问题。然而,在 NLP 中,人们提出了更强的理论和结构化模型,即语音、语法和语义,来提取理解和生成自然语言的基本机制,这些机制与神经网络不那么容易兼容。与语音、图像和视频信号相比,从文本数据中学习的神经表征可以对自然语言提供同样直接的见解,但是这个也不够直接。因此,将神经网络,特别是那些具有复杂层次结构的神经网络应用于 NLP已成为 NLP 和深度学习社区中最活跃的领域近年来取得了非常显著的进展Deng 2016; Manning and Socher 2017;Jacob el al.2018)。
## 16.1 如何理解序列到序列模型?
## 16.2 序列到序列模型有什么限制吗?
@ -58,4 +100,3 @@
## 16.23 NLP 和元学习?元学习如何能够和 NLP 结合起来?
## 16.24 能说一下各自领域最常用且常见的基准模型有哪些吗?