关于疫情的一段对话:
中国:我们这边快完了
欧洲:我们这边快完了
中国:我们好多了
欧洲:我们好多了
挑战:
语言理解的四个粒度:
好的表示是实现语言理解的基础:一个好的表示,是要具备通用涵义,并且与具体任务无关,是时又能根据具体任务,提供有用信息
理解是针对任务的理解:字词,关注局部信息;句子篇章,关注文本的全局信息
CBOW:基于临近词(上下文)预测词
Skip-Ngram:基于词预测临近词(上下文)
ELMo:第一个现代的语义理解模型
利用两个LSTM,分别从左到右,从右到左的语言模型建模,实现建模上下文信息的目的。
两层LSTM:从低层到高层,逐个获取不同层次的语言信息,从最低层单词特征,到最高层语文特征
在获取了预训练模型特征以后,如何应用到具体的任务中。
ELMo:采用了 Feature-Based 方式进行应用
加权相加参数 \(a_1、a_2、a_3\) 是可学习的。这是实现动态 Word Embedding 关键所在
ELMo 不仅解决了多义词的问题,而且可以将词性对应起来
ELMo:有什么缺点?
问题1:不完全双向预训练
模型的前向和后向LSTM两个模型是分别训练的,仅在Loss Function阶段进行了结合。
问题2:需进行任务相关网络结构设计(GPT可解决网格设计问题)
每种类型的下游任务都需要进行特定的网络结构设计和搭建
问题3:仅有词向量,无句向量
ELMo在预训练阶段仅学习了语言模型,无句向量学习任务
对BERT的诞生,起到了非常明显的推动作用
Pre-training 作为 下游任务的一部分参与任务学习,大量减少下游任务网络中新增参数的数量。同时,下游任务的网络,相比较预训练网络,也只有少量结构上的变动,这样会节省大量时间
对于分类任务:模型只需要在输入文本上加上起始(Start)和终结(Extract)的符号,并在网络后端新增一个分类器(FC)。
对于句子判断:如语言识别,两个句子中增加分隔符就可以了。
对于文本相似度判断、多项选择:只需要少量改动,就能实现 Fine-Tuning 过程
GPT
优点:带来了明显的效果提升,也极大的简化了任务网络相关的结构
缺点:
单向预训练
预训练阶段仅采用传统单向语言模型作为训练目标
仅有词向量,无句向量
GPT在预训练阶段仅学习了语言模型,无句向量学习任务
Pre-training阶段
Pre-training 目标:
同时训练token-level & sentence-leveltask
Mask-LM task(Mask token)
15% mask概率,在pre-training阶段实现交互式双向
Next-sentence句对预测任务
预测当前句的下一句话
BERT:Pre-training 策略分析
BERT Mast-LM ,Mask 力度是 Token(单个字)
BERT 如何将自己的预训练模型,应用到下游任务?使用了简单粗暴的方式:伪结果论
BERT缺点
BERTmask(sub-word)lm任务存在的问题:
Word哈尔滨;sub-word哈##尔##滨
Sub-word预测可以通过word的局部信息完成
模型缺乏全局建模信息的“动力”
难以学到词、短语、实体的完整语义
将token 力度扩展到了 word 或 entity,使用了百度自建的语义库
ERNIE 在 Fine-tuning 使用了和 BERT 完全一致的方式
2.0 在预训练阶段,引入了更多的预训练任务
如何在学习新知识的同时,不忘旧知识
在预训练阶段,不断进行任务的叠加训练
NLP部分经典任务总览
预训练语言模型在下游任务的优势
预训练模型,不是越大越好
预训练模型,如何达到收敛的状态?一直是一个难以界定的范围,越训越大,很难做到预训练充分的结果。目前常规采取的方式是,让它一直训着,抽取实时对预训练模型中产生的中间模型,进行一个具体任务验证,随时采取一个文本匹配任务进行 Fine-Tuning 验证,如果预训练后期,发现了在很长一段时间内,在这样一个验证的下游任务上,得到的 Fine-Tuning 结果,基本持平,我们就认为这个模型达到了一个收敛的状态,或者说局部收敛的状态,这时候就可以给它停下来了。没有一个特别规范的指标
手机扫一扫
移动阅读更方便
你可能感兴趣的文章