深度学习、机器学习与NLP的前世今生

随着深度学习的发展,自然语言处理领域的难题也得到了不断突破。

AlphaGo项目的主要负责人David Silver曾说:

深度学习 (DL)+ 强化学习 (RL) = 人工智能 (AI)

目前深度学习自然语言处理上主要有哪些应用?在工程实践中是否会有哪些瓶颈?

以下内容是根据达观数据联合创始人高翔在《深度学习与文本智能处理》直播的总结。

一、为什么做文本挖掘

什么是NLP?简单来说:NLP的目的是让机器能够理解人类的语言,是人和机器进行交流的技术。它应用在我们生活中,像:智能问答、机器翻译文本分类、文本摘要,这项技术在慢慢影响我们的生活。

NLP的发展历史非常之久,计算机发明之后,就有以机器翻译为开端做早期的NLP尝试,但早期做得不是很成功。直到上个世纪八十年代,大部分自然语言处理系统还是基于人工规则的方式,使用规则引擎或者规则系统来做问答、翻译等功能。

第一次突破是上个世纪九十年代,有了统计机器学习的技术,并且建设了很多优质的语料库之后,统计模型使NLP技术有了较大的革新。接下来的发展基本还是基于这样传统的机器学习的技术。从2006年深度学习开始,包括现在图像上取得非常成功的进步之后,已经对NLP领域领域影响非常大。

达观划分的NLP技术层次

当年,我上小学时有一本书叫《字词句篇与达标训练》,里面讲了字、词、句、篇,我们开始学写字,词是最基础的一级,中文的一个字比英文的一个字母的语义要丰富的多,但表义能力仍然较差。所以中文一般的处理情况都是按照词级别,词级别的分析就有了中文分词、有了命名实体识别这样的层次来做底层处理。

在这个底层处理之上是段落级别,是一句话、一段话、短的文本,对这个级别文本做法又对应了相关的技术,包括:依存文法分析、词位置分析、语义归一化、文本纠错等等功能。但是这个功能也是为它更上级的服务去服务的,达观称之为“篇章”级的应用。

大部分同学平时做比赛、做项目关注的点最多是在“篇章”级的应用,底下这些中文分词等都已经有很好的工具了,不用再从头到尾去开发,只要关心上层的应用,把底下的工具用好,让它产生需要的Feature,来做分类、主题模型、文章建模,这种比较高层次的应用。

所以,要做好NLP,包括达观在内,这三个级别的技术都是自己掌握的。但是如果个人学习使用是有权衡的。某个同学的某一个技术特别好也是OK的,因为现在开源工具,甚至商用工具有很好的效果。如果不要求精度特别高或者有特殊的要求,用这些工具一般是可以达到你的要求。

每个层次的技术都是完全不同的,而且层次间的技术是有联系,一般的联系是底层是为上层服务。

达观数据就是应用这些技术为企业提供文档智能审阅、个性化推荐、垂直搜索等文本挖掘服务。

二、为什么要用深度学习

深度学习的发展与应用要有一定的基础,上个世纪末互联网时代到来已经有大量的数据电子化,我们有海量的文章真是太多了,有这样的数据之后就要去算它,需要算法进步,以前这个数据量规模没法算,或者数据量太大算起来太慢。就算有更好的算法还是算得很慢时,就需要芯片的技术,尤其我们现在用并行计算GPU,这个加速对各种各样的算法尤其深度学习的算法影响速度非常大。

所以一定要有这三个基础——数据、算法、芯片,在这三个核心基础上面做更高级的应用,涉及人的感官——听觉、视觉、语言这三个感官,语音的识别、计算机的视觉、自然语言的处理。

深度学习机器学习

很多同学会把深度学习机器学习划等号。实际上它们不是等号。AI的概念非常大,比如我们用的Knowledge Base知识数据库也是一种AI,它可能没有那么智能。机器学习是AI其中的一小块,而深度学习用又是机器学习中的一小块,我们常见的CNN、RNN都属于深度学习的范畴。同时,达观也做Logistics Regression知识图谱,因为知识图谱是NLP中一个很重要的应用,无论是生成知识图谱,还是用它做像问答等其他应用都是会用到的。

我们为什么要用深度学习?可以比较一下经典机器学习深度学习间的差异。

比如做一个分类的问题,这两个分类问题唯一的区别就是特征工程的区别。我们用经典的机器学习算法是上面这条路,输入数据后大家就开始(包括打比赛也)做各种各样的特征工程。有了这样的特征,我们还要根据TF-IDF、互信息、信息增益等各种各样的方式去算特征值,或对特征进行过滤排序。传统机器学习或经典机器学习90%的时间都会花在特征工程上。

Deep learning颠覆了这个过程,不需要做特征工程需要各种各样的特征,比如需要一些长时间依赖的特征,那可以用RNN、LSTM这些,让它有个序列的依赖;可以用局部的特征,用各种各样的N元语法模型,现在可以用CNN来提取局部的文本特征。

深度学习节省的时间是做特征工程的时间,这也是非常看重深度学习的原因:

第一,特征工程做起来很累。

第二,很多实际场景是挖掘出一个好的特征或者对我们系统贡献很大的特征,往往比选择算法影响还大。用基本的特征,它的算法差距不会特别大,最多也就10个点,主要还是特征工程这块,而深度学习很好的解决了这个问题。

有了深度学习之后,对文本挖掘就有了统一处理的框架,达观把它定义为五个过程:

1、文本数据。

2、预处理。预处理很重要,大家在工作中拿到的数据都是经过清洗过程的,“达观杯”算法大赛的数据是我们帮大家清洗过的。比赛中做到的字、词都是各种各样的ID,是预处理的一部分。

3、有了预处理之后,我们可以选择各种各样的网络

4、后处理,比如业务需要分类,分类最终的结果是通过不通过,这都是后处理的过程。

5、应用,应用的方向有文本分类、情感分析、中文分词、命名实体识别机器翻译

几乎所有任务都可以拿Deep learning来做,它的适应性和它的广度非常好,例如传统的机器学习文本分类需要特定的算法,而这个算法不可能做命名实体识别的事情。

通过Vector Representationns 进行低纬度连续空间的字词表示

深度学习在NLP领域火起来之前,最有代表性的一个研究、对每个人影响最大的工作就是Word2Vec,把一个字、一个词变成向量来表示,这是对我们影响非常大的工作。

这件事情的好处是什么?在之前我们以词为单位,一个词的表示方式几乎都是one hot, one hot序列有一个致命的缺点,你不能计算相似度,所有人算出来都是“0”,都是一样的,距离也都是一样的,因此它不能很好的表示词之间的关系。

过去像威海市、潍坊市、枣庄市这三个城市对计算机来说是完全不一样的东西,而我们使用Word2Vec做这件事情有两个好处:

第一,这个词如果有1万维的话,1万维本来存储它就是一个非常稀疏的矩阵、而且很浪费,我们就可以把它变得更小,因为我们的Word2Vec里面一般的向量都在 512以内。这个维度的向量相对1万维来说已经是比较低维的空间,它里面存的是各种的浮点数,这个浮点数看起来这三个向量好像每个都不一样,但是实际去计算,发现这三个向量之间的相似度非常高,一个是相似度可以判断它的相似性,另外是判断它们的距离。

威海、潍坊、枣庄这几个城市在空间上离得非常近,它们的数值也非常近。它对于我们实际工作的好处是增强了我们的泛化能力,这是一个很难做的事情。

第一,有更好的带语义的表示。

第二,有了这样的表示之后可以做语义的计算,包括山东-威海约等于广东-佛山,两个向量之间是约等于的,语义的东西不太好解释,但是人知道这是怎么回事,语义相近就是Word2Vec最大的帮助。

有了表示学习之后,下一步就是常见的各种网络结构,这些都是非常常见的,比如CNN、GRU、RNN、Bi-LSTMLSTM也是一种RNN,Bi-LSTM也是一种LSTM,只不过Bi是双向的LSTM,它可能学到前后上下文的特征和语义。GRU的好处是比LSTM这种算法稍微简单,所以在层次比较深的时候或者比较复杂的时候,用它这个单元的运算效率会高一点、快一点,但它实际精度可能稍微差一点,所以模型那么多,怎么来选是很重要的,要根据大家的实践去看看怎么用。

CNN模型原理

CNN是卷积神经网络

这张图中间的九宫格就是个卷积格,每个数字相当于一个过滤器。它做的事情对一个图像来说,是把九宫格和图像中对应的矩阵相乘,乘出来一个结果,得到卷积之后它就开始平移,平移的步长是可选择的,一般我们都是一步一步平移过去。

它这样的好处是什么?对于图像来说,1个像素真的代表不了什么东西,那9个像素是不是有意义?是有意义的,它可能学到像直线、弯曲等特征,很简单的图形特点,然后它会得到一层。

为什么叫深度学习?我们这只是一层,它在CNN里面尤其图像识别网络,大家都听过“大力出奇迹”,网络越深效果越好,因为它经过一层一层的学习,可以把每一层的特征进行浓缩。简单的像素没有任何的表义能力,到第一层浓缩之后它有一些点线的能力,再往上浓缩可能就有弧线的能力,再往上浓缩它越来越复杂,可以做到把一个像素这个没有意义的东西变成有意义的东西,可以它可以看成是一层层的过滤,选出最好的特征结果,这是卷积的原理。卷积不仅仅在图像里,在文本里用得也非常好。

RNN和LSTM

简单来说LSTM就是单元格换了一个更复杂的RNN,它可以做到RNN做不到的事情。为什么叫长短期记忆网络?看下面这张图,它比传统的RNN多了一个所谓的细胞状态,我翻译成“细胞”,一般也叫“cell”。它多了一个存储长期信息的“cell”状态。

我们看一下第一张图,它是怎么来做长期记忆的更新?看输入Ht-1和Xt,Ht-1是上一个时刻这个cell隐状态的输出,Xt是当前输入,它们两个通过这个函数计算后的输出是0-1之间的某一个值。第一步,决定上个时刻细胞状态留下的比率是多少。

第二步,来了一些新的信息,不能只是把老的细胞状态更新,还要把新的信息添进去,通过这两个公式来添,第一个公式输出0-1的系数,第二个公式要选出量是多少。有了第一步和第二步之后就开始第三步细胞状态更新,第一步的输出0-1和Ct-1相乘决定上一时刻这个细胞状态留下多少。第二步算出来系数和信息量相乘决定留下多少新增信息,然后把上一步剩下的和这一步新增的加起来,做一个更新,这个更新就是现的cell状态值。

现在单元的状态更新完了,下一步就要输出,这个输出有两个:第一个,对外是一样,还是隐层的输出Ht,这个输出和前面讲的RNN隐层输出是一样的,只是多了一步内部更新。决定留下多少老的信息,决定留下多少新的信息,再把老的信息和新的信息加起来就是最终的结果。

长短期记忆网络可以把很长很远的语义通过Ct把信息记下来,而RNN本来就很擅长记忆这种比较近的信息,所以LSTM长短信息都能记下来,对后面特征的选择、模型的输出选择有很大的帮助。

三、深度学习的具体应用

1、one to one。图像分类:对于我们来说,图像就是二维矩阵,就是像素XY坐标的矩阵,输入之后经过神经网络的处理输出蓝色,这是分类问题

2、one to many。图像描述。最早看到这个应用觉得很神奇,一个图像进来了,它告诉我图像上有一个狗、一个猫站在车旁边,这就是一个图像描述的过程,它可以把图像变成很多输出,这就是one to many的问题。

3、many to one。输入的是一个序列,文字等都是这样一个序列,这个序列输出之后做文本分类、情感分析,它最终都给出来这样一个结果,它们都属于“多到一”的过程。

4.many to many。这有两张图,它们的区别是:第一张图红色输入的时候没有蓝色的输出,而是等第三个红色输入的时候蓝色开始输出,它是一个异步的序列到序列的问题,异步到一个序列问题常见的例子就是机器翻译机器翻译是看到很多上下文才能决定开始怎么翻译,不能光看到China就翻译成中国,因为英文的表述和中文表述顺序有时候不同,需要看到上下文之后再去翻译。但是有异步就有同步,我们写代码经常异步和同步问题,其实这边也一样,序列到序列的同步关系就是我们经常见的,所有选手应该都知道的序列标注问题。序列标注问题的上面就是各种各样的应用。

本次讲的是文本,所以我着重会讲many to one和many to many的过程。

文本分类

“达观杯”算法大赛很多同学在用传统的方式,包括baseline来做,很多人吐槽baseline好像有点高。但是我们没有做特殊优化,这是最基础的版本,做出来很高说明传统的机器学习还是非常好的,不是Deep learning一统天下。

传统的机器学习,需要构造特征,不同领域定制化程度很高,这个模型A领域用了,B领域几乎要从头再做一遍,没有办法把其他的特征迁移过来很好的使用。某些领域效果很好,某些领域另外一个算法很好,传统机器学习把各种各样的方式做以融合来提升效果。

深度学习则可实现端到端,无需大量特征工程框架的通用性也很好,能满足多领域的需求,并且可以使用费监督语料训练字词向量提升效果。但是为什么有人吐槽Deep learning?因为调参很麻烦,有时改了一下参数好很多,改了一个参数效果又下降了,有的算法能够对此有一定的解释,但不像传统机器学习能够解释得那么好。这两大帮派不能说完全谁战胜了谁,是相融相生的。

TextCNN

它是一个单层的CNN,选择了几种类型的卷积,做一个feature map,然后用max-pooling取得每个map最大的特征作为最终的输出,结构非常简单,大家只要有一点深度学习的知识就可以,但是因为过于简单,而且CNN天生的缺陷是宽度有限,导致它会损失语义的问题。

Deep Pyramin CNN

Deep Pyramin CNN就是深度的CNN, CNN的特点就是结构简单。虽然有block N,但它每个block长得都是一样的,除了第一层,每一层就是一个pooling取一半,剩下是两个等宽度的卷积,输出250维,叠加好几层后就可能学到非常准的语义。

Hierarchical Attention Network

这个模型的优点是非常符合人类的思维。Word级别的时候前面的套路都是一样的,做各种Embedding,在Embedding到下一层次,这个输到下一层sentence级别之前会加一层Attention,让它知道这句话里面哪一个词最重要,这像我们知道一句话中哪个词最重要。

最终输出之前再加个Attention,这个Attenton去学这里面哪些句子最重要的。你可以简单的理解,它把我们输入的那么多文本,也是经过了一层层的过滤,前面是通过卷积的过程,它现在是通过Attention的机制去找。

还有一个特别好的地方是学部分可解释,句子里哪些词最重要,它的蓝颜色就更深,它能找到语义级别哪个语义对分类贡献最大,这是这个网络很好的一点。

包括前面讲的HNN、Deep Pyramin CNN,网上的实现跟论文是有一定差别的。所以大家要注意,我们关注的是它整体的网络结构,并不是每一点的百分之百的还原,我们不是它的复制者,而是它的使用者。所有的网络结构、参数甚至过程,只要大体的思想有了就OK。这两个是many to one在文本分类上用得很多的。

序列标注

序列标注就两个东西:第一个是定义标签体系。我们这边一般最常用BMES,简单一点的IO,复杂一点的BIO,BMES算是一个经典的方法,不多也不少,还有M1、M2、M3更复杂的一般都不太用。

深度学习和传统文本处理方法的结合

传统的CRF用起来效果不错,Deep learning也能够把这个事情做得很好。LSTM可以学习到很长的上下文,而且对识别非常有帮助。实际问题或者工业应用来说,我们要保证它的整体效果和复杂度的情况下,这边Bi-LSTM是一个非常好的方式,也是相对比较成熟的方式。

为什么要加CRF?我对这个模型结构的看待,它是一个深度学习和传统方式非常完美的结合。Bi-LSTM特征工程,CRF做标签的输出。很多同学都试过,用纯的Bi-LSTM去写,最终输出标签之间没有序列依赖的关系。

序列标注特征选择多维度字词向量表示

做这个模型能做什么事情?大家的网络都类似,怎么去PK?

这是非常好的一篇论文,讲到了我们怎么能够把各种各样的level的信息用到,它这边是英文,所以有一个char级别的,先对char,通过RNN、CNN做一个Embedding,学习到char级别上的关系,char级别的关系合并之后是黄颜色那个字符的向量,然后它又把word级别的红颜色的词向量也加进去拼起来,还有两个是灰颜色的,灰颜色的是人工特征。就看大家自己怎么加,这是每个人的智慧。

引入注意力机制来实现生成式摘要

生成式摘要是很难的一个东西,它的训练集标注比我们标分词、标分类难得多,要有一篇文章,人得写出摘要,整理出好多这样的摘要,因为每个人写得不一样,包括评测的方式BLUE等,所以做摘要比较难。但是我们平时可以基于生成式文本的其他小应用。

举个简单的例子,大家爬过一些新闻的网站,那么长的正文一般正文第一段把事情都说清楚了,然后有一个新闻的标题,我们可以用第一段作为输入,标题作为输出,做这样一个简单的通过新闻第一段可以写出新闻标题的功能,其实跟生成摘要的思想是一样的。唯一的差别是它加了注意力的机制,会发现它关注输出的哪些词对语义表达最有用,它会关注有用的信息,解码的时候就可以得到各种各样的序列、各种各样的值,用beam search找到最好的结果。

引入注意机制,以前做不了这个事情,现在我们可以做这个事情。工业中用得比较多的是抽取式的摘要,简单来说就是一篇文章中哪些句子比较重要,把它抽出来就可以了。

四、达观数据文本挖掘的经验和思考

实际工程中需要考虑的因素:

1、长文本阅读的场景和关键难点有哪些?

2、文档结构信息(如段落)丢失时该如何还原?

3、数据的训练量如何,质量和数据量都不行的时候该怎么办?

4、如何构建一个真正面向实用的测评系统?

5、领域知识如何引入到系统中?

6、知识图谱自动化构建方法?

7、深度学习和经典机器学习该如何取舍?

达观在实际工程中运用深度学习挖掘文本的思考:

深度学习优点

1、我们可以用非监督的训练向量来提升它的泛化,主要目标是提升泛化。

2、它有些端到端的方式,可以提供新思路。

3、深度学习能够克服传统模型的缺点,大家用CRF很多,但CFR有时拿不到太远的长的上下文,它比较关注左右邻居的状态,很远的状态对它影响不大。但是有些语义影响很大,比如我们要抽“原告律师”、“被告律师”,“原告刘德华”,然后中间讲了一大堆,“委托律师张学友”,我们能抽取出来他是律师,但是如何知道他是原告律师?一定要看到刘德华前面三个有“原告”两个字,才知道他是原告律师。这时如果用深度学习LSTM的方式可以学到比较远的上下文特征,帮助你解决这个问题。

深度学习缺点

1、 小数据量的情况效果不能保证

2、 调参工作量有时不亚于特征工程

3、 系统要配合客户的部署硬件系统

思考

1、在业务场景下尽量收集并理解数据,分析问题本质,选择合适模型

2、初始阶段可以使用传统机器学习模型快速尝试,再引入深度学习技术

3、疑难问题使用端到端也许会有惊喜

4、关注前沿技术,包括对抗网络、强化学习迁移学习

5、一句话送给大家, “数据决定效果的上限,模型只是逼近上线。”

6、不断尝试,从挫折中总结规律

达观数据
达观数据

达观数据是一家专注于文本智能处理技术的国家高新技术企业,获得2018年度中国人工智能领域最高奖项 “吴文俊人工智能科技奖”,也是本年度上海市唯一获奖企业。达观数据利用先进的自然语言理解、自然语言生成、知识图谱等技术,为大型企业和政府客户提供文本自动抽取、审核、纠错、搜索、推荐、写作等智能软件系统,让计算机代替人工完成业务流程自动化,大幅度提高企业效率。

入门NLP机器学习深度学习
10
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

规则引擎技术

与基于规则的专家系统(rule-based expert system)涵义类似,通常是依据设定好的规则作出决策的引擎。在计算机科学中,基于规则的系统被用作存储和操纵知识的一种方式,以有用的方式解释信息, 它们经常用于人工智能应用和研究。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

阿尔法围棋技术

阿尔法围棋是于2014年开始由英国伦敦Google DeepMind公司开发的人工智能围棋程序。AlphaGo是第一个打败人类职业棋手的计算机程序,也是第一个打败围棋世界冠军的计算机程序,可以说是历史上最强的棋手。 技术上来说,AlphaGo的算法结合了机器学习(machine learning)和树搜索(tree search)技术,并使用了大量的人类、电脑的对弈来进行训练。AlphaGo使用蒙特卡洛树搜索(MCTS:Monte-Carlo Tree Search),以价值网络(value network)和策略网络(policy network)为指导,其中价值网络用于预测游戏的胜利者,策略网络用于选择下一步行动。价值网络和策略网络都是使用深度神经网络技术实现的,神经网络的输入是经过预处理的围棋面板的描述(description of Go board)。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

反比文档频数权重评价方法技术

tf-idf(英语:term frequency–inverse document frequency)是一种用于信息检索与文本挖掘的常用加权技术。tf-idf是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。tf-idf加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了tf-idf以外,互联网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜索结果中出现的顺序。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

文本挖掘技术

文本挖掘有时也被称为文字探勘、文本数据挖掘等,大致相当于文字分析,一般指文本处理过程中产生高质量的信息。高质量的信息通常通过分类和预测来产生,如模式识别。文本挖掘通常涉及输入文本的处理过程,产生结构化数据,并最终评价和解释输出。'高品质'的文本挖掘通常是指某种组合的相关性,新颖性和趣味性。

主题模型技术

主题模型(Topic Model)在机器学习和自然语言处理等领域是用来在一系列文档中发现抽象主题的一种统计模型。直观来讲,如果一篇文章有一个中心思想,那么一些特定词语会更频繁的出现。比方说,如果一篇文章是在讲狗的,那“狗”和“骨头”等词出现的频率会高些。如果一篇文章是在讲猫的,那“猫”和“鱼”等词出现的频率会高些。而有些词例如“这个”、“和”大概在两篇文章中出现的频率会大致相等。但真实的情况是,一篇文章通常包含多种主题,而且每个主题所占比例各不相同。因此,如果一篇文章10%和猫有关,90%和狗有关,那么和狗相关的关键字出现的次数大概会是和猫相关的关键字出现次数的9倍。一个主题模型试图用数学框架来体现文档的这种特点。主题模型自动分析每个文档,统计文档内的词语,根据统计的信息来断定当前文档含有哪些主题,以及每个主题所占的比例各为多少。

信息增益技术

在决策树学习中,信息增益比是信息增益与固有信息的比率。 它被用来通过在选择属性时考虑分支的数量和大小来减少对多值属性的偏见.

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~