MacBERT:MLM as correction BERT

时间秒杀一切 提交于 2020-09-24 05:59:46

本次分享的论文MacBERT,来自哈工大SCIR实验室,收录于Findings of EMNLP 子刊,全名为Revisiting Pre-Trained Models for Chinese Natural Language Processing,即中文自然语言处理的预训练模型再访

论文地址:Paper

该篇论文主要做了以下三方面的工作:

(1)大量的实证研究,以重新审视中文预训练模型在各种任务上的表现,并进行了细致的分析。

(2)提出了一个新的预训练模型MacBERT,通过用其相似的单词来掩盖单词,从而缩小训练前和微调阶段之间的差距。

(3)为了进一步加快对中文NLP的研究,创建了中文预训练模型系列并发布到社区。


本文章仅针对该论文的第二个工作进行介绍,即介绍预训练模型MacBERT。MacBERT模型保持了与BERT相同的训练前任务,但做了一些修改,具体如下:

1、使用全词掩蔽和N-Gram掩蔽策略来选择候选tokens进行掩蔽,从单字符到4字符的掩蔽百分比为40%、30%、20%、10%。

2、原始BERT模型使用[MASK] token进行掩蔽,但是[MASK] token在微调阶段从未出现,这会造成预训练任务与下游微调任务不一致;因此该论文建议使用类似的单词来掩蔽需要被掩蔽的单词。

类似的单词可以通过同义词工具包(Synonyms)获得,该工具包是基于word2vec相似度计算来获取同义词的。

选择一个N-gram进行掩码时,该论文将分别找到相似的单词。在极少数情况下,当没有相似的词时,会降级使用随机词替换。

3、使用15%的百分比输入单词进行掩蔽,其中80%将替换为相似的单词,10%将替换为随机单词,剩下的10%将保留原始单词。

4、该论文使用ALBERT提出的句子顺序预测(SOP)任务替换BERT原始的NSP任务,通过切换两个连续句子的原顺序创建负样本。

注意:该论文对MacBERT模型进行预训练时使用了扩展数据。并且为了识别汉语词语的边界,使用LTP进行中文分词。

这里有一个问题,就是模型对单字符的概率是40%,对于英文来说,比较容易找到单个字符的同义词 ,但是单个字符对于中文来说,大概率是无法找到同义词的,因此笔者并不理解要如何去操作。
难道要把这么多找不到同义词的使用随机替换吗?显然应该没有这么简单,可能需要源码放出来的时候,才能知道。
或者有理解的小伙伴,可以再评论中解答一下,也可以加我微信或私聊我。

训练参数

Base模型参数如下:

Large模型参数如下:

各个任务上MacBERT模型微调效果

阅读理解任务

CMRC2018数据集效果如下:

DRCD数据集效果如下:

CJRC数据集效果如下:

句子对匹配任务

XNLI、LCQMC、BQ Corpus数据集效果如下:

分类任务

情感分类任务ChnSentiCorp数据集效果如下:

文档分类任务THUCNews数据集效果如下:

消融实验

为了对比,上述提出改进点的效果,进行消融实验,结果如下图所示:

可以看出,上述提出的改进点,对于预训练语言模型来说,都有一定的提升。

总结

等论文code开源。看一下在中文数据下,单个字符是如何找到同义词的


推荐几篇笔者文章:

刘聪NLP:SIGIR 2020之MarkedBERT模型:加入传统检索线索的Rerank模型

刘聪NLP:SIGIR 2020之DC-BERT模型:解耦问题-文档编码,提速QA-Rerank模块

刘聪NLP:开源啦!开源啦!UNILM中文模型开源啦!

刘聪NLP:ACL2020论文整理之问题生成、自然语言推理、预训练语言模型及部分应用、QA问答系统及机器阅读理解

刘聪NLP:智能扩充机器人的“标准问”库之Query生成

刘聪NLP:短文本相似度算法研究

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!