首页 >> 大全

NLP迁移学习——迁移学习的概念与方法

2023-11-05 大全 24 作者:考证青年

文章目录 NLP中的词向量 NLP中的语言建模

什么是迁移学习 1.迁移学习的概念

前百度首席科学家、斯坦福教授吴恩达在2016年的NIPS会议上讲到:

未来,真正的人工智能会落在 (无监督学习)和 (强化学习)上,但很明显,目前这两个领域的水平与有监督的深度学习还无法相比,而迁移学习正是一切还没成熟前的一个折中处理方法。事实上,迁移学习会是继监督学习之后,机器学习在产业界取得成功的下一个关键驱动力。

迁移学习的研究来源于一个观测:人类可以将以前学到的知识应用于解决新的问题,从而提高解决问题的效率或取得更好的效果。因此迁移学习被赋予这样一个任务:从以前的任务当中去学习知识或经验,并应用于新的任务当中。换句话说,迁移学习的目的是从一个或源任务( tasks)中抽取知识、经验,然后应用于 一个有相关性的目标领域( )中去。

2.迁移学习的优点

总而言之,迁移学习是一种知识(权重)共享技术,它减少了构建深度学习模型所需的训练数据、计算能力和工程人才的数量。

Ps. 结合CV中的迁移学习,即在大型通用域数据集上()进行预训练(pre-)得到数据集中表 征所有图片的初、中、高级特征,微调(fine-)就是在小型特定域数据集上(如某家淘宝网店自己的商 品图片数据集)对预训练模型进行再训练,组合出更高级、更抽象的特征,从而达到任务定制的效果。

NLP中的词向量

1.什么是词向量、词嵌入

在NLP里,最细粒度的表示就是词语,词语可以组成句子,句子再构成段落、篇章和文档。但是计算机并不认识这些词语,所以我们需要对以词汇为代表的自然语言进行数学上的表征。简单来说,我们需要将词汇转化为计算机可识别的数值形式(词向量),这种转化和表征方式目前主要有两种,一种是传统机器学习中的one-hot编码方式,另一种则是基于神经网络的词嵌入技术。词嵌入是一种将各个单词在预定的向量空间中表示为实值向量的一类技术。每个单词被映射成一个向量(初始随机化),并且这个向量可以通过神经网络的方式来学习更新。

2.词嵌入与one-hot编码的区别 3.如何进行词嵌入

那如何才能将词汇表表征成特征向量形式呢?这需要通过神经网络进行训练,训练得到的网络权重形成的向量就是我们最终需要的词向量。就是最典型的词嵌入技术。作为现代NLP的核心思想和技术之一,有着非常广泛的影响。通常有两种模型,一种是根据上下文来预测中间词的连续词袋模型CBOW(下左图),另一种是根据中间词来预测上下文的skip-gram模型(下右图)。

1)CBOW模型

CBOW模型的应用场景是要根据上下文预测中间词,所以输入便是上下文词,当然原始的单词是无法作为输入的,这里的输入仍然是每个词汇的one-hot向量,输出Y为给定词汇表中每个单词作为目标词的概率。可见CBOW模型结构是一种普通的神经网络结构。主要包括输入层、中间隐藏层和最后的输出层。我们以输入输出样本((w),w)为例对CBOW模型的三个网络层进行简单说明,其中(w)由前后各c个词构成。

CBOW目标函数:

2)skip-gram模型

skip-gram模型的应用场景是要根据中间词预测上下文词,所以输入X是任意单词,输出Y为给定词汇表中每个词作为上下文词的概率。

skip-gram目标函数:

长期以来,词向量一直是自然语言处理的核心表征技术。预训练的词向量给NLP带来了很大的提高。2013年谷歌提出的凭借其效率和易用性在硬件加速慢很多且深度学习模型还没有得到广泛支持的时代得到采用。通过和Glove等算法对大量未标记数据进行预处理的词嵌入被用于初始化神经网络的第一层,其它层随后在特定任务的数据上进行训练。在大多数训练数据有限的任务中,这种方法帮助提高了2到3个百分点。

尽管这些预训练的词嵌入颇具影响力,但它们也有局限:它们仅包含模型第一层的先验知识——网络的其余部分还需要从头开始训练。此外,使用词嵌入就像利用仅编码图像边缘信息的预训练表征初始化计算机视觉模型:它们在许多任务中都能发挥作用,但是却无法捕捉到可能发挥更大作用的高层次信息。利用词向量初始化的模型需要从头开始学习,不仅是学习消除歧义,还需要学习从词组成的句子中提取意义。这是语言理解的核心,需要建模语义组合、一词多义、首语重复、长期依赖、一致性、否定等许多复杂的语言现象。因此,用这些浅层表示初始化的NLP模型仍然需要大量的训练数据才能获得良好的性能也就不足为奇了。

NLP中的语言建模

ELMo、、 GPT和BERT等最新进展的核心是一个关键的范式转变:从仅仅初始化模型的第一层到用分层表示对整个模型进行预处理。如果学习词向量就像仅学习图像的边,那么这些方法就像学习特征的完整层次,从边到形状,再到高级语义概念。ELMo、、 GPT和BERT等一系列优秀模型为NLP社区带来了自然语言处理中的,这种任务能允许模型学习语言的高级细微差别。这就类似于允许训练CV模型以学习普遍意义的图像特征。同时BERT等这一系列优秀模型也证明了语言模型能为下游任务捕获很多与语言相关的属性,例如长期依赖性关系、层级关系和情感语义。 语言建模的最大优势在于,训练数据可以免费从任何文本语料库获取,因此几乎能获得无限的训练数据,进而我们可以直接使用文本数据无监督地训练语言模型,并应用到翻译、信息抽取等任务中。

一个突出的问题是如何从一个预训练语言模型将信息迁移到下游任务中。目前主要有两个范式,一是是否将预训练语言模型作为固定的特征提取器,并将其表征作为特征整合到随机初始化的模型中(基于特征的迁移学习);二是是否微调完整的语言模型(基于微调的迁移学习)。后者在计算机视觉CV中很常用,其中训练时会调整模型的最高层或最高的几层。由于NLP模型通常更浅,因此相比对应的视觉模型需要不同的微调技术。

1)基于特征的迁移学习(ELMo)

将训练好的表示作为固定特征用于任务,从词向量、句向量、段向量、文本向量都是这样,ELMo也属于基于特征的迁移学习,但迁移后需要重新计算出输入的表征。由于本节重点讲解基于语言建模的迁移学习,所以在此只对ELMo模型展开详细描述。

ELMo( from Model)的作者认为一个好的需要满足两个条件:

i)能够捕捉到语法和语义信息

ii)能够区分一词多义的情况

ELMo的各个词向量表达依赖于输入句子,主要是基于双向语言模型来学习词向量表达。有一个N个单词的序列(t1,t2,…,tN),对于某一个单词tk用前向语言模型和后向语言模型分别表达就是p(tk|t1,t2,…,tk-1),p(tk|tk+1,…,tN)。

句子的前向表示为:

句子的后向表示为:

对于句子s我们需要最大化每个单词的前后向表示的概率:

_NLP迁移学习——迁移学习的概念与方法_NLP迁移学习——迁移学习的概念与方法

对于整个语料库而言,最终需要优化的函数就是:

D是语料库中的句子数,s表示一个句子,在有些任务中还需要加入正则项。前向和后向语言模型可以使用LSTM来实现,也可以用来做,有更强的抽取特征的能力。ELMo采用的是LSTM。

ELMo完整的架构如下图所示,主要是由char-CNN和双层Bi-LSTM组成。

i)为每个单词生成一个上下文无关(-)的词向量

• 最左下矩形是单词‘’的向量矩阵表示,图中展示了3个宽度为2的卷积核,4个宽度为3的卷积核, 5个宽度为4的卷积核,共12个卷积,也就生成12个特征图( map)。(论文中使用的2048个卷积核)

• 然后最大池化每个特征图,拼接在一起,生成了一个12维的向量。(论文是2048维)

• 之后又加了两层 , 是为了解决神经网络训练时的衰退问题提出来的。 借鉴了LSTM的思想,类似cell,可以让输入直接传到下一层,有两个门 gate(T) 和carry gate(1-T)。H和T都是非线性变换。

• 经过两层的非线性变换之后,维度还是2048维,论文中使用了线性映射对其降维,最终每个单词的维度是 512维。

经过这一步的处理,每一个单词都会生成一个上下文无关(-)的词向量,并且由于卷积核有类似于n-gram的作用,不同的单词也会产生关系,比如“work”和“works”有相同的部分,char-CNN可以捕捉。

ii)使用双向语言模型生成上下文相关(-)的词向量

• 输入是上一步生成的句子各个单词的-词向量

• 双层的Bi-LSTM,每一层都是双向的LSTM,每一层都会生成词向量。黑绿黄代表三层的词向量。

• ELMo还用到了残差连接,和 一样是为了解决神经网络训练深度不能太深的问题。

经过学习之后,就得到了各层次的word 表示,底层的word 会学到语法信息,上层的word 会学习到语义信息。

现在ELMo已经学到了单词在各层的表示,一般情况下会根据具体的任务学习一个线性组合,把各层的word 组合使用。最简单的使用方法可以只用最上面的一层。一个L层的ELMo其实有2L+1个表示,其中包含输入层(也就是char-CNN的输出向量),2L个前后向LSTM表示,即:

对于某一个具体任务,对这些计算一个线性加权和

ELMo模型优缺点

优点:

缺点:

速度较慢,对每个token编码都要通过LM计算得出。

2)基于微调的迁移学习(ULM-Fit、 GPT、BERT)

基于微调的迁移学习方法主要借鉴于CV,就是在预训练好的模型上加些针对任务的层,再对后几层进行精调。ULM-Fit、 GPT和BERT都属于基于微调的迁移学习方法。下面将分别作出详细介绍:

ULM-Fit模型

是一种有效的NLP迁移学习方法,核心思想是通过精调预训练的语言模型完成其他NLP任务。论文 中所用的语言模型参考了 et al.2017的AWD-LSTM模型,即没有或的三层LSTM模型。 的过程分为三步:

Step 1:- LM pre-train

i)在-103上进行语言模型的预训练;

ii)预训练的语料要求:large & of ;

iii)预训练对小数据集十分有效,之后仅有少量样本就可以使模型泛化。

Step 2: task LM fine-

Step 3: task fine-

ULM-Fit模型优缺点

优点:

对比其他迁移学习方法(ELMo)更适合以下任务:

• 非英语语言,标签训练数据很少

• 只有部分有标签数据的任务

• 没有state-of-the-art模型的新NLP任务

缺点:

对于分类和序列标注任务比较容易迁移,对于复杂任务(问答等)需要新的精调方法。

GPT模型

GPT是一类可迁移到多种NLP任务的,基于的语言模型。它的基本思想同相同,都是尽量再不改变模型结构的情况下将预训练的语言模型应用到各种任务。不同的是, 主张用结构,而中使用的是基于RNN的语言模型。

GPT模型的训练过程分为两步:

GPT模型优缺点

优点:

• 循环神经网络所捕捉到的信息较少,而可以捕捉到更长范围的信息。

• 计算速度比循环神经网络更快,易于并行化。

• 的效果比ELMo和LSTM网络更好

缺点:

对于某些类型的任务需要对输入数据的结构作调整。

BERT模型

BERT的全称是 from ,即双向的,因为是不能获取要预测的信息的。模型的主要创新点都在pre-train方法上,即用了 LM(MLM)和Next 两种方法分别捕捉词语和句子级别的表示。

对比 GPT,BERT是双向的 block连接;就像单向RNN和双向RNN的区别,此外GPT用的是的,BERT用的是的。

对比ELMo,虽然都是“双向”,但目标函数其实是不同的。

ELMo是分别以

作为目标函数,独立训练出两个然后拼接,而BERT则是以

作为目标函数训练LM。

BERT中的由三种求和而成:

其中:

i)Token 是词向量,第一个单词是CLS标志,可以用于之后的分类任务。

ii) 是用来区别两种句子,因为预训练不光做LM还要做以两个句子为输入的分类任务

iii) 和之前论文不一样,不是三角函数而是学习出来的

BERT Pre-

BERT Fine-

分类任务:对于-level的分类任务,BERT直接取第一个CLS token的 state ,加一层权重后预测label probe:

其他预测任务需要进行一些调整,如下图:

BERT模型优缺点

优点:

BERT是截至2018年10月的最新state-of-the-art模型,通过预训练和微调(精调)横扫了11项NLP任务,这就 是其最大的优点了。而且它还用的是,也就是相对RNN更加高效、能捕捉更长距离的依赖。对比之前的预训练模型,BERT捕捉到的才是真正意义上的 信息。

缺点:

BERT作者在文中主要提到的就是MLM预训练时的mask问题:

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了