博舍

自然语言处理与人工智能有着怎样的关系 人工智能应用与自然语言处理的关系

自然语言处理与人工智能有着怎样的关系

(文章来源:DeepSci)要想理解自然语言处理,让我们先来看什么是“自然语言”。通常认为,语言是人类区别其他动物的本质特性。在所有生物中,只有人类才具有语言能力。人类的逻辑思维以语言为形式,绝大部分知识也是以语言文字的形式记载和流传的。

人类自洪荒时代开始,以语音,记号(文字)为载体的信息记录形式,用于个体或集体交流,知识传承。具备复杂语言能力后,人类加快了社会化的发展和知识积累,以跨越时间和个体的集体智慧登上了生物金字塔的顶端。语言、想象力和“八卦”特征,是使智人超越其他物种以及其他人类的“伊甸园禁果”,为人类开启了新的世界。

自然语言的组成部分有:语音、词汇和语法。语音是语言的物质外壳,是最原始形式的语言。而文字,则是记录语言的书写符号系统。用自然语言与计算机进行通信具有明显的实际意义。人们可以用自己最习惯的语言来使用计算机,而不是花大量时间精力去学习各种计算机语言。

从另一个角度,人类希望通过发展NLP来进一步了解人类自身的语言能力和智能机制。实现人机间自然语言通信包括三个步骤:识别、理解、生成。首先是识别,对于计算机来说,这是输入阶段。计算机需要对人类语言(语音)进行识别,语音识别技术是人工智能技术的一大体系。目前语音识别的应用日渐成熟。

比如智能家居,坐在电视机前可以语音遥控想看什么节目。语音识别交互的精准性很重要,比如你想看英剧《神探夏洛克》,可能说成了《神探夏洛特》,那有可能就会被识别成《夏洛特烦恼》。语音识别相对后面两步来说,是目前技术中最成熟的。语音信号对于一种固定的语言来说,单音节的模式类数量相对较少,因此语音识别相对简单,而且已经基本上实现并达到了产品级标准。

难度主要在于后端的基于上下文的语义识别,也就是自然语言理解。当然这个理解的难度对于文本也是一样的,并不一定局限于语音。语音识别?语义识别?傻傻分不清楚。为了更直观地感受语义识别和语音识别的区别,我们可以形象的用人体器官表达。语音技术相当于人的耳朵和嘴巴,负责获取和表达。

语音识别显然就是耳朵的角色。语义技术则相当于人的大脑,负责思考和信息处理。就像你的耳朵非常好使,并不代表你的脑袋聪明。在识别同样的语音后,不同的机器可能会作出不同的反应,这就是机器对于语意理解的区别。类比到人类,比如一个人的能力并不是那么强,并不能代表他的听力有问题,只能说他的处理能力没有那么强,而这往往取决于他的大脑。(责任编辑:fqj)

自然语言处理(NLP)

1.概述1.1问答系统(Questionanswering)

     基于上下文:输入问题和文本,输出答案;如阅读理解

     封闭系统:直接输入问题,输出答案;如聊天机器人

      

1.2迁移学习(Transferlearning)

  定义:先在有大量训练数据的任务上预训练,再迁移至下游任务上继续训练,此时只需少量数据

      

1.3BERT(BidirectionalEncoderRepresentationsfromTransformers)

   定义:是一种基于transformerencoder的双向语言表示模型,同时考虑了前向依赖与后向依赖

       

1.4T5

   定义:一种基于transformer的多任务模型

   

2.迁移学习(TransferLearning)2.1基本概念

   迁移学习优点:

     减少训练时间

     提升预测准确率

     可通过少量数据训练

      

  迁移学习要素:

     (1)迁移器:Transfer

     (2)预训练数据:Pre-traindata

     (3)预训练任务:Pre-trainingtask

     迁移学习流程:

           先在原始数据集上进行预训练,再迁移至具体下游任务上继续训练,进行精调

      

       例如:

               一个训练好的模型可迁移至不同下游任务中,只需在下游任务上使用少量数据继续训练

      

2.2迁移器(Transfer)

   分类:

     基于特征:Feature-based

       基于精调:Fine-Tuning

      

   基于特征:

       定义:将预训练模型的隐藏层参数提取出来,用在新模型中

       例:

         如词嵌入的训练就是一种迁移学习,先通过中心词预测得到词嵌入矩阵,再将其迁移到其他NLP任务中加以使用

         

   基于精调:

     定义:直接用预训练模型,或为预训练模型新增一个输出层,使其适应当前任务

     例:

         通过电影评论训练一个三分类情感分类模型,现在要通过课程评论训练五分类模型

         可通过直接使用之前的模型在新数据集上继续训练,并增加新输出层,以实现五分类的要求,

         

2.3预训练数据(Pre-traindata)

  数据与表现:

      关系:通常训练数据量越大,模型效果越好

         

   标注数据与未标注数据:

      关系:通常标注数据数量较少,未标注数据数量很多

         

   通过无标注数据迁移学习:

      方法:先通过无标注数据预训练模型,再迁移至标注数据上继续训练

         

2.4预训练任务(Pre-traintask)

   自监督学习(Self-supervisedtask):

      方法:构建一种模型结构,使其能自行构建训练集与标签进行训练,无需人工标注数据

       例如:预测下一个词

         

3.常见NLP模型及发展3.1CBOW

   概述:使用固定大小的窗口选择上下文,来预测中心词

      

   缺点:因窗口大小固定,当窗口过小时可能丢失关键信息,且无法处理长距离依赖关系

      

3.2ELMo

   概述:引入RNN结构,使用了双向LSTM,能通过全部上下文信息来预测中心词

      

   优点:解决了固定窗口带来的问题,能够处理长距离依赖

   缺点:没有注意力机制,存在信息丢失与梯度消失问题,无法并行处理数据

3.3GPT

   概述:GPT基于Transformer的Decoder结构,使用了注意力机制,利用前文信息来预测中心词

       

   优点:使用了注意力机制,能够并行处理输出数据提高效率,解决了信息丢失与梯度消失问题

   缺点:只使用前向注意力,只考虑前向依赖而没考虑后向依赖关系

      

3.4BERT

   概述:BERT基于Transformer的Encoder结构,且使用双向注意力,能同时考虑上下文信息

         

   优点:

       使用双向注意力,能同时考虑上下文关系

       Wordstosentences:不仅能预测下一个单词,还能预测下一个句子

       

       预训练:支持自监督训练,可以使用MLM和NSP两种方法进行预训练

          Multi-Mask:随机从句子中选择单词作为中心词让模型预测

           NextSetencePrediction:输入一个句子,让模型预测下一个句子

       

3.5T5

   概述:T5使用了Transformer的Encoder和Decoder结构,是一种多任务模型

         

   优点:

       Text-to-Text:文本到文本,通过在输入文本中指定任务类型,即可通过一个模型实现不同任务功能

         

3.6总结

   

4.BERT4.1基本概念

   定义/概述:

       全称BidirectionalEncoderRepresentationsfromTransformer,即双向Transformer编码表示模型;

       是一个多任务语言表示模型(languagerepresentationmodel);

       主要模型结构是由trasnformer的encoder堆叠而成,主要流程是预训练(pre-training)与精调(fine-tuning)

  结构:

       由输入层、中间层、输出层构成;中间层与输出层同transformerencoder基本一致

       输入层为适应多任务训练而进行了一定改造

      

  特点:

     多层双向transformer

     位置编码

     深度网络结构/大量参数

      

4.2输入层与输出层

  输入层:

       输入格式:为使BERT支持多任务,因此输入格式为[标识符]+句子的结构

       标识符:

           [CLS]:起始符,表示句子的开始

         [SEP]:分隔符,分隔两段文本

       输入层格式:

           词嵌入(TokenEmbneddings):将各单词转换为对应词向量

           段嵌入(SegmentEmbeddings):表明这个词属于哪个句子;在有多文本输入时用于区分

           位置嵌入(PositionEmbeddings):维护各单词间位置关系,由模型训练出;(与Transformer不同,Transformer中是预先设定好的值)

        

  输出层:

       输出格式:对应输入层,会输出对应任务的结果+句子

      

4.3BERT流程4.3.1预训练(Pre-Training)

       定义:可先通过大量语料数据进行无监督的预训练

     方法:

           掩码语言模型(MLM):随机选择单词遮掩作为中心词预测,无需人工标注数据;提升模型理解能力

           下一句子预测(NLP):给出上一句,预测下一句,无需人工标注数据;提升模型预测能力

            

       

4.3.2精调(Fine-Tuning)

  定义:使用预训练好的BERT模型迁移至不同下游任务继续训练,以进行精调

      

  方法:通过改变输入结构,来实现对不同任务的目标

      

5.T5(Text-To-TextTransferTransformer)5.1基本概念

   定义:一种文本到文本模型,将常见的NLP任务全部整合进一个模型中

   常见预训练模型结构比较:

       (1)Encoder-Decoder:即Seq2Seq常用模型,分成Encoder和Decoder两部分,Encoder可用全部信息,Decoder只能用之前的信息;如Transformer

       (2)Languagemodel:只使用Encoder,当前时间步只能看到之前时间步信息;如GPT

       (3)PrefixLM:Encoder和Decoder的融合体,部分Encoder只能能看到之前的信息,而部分Decoder能看到全部信息;如UniLM

       

   T5模型结构:

       基于Encoder-Decoder结构的深层网络模型,网络规模大,参数量极大

       

5.2训练方法5.2.1多任务训练策略(Multi-TaskTrainingStrategy)

   定义:通过使用不同任务的数据集来训练模型

       

   输入输出格式:任务指令+输入文本

       

   数据选择策略(DataTrainingStrategies):

       因为T5是多任务模型,所以需要使用不同数据集进行训练,可以通过以下策略决定各类数据比例:

        (1)等量混合(Equalmixing):即从不同任务数据集中取等量数据用于训练

         (2)等比混合(Examples-proportionalmixing):根据不同任务数据集大小,等比例取数据用于训练,即数据集越大取的训练数据越多

        (3)混合系数混合(Temperaturescaledmixing):设定一个混合系数T,根据其从不同数据集中选择训练数据

       

     

5.2.2预训练+精调

   定义:通过先预训练再精调的方式训练模型

       

   精调方法:

       逐步解冻法(GradualUnfreezing):先将所有隐藏层设为不可训练,再从深至浅依次解冻,使其可以训练

       调整层法(Adapterlayers):增加新的输出层,并进行训练

       

结论:

       使用预训练+精调的训练方法效果比使用多任务训练要好

       更大的模型、更多的训练数据、更长的训练时间,都对最终效果起正面影响

5.3GLUEBenchmark(通用语言理解评估基准)

   定义:国际权威数据集,包含了各类NLP问题的数据集,可用来训练和评价模型效果

       

   包含领域:

       

5.4使用T5实现问答系统

  Transformerencoder:

      

  数据示例:

      

  使用T5实现:

       (1)加载预训练模型

       (2)调整数据格式,使其符合T5的输入格式

       (3)在目标任务上精调模型

       (4)使用最终模型预测结果

      

作业代码:https://github.com/Ogmx/Natural-Language-Processing-Specialization

可将代码与数据下载至本地,使用jupyternotebook打开

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇