基本信息

编辑推荐
---------------------------基于深度学习的自然语言处理---------------------------
(1)自然语言处理是人工智能领域的一个重要的研究方向,有着巨大的应用需求,但是由于自然语言具有歧义性、动态性和非规范性,同时语言理解通常需要丰富的知识和一定的推理能力,存在极大的挑战。深度学习技术为解决NLP问题提供了一种可能的思路,已成为有效推动自然语言处理技术发展的变革力量。
(2)本书的作者和译者都是国内外NLP领域非常活跃的青年学者,他们关注的方法和技术代表和预示着目前和未来NLP领域的趋势。
(3)本书系统阐述将深度学习技术应用于自然语言处理的方法和技术,深入浅出地介绍了深度学习的基本知识及各种常用的网络结构,并重点介绍了如何使用这些技术处理自然语言。
内容简介
计算机书籍
---------------------------基于深度学习的自然语言处理---------------------------
本书重点介绍了神经网络模型在自然语言处理中的应用。首先介绍有监督的机器学习和前馈神经网络的基本知识,如何将机器学习方法应用在自然语言处理中,以及词向量表示(而不是符号表示)的应用。然后介绍更多专门的神经网络结构,包括一维卷积神经网络、循环神经网络、条件生成模型和基于注意力的模型。最后讨论树形网络、结构化预测以及多任务学习的前景。
---------------------------TensorFlow自然语言处理---------------------------
本书首先介绍NLP和TensorFlow基础知识,然后介绍如何使用Word2vec(包括高级扩展)创建单词嵌入,将单词序列转换为可由深度学习算法访问的向量。关于经典深度学习算法的章节,如卷积神经网络(CNN)和递归神经网络(RNN),展示了句子分类和语言生成等重要的NLP任务。此外还介绍如何将高性能的RNN模型,如长短期记忆(long short memory, LSTM)单元应用于NLP任务,你还将探索神经机器翻译并实现一个神经机器翻译器。
作译者
---------------------------基于深度学习的自然语言处理---------------------------
约阿夫o戈尔德贝格(Yoav Goldberg)
以色列巴伊兰大学计算机科学系高级讲师,曾任Google Research研究员。他于2011年获得本·古里安大学博士学位。他曾经担任EMNLP、EACL等重要国际会议领域主席,在自然语言处理领域发表论文50余篇,并多次获得*佳论文以及杰出论文奖。同时他也是自然语言处理领域*级期刊《Computational Linguistics》的编辑部成员。他的研究方向包括面向自然语言处理的机器学习方法,结构预测,句法与词法分析等。近几年,他专注于神经网络模型,在基于深度学习的自然语言处理方法上作出了重要贡献,同时他也是主流深度学习工具包DyNet的主要研发者之一。
译者和主审简介
车万翔,博士,哈尔滨工业大学教授,博士生导师,斯坦福大学访问学者。研究方向为自然语言处理。在CoNLL、SANCL、SemEal等国际评测获得过冠军。任ACL、COLING、EMNLP等国际会议领域主席。负责研发的语言技术平台(LTP)已被600余家单位共享,并授权给百度、腾讯、华为等公司使用。曾获黑龙江科技进步一等奖、技术发明二等奖;汉王青年创新奖一等奖;钱伟长中文信息处理科学奖等奖项。2017年所主讲的《Python语言程序设计》课程获国家精品在线开放课程。
郭江,博士,毕业于哈尔滨工业大学社会计算与信息检索研究中心,就读期间先后于美国普林斯顿大学以及约翰·霍普金斯大学进行访问研究,现为美国麻省理工学院计算机科学与人工智能实验室博士后研究员。研究领域主要为自然语言处理与机器学习。在人工智能,自然语言处理等领域国际重要会议及期刊(如ACL, EMNLP, AAAI, IJCAI, JAIR等)上发表论文10余篇。
张伟男,哈尔滨工业大学计算机学院社会计算与信息检索研究中心,博士/讲师/硕导。在ACL、AAAI、IJCAI及IEEE TKDE等CCF A类国际会议及国际*级期刊发表论文多篇。中国中文信息学会(CIPS)信息检索专委会委员、青年工作委员会委员,中国人工智能学会(CAAI)青年工作委员会委员。曾获黑龙江省科技进步一等奖、中国人工智能学会*佳青年成果奖、中国人工智能学会"合创杯"第二届全国青年创新创业大赛三等奖。
刘铭,博士,哈尔滨工业大学副教授,博士生导师,美国南加州大学访问学者。研究领域包括文本挖掘、命名实体识别、实体链接等。先后主持国家自然科学基金、中国博士后科学基金特别资助、腾讯-CCF犀牛鸟创意基金等多项基金项目。 在人工智能、数据挖掘、自然语言处理等领域国际期刊和会议上发表论文20余篇(如TKDE、TOIS、IJCAI、ACL、ICDE等)。获黑龙江省科学技术一等奖一项, 获哈尔滨市科技成果一项。
主审:刘挺
刘挺,哈尔滨工业大学教授,社会计算与信息检索研究中心主任,国家"万人计划"科技创新领军人才。多次担任国家863重点项目总体组专家、基金委会评专家。中国计算机学会理事,中国中文信息学会常务理事、社会媒体处理专委会(SMP)主任,曾任国际*级会议ACL、EMNLP领域主席。主要研究方向为人工智能、自然语言处理和社会计算,是国家973课题、国家自然科学基金重点项目负责人。主持研制"语言技术平台LTP"、"大词林"等科研成果被业界广泛使用。曾获国家科技进步二等奖、省科技进步一等奖、钱伟长中文信息处理科学技术一等奖等。
---------------------------TensorFlow自然语言处理---------------------------
目录
---------------------------基于深度学习的自然语言处理---------------------------
译者序
前言
致谢
第1章引言
11自然语言处理的挑战
12神经网络和深度学习
13自然语言处理中的深度学习
14本书的覆盖面和组织结构
15本书未覆盖的内容
16术语
17数学符号
注释
第一部分有监督分类与前馈神经网络
第2章学习基础与线性模型
译者序
---------------------------基于深度学习的自然语言处理---------------------------
自然语言处理(Natural Language Processing,NLP)主要研究用计算机来处理、理解以及运用人类语言(又称自然语言)的各种理论和方法,属于人工智能领域的一个重要研究方向,是计算机科学与语言学的交叉学科,又常被称为计算语言学。随着互联网的快速发展,网络文本尤其是用户生成的文本呈爆炸性增长,为自然语言处理带来了巨大的应用需求。同时,自然语言处理研究的进步,也为人们更深刻地理解语言的机理和社会的机制提供了一种新的途径,因此具有重要的科学意义。
然而,自然语言具有歧义性、动态性和非规范性,同时语言理解通常需要丰富的知识和一定的推理能力,这些都给自然语言处理带来了极大的挑战。目前,统计机器学习技术为以上问题提供了一种可行的解决方案,成为研究的主流,该研究领域又被称为统计自然语言处理。一个统计自然语言处理系统通常由两部分组成,即训练数据(也称样本)和统计模型(也称算法)。
但是,传统的机器学习方法在数据获取和模型构建等诸多方面都存在严重的问题。首先,为获得大规模的标注数据,传统方法需要花费大量的人力、物力、财力,雇用语言学专家进行繁琐的标注工作。由于这种方法存在标注代价高、规范性差等问题,很难获得大规模、高质量的人工标注数据,由此带来了严重的数据稀疏问题。其次,在传统的自然语言处理模型中,通常需要人工设计模型所需要的特征以及特征组合。这种人工设计特征的方式,需要开发人员对所面对的问题有深刻的理解和丰富的经验,这会消耗大量的人力和时间,即便如此也往往很难获得有效的特征。
近年来,如火如荼的深度学习技术为这两方面的问题提供了一种可能的解决思路,有效推动了自然语言处理技术的发展。深度学习一般是指建立在含有多层非线性变换的神经网络结构之上,对数据的表示进行抽象和学习的一系列机器学习算法。该方法已对语音识别、图像处理等领域的进步起到了极大的推动作用,同时也引起了自然语言处理领域学者的广泛关注。
深度学习主要为自然语言处理的研究带来了两方面的变化:一方面是使用统一的分布式(低维、稠密、连续)向量表示不同粒度的语言单元,如词、短语、句子和篇章等;另一方面是使用循环、卷积、递归等神经网络模型对不同的语言单元向量进行组合,获得更大语言单元的表示。除了不同粒度的单语语言单元外,不同种类的语言甚至不同模态(语言、图像等)的数据都可以通过类似的组合方式表示在相同的语义向量空间中,然后通过在向量空间中的运算来实现分类、推理、生成等各种任务并应用于各种相关的任务之中。
虽然将深度学习技术应用于自然语言处理的研究目前非常热门,但是市面上还没有一本书系统地阐述这方面的研究进展,初学者往往通过学习一些在线课程(如斯坦福的CS224N课程)来掌握相关的内容。本书恰好弥补了这一不足,深入浅出地介绍了深度学习的基本知识及各种常用的网络结构,并重点介绍了如何使用这些技术处理自然语言。
本书的作者Yoav Goldberg现就职于以色列巴伊兰大学,是自然语言处理领域一位非常活跃的青年学者。Goldberg博士期间的主要研究方向为依存句法分析,随着深度学习的兴起,他也将研究兴趣转移至此,并成功地将该技术应用于依存句法分析等任务。与此同时,他在理论上对词嵌入和传统矩阵分解方法的对比分析也具有广泛的影响力。另外,他还是DyNet深度学习库的主要开发者之一。可见,无论在理论上还是实践上,他对深度学习以及自然语言处理都具有非常深的造诣。这些都为本书的写作奠定了良好的基础。
由于基于深度学习的自然语言处理是一个非常活跃的研究领域,新的理论和技术层出不穷,因此本书很难涵盖所有的最新技术。不过,本书基本涵盖了目前已经被证明非常有效的技术。关于这方面的进展,读者可以参阅自然语言处理领域最新的论文。
我们要感谢对本书的翻译有所襄助的老师和学生。本书由哈尔滨工业大学的车万翔、郭江、张伟男、刘铭四位老师主译,刘挺教授主审。侯宇泰、姜天文、李家琦、覃立波、宋皓宇、滕德川、王宇轩、向政鹏、张杨子、郑桂东、朱海潮、朱庆福等对本书部分内容的初译做了很多工作,机械工业出版社华章公司策划编辑朱劼和姚蕾在本书的整个翻译过程中提供了许多帮助,在此一并予以衷心感谢。
译文虽经多次修改和校对,但由于译者的水平有限,加之时间仓促,疏漏及错误在所难免,我们真诚地希望读者不吝赐教,不胜感激。
车万翔
2017年10月于哈尔滨工业大学
前言
---------------------------基于深度学习的自然语言处理---------------------------
自然语言处理(Natural Language Processing,NLP)这一术语指的是对人类语言进行自动的计算处理。它包括两类算法:将人类产生的文本作为输入;产生看上去很自然的文本作为输出。由于人类产生的文本每年都在不停增加,同时人们期望使用人类的语言与计算机进行交流,因此人们对该类算法的需求在不断增加。然而,由于人类语言固有的歧义、不断变化以及病态性(not well defined),导致自然语言处理极具挑战性。
自然语言本质上是符号化的,因此人们最开始也尝试使用符号化的方式处理语言,即基于逻辑、规则以及本体的方法。然而,自然语言具有很强的歧义性和可变性,这就需要使用统计的方法。事实上,如今自然语言处理的主流方法都是基于统计机器学习(Statistical Machine Learning)的。过去十几年,核心的NLP技术都是以有监督学习的线性模型为主导,核心算法如感知机、线性支持向量机、逻辑回归等都是在非常高维和稀疏的特征向量上进行训练的。
2014年左右,该领域开始看到一些从基于稀疏向量的线性模型向基于稠密向量的非线性神经网络模型(Nonlinear Neural Network Model)切换的成功案例。一些神经网络技术是线性模型的简单推广,可用于替代线性分类器。另一些神经网络技术更进一步提出了新的建模方法,这需要改变现有的思维方式。特别是一系列基于循环神经网络(Recurrent Neural Network,RNN)的方法,减轻了对马尔可夫假设的依赖性,这曾普遍用于序列模型中。循环神经网络可以处理任意长度的序列数据,并生成有效的特征抽取器。这些进展导致了语言模型、自动机器翻译以及其他一些应用的突破。
虽然神经网络方法很强大,但是由于各种原因,入门并不容易。本书中,我将试图为自然语言处理的从业者以及刚入门的读者介绍神经网络的基本背景、术语、工具和方法论,帮助他们理解将神经网络用于自然语言处理的原理,并且能够应用于他们自己的工作中。我也希望为机器学习和神经网络的从业者介绍自然语言处理的基本背景、术语、工具以及思维模式,以便他们能有效地处理语言数据。
最后,我希望本书能够作为自然语言处理以及机器学习这两个领域新手的一个较好的入门指导。
目标读者
本书的目标读者应具有计算机或相关领域的技术背景,他们想使用神经网络技术来加速自然语言处理的研究。虽然本书的主要读者是自然语言处理和机器学习领域的研究生,但是我试图(通过介绍一些高级材料)使自然语言处理或者机器学习领域的研究者,甚至对这两个领域都不了解的人也能阅读本书,后者显然需要更加努力。
虽然本书是自包含的,我仍然假设读者具有数学知识,特别是本科水平的概率、代数和微积分以及基本的算法和数据结构知识。有机器学习的先验知识会很有帮助,但这并不是必需的。
本书是对一篇综述文章[Goldberg, 2016]的扩展,内容上进行了重新组织,提供了更宽泛的介绍,涵盖了一些更深入的主题,由于各种原因,这些主题没有在那篇综述文章中提及。本书也包括一些综述文章中没有的,将神经网络用于语言数据的更具体的应用实例。本书试图对那些没有自然语言处理和机器学习背景的读者也能有用,然而综述文章假设他们对这些领域已经具备了一些知识。事实上,熟悉2006年到2014年期间自然语言处理实践的读者,可能发现期刊版本读起来更快并且对于他们的需求组织得更好,这是因为那段时期人们大量使用基于线性模型的机器学习技术。然而,这些读者可能也会愿意阅读关于词嵌入的章节(第10和11章)、使用循环神经网络有条件生成的章节(第17章),以及结构化预测和多任务学习(Multitask Learning,MTL)的章节(第19和20章)。
本书的焦点
本书试图是自包含的,因此将不同的方法在统一的表示和框架下加以表述。然而,本书的主要目的是介绍神经网络(深度学习)的机制及其在语言数据上的应用,而不是深入介绍机器学习理论和自然语言处理技术。如果需要这些内容,建议读者参考外部资源。
类似地,对于那些想开发新的神经网络机制的人,本书不是一个全面的资源(虽然本书可能是一个很好的入门)。确切地讲,本书的目标读者是那些对现有技术感兴趣,并且想将其以创造性的方式应用于他们喜欢的语言处理任务的人。
扩展阅读对神经网络更深入、一般性的讨论以及它们背后的理论、最新的优化方法和其他主题,读者可以参考其他资源。强烈推荐Bengio等人[2016]的书。
对于更友好而且更严密的实用机器学习介绍,强烈推荐Daumé III [2015]的免费书。对于机器学习更理论化的介绍,参见ShalevShwartz和BenDavid [2014]的免费书以及Mohri等人[2012]的教科书。
媒体评论
---------------------------TensorFlow自然语言处理---------------------------
深度学习应用所使用的大部分数据是由自然语言处理(NLP)提供的,而TensorFlow是目前比较重要的深度学习框架。面对当今巨量数据流中众多的非结构化数据,本书详细讲解如何将TensorFlow与NLP二者结合以提供有效的工具,以及如何将这些工具应用于具体的NLP任务。
本书首先介绍NLP和TensorFlow的基础知识,之后讲解如何使用Word2vec及其高级扩展,以便通过创建词嵌入将词序列转换为深度学习算法可用的向量。本书还介绍如何通过卷积神经网络(CNN)和递归神经网络(RNN)等经典深度学习算法执行句子分类和语言生成等重要的NLP任务。你将学习如何在NLP任务中应用高性能的RNN模型(比如长短期记忆单元),还将认识神经机器翻译,并实现一个神经机器翻译器。
通过阅读本书,你将学到:
NLP的核心概念和各种自然语言处理方法
使用TensorFlow函数创建神经网络以完成NLP任务
将海量数据处理成可用于深度学习应用的单词表示
使用CNN和RNN执行句子分类和语言生成
使用最先进的RNN(如长短期记忆)执行复杂的文本生成任务
从头开始编写一个真正的神经机器翻译器
未来的NLP趋势和创新