论文标题:

AMBERT: A PRE-TRAINED LANGUAGE MODEL WITH MULTI-GRAINED TOKENIZATION

论文作者:

Xinsong Zhang, Hang Li

论文链接:

https://arxiv.org/pdf/2008.11869.pdf


不同粒度语言单元的切分

在深度学习时代,将语言单元切分为怎样的粒度是一个很重要的问题,它首先影响了词典的大小,比如英语,如果切分为字符,那词典最多也不会超过100,但是如果切分为词,那词典就会成千上万。

词典大小直接影响了数据的分布,即词典中的有些词是高频词,有些是低频词,甚至可能出现很多未登录词(OOV),这些都对模型最终的效果有影响。

当前主流预训练模型的切分方式大致是:对英语来说,默认采用子词(Subword)的形式,一种介于字和词之间的语言单元粒度,比如BERT采用的是字词。

对中文来说,一般采用字级别的粒度。采用这种粒度的切分方式,相比其他粒度而言表现更好。

但是,这些模型都是基于“单粒度”的切分,也就是说,要么只采用字词,要么只采用字,而单粒度的切分可能会产生一些问题。

比如下图是采用字级别切分粒度的中文BERT模型的注意力图示。可以看到,“拍”关注了“卖”,“北”关注了“京”,“长”和“市”组合了。

但是在这些例子中,它们都错误地关注了字,这是因为对于字级别的模型而言,“北京”一起出现的频率远大于“北上京城”出现的频率,“市长”共现的频率远大于“长江”共现的频率。字级别的模型难以完全建模具体相同字的不同的词。

反之,如果我们把这三句话都切分为词再送入BERT,就会发现它们能够在一定程度上克服上述不足,如下图所示。

“球拍”和“乒乓”关注,是正确的;“北”关注了“北”,不能算错;“市长”关注了“市长”,也不能算错。

这时候,第一句话就是我们想要的;对第二句话,由于我们把“京城”当作一个整体,“北”就不能再去关注“京”了,只能去关注自己;第三句话是分词带来的错误,正确的分词应该是“南京市/长江/大桥”,尽管分词错误,但是模型还是“保守”地关注了自己。

由此可见,不同粒度的切分都有各自的优劣,如果能结合多个粒度,我们就可以期望它们能优势互补。

鉴于此,本文提出AMBERT(A Multi-grained BERT),结合不同粒度的语言单元的切分进行预训练和微调,从而提高在自然语言理解任务上的效果。

其做法很简单:用两个参数共享的Encoder分别编码同一个句子的两个不同切分粒度,然后使用掩码预测同时进行预训练,并在微调、推理的时候也结合两方信息即可。

这种方法简单易实现,而且由于参数共享,所以模型参数量上也不会有太大的变化(词典更大),训练也比较容易。

总的来说,本文贡献如下:

  • 提出多粒度的预训练BERT模型,结合不同粒度的语言单元的切分提高下游任务的效果;

  • 在中文自然语言理解任务CLUE和英文自然语言理解任务GLUE和问答任务上取得了显著的效果,尤其是对中文而言效果提升非常可观。

AMBERT

下图是AMBERT的示意图,实现非常简单。简单来说,就是对同一个句子,按照两个不同的粒度进行切分(本文只探究了两个粒度,多个粒度亦可),然后使用两个参数共享的编码器把它们分别编码,最后各自使用掩码预测(MLM)进行预训练即可。

这里需要强调的是“分别”,也就是说,不同粒度的句子是不相互关注的,这就显著降低了自注意力的复杂度。

在微调的时候,使用下述优化目标:

其中,分别是两个粒度的特殊单元[CLS],用于进行预测。而最后一项则是让两个粒度得到的特殊单元[CLS]尽量保持一致。

当然,我们还可以对AMBERT稍作修改,就得到了下述变体:

  • AMBERT-Combo:用两个非参数共享的编码器分别编码两个粒度的句子;

  • AMBERT-Hybrid:用单个编码器而不是两个编码器去同时编码两个粒度的句子,也就是把两个粒度的句子先拼接起来再送到BERT里,这就会让自注意力在不同粒度的句子中进行。

其实可以预见,上述两个变体都不如AMBERT,具体将在实验部分进行说明。

实验

对于中文,采用字和词两个粒度,对于英文,采用词和短语两个粒度。中文任务在CLUE上进行,英文在GLUE上进行。预训练数据、实验设置详见原文。

下表是AMBERT在CLUE上的实验结果。可以看到,AMBERT比RoBERTa平均高出接近一个点,尽管参数量多一些。在9个任务上,AMBERT取得4项最佳,在WSC和CMRC上离最佳结果差的比较多,原因还需要进一步分析。

下表是AMBERT在GLUE上的实验结果。和RoBERTa相比略逊一筹,但是超过了其他模型(尽管不知道是参数量带来的还是模型本身带来的,可能需要作者进一步进行对比实验)。

和中文比较,可以认为多粒度模型在中文上带来的提升要比英文显著。这个结论也是比较符合直觉的。

下面来看看AMBERT和它的两个变体的比较。首先是AMBERT和AMBERT-Combo。注意到AMBERT-Combo用了两个独立的编码器,我们可以期望它们得到的[CLS]特征应该是有所不同的。

为此,下图呈现了每个模型中两个编码器[CLS]特征的ED(normalized Euclidean Distance)和CD(Cosine Dissimilarity)距离。

从图中可以看到,AMBERT-Combo的数值显著大于AMBERT,说明独立的编码器可能会使不同粒度得到的特征有更大差异。

下面再来比较AMBERT和AMBERT-Hybrid。下图是两个模型的自注意力热力度,由于AMBERT-Hybrid联合编码两个粒度的句子,所以不同粒度的语言单元之间会互相关注,这样可能会“稀释”自注意力。

当句子很长(实际上已经很长了)时,注意力稀释带来的影响就会更加明显(作者没有在这里进一步说明句子长度的影响,实际上原文Claim了这个结论是需要实验佐证的)。这可以在一定程度上解释为什么AMBERT-Hybrid效果弱于AMBERT。

小结

本文提出多粒度的预训练模型,使用粗细粒度的语言单元切分方式对句子进行切分,从而期望结合二者的优势。在中文和英文的自然语言理解任务上显示该模型的有效性,尤其是对中文而言效果更佳显著。

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

切分也重要:基于多粒度语言单元切分的BERT模型相关推荐

  1. 基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践

    基于朴素贝叶斯和预训练Bert模型的中文句子情感分类实践 1.任务介绍   本次实践选题为AI研习社2019年9月份举办的中文对话情感分析任务,并在原任务基础上进行了拓展.任务首先给定一中文语句数据集 ...

  2. AAAI 2019 | 基于不同颗粒度语言联合训练的表示学习

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. R语言rpartb包树回归模型构建:基于前列腺prostate数据集

    R语言rpartb包树回归模型构建:基于前列腺prostate数据集 决策树是一种机器学习的方法.决策树的生成算法有ID3, C4.5和C5.0等.决策树是一种树形结构,其中每个内部节点表示一个属性上 ...

  4. 基于vivado(语言Verilog)的FPGA学习(3)——FPGA理论知识

    基于vivado(语言Verilog)的FPGA学习(3)--FPGA理论知识 文章目录 基于vivado(语言Verilog)的FPGA学习(3)--FPGA理论知识 1. FPGA介绍 1.1.F ...

  5. R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献

    R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析.每个预测因子对响应变量的贡献 目录

  6. R语言rpartb包树回归模型构建:基于乳腺癌(breast cancer)数据集

    R语言rpartb包树回归模型构建:基于乳腺癌(breast cancer)数据集 目录 R语言rpartb包树回归模型构建:基于乳腺癌(breast cancer)数据集

  7. 基于Lua脚本语言的嵌入式UART通信的实现

    随着变电站智能化程度的逐步提高,对温度.湿度等现场状态参量的采集需求也越来越多.就目前而言,在现场应用中,此类设备多采用RS232或RS485等UART串行通信方式和IED(Intelligent E ...

  8. ACM MM 2018论文概述:基于多粒度监督的图像语义物体协同标注

    作者丨张立石.付程晗.李甲 学校丨北京航空航天大学 研究方向丨计算机视觉 介绍 本文概述了被 2018 年 10 月 ACM Multimedia 会议录用为 Oral 的论文:Collaborati ...

  9. matlab中右三角形方向,《有限元基础教程》_【MATLAB算例】4.7.1(2) 基于3节点三角形单元的矩形薄板分析(Triangle2D3Node)...

    [MATLAB 算例]4.7.1(2) 基于3节点三角形单元的矩形薄板分析(T riangle2D3Node) 如图4-20所示为一矩形薄平板,在右端部受集中力100 000F N =作用,材料常数为 ...

最新文章

  1. Java 多线程爬虫及分布式爬虫架构探索
  2. Java实用教程笔记 类与对象(续)
  3. 六间房与花椒直播重组首次交割完成
  4. docx 图片预处理 Java_如何在java中将docx文件头图像复制到另一个docx文件中
  5. Google AdWords广告的12个技巧
  6. 【重难点】【JUC 03】怎么实现一个线程安全的队列、手写模拟实现一个阻塞队列
  7. python2.7手机版下载_Python 2.7 64位2.7.13 安装版 下载 - 51下载网
  8. 现在的 C 语言仍值得程序员学习吗?
  9. 读书笔记:陈希孺:概率论与数理统计:2014.01.01
  10. 线程的四种实现方式,一些方法及线程的同步
  11. 阿里云 DTS 实践
  12. C语言深度剖析-----数组基础
  13. 卫星移动通信系统的分类
  14. thinkphp5json对象转数组
  15. 无法查看MSN聊天记录 总弹出下载.xml文件的对话框
  16. idea上移或下移一行
  17. java集成easyExcel动态生成表头并在浏览器下载excel
  18. 微信小程序新版头像昵称API [保存用户头像到服务器]
  19. react Hook useEffect()
  20. repost 编程之路--一个程序员的艰辛经历

热门文章

  1. mvc调用mysql存储过程_mysql – 存储过程不在MVC5中返回值
  2. centos 7安装_VMware Workstation安装centos
  3. jquery基本操作
  4. 仁慈型dea matlab程序,数据包络分析(DEA)方法..docx
  5. 虚拟机ubuntu19.04下设置idea快捷键
  6. luogu P3234 [HNOI2014]抄卡组
  7. luogu2024 食物链
  8. canvas中strokeRect的渲染问题strokeRect把一像素的边框渲染成两像素
  9. TableCellRenderer和TableCellEditor(一)
  10. Python 学习笔记10