自然语言处理科普——最通俗易懂的语言让你知道现在nlp前沿方向

1、什么是自然语言处理?

自然语言处理(natrual language processing简称nlp)是指计算机理解和生成自然语言的过程。

自然语言处理是一个极大的范畴,从自然语言的形式来看,不管是语音还是文本都是自然语言的范畴,但是我们常说的nlp通常是指文本处理,语音的处理我们往往单独拿出来,当做语音处理这个专门的方向来研究。

从文本的自然语言处理来看,他通常处理的输入可以是一句话,也可以是一段文本,我们希望的输出可以是一个或者几个标签(比如判断一个评价是积极的还是消极的),也可以是生成一段文本(比如聊天机器人,或者语音助手siri)。

2、自然语言处理有哪些应用?

自然语言处理的任务多种多样。
包括词性标注
(比如一句话:李明喜欢吃苹果,词性标注就是标出来李明——名词,喜欢——副词,吃——动词,苹果——名词,当然我们发现中文的词性标注往往还需要先进行分词),
指代消解
(比如一段文章:李明和小张喜欢吃苹果。他们经常去买它。计算机就可以知道第一个他们指的是李明和小张,第二个它指的是苹果。)
知识图谱
(比如给我们一段资料或者论文或者科普文章,我们需要抽象出来他们里面到底讲了那些东西,这些东西直接有什么关系,这样就可以让机器学习新的东西了)
情感计算
(最简单的,判断一句话,一段评论到底是什么样的情感?如何让一句话更有情感一点,而不是冷冰冰的只会说yes和no)
人机对话
(这个就不说了,比如大家都知道的siri,天猫精灵等等,大家也可以关注一下scir的微信对话机器人——笨笨,来玩弄一下他。)
机器翻译
(据说现在google的翻译就是用了他们自己研发的深度学习模型)
等不同的方向。

3、自然语言处理的研究思路是什么?

虽然任务多种多样,但其实本质上都是语言模型+输出处理。(我大言不惭一下,如果说错了可以批评指正)

尤其在google发表了论文《attention IS all you need》、《Bert:Pre-training of Deep Bidirectional Transformers》之后,我们现在处理一个自然语言的任务基本框架都是:预训练+微调参数这种模式。这种方式很重要,现在几乎所有的任务都离不开他。

首先,什么是预训练呢?为什么要预训练呢?

我们可以类比一下,当我们进行英语考试,我们是先经年累月学习大量的英文知识,掌握基本的英文能力,然后再做一下往年题,就可以成功通过考试了。我们谁也不会连英文是什么也不知道,直接狂做这门考试的往年题,这样即使做再多的题目,可能最后得到的分数也是差强人意。

预训练的本质也差不多。我们想要计算机完成一个任务的时候,以机器翻译为例,我们先让他简单学习一下什么叫语言,理解一下一句话里面各个部分之间的联系,这是一种普适性的自然语言学习,即使面对不同的任务(人机对话也好,情感计算也好),都是一样的。这种方式,就叫预训练。

当我们教会计算机什么怎么理解语言之后,就让他针对特定的任务再进行训练(也就是做做往年题),最后就可以让他去预测了(也就是上考场考试)。

这种训练是在google氪金大佬在GPU上进行大量的实验之后,从理论和实践都证实非常有效的方法,比我们针对特定的任务进行特定的模型设计和训练都要有效很多,可以说在各个nlp的任务里面都取得了惊人的成就(刷新了自然语言处理的11项记录)。所以现在我们的主流研究方式就变成了这种pre-train+fine-tuning方式。

至于预训练的模型是什么?预训练的时候找哪些数据?怎么样进行预训练?

这些问题都在google提出的bert模型(论文指路《Bert:Pre-training of Deep Bidirectional Transformers》)里面得到了解决。由于google提出的bert预训练模型比较复杂,参数量很大(约为110M),我们自己再进行预训练效果比他更好的可能性就不太大了(因为成本非常大了,nlp一般参数越多效果越好),所以我们可以直接下载google训练好的模型和参数,然后直接进行微调就OK了(github上就有,搜索bert即可)。

然后就是fine-tuning,也就是微调。微调这个过程也很有意思,毕竟我们知道bert的预训练模型已经非常强大了,现在很多研究人员进行微调之后,发现效果也没啥变化,甚至有可能还不如原来的呢,这就促使我们对于微调的骚操作进行了一系列的探索。

首先就是微调什么?首先微调的基本方式是——我们在bert模型的基础上,改变输入输出,然后把输出的向量输入到任务特定的的模型里面,进行训练得到我们想要的结果。

我们微调参数的时候,可以只调整我们加入的模型的参数,也可以连带bert的参数一起调整,事实证明连带bert的参数一起调整得到的效果往往更好。但是由于bert的参数实在是太多了,我们如果都调整也是一个成本非常大的事情,所以这个时候我们往往选择一些特定的参数,只调整他们,其余的不同。

这样做的理论依据是,bert已经训练的非常好了,即使进行微调,参数的改变也不是太多,所以我们可以根据经验只变动一部分,其余保持不变,来更好的完成任务。当然,也有很多其他的fine-tuning方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值