一种Bert模型预训练方法、系统及计算机设备技术方案

技术编号:27743493 阅读:17 留言:0更新日期:2021-03-19 13:37
本申请涉及一种Bert模型预训练方法、系统及计算机设备,其中,该Bert模型预训练方法包括:原始数据集获取步骤,用于获取原始数据集;数据集预处理步骤,用于将所述原始数据集经分词处理得到分词数据集,将所述分词数据集经Word2Vec模型训练得到全部词汇的词嵌入矩阵,并将所述词汇根据出现频率进行排序、编码,得到高频词汇、低频词汇及词汇编码;Bert模型预训练步骤,用于冻结所述Bert模型的词嵌入矩阵参数并基于所述全部词汇的词嵌入矩阵训练所述Bert模型后,减小学习率并输入所述词汇编码再次训练所述Bert模型。通过本申请,优化模型参数的收敛,有效防止模型震荡。

【技术实现步骤摘要】
一种Bert模型预训练方法、系统及计算机设备
本申请涉及互联网
,特别是涉及一种Bert模型预训练方法、系统及计算机设备。
技术介绍
随着深度学习技术的崛起,越来越多的预训练模型开始应用于自然语言处理任务中,对模型效果产生了巨大的提升。早期的自然语言预训练使用的是word2vec等词向量方法,将高维稀疏词向量映射到稠密低维向量,以作为后续模型的输入。而随着深度学习的发展,一些更加强大的预训练模型被提出,Bert可看作其中的代表,借助于Bert的强大预训练,在很多任务上都达到了当前最佳效果。自然语言预训练模型除了可以应用于自然语言处理任务中,还能将其应用于其他的序列数据中。如大数据互联网公司中收集到的用户观看点击过的广告或者商品便可以当做类似自然语言数据集来进行处理建模。但是这种数据与自然语言数据集也有一些重要的区别,广告和商品数据的数量通常是非常大的,如互联网上的广告种类一般有百万以上,而电商商品种类可能会更多。而在自然语言数据集中,词汇数量常常只有几万,这导致模型难以处理这种上百万词表(即上百万的商品或者广告),因为过大的词表需要很大的词嵌入矩阵来储存,也即模型需要学习更多的参数,这将导致模型过大参数过多。此外,词表中词汇的出现频率分布通常是长尾分布的,也即小部分词汇出现的频率非常高,而大部分词汇出现的频率非常低,这也导致模型学习更加困难。现有的使用Bert模型预训练大词表数据集的方法一般采用两步预训练:(1)预处理数据集,将所有出现的词汇按频率排序,仅保留出现频率最高的n个词汇,其余的词全部采用词‘“UNK”’(unknown)来进行表示。然后使用word2vec来进行预训练,以得到所有词的词嵌入向量;(2)将word2vec预训练得到的词嵌入矩阵代入Bert模型词嵌入矩阵中进行初始化,然后预训练Bert模型。基于上述预训练方法,在训练word2vec之前直接将频率排名前n之后的词汇设置成相同的一个词“UNK”会损失掉很多词信息,使预处理过程中很多表示不同信息的词均使用了同一个词来进行表示了;另一方面,直接使用word2vec预训练好的词嵌入矩阵来初始化Bert模型词嵌入矩阵并随着Bert模型一起进行训练可能会导致已经训练好词嵌入矩阵学习变差。
技术实现思路
本申请实施例提供了一种Bert模型预训练方法、系统、计算机设备和计算机可读存储介质,优化模型参数的收敛,有效防止模型震荡。第一方面,本申请实施例提供了一种Bert模型预训练方法,包括:原始数据集获取步骤,用于获取原始数据集;数据集预处理步骤,用于将所述原始数据集经分词处理得到分词数据集,将所述分词数据集经Word2Vec模型训练得到全部词汇的词嵌入矩阵,并将所述词汇根据出现频率进行排序、编码,得到高频词汇、低频词汇及词汇编码;Bert模型预训练步骤,用于冻结所述Bert模型的词嵌入矩阵参数并基于所述全部词汇的词嵌入矩阵训练所述Bert模型后,减小学习率并输入所述词汇编码再次训练所述Bert模型。基于上述步骤,Bert模型预训练经过两步实现,且两步中模型输入不同,第一步是输入所述分词数据集中词汇的词向量,即为词嵌入矩阵,来训练Bert模型中非词嵌入矩阵参数;第二步是输入词汇的编码来训练Bert模型词嵌入矩阵参数及非词嵌入矩阵参数,第一步中基于全部词汇的词嵌入矩阵使用了全部词汇的词向量,没有信息损失,且使非词嵌入矩阵参数收敛的更好;第二步中使用更小的学习率训练词嵌入矩阵参数能有效防止模型震荡,进一步使参数收敛的更好。在其中一些实施例中,所述数据集预处理步骤进一步包括:分词数据集获取步骤,用于将所述原始数据集进行分词处理,得到所述分词数据集;词嵌入矩阵获取步骤,用于将所述分词数据集中的全部词汇输入所述Word2Vec模型训练得到所述全部词汇的词嵌入矩阵;词汇排序步骤,用于将所述分词数据集中的全部词汇根据出现频率进行排序,根据一设定阈值N将所述分词数据集中词汇分为频率较高的N个高频词汇及剩余的低频词汇,其中,所述N的取值范围为50000-150000。词汇编码步骤,用于将所述高频词汇根据所述排序进行顺序编码并将所述低频词汇编码为“UNK”,得到所述词汇编码。上述步骤基于所述分词数据集中所有词进行预训练,以防止损失大部分词汇信息。在其中一些实施例中,所述Bert模型预训练步骤进一步包括:部分参数预训练步骤,用于初始化所述Bert模型的词嵌入矩阵的词表大小为N+1,具体的,所述词嵌入矩阵中包括N+1行词向量,冻结所述Bert模型的词嵌入矩阵参数,输入所述全部词汇的词嵌入矩阵中的词向量至所述Bert模型,以训练所述Bert模型中非词嵌入矩阵参数;举例而非限制,如:注意力层参数、前向传播参数、Intermediate层参数。模型参数预训练步骤,用于减小所述Bert模型的学习率,利用所述词向量初始化所述Bert模型的词嵌入矩阵,输入所述词汇编码至所述Bert模型训练所述Bert模型的各层参数。通过上述步骤,通过多步骤预训练解决Bert模型预训练百万级大词表数据集时训练效果差的问题。通过减小模型学习率,以防止模型震荡并学习Bert模型参数。在其中一些实施例中,所述模型参数预训练步骤进一步包括:模型调整步骤,用于减小所述Bert模型的学习率;词嵌入矩阵初始化步骤,用于利用所述词向量初始化所述Bert模型的词嵌入矩阵;模型二次预训练步骤,将所述词汇编码输入所述Bert模型训练各层参数。在其中一些实施例中,所述词嵌入矩阵初始化步骤进一步包括:获取所述词向量中N个所述高频词汇对应的词向量用以初始化所述Bert模型的词嵌入矩阵对应词的词向量;获取所述词向量中所述高频词汇对应的词向量的均值用以初始化所述Bert模型的词嵌入矩阵对应所述“UNK”的词向量。基于上述步骤,基于经Word2Vec模型训练得到的词向量进行Bert模型中词向量的初始化,有效防止过拟合现象。第二方面,本申请实施例提供了一种Bert模型预训练系统,包括:原始数据集获取模块,用于获取原始数据集;数据集预处理模块,用于将所述原始数据集经分词处理得到分词数据集,将所述分词数据集经Word2Vec模型训练得到全部词汇的词嵌入矩阵,并将所述词汇根据出现频率进行进行排序、编码,得到高频词汇、低频词汇及词汇编码;Bert模型预训练模块,用于冻结所述Bert模型的词嵌入矩阵参数并基于所述全部词汇的词嵌入矩阵训练所述Bert模型后,减小学习率并输入所述词汇的编码再次训练所述Bert模型。基于上述模块,Bert模型预训练经过两步实现,且两步中模型输入不同,第一步是输入所述分词数据集中词汇的词向量,即为词嵌入矩阵,来训练Bert模型中非词嵌入矩阵参数;第二步是输入词汇的编码来训练Bert模型词嵌入矩阵参数及非词嵌入矩阵参数,第一步中基于全部词汇的词嵌入矩阵使用了全部词汇的词向量,没有信息损失,且使非词嵌入本文档来自技高网
...

【技术保护点】
1.一种Bert模型预训练方法,其特征在于,包括:/n原始数据集获取步骤,用于获取原始数据集;/n数据集预处理步骤,用于将所述原始数据集经分词处理得到分词数据集,将所述分词数据集经Word2Vec模型训练得到全部词汇的词嵌入矩阵,并将所述词汇根据出现频率进行排序、编码,得到高频词汇、低频词汇及词汇编码;/nBert模型预训练步骤,用于冻结所述Bert模型的词嵌入矩阵参数并基于所述全部词汇的词嵌入矩阵训练所述Bert模型后,减小学习率并输入所述词汇编码再次训练所述Bert模型。/n

【技术特征摘要】
1.一种Bert模型预训练方法,其特征在于,包括:
原始数据集获取步骤,用于获取原始数据集;
数据集预处理步骤,用于将所述原始数据集经分词处理得到分词数据集,将所述分词数据集经Word2Vec模型训练得到全部词汇的词嵌入矩阵,并将所述词汇根据出现频率进行排序、编码,得到高频词汇、低频词汇及词汇编码;
Bert模型预训练步骤,用于冻结所述Bert模型的词嵌入矩阵参数并基于所述全部词汇的词嵌入矩阵训练所述Bert模型后,减小学习率并输入所述词汇编码再次训练所述Bert模型。


2.根据权利要求1所述的Bert模型预训练方法,其特征在于,所述数据集预处理步骤进一步包括:
分词数据集获取步骤,用于将所述原始数据集进行分词处理,得到所述分词数据集;
词嵌入矩阵获取步骤,用于将所述分词数据集中的全部词汇输入所述Word2Vec模型训练得到所述全部词汇的词嵌入矩阵;
词汇排序步骤,用于将所述分词数据集中的全部词汇根据出现频率进行排序,根据一设定阈值N将所述分词数据集中词汇分为频率较高的N个高频词汇及剩余的低频词汇;
词汇编码步骤,用于将所述高频词汇根据所述排序进行顺序编码并将所述低频词汇编码为“UNK”,得到所述词汇编码。


3.根据权利要求1或2所述的Bert模型预训练方法,其特征在于,所述Bert模型预训练步骤进一步包括:
部分参数预训练步骤,用于初始化所述Bert模型的词嵌入矩阵的词表大小为N+1,冻结所述Bert模型的词嵌入矩阵参数,输入所述全部词汇的词嵌入矩阵中的词向量至所述Bert模型,以训练所述Bert模型中非词嵌入矩阵参数;
模型参数预训练步骤,用于减小所述Bert模型的学习率,利用所述词向量初始化所述Bert模型的词嵌入矩阵,输入所述词汇编码至所述Bert模型,以训练所述Bert模型的各层参数。


4.根据权利要求3所述的Bert模型预训练方法,其特征在于,所述模型参数预训练步骤进一步包括:
模型调整步骤,用于减小所述Bert模型的学习率;
词嵌入矩阵初始化步骤,用于利用所述词向量初始化所述Bert模型的词嵌入矩阵;
模型二次预训练步骤,将所述词汇编码输入所述Bert模型训练各层参数。


5.根据权利要求4所述的Bert模型预训练方法,其特征在于,所述词嵌入矩阵初始化步骤进一步包括:
获取所述词向量中N个所述高频词汇对应的词向量用以初始化所述Bert模型的词嵌入矩阵对应词的词向量;
获取所述词向量中所述高频词汇对应的词向量的均值用以初始化所述Be...

【专利技术属性】
技术研发人员:佘璇段少毅
申请(专利权)人:恩亿科北京数据科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1