Open wangqiangneu opened 5 years ago
用discriminator代替BERT中的MLM generator. 具体方法是,用一个small MLM generator把输入x改造成$\hat{x}$ (随机mask 15%,用这个generator生成masked token,有可能恢复原样,有可能跟原始输入不同)。用discriminator去二分类$\hat{x}$中的所有token,是不是原始的输入。训练时generator和discriminator联合学习(word embedding是shared,其他参数不共享)。然后finetuning时,只使用discriminator,不用generator了。
discriminator
BERT
MLM generator
small MLM generator
所有
generator
ELECTRA
GAN
dev set
seed
0.4 GLUE
test set
ensemble
discriminative
sentence-level
简介
用
discriminator
代替BERT
中的MLM generator
. 具体方法是,用一个small MLM generator
把输入x改造成$\hat{x}$ (随机mask 15%,用这个generator生成masked token,有可能恢复原样,有可能跟原始输入不同)。用discriminator
去二分类$\hat{x}$中的所有
token,是不是原始的输入。训练时generator
和discriminator
联合学习(word embedding是shared,其他参数不共享)。然后finetuning时,只使用discriminator
,不用generator
了。ELECTRA
每次从所有token学习ELECTRA
的FLOPS高于BERT
(因为还需要一个generator去构造$\hat{x}$),但是在相同FLOPS条件下ELECTRA
的效果要好很多(可以理解呀,ELECTRA
相当于每个batch的samples更多,gradient应该是更稳定的,学的也就更快了,怀疑ELECTRA
是不是可以用更大的lr去训)ELECTRA
本质是跟CBOW with negative sampling很像,都是根据上下文推断中心词/masked token。但是用二分类正负样本去学,而不是直接学generateELECTRA
虽然形式上像GAN
,都有generator
和discriminator
,但是这里头generator
是MLE训的,不需要discriminator
回传gradient,好训dev set
上的结果,提到finetuning的时候对seed
很敏感,方差在0.4 GLUE
左右,因此很有必要多跑几次取平均。而test set
上的结果,是那个leading borad上,在测试集上只跑一次,而且用了很多刷分的tricks(e.g.ensemble
,以及针对具体任务的调整)论文信息
总结
discriminative
的pre-training目测要大火了discriminator
,但是不要sentence-level
的判断,应该粒度更小一点