一、系列初衷和NLP前景

1.本系列设计的初衷

本系列的初衷:

  • 培养合格的NLP/AI人才
    目前,NLP的人才市场仍然存在大量的缺口。
  • NLP是目前AI领域中最为火热的方向
    2010年开始,AI变得很火,深度学习推动了AI飞速的发展。自然语言处理近几年变得异常火爆,其爆发(2015年)晚于CV(2012年)。虽然起步相比CV晚了几年,但它的势头非常强劲,而且预计在未来2-3年内仍然保持这种势头。
  • 当前还没有特别体系化、细节的NLP系列
  • 深度学习之前的技术
  • 基于深度学习的方法论
  • NLP近几年发展特别快,知识迭代更新迅速
  • BERT

同时,自然语言处理处于高速发展时期,几乎呈指数级增长

中文NLP相关进展 nlp发展前景_自然语言处理

 

人工智能分为三大领域,计算机视觉(CV),自然语言处理(NLP)以及语音识别。计算机视觉主要处理并分析图片、视频等视觉相关的数据;自然语言处理则分析文本类数据。从这个角度,只要有文本数据的地方就有NLP技术的需求。目前,即便在金融科技领域也有着大量对文本分析的需求,比如通过阅读新闻、研报来分析市场的舆情,或者做事件的分析。

过去几年,可以看到一个明显的趋势是:文本数据在指数级增长。这其实离不开移动互联网所带来的数据暴增。可以想象一下,我们每天使用的社交软件如微信、抖音所承载的文本数据量有多大。文本数据的剧增必然会伴随着行业对文本分析需求的急速增加,随着而来的是对于NLP人才的需求。

同时对于初学者来说,NLP是一个较快的AI的入门选择和发展方向,同时门槛比CV更低。

2.NLP岗位待遇

目前从市场行情来看,NLP工程师的薪资还是非常理想的。这些薪资数据可以通过BOSS直聘、拉勾网等国内主流招聘网站中去了解。一位刚毕业的应届生在一线城市从事NLP工程师,一般的起薪也得有15K每个月(按照比较低的标准), 如果是背景好一些的,能力强一些的应届生则可以去争取20K-25K以上的月薪是完全可以的。

即便在AI技术最发达的美国,对于NLP人才的薪资也是居高不下,国外AI人才的薪资你可以通过glassdoor等网站去了解。 总而言之,目前加入NLP行列是没有错的,至少在未来2-3年这个坑仍然会存在,只不过市场对人才的要求也会变得越来越高。 所以,越早进入这个行业,优势越大

3.如何学习NLP

中文NLP相关进展 nlp发展前景_nlp_02

 

可以看到,对于AI方向,机器学习是必备的基础;

数据结构与算法可以提升效率;

同时需要选择一个具体的方向进行系统学习,例如CV、NLP;

除此之外,还要有一定的编程基础;

在入门一个方向之后,需要沿着一个技术路线或应用场景深入,深入到某一个领域,直到掌握某一个方面的细节,努力养成T字型人才;

要有良好的论文阅读能力,包括英文文献的阅读能力。

学习本身的最大成本是时间,系列力求做到self-contained, 只需要学习这门课就足以成为一名合格的NLP工程师。其他所需要具备的能力如数学、数据结构与算法等方面的内容也穿插在了整个系列体系中,所以建议边学边把这些要点做回顾和总结。

至于还需要阅读哪些书籍?我的观点是不太需要。一方面,书籍里的内容容易过时;另外一方面,书里的知识点过于“太多”,导致花费的时间成本多,但相反收获未必很多。 可以围绕着系列来学习,并同时阅读一些网上的博客、论文等方式来配合系列中的内容,这也是我在学习过程中发现最有效的。

如果非要推荐书,会推荐这样的两本,实在很经典,虽然跟NLP并没有直接关系。 一本是Kevin Murphy写的 "Machine Learning: A probabilistic perspective", 主要围绕机器学习内容。我们需要知道不管从事NLP还是CV, 机器学习是最重要的基础,对机器学习的理解决定了我们能在AI技术上走多远。 另外一本书是Boyd写的"Convex Optimization"。 优化理论是AI的核心,对于模型的训练过程你其实可以理解为是对这个模型优化的过程,从而找到最优的参数。背后起到作用的实际上是各类优化算法。把这两本书放在书柜上也会显得你真专业!

二、什么是自然语言处理

1.什么是自然语言处理

自然语言处理的三个概念:

  • 自然语言处理(Natural Language Processing, NLP)
  • 自然语言理解(Natural Language Understanding, NLU)——理解文本中的意思
  • 自然语言生成(Natural Language Generation, NLG0——根据意思生成文本

人类进行交流的3个方式,语音、图像和文本。NLP的主要任务就是理解文本和生成文本,所以有一个公式:

NLP=NLU+NLGNLP=NLU+NLG NLP=NLU+NLG

从NLU到NLG的图示如下:

中文NLP相关进展 nlp发展前景_自然语言处理_03

 

总体来讲,NLP一方面研究如何更好地理解文本背后的意思(NLU),另外一方面则研究如何根据所表达的意思(meaning)来生成文本(NLG)。

2.为什么自然语言处理难

为什么理解文本要比理解图像难:

中文NLP相关进展 nlp发展前景_nlp_04

 

文本有其背后的含义,需要去理解,去揣摩背后隐含的深层含义;

而图像即一般所见即所得,没有太多背后的深层含义。

文本之所以比图像更难理解,是因为文本存在以下几个特点:

  • 一种含义,多种表达方式

我们新推出了一个产品 我们上线了一个新产品 新产品是由我们公司推出的

  • 上面三句话就表达了同一个含义。
  • 一词多义

今天参观了苹果公司 现在正好是苹果季节

  • 一个词语在上下文中表达不同的含义。单看一个词语不能得出其含义,只有结合具体的语境才能理解其含义。BERT模型就实现了捕捉一个词在上下文中的不同含义。

除了技术本身之外,一个工业界的自然语言处理系统通常也会涉及到很多的模块。为了解决一个NLP问题,需要做文本清洗、分词、纠正、特征工程、命名实体识别、分类等一系列“串行操作”,实际上每一次操作都会让错误不断地累加,最终影响系统的性能。 所以在设计NLP系统时,每一个环节至关重要,不能有任何的忽视。

3.从一个简单的机器翻译说起

机器翻译是自然语言处理一个比较重要的应用场景,现在的机器翻译系统已经比较成熟,语法、单词组织和段落组织都比较完善。

早期是基于规则的翻译,即从一个单词翻译到目标语言中的对应单词,同时兼顾到语法;

后来进入到概率统计的方法,包含了传统的方法和深度学习的方法,比如基于生成式的方式搭建机器翻译系统。语料库也在很大程度上推动了机器翻译的发展,通过庞大的语料库训练出更加精准的模型。因为AI模型的可靠性很大程度上源于数据的精准度、数据的质量和数据的体量,通过大量的数据训练出有效的模型。

一个简单的任务如下:

中文NLP相关进展 nlp发展前景_nlp_05

 

基于简单的统计、概率和排除法实现的翻译结果如下:

中文NLP相关进展 nlp发展前景_nlp_06

 

上面的实现方案是基于概率统计的。在翻译的过程中,不断去统计单词出现的概率,从而去总结一套规则出来,并用这个规则去对新的数据做预测,这种方法论就是基于概率统计的方法,现代的AI技术主要是建立在这种方法论之上的。 可能用到的几乎所有的模型和方法均源于概率统计的思路

上面的简单机器翻译示例是逐个单词进行翻译的,依靠的是两种语言之间单词的一一对应关系,但是忽略了语法。

举例如下:

中文NLP相关进展 nlp发展前景_自然语言处理_07

 

语言模型可以起到矫正语法的作用,在机器翻译、文本生成等任务中重要性极高。

三、自然语言处理的应用

自然语言处理有很多应用场景,包括智能问答系统、文本生成、机器翻译等。

1.智能问答系统

应用如下:

中文NLP相关进展 nlp发展前景_数据_08

 

一个问答系统一般会涉及到检索、排序、语义理解、语义相似度匹配等模块。

2.文本生成

中文NLP相关进展 nlp发展前景_自然语言处理_09

 

包括生成报告、营销文案、生成机器翻译结果、生成文本摘要、写文章、写诗等具体应用场景。

3.机器翻译

中文NLP相关进展 nlp发展前景_自然语言处理_10

 

机器翻译系统是一个非常经典的应用场景,用到了生成、概率统计、语义理解等技术。现在的翻译系统的效果也是比较好的。

4.情感分析

中文NLP相关进展 nlp发展前景_机器翻译_11

 

情感分析是自然语言处理中历史悠久、非常重要和经典的一个应用领域,可以看作二分类或三分类问题,可以引申为新闻主题分类、情绪分类、意图分类等。一般情况下,短文本比长文本分类更难,因为长文本包含的信息更多。具体可以用在电商用户满意度、情报、禁品分析、舆情监控、量化投资等细分领域。

5.聊天机器人

中文NLP相关进展 nlp发展前景_机器翻译_12

 

聊天机器人可以实现无人下单等功能。

分为闲聊型和任务导向型机器人:闲聊型用到的是生成式方法,包括seq2seq、Transformer等模型;任务型,偏向使用填槽(Slot Filling)的方式。

搭建聊天机器人也可以使用类似于问答系统的方式,即检索式。

6.虚假新闻检测

中文NLP相关进展 nlp发展前景_机器翻译_13

本质是一个二分类问题,将新闻文本分为真实新闻或虚假新闻两类,类似于情感分析。同时也可以融合社交网络,来提高检测的准确性。

7.文本主题分类

中文NLP相关进展 nlp发展前景_nlp_14

 

新闻网站根据新闻文本对新闻进行分类,然后再对用户进行个性化推荐。

8.信息抽取

 

给定了非结构化数据(包括文本、视频、音频等,不能存入传统的关系型数据库),抽取出关键的信息,形成结构化的数据,存入数据库。每一个字段都可以作为一个特征,并且可以作为知识,让AI进行自学习。

除了以上应用之外,其实还有非常多的应用场景。即便针对于其中一个应用,我们也可以衍生出很多不一样的任务。可以挑选一个自己最感兴趣的主题,自己去深挖。深度挖掘的方法很多,比如去系统性地看这个领域的知识,或者去调研相关的所有的文章。希望在系列结束之际,对某一个领域还是有自己较深的认知,这个还是很有必要的。

四、自然语言处理核心技术

1.自然语言处理技术的三个维度

中文NLP相关进展 nlp发展前景_nlp_15

 

三个维度分别是:

  • 单词Morphology
    单词的含义、词性等。
  • 句子结构Syntax
    基于语言语法剖析句子成分,得到语法树,从而得出句子不同模块之间的关系。
  • 语义Semantic
    理解句子背后的含义。

2.自然语言处理几个关键技术

(1)分词Word Segmentaition

中文NLP相关进展 nlp发展前景_机器翻译_16

 

分词就是给定一个句子,划分成一系列单词。

显然,中文的分词比英文分词更复杂。同时分词已经是最简单的NLP任务,可以作为已经被解决的问题,准确率较高,为上层模块提供服务。

(2)词性分析Part-of-Speech Tagging

中文NLP相关进展 nlp发展前景_nlp_17

词性分析也是非常基础和重要的任务,同时结果可以作为后续特征来进行处理。

(3)语义理解Semantic Understanding

中文NLP相关进展 nlp发展前景_自然语言处理_18

上图是BERT模型。

有了每个单词更好的表示,就可以得到每个句子更好的表示;有了每句话更好的表示,就有了每个文本更好的表示。这是一个递进的过程。NLP的很多价值其实就是语义理解带来的。

(4)命名实体识别Named Entity Recognition

中文NLP相关进展 nlp发展前景_机器翻译_19

实体就是现实生活中存在的一个真实的物体,可以是人、地名、公司名、组织名、时间、职位、产品名等。实体往往承载着重要的信息,对语义理解很重要。需要识别出实体并进行标注。也是聊天机器人、知识图谱等的基础。

(5)依存文法分析Dependency Parsing

中文NLP相关进展 nlp发展前景_数据_20

依存文法分析是语法分析的一个很重要的部分,需要找出句子中各个部分之间的依赖关系,可以发掘一些有价值的信息,同时对后续的任务有很重要的作用。

(6)句法分析Parsing

中文NLP相关进展 nlp发展前景_数据_21

句法分析也是语法分析的一个重要部分,分析出句子的各个成分和结构,从而得到语法树。实际应用场景较少。其价值小于依存文法分析。

上面所涉及到的技术,均可以认为是比较基础的任务,它们的成败极大影响着对后续任务的性能。 比如计划搭建一个医疗领域的知识图谱,那就需要比较强大的命名实体识别技术;比如想更好地分析短文本,那就需要更强大的短文本语义理解模块等等。

3.自然语言处理技术概览

与NLP相关的术语如下: