(now!)NLP发展到Transformer相关及改进模型

2022-03-31 14:39:27 浏览数 (1)

(now!)NLP发展到Transformer相关及改进模型

0. NLP

0.1 发展

https://www.jianshu.com/p/d35a2fd593eb

0.2 训练流程

1. RNN和LSTM

单词的先后顺序会影响句子的意思,RNN擅长捕捉序列关系,不过对于翻译来说,句子间的单词数量不是一一对应的。

1.1 缺点
  • 串行结构,计算速度慢
  • 梯度爆炸和梯度消失
1.2 梯度爆炸和梯度消失问题

见[面试.md]

1.3 LSTM

长短期记忆网络相对于RNN,多了一个遗忘门,会适当删减(筛选)前置特

1.4 存在问题

受限于结构,RNN只能处理N to N1 to NN to 1问题,但是无法处理N to M的问题?

2. Word2Vec和Seq2Seq

Seq2Seq是一个拥有编码器Encoder和解码器Decoder的模型,EncoderDecoder依然是RNN网络,不过在Seq2Seq模型中先由Encoder提取原始句子的意义,再由Decoder将意义转化成对应的语言,依靠意义这一中介,Seq2Seq解决了两端单词数不对等的情况。

意义单元能够存储的信息是有限的,如果一个句子太长,翻译精度就会下降?

3. Attention

3.1 描述

每个阶段我们关注到的内容都有所不同

机器翻译中,

写出每个英文单词时,我们会格外注意其中的一部分汉字

Attention可以从纷繁复杂的输入信息中,找出对当前输出最重要的部分

3.2 工作原理

QQUERY,表示输入信息;KeyValue成对出现,通常原始文本(输入)的信息。通过计算QK之间的相关性,得出不同的K对输出的重要程度,再与对应的V相乘求和,就得到了Q的输出。

3.2.1 例子

以阅读理解为例,Q是问题,KV是原始文本,计算QK的相关性,让我们找到文本中最需要注意的部分,利用V得到答案。

在机器翻译中,Q是翻译结果,K是输入文本,V是对应语义

Seq2Seq的基础结构上,在Decoder生成每个单词时,都有意识的从原始句子中提取生成该单词最重要的信息,摆脱了输入序列的长度限制。

但是在该模型中,RNN需要逐个计算相关性,计算速度太慢了?

4. Self-Attention

只关注输入序列元素之间的关系,通过将输入序列直接转化为Q、K、V,然后在内部进行Attention计算,就能很好捕捉文本的内在联系,对其作出再表示

5. Multi-Head Attention

使用多种变换生成不同的Q、K、V进行运算,再将他们对相关语句的意义的结论综合起来,进一步增强Self-Attention的效果

6. Transformer(Bert GPT)

6.0 简介
6.1 Transformer和CNN对比(图像领域)
  • CNN应用到海量数据后,就会发现其对数据的适配能力不够强;而Transformer对大数据的适配能力很强,可以明显看到随着数据的增加,表现/性能performance不断增加。
  • Transformer每个参数是动态变化的;而CNN学习参数一旦学习完后就固定了fixedTransformer对每张图的参数都是不一样的、随时变化的,就可以有无限的参数空间来做一件事。像CNN中新引入的Dynamic NetworkDynamic convolutionDynamic Relu等概念都是为了把这个参数动态化
6.2 Interest Point和Attention

Attention关注feature彼此之间的相互关系Interest Point(如sift/hog中等)则是可以学到哪些点更突出、更有表达力

思考:这Attention和Interest Point是否可以在学习过程中彼此互补?

6.3 总结
  • dynamicstatic
  • close loopopen loop

7. Bert

机器是如何理解语言的?

就像图像由像素组成,而像素是由RGB数值表示,我们没有办法让机器直接理解语言,需要将它们转换成机器能明白的东西,比如数字组成的向量。

为什么使用向量表示语言?

词语的意义之间是有关联的,距离可以表示词与词直接的关系

如何得到向量?

机器学习的出现让我们不必为一个单词设计向量,而是将收集好的句子、文章等数据交给模型,由它为单词们找到最合适的位置。

7.1 Transformer->Bert

Bert就是帮助我们找到词之间位置关系的模型之一,Bert源于Transformer

既然Encoder可以将语义很好地抽离出来,直接将这部分独立(Bert),也能很好地对语言作出表示。

7.2 Bert的训练

除了结构,人们还为Bert设计了独特的训练方式:

  • 遮挡masked训练,对语料随机覆盖15%的词汇,让Bert去猜这些词汇是什么(完形填空
  • 利用Next Sentence Prediction任务学习句子级别的信息(或者可以理解为上下文是否匹配)

总结:前者可以让Bert更好地依据语境进行预测(完形填空),后者让Bert对上下文关系有更好的理解(阅读理解)

7.3 Bert的应用

在完成不同的NLP任务时,需要将已经训练好的Bert依据任务目标,增加不同功能的输出层联合训练。

  • 文本分类增加了分类器Linear classifier(输入句子,输出类别如欺诈
  • 阅读理解增加了一个全连接层softmax(输入问题和文章,输出答案的位置)

面对不同任务,Bert只需对任务作出微调即可

8. GPT(生成式预训练Transformer)

TransformerEncoder变成了BertDecoder变成了GPT

GPT也是一个预训练语言模型,同样需要面对不同任务进行微调fine tuning

8.1 应用(生成)

next-token prediction

  • 机器翻译、文本摘要等基于原始文本信息的任务
  • 新闻写作等无中生有的生成类任务
  • 学习过大量的音乐数据后,给出一个乐句,GPT-2就能生成一段音乐
  • 使用文本和对应图像的数据进行训练,GPT-3就能依据描述输出图像,哪怕真实世界并不存在的也能生成
8.2 GPT-3(暂未开源)

GPT-3是一个拥有1750亿参数的预训练模型,不需要面对不同的任务再训练,也不需要微调就能直接使用,这就是所谓的零样本学习Zero-Shot Learning

与语言模型相比,GPT-3更接近一个包含知识、语境理解和语言组织能力数据库

8.2.1 强大功能
  • 结构决定了功能,Decoder的输出都基于上一步输出的内容(也就是Bert输出的语义),这时的生成成了GPT最强大的能力,给它一个开头,它就能依据这些这些文字的风格和内容不断续写,甚至可以创作歌词和小说。
  • 进一步训练后,GPT还能跨越语言的壁垒,如音乐生成和根据描述生成图像等

9. ViT(Vision Transformer)

通过将图片切块划分转化为序列作为输入

ViT使用的Transformer没有考虑Transformer对于词在不同位置语义的变化(也就是Transformer更关注图像特征之间的),所以只能用来做分类任务,而图像出现在哪个位置、具体哪些像素属于这个类别,也就是目标检测和分隔仍无法实现,而Swin Transformer解决了这一问题。

10. 迁移学习(Transfer Learning)

  • CNN中前几层都是在提取特征,直到全连接层才进行分类。提取特征的过程很相似,我们可以拿出来直接用,再用苹果与梨的数据训练新的全连接层完成分类。
  • 像这样利用数据、任务和模型间的相似性,将训练好的内容应用到新的任务上,被称为迁移学习。
  • 由于这一过程发生在两个领域间,已有的知识和数据,也就是被迁移的对象被称为源域;被赋予经验的领域被称为目标域。
  • 不是一种模型,更像是一种解题思路
10.1 优点
  • 目标领域的数据太少,需要数据更多的源域的帮助
  • 为了节约训练时间
  • 实现个性化应用individualized
10.2 应用及与预训练模型关系
10.2.1 应用
  • 语料匮乏的小语种之间的翻译
  • 缺乏标注的医疗影像数据识别
  • 面向不同领域快速部署对话系统
10.2.2 预训练模型与迁移学习的关系

预训练模型是迁移学习的一种,就像预先学习了一个指数/技术,然后再把这个知识/技术代入到具体任务中。

TransformerBertGPT这些预训练语言模型,微调后可以完成不同的任务。

11. 提升篇

11.1 模型
  • SGNS/cBow、FastText、ELMo等(词向量)
  • DSSM、DecAtt、ESIM等(问答和匹配)
  • HAN、DPCNN等(分类)
  • BiDAF、DrQA、QANet等(MRC)
  • CoVe、InferSent等(迁移)
  • MM、N-shortest等(分词)
  • Bi-LSTM-CRF等(NER)
  • LDA等主题模型(文本表示)
11.2 训练
  • point-wise、pair-wise和list-wise(匹配、ranking模型)
  • 负采样:从非当前label中选择几个作为负样本加入,作为出现负样本的概率加入到损失函数中
    • 优点
      • 提高训练速度
      • 改进效果(模拟真实环境下噪声情况,让模型鲁棒性更强)
  • NCE(噪声对比估计):通过学习数据样本分布和噪声样本分布的区别,从而发现样本的特性。
    • 作用
      • 解决归一化参数密度估计问题
  • 层级softmax方法(fastText模型),哈夫曼树的构建
  • 不均衡问题的处理
  • KL散度与交叉熵loss函数
11.3 评估指标
  • F1-score
  • PPL
  • MRR
  • MAP

0 人点赞