ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Bert预训练

2022-01-02 22:01:24  阅读:167  来源: 互联网

标签:Bert 函数 训练 遮挡 单词 梯度 句子 向量


Bert模型的目的:

预训练Transformer的encoder网络,从而大幅提高准确率

主要有两个任务:

1、预测被遮挡单词:

随机遮挡一个词或多个词,让encoder根据上下文来预测被遮挡的单词

2、预测下一个句子:

把两个句子放在一起,让encoder判断是否是原文中相邻的两个句子

预测被遮挡单词:

首先输入一句话,然后这句话被分词成了一个个的单词,通过embedding层把每一个单词映射成一个个的词向量x1x2...xt ,最后也输出u1u2....ut这么多向量

具体过程:

假如现在我们遮挡住了cat这个单词

那么我们会用mask标记这个被遮挡的单词,紧接着它就会被embedding层标记为Xm向量,输出记为Um向量,我们知道,Transformer的映射是多对一,所以Um向量会依赖所有的X向量,也就是说它会知道整句话的内容,那么就可以用它来预测被遮挡的单词是什么,将这个Um作为特征向量送入softmax分类器输出一个概率分布p,根据这个p值来判断被遮挡的词是什么

 这里,我们的希望的p值是越接近mask的one-hot编码越好

我们将被遮挡单词的ont-hot向量记为e,将CrossEntropy(e,p)作为损失函数,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数,bert预训练不需要人工标注数据,它用被遮挡的单词作为标签,可以自动生成标签,这样训练数据就可以想要多少就有多少,从而训练出一个很大的模型

预测下一个句子

输入数据:

[ CLS ] 是用于分类的标识符

        [SEP]是用于分割句子的标识符


输入两个句子,中间用【SEP】符号隔开,其中一个句子一定是原文中真实存在的句子,另一个句子则是从训练数据中随机抽取的句子,比如:

[CLS] "calculus is a branch of math"
[SEP] "panda is native to south central china"   

这两句话是真实的原文我们把它标签为true  

[CLS] "calculus is a branch of math"
[SEP]“panda is native to south central china"

这两句话是随机匹配的我们把它标记为false

向量C虽然在CLS的位置上,但它包含的是输入的两句话的全部信息,把C作为特征向量输入分类器Binary,得到一个介于0-1之间的值f,其中,1是代表两句话true,0代表两句话毫无关联,依旧用将CrossEntropy(e,f)作为损失函数,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数

这样作预训练是因为:

相邻的两句话通常有关联,这样作二分类可以强化这种关联,让embedding层包含这种关联,而且encoder层中的self-attention层的作用恰好就是找相关性

bert将上述所讲的这两种任务结合起来训练Transformer,假如有两个单词被遮挡,就需要三个任务,也就是说三个损失函数,第一个损失函数是二分类(判断标签是true还是false),第二三个损失函数就是预测这两个单词,目标函数就是三个损失函数的加和,用反向传播算出损失函数关于模型的梯度,然后作梯度下降来更新模型参数

总结:

预测遮挡单词是一个多分类问题
预测下一个句子是一个二分类问题
合并任务的目标函数就是两个任务的目标函数之和
采用梯度下降方法更新合并任务模型参数
 

bert可以解决哪些nlp中的高级别下游任务?

●判断两句话意思是否相近
●判断两个问题意思是否相近
●蕴含任务

下图表示:Bert模型已经接近甚至超过人类语言理解水平

如何利用Bert:

1、情感分析

 2、词性标注

3、文本蕴含任务

 

4、抽取式问答系统:

 

标签:Bert,函数,训练,遮挡,单词,梯度,句子,向量
来源: https://blog.csdn.net/KK_1657654189/article/details/122204640

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有