尽管这些预训练的词嵌入颇具影响力,但它们也有局限:它们仅包含模型第一层的先验知识——网络的其余部分还需要从头开始训练 。此外,使用词嵌入就像利用仅编码图像边缘信息的预训练表征初始化计算机视觉模型:它们在许多任务中都能发挥作用,但是却无法捕捉到可能发挥更大作用的高层次信息 。利用词向量初始化的模型需要从头开始学习,不仅是学习消除歧义,还需要学习从词组成的句子中提取意义 。这是语言理解的核心,需要建模语义组合、一词多义、首语重复、长期依赖、一致性、否定等许多复杂的语言现象 。因此,用这些浅层表示初始化的NLP模型仍然需要大量的训练数据才能获得良好的性能也就不足为奇了 。
NLP中的语言建模
ELMo、、 GPT和BERT等最新进展的核心是一个关键的范式转变:从仅仅初始化模型的第一层到用分层表示对整个模型进行预处理 。如果学习词向量就像仅学习图像的边,那么这些方法就像学习特征的完整层次,从边到形状,再到高级语义概念 。ELMo、、 GPT和BERT等一系列优秀模型为NLP社区带来了自然语言处理中的,这种任务能允许模型学习语言的高级细微差别 。这就类似于允许训练CV模型以学习普遍意义的图像特征 。同时BERT等这一系列优秀模型也证明了语言模型能为下游任务捕获很多与语言相关的属性,例如长期依赖性关系、层级关系和情感语义 。语言建模的最大优势在于,训练数据可以免费从任何文本语料库获取,因此几乎能获得无限的训练数据,进而我们可以直接使用文本数据无监督地训练语言模型,并应用到翻译、信息抽取等任务中 。
一个突出的问题是如何从一个预训练语言模型将信息迁移到下游任务中 。目前主要有两个范式,一是是否将预训练语言模型作为固定的特征提取器,并将其表征作为特征整合到随机初始化的模型中(基于特征的迁移学习);二是是否微调完整的语言模型(基于微调的迁移学习) 。后者在计算机视觉CV中很常用,其中训练时会调整模型的最高层或最高的几层 。由于NLP模型通常更浅,因此相比对应的视觉模型需要不同的微调技术 。
1)基于特征的迁移学习(ELMo)
将训练好的表示作为固定特征用于任务,从词向量、句向量、段向量、文本向量都是这样,ELMo也属于基于特征的迁移学习,但迁移后需要重新计算出输入的表征 。由于本节重点讲解基于语言建模的迁移学习,所以在此只对ELMo模型展开详细描述 。
ELMo( fromModel)的作者认为一个好的需要满足两个条件:
i)能够捕捉到语法和语义信息
ii)能够区分一词多义的情况
ELMo的各个词向量表达依赖于输入句子,主要是基于双向语言模型来学习词向量表达 。有一个N个单词的序列(t1,t2,…,tN),对于某一个单词tk用前向语言模型和后向语言模型分别表达就是p(tk|t1,t2,…,tk-1),p(tk|tk+1,…,tN) 。
句子的前向表示为:
句子的后向表示为:
对于句子s我们需要最大化每个单词的前后向表示的概率:
文章插图
对于整个语料库而言,最终需要优化的函数就是:
D是语料库中的句子数,s表示一个句子,在有些任务中还需要加入正则项 。前向和后向语言模型可以使用LSTM来实现,也可以用来做,有更强的抽取特征的能力 。ELMo采用的是LSTM 。
ELMo完整的架构如下图所示,主要是由char-CNN和双层Bi-LSTM组成 。
i)为每个单词生成一个上下文无关(-)的词向量
? 最左下矩形是单词‘’的向量矩阵表示,图中展示了3个宽度为2的卷积核,4个宽度为3的卷积核, 5个宽度为4的卷积核,共12个卷积,也就生成12个特征图( map) 。(论文中使用的2048个卷积核)
- 上 Unity3D塔防游戏开发——学习笔记
- VS2022迁移VS2019项目遇到的
- 学习笔记:MyBtaisPlus学习文档
- 机器学习——感知机学习方法
- 0基础初学者如何学习Kali渗透测试
- Unity3D The Blacksmith Demo部分内容学习
- 第五版 1 《数学模型》学习笔记 第1章 建立数学模型 第2章 初等模型
- 机器学习肝炎预测模型machine learning for hepatitis
- 二 从零学习游戏服务器开发 最后一战概况
- 六 Spring 源码学习扩展功能 上篇