怎么样可以查资料(怎么查自己的资料)
774
2022-05-30
Bert相关算法介绍
主线
Bert的历史沿革是什么,继承了什么,创新了什么,为什么效果那么好,主要原因是什么
预训练
为什么可以复用
底层特征比较通用、可以复用
为什么还要做fine-tuning?
高层特征任务有相关性
预训练的特点
图像预训练
一方面ImageNet是图像领域里有超多事先标注好训练数据的数据集合,分量足是个很大的优势,量越大训练出的参数越靠谱;
另外一方面因为ImageNet有1000类,类别多,算是通用的图像数据,跟领域没太大关系,所以通用性好
word embedding
神经网络语言模型
NNLM
概念
根据句子里面前面的一系列前导单词预测后面跟哪个单词的概率大小(理论上除了上文之外,也可以引入单词的下文联合起来预测单词出现概率)
方法
单词用onehot编码
乘以矩阵Q
获得向量C(W)
拼接每个单词的C(W)
链接隐含层
接softmax预测应该接哪个单词
Q
包含v行,v代表词典大小
每一行对应的单词的word embedding
Q需要学习
总体看
输入一个词的上文,预测下文
word2vec
分类
CBOW
Continous bag of words model
Skip-gram
Continous skip-gram model
方法
Word2Vec的网络结构其实和NNLM是基本类似的
CBOW
用一个词的上下文,预测中心词
Skip-gram
用一个,预测它的上下文单词
目标
构建word embedding结果
一个单词表达成word embedding后,比较容易找到语义相近的其他词汇
使用Word2Vec或者Glove,通过做语言模型任务,就可以获得每个单词的Word Embedding
效果
提升1-2个点
有什么问题?
多义词问题
因此一个词只对应一行embedding
静态的word embedding
训练好之后每个单词的表达就固定住了,以后使用的时候,不论新句子上下文单词是什么,这个单词的Word Embedding不会跟着上下文场景的变化而改变
如何解决多义词问题?
EMLO
ELMO
名称
Embedding from Language Models
论文题目
Deep contextualized word representation
概念思路
先用语言模型学好一个单词的Word Embedding,此时多义词无法区分,不过这没关系。
实际使用Word Embedding的时候,单词已经具备了特定的上下文了,可以根据上下文单词的语义去调整单词的Word Embedding表示,这样经过调整后的Word Embedding更能表达在这个上下文中的具体含义,自然也就解决了多义词的问题了。
所以ELMO本身是个根据当前上下文对Word Embedding动态调整的思路。
算法思路
第一个阶段是利用语言模型进行预训练;
第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的Word Embedding作为新特征补充到下游任务中。
网络结构
双层双向LSTM
图中左端的前向双层LSTM代表正方向编码器,输入的是从左到右顺序的除了预测单词外Wi的上文Context-before;
右端的逆向双层LSTM代表反方向编码器,输入的是从右到左的逆序的句子下文Context-after;
每个编码器的深度都是两层LSTM叠加。
每个单词都能得到对应的三个Embedding
单词的Word Embedding
第一层LSTM中,对应单词位置的Embedding
句法信息更多
第二层LSTM中,对应单词位置的Embedding
语义信息更多
如何使用
每个单词得到3个Embedding
每个embedding给一个权重a
权重可以学习
特点
Feature-based Pre-Training
提取特征,然后整体整合在一起
是否解决多义词问题?
第一层LSTM编码了很多句法信息,这在这里起到了重要作用
缺点
LSTM抽取特征能力,弱于Transformer
拼接方式双向融合特征的融合能力偏弱
GPT
Generative Pre-Training
生成式的预训练
基于Fine-tuning模式的预训练模型
预训练思路
第一个阶段是利用语言模型进行预训练
第二阶段通过Fine-tuning的模式解决下游任务。
如何用在下游任务
对于分类问题,不用怎么动,加上一个起始和终结符号即可;
对于句子关系判断问题,比如Entailment,两个句子中间再加个分隔符即可;
对文本相似性判断问题,把两个句子顺序颠倒下做出两个输入即可,这是为了告诉模型句子顺序不重要;
对于多项选择问题,则多路输入,每一路把文章和答案选项拼接作为输入即可
与其他方法的区别
与ELMO的区别
用了transformer的结构,而不是LSTM
没有上下文同时预测
仅用上文预测
Bert
几大类语言任务
序列标注
中文分词
词性标注
命名实体识别
分类任务
文本分类
情感计算
句子关系判定
QA等
判断语义关系
生成任务
机器翻译
文本摘要
roberta
更长的时间,更大的batch size,更多的数据进行训练
训练方式发生变化
去掉BERT中的NSP目标(next sentence prediction)
如何选取sentence组合
segment组合
sentence组合
full sentence组合
没有NSP任务等
跨越文档的sentence组合
在更长的句子上进行训练
根据训练数据动态地改变mask的模式
BERT的masking是在预处理时进行的,导致这种Masking是静态的,每个epoch的masking结果一致。原本的BERT为了避免这种情况,把数据复制了十份,然后进行了十种不同的静态masking。这样在40个epochs的训练中,同样masking的数据会在整个训练中出现四次。
RoBERTa中使用Dynamic Masking,只是在序列送入模型中的时候才去进行动态的masking,这样在更大的数据集上或者更多步数的训练上会表现更好
学习链接
https://zhuanlan.zhihu.com/p/49271699
Transformer
https://zhuanlan.zhihu.com/p/37601161
相关基础知识
https://jalammar.github.io/illustrated-transformer/
Jay Alammar可视化地介绍Transformer的博客文章
http://nlp.seas.harvard.edu/2018/04/03/attention.html
哈佛大学NLP研究组写的“The Annotated Transformer. ”
代码原理双管齐下,讲得非常清楚。
附件: Introduction - ZL.pptx 718.07KB 下载次数:1次
AI 机器学习 深度学习 自然语言处理基础
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。