零基础入门深度学习(十二):天然语言处理的变迁

课程名称 | 零基础入门深度学习算法

授课讲师 | 周湘阳 百度深度学习技术平台部资深研发工程师安全

01网络

课程介绍机器学习

本课程是百度官方开设的零基础入门深度学习课程,主要面向没有深度学习技术基础或者基础薄弱的同窗,帮助你们在深度学习领域实现从0到1+的跨越。从本课程大纲为:函数

  1. numpy实现神经网络构建和梯度降低算法学习

  2. 深度学习基础知识测试

  3. 计算机视觉领域主要方向的原理、实践优化

  4. 天然语言处理领域主要方向的原理、实践ui

  5. 个性化推荐算法的原理、实践搜索引擎

前面的文章介绍了前三章的内容,今天咱们开启第四章《天然语言处理领域主要方向的原理、实践》的学习。在本文中百度深度学习技术平台部资深研发工程师周湘阳,为你们介绍天然语言处理领域的基本内容。

02

天然语言处理从古至今是如何发展的?

天然语言处理(Natural Language Processing,简称NLP)被誉为人工智能皇冠上的明珠,是计算机科学和人工智能领域的一个重要方向。它主要研究人与计算机之间,使用天然语言进行有效通讯的各类理论和方法。简单来讲,计算机以用户的天然语言形式做为输入,在其内部经过定义的算法进行加工、计算等系列操做后(用以模拟人类对天然语言的理解),再返回用户所指望的结果,如 图1 所示。
 

图1:天然语言处理示意图

天然语言处理是一门融语言学、计算机科学和数学于一体的科学。它不只限于研究语言学,而是研究能高效实现天然语言理解和天然语言生成的计算机系统,特别是其中的软件系统,所以它是计算机科学的一部分。

随着计算机和互联网技术的发展,天然语言处理技术在各领域普遍应用,如 图2 所示。在过去的几个世纪,工业革命用机械解放了人类的双手,在当今的人工智能革命中,计算机将代替人工,处理大规模的天然语言信息。咱们平时经常使用的搜索引擎,新闻推荐,智能音箱等产品,都是以天然语言处理技术为核心的互联网和人工智能产品。

图2:天然语言处理技术在各领域的应用

此外,天然语言处理技术的研究也在突飞猛进变化,每一年投向ACL(Annual Meeting of the Association for Computational Linguistics,计算语言学年会,天然语言处理领域的顶级会议)的论文数成倍增加,天然语言处理的应用效果被不断刷新,有趣的任务和算法更是层出不穷。

本节为您简要介绍天然语言处理的发展历程、主要挑战,以及如何使用飞桨快速完成各项常见的天然语言处理任务。


致命密码:一场关于语言的较量

事实上,人们并不是只在近代才开始研究和处理天然语言,在漫长的历史长河中,对天然语言稳当处理每每决定了战争的胜利或是政权的更迭。

16世纪的英国大陆,英格兰和苏格兰刚刚完成统一,统治者为英格兰女王伊丽莎白一世,苏格兰女王玛丽因被视为威胁而遭到囚禁。玛丽女王和其余苏格兰贵族谋反,这些贵族们经过信件同被囚禁的玛丽女王联络,商量如何营救玛丽女王并推翻伊丽莎白女王的统治。为了能更安全地跟同伙沟通,玛丽使用了一种传统的文字加密形式 - 凯撒密码对她们之间的信件进行加密,如 图3 所示。

图3:凯撒密码

这种密码经过把原文中的每一个字母替换成另一个字符的形式,达到加密手段。然而他们的阴谋活动早在英格兰贵族监控之下,英格兰国务大臣弗朗西斯·沃尔辛厄姆爵士经过统计英文字母的出现频率和玛丽女王密函中的字母频率,找到了破解密码的规律。最终,玛丽和其余贵族在举兵谋反前夕被捕。这是近代西方第一次破译密码,开启了近现代密码学的先河。


天然语言处理的发展历程

天然语言处理有着悠久的发展史,可粗略地分为兴起、符号主义、链接主义和深度学习四个阶段,如 图4 所示:

图4:天然语言处理的发展历程

兴起时期

大多数人认为,天然语言处理的研究兴起于1950年先后。在二战中,破解纳粹德国的恩尼格玛密码成为盟军对抗纳粹的重要战场。通过二战的洗礼,曾经参与过密码破译的香农和图灵等科学家开始思考天然语言处理和计算之间的关系。

图5:恩尼格玛密码机

1948年香农把马尔可夫过程模型(Markov Progress)应用于建模天然语言,并提出把热力学中“熵”(Entropy)的概念扩展到天然语言建模领域。香农相信,天然语言跟其余物理世界的信号同样,是具备统计学规律的,经过统计分析能够帮助咱们更好地理解天然语言。

1950年,艾伦图灵提出著名的图灵测试,标志着人工智能领域的开端。二战后,受到美苏冷战的影响,美国政府开始重视机器自动翻译的研究工做,以便于随时监视苏联最新的科技进展。1954年美国乔治城大学在一项实验中,成功将约60句的俄文自动翻译成英文,被视为机器翻译可行的开端。自此开始的十年间,政府与企业相继投入大量的资金,用于机器翻译的研究。

1956年,乔姆斯基(Chomsky)提出了“生成式文法”这一大胆猜测,他假设在客观世界存在一套完备的天然语言生成规律,每一句话都遵照这套规律而生成。总结出这个客观规律,人们就掌握了天然语言的奥秘。今后,天然语言的研究就被分为了以语言学为基础的符号主义学派,以及以几率统计为基础的链接主义学派。

符号主义时期

在天然语言处理发展的兴起阶段,大量的研究工做都聚焦从语言学角度,分析天然语言的词法、句法等结构信息,并经过总结这些结构之间的规则,达处处理和使用天然语言的目的。这一时期的表明人物就是乔姆斯基和他提出的“生成式文法”。1966年,彻底基于规则的对话机器人ELIZA在MIT人工智能实验室诞生了,如 图6 所示。

图6:基于规则的聊天机器人ELIZA


然而同年,ALPAC(Automatic Language Processing Advisory Committee,自动语言处理顾问委员会)提出的一项报告中提出,十年来的机器翻译研究进度缓慢、未达预期。该项报告发布后,机器翻译和天然语言的研究资金大为减缩,天然语言处理和人工智能的研究进入寒冰期。

链接主义时期

1980年,因为计算机技术的发展和算力的提高,我的计算机能够处理更加复杂的计算任务,天然语言处理研究得以复苏,研究人员开始使用统计机器学习方法处理天然语言任务。

起初研究人员尝试使用浅层神经网络,结合少许标注数据的方式训练模型,虽然取得了必定的效果,可是仍然没法让大部分人满意。后来研究者开始使用人工提取天然语言特征的方式,结合简单的统计机器学习算法解决天然语言问题。其实现方式是基于研究者在不一样领域总结的经验,将天然语言抽象成一组特征,使用这组特征结合少许标注样本,训练各类统计机器学习模型(如支持向量机、决策树、随机森林、几率图模型等),完成不一样的天然语言任务。

因为这种方式基于大量领域专家经验积累(如解决一个情感分析任务,那么一个很重要的特征就是是否有命中情感词表),以及传统计机器学习简单、鲁棒性强的特色,这个时期神经网络技术被大部分人所遗忘。

深度学习时期

从2006年深度神经网络反向传播算法的提出开始,伴随着互联网的爆炸式发展和计算机(特别是GPU)算力的进一步提升,人们再也不依赖语言学知识和有限的标注数据,天然语言处理领域迈入了深度学习时代。

基于互联海量数据,并结合深度神经网络的强大拟合能力,人们能够很是轻松地应对各类天然语言处理问题。愈来愈多的天然语言处理技术趋于成熟并显现出巨大的商业价值,天然语言处理和人工智能领域的发展进入了鼎盛时期。

天然语言处理的发展经历了多个历史阶段的演进,不一样学派之间相互补充促进,共同推进了天然语言处理技术的快速发展。

03

天然语言处理技术面临哪些挑战?

如何让机器像人同样,可以准确理解和使用天然语言?这是当前天然语言处理领域面临的最大挑战。为了解决这一问题,咱们须要从语言学和计算两个角度思考。

语言学角度

天然语言数量多、形态万千,理解天然语言对人来讲自己也是一件复杂的事情,如同义词、情感倾向、歧义性、长文本处理、语言惯性表达等。经过以下几个例子,咱们一同感觉一下。

同义词问题

请问下列词语是否为同义词?(题目来源:四川话和东北话6级模拟考试)

瓜兮兮 和 铁憨憨

嘎嘎 和 肉(you)

磕搀 和 难看

吭呲瘪肚 和 速度慢

情感倾向问题

请问如何正确理解下面两个场景?

场景一:朋友生气了,男友电话道歉

女生:就算你买包我也不会原谅你!

男生:宝贝,放心,我不买,你别生气了。

问:女生会不会生气。

场景二:两我的同宿舍的室友甲和乙对话

甲:钥匙好像没了,你把锁别别

乙:到底没没没

甲:我也不道没没没

乙:要没没你让我别,别别了,别秃鲁了咋整。

问:到底别不别?

歧义性问题

请问如何理解下面三句话?

一行行行行行,一行不行行行不行

来到杨过曾经生活过的地方,小龙女说:“我也想过过过儿过过的生活”

来到儿子等校车的地方,邓超对孙俪说:“我也想等等等等等过的那辆车”

相信大多数人都须要花点脑筋去理解上面的句子,在不一样的上下文中,相同的单词能够具备不一样的含义,这种问题咱们称之为歧义性问题。

对话/篇章等长文本处理问题

在处理长文本(如一篇新闻报道,一段多人对话,甚至于一篇长篇小说)时,须要常常处理各类省略、指代、话题转折和切换等语言学现象,如 图7 所示,都给机器理解天然语言带来了挑战。

图7:多轮对话中的指代和省略

探索天然语言理解的本质问题

研表究明,汉字的顺序并不定一能影阅响读,好比当你看完这句话后,才发这现里的字全是都乱的。

上面这句话从语法角度来讲彻底是错的,可是对大部分人来讲彻底不影响理解,甚至不少人都不会意识到这句话的语法是错的。

计算角度

天然语言技术的发展除了受语言学的制约外,在计算角度也自然存在局限。顾名思义,计算机是计算的机器,现有的计算机都以浮点数为输入和输出,擅长执行加减乘除类计算。天然语言自己并非浮点数,计算机为了能存储和显示天然语言,须要把天然语言中的字符转换为一个固定长度(或者变长)的二进制编码,如 图8 所示。

图8:计算机计算天然语言流程

因为这个编码自己不是数字,对这个编码的计算每每不具有数学和物理含义。例如:把“法国”和“首都”放在一块儿,大多数人首先联想到的内容是“巴黎”。可是若是咱们使用“法国”和“首都”的UTF-8编码去作加减乘除等运算,是没法轻易获取到“巴黎”的UTF-8编码,甚至没法得到一个有效的UTF-8编码。所以,如何让计算机能够有效地计算天然语言,是计算机科学家和工程师面临的巨大挑战。

此外,目前也有研究人员正在关注天然语言处理方法中的社会问题:包括天然语言处理模型中的偏见和歧视、大规模计算对环境和睦候带来的影响、传统工做被取代后,人的失业和再就业问题等。

天然语言处理的常见任务

天然语言处理是是很是复杂的领域,是人工智能中最为困难的问题之一,常见的任务如 图9 所示:


图9:天然语言处理常见任务

  • 词和短语级任务包括切词、词性标注、命名实体识别(如“苹果很好吃”和“苹果很伟大”中的“苹果”哪一个是苹果公司?)、同义词计算(如“好吃”的同义词是什么?)等以词为研究对象的任务。

  • 句子和段落级任务包括文本倾向性分析(如客户说:“大家公司的产品真好用!”是在夸赞仍是在讽刺?)、文本类似度计算(如“我坐高铁去广州”和“我坐火车去广州”是一个意思吗?)等以句子为研究对象的任务。

  • 对话和篇章级任务包括机器阅读理解(如使用医药说明书回答患者的咨询问题)、对话系统(如打造一个24小时在线的AI话务员)等复杂的天然语言处理系统等。

  • 天然语言生成如机器翻译(如“我爱飞桨”的英文是什么?)、机器写做(以AI为题目写一首诗)等天然语言生成任务。

04

如何用飞桨探索天然语言处理

接下来,让咱们一块儿探索几个经典的天然语言处理任务,包括:

  • 计算词语之间的关系(如同义词):word2vec

  • 理解一个天然语言句子:文本分类和类似度计算

  • 计算机写一首诗:天然语言生成-seq2seq模型

通常来讲,使用飞桨完成天然语言处理任务时,均可以遵照一个类似的套路,包括:

  1. 准备数据:准备所须要的数据,将数据处理成神经网络能够计算的形式。

  2. 定义网络:使用飞桨定义出神经网络的结构,包括输入层,中间层(又叫隐层)和输出层,特别的,还须要定义好神经网络的损失函数和优化器,便于网络训练。

  3. 训练网络:将准备好的数据逐个送入神经网络中,进行训练,并在训练中观察网络是否正常收敛。

  4. 评估网络:把训练好的网络保存起来,并使用测试集测试网络的效果,并根据测试效果反复迭代。

思考一下

[1] 你生活中有哪些地方使用了天然语言处理?

[2] 你但愿如何应用天然语言处理?

 

05

获取更多学习资源

本文中,周湘阳老师为你们介绍了天然语言处理概述、发展历程和面临的挑战,而且介绍了天然语言处理领域的常见任务。在后期课程中,将继续为你们带来内容更丰富的课程,帮助学员快速掌握深度学习方法。

【如何学习】

1 如何观看配套视频?如何代码实践?

视频+代码已经发布在AI Studio实践平台上,视频支持PC端/手机端同步观看,也鼓励你们亲手体验运行代码哦。扫码或者打开如下连接:

https://aistudio.baidu.com/aistudio/course/introduce/888

2 学习过程当中,有疑问怎么办?

加入深度学习集训营QQ群:677320960班主任与飞桨研发工程师会在群里进行答疑与学习资料发放。

3 如何学习更多内容?

百度飞桨将经过集训营的形式,继续更新《零基础入门深度学习》课程,由百度深度学习高级研发工程师亲自授课,采用直播+录播+实践+答疑的形式,欢迎关注~

>> 访问 PaddlePaddle 官网,了解更多相关内容

相关文章
相关标签/搜索