UniLM解读
************************************* https://blog.csdn.net/katrina1rani/article/details/110068578 ************************
使用三种特殊的mask的预训练目标,从而使模型可以用于NLG 同时在NLU任务获得和和bert一样的效果。
网络设置
24层transformer 1024个hiddensize 16个attention heads
参数大小为330M
初始化为采用bert-large的参数初始化
采用Gelu的激活函数
dropout比例为0.1
batch size为330
混合训练方式:
对于一个batch,1/3时间采用双向语言模型的目标,1/3的时间采用seqtoseq语言模型目标,最后1/3平均分配给两种单向学习的语言模型,
mask方式:
总体比例为15%,其中80%直接用mask替代,10%随机选择一个词替代,最后10%的情况用真实值。还有80%的情况是每次只mask一个词,20%的情况是mask调bigram或者trigram
attention控制,不同的训练方式,其关注的语境是不一样的
目标函数
单向语言模型 分别采取从左到右和从右到左的训练目标,采用上下三角信息不可见
双向语言模型 将M的值都置为0
序列到序列语言模型 左侧的序列属于编码阶段,右侧的序列属于解码阶段,以T1T2->T3T4T5举例说明,我们的输入就变成[SOS]T1T2[EOS]T3T4T5[EOS],T1和T2相互都能看到,并能看到两边的[SOS]和[EOS];而T4能看到[SOS]、T1、T2、[EOS]、T3及自己的信息。
三大优势
1 三种不同的训练目标,网络参数共享
2 正是因为网络参数共享,使得模型避免了过拟合与某单一的语言模型,使得学习出来的模型更加general,根据有普适性
3 因为适用了seqtoseq的语言模型,使得其在能够完成呢过nlu任务的同时,也能够完成nlg任务