ENSEMBLE DISTILLATION APPROACHES FOR GRAMMATICAL ERROR CORRECTION翻译
摘要
Ensemble方法通过组合多种模型的预测结果来改进系统。另外,这些方案允许输出不确定性的源,以获得预测。不幸的是,该方法所带来的收益是以提高计算和存储成本为代价。为了解决这个问题,ensemble distillation (EnD) 和 ensemble distribution distillation (EnDD) 方法分别通过学习ensemble预测的平均或预测的分布,以将多模型压缩成单模型。本文研究了这些蒸馏方法在序列预测任务,即语法错误纠正(GEC)上的应用。这是语言学习任务的重要应用领域,因为它可以为学习者提供高度有用的反馈。然而,与标准任务中的蒸馏相比,GEC更具有挑战性,因为其对单词语法纠错的预测将高度依赖于输入序列和生成的输出历史。我们在公开可用的GEC任务以及口语任务上对EnD和EnDD进行了评估。
1.介绍
知识蒸馏(KD)是机器学习中的通用方法,其中来自更复杂模型的预测由更简单的模型建模,或由单个模型来学习的多个模型的融合结果。目的是降低模型的计算成本和存储要求。这已成功应用于深度学习的许多领域,例如目标检测,自然语言处理,声学模型以及对抗防御。本文侧重于在序列到序列任务(语法错误纠正GEC)上应用ensemble distillation方法。
深度模型ensemble通常比单模型更好,能够增加对不确定性数据预测的性能。不幸的是,该方法所带来的收益是以提高计算和存储成本为代价。要解决此问题,可以将多个模型蒸馏到单个模型。通常,蒸馏会导致ensemble模型关于不确定数据的信息的丢失。在ensemble distillation后保持这些不确定性措施的一种方法是Ensemble Distribution Distillation。其中,蒸馏的student模拟了ensemble模型的类别预测分布,这允许它保留有关teacher集合的更多信息。通常,Dirichlet分布被用于这种分类分布。与标准的,基于交叉熵的ensemble distillation相比,由于Distribution Distillation要求student模型获取来自teacher ensemble模型更多的信息,这是非常具有挑战性的。然而,如果蒸馏模型能够被良好训练,它应该能有效地产生更好的结果。
本文在序列到序列任务上实验了各种蒸馏方法,如机器翻译和语法纠错等序列任务。对于这些任务,推理的计算成本明显大于“静态”任务,因为解码过程必须将来自集合中的每个单独的序列预测模型结合在一起。目前已经有的蒸馏方案能够解决ensemble问题,在节省资源的同时保持性能。然而, distribution distillation方法在序列模型还未得到研究,distribution distillation将为语音识别系统和神经机翻译等任务来实现有效的不确定性措施。这里探索的应用领域是GEC。
我们首先描述了用于序列到序列模型(尤其是自回归方法)的标准蒸馏方法。需要注意这项工作中不是去建模如[5,13]中的序列后验,而是去建模单词级后验,因为这使得distribution distillation能够在具有相同形式的模型上简单地扩展,并且可以有效地使用获得不确定性措施。然后我们讨论了应用distribution distillation的挑战,这建立在[11]中完成的工作之上。我们描述了两个可能的优化distribution distillation的方法,以及将标准distillation和distribution distillation模型组合在一起。这些方法全部是在语法纠错任务上进心评估,其中训练和测试数据来自同一领域,另外还实验了存在不匹配的语音数据上的结果。
2.ENSEMBLE DISTRIBUTION DISTILLATION
knowledge和distribution蒸馏是在降低存储,消耗和时间的同时保持模型高性能的方法,其同样要求模型能够处理不确定性数据。有很多方法可以实现这一点:在这里,我们将展示knowledge蒸馏和distribution蒸馏的工作。在本节中,我们将专注于静态模型,这主要用于图像分类和口语评测。teacher ensemble模型由一组参数表示{θ(m)}m=1M\{\textbf θ^{(m)}\}^M_{m=1}{θ(m)}m=1M,标准和distribution蒸馏的students参数分别由ϕ\textbf ϕϕ和λ\textbf λλ表示。假设teacher ensemble的输出是从后验P(θ∣D)P(\textbf θ|\mathcal D)P(θ∣D)中得到,则:
P(y∣x;θ(m))=P(y∣π(m)),π(m)=f(x;θ(m))P(y|\textbf x;\textbf θ^{(m)})=P(y|\textbf π^{(m)}),\textbf π^{(m)}=f(\textbf x;\textbf θ^{(m)})P(y∣x;θ(m))=P(y∣π(m)),π(m)=f(x;θ(m))
其中πi\pi_iπi表示概率P(y=ωi)P(y=\omega_i)P(y=ωi),x\textbf xx是输入。然后可以使用该分类集合{π(m)}m=1M\{\textbf π^{(m)}\}^M_{m=1}{π(m)}m=1M来训练student。对于标准蒸馏,student模型ϕ\textbf ϕϕ通过最小化下式来模拟teacher预测的分布:
L(Φ)=KL((1M∑m=1Mπ(m))∣∣P(y∣x;ϕ))\mathcal L(\Phi)=KL((\frac{1}{M}\sum^M_{m=1}\textbf π^{(m)})||P(y|\textbf x;\textbf ϕ))L(Φ)=KL((M1m=1∑Mπ(m))∣∣P(y∣x;ϕ))
这种方法旨在让student预测teacher的平均值,而有关ensemble成员之间的传播(或分歧)的信息会丢失。这意味着虽然distillation可以显着降低存储和计算性能,但对数据的不确定性度量将丢失。
相反,与[11]类似,我们让新的student模型λ\textbf λλ预测Dirichlet分布Dir(⋅;α)Dir(·;\textbf α)Dir(⋅;α)的参数α\textbf αα:
P(π∣x;λ)=Dir(π;α),α=f(x;λ),α0=1TαP(\textbf π|\textbf x;\textbf λ)=Dir(\textbf π;\textbf α),\textbf α=f(\textbf x;\textbf λ),\alpha_0=\textbf 1^T\textbf αP(π∣x;λ)=Dir(π;α),α=f(x;λ),α0=1Tα
Dirichlet是对分类的分布,可以封装有关不确定性的信息并在{π(m)}m=1M\{\textbf π^{(m)}\}^M_{m=1}{π(m)}m=1M中扩展。然后,可以基于负对数似然(NLL)进行训练:
L(λ)=−1M∑m=1Mln(Dir(π(m);α))\mathcal L(\lambda)=-\frac{1}{M}\sum^M_{m=1}ln(Dir(\textbf π^{(m)};\textbf α))L(λ)=−M1m=1∑Mln(Dir(π(m);α))
现在可以量化预测中的不确定性。在这项工作中我们使用了三种与源相关的不确定性度量:totaluncertaintytotal~uncertaintytotal uncertainty,expecteddatauncertaintyexpected~data~uncertaintyexpected data uncertainty,knowledgeuncertaintyknowledge~uncertaintyknowledge uncertainty。它们的关系为:
I[y,π∣x,λ]⏟knowledgeuncertainty=H[P(y∣x;λ)]⏟totaluncertainty−EP(π∣x;λ)[H[P(y∣π)]]⏟expecteddatauncertainty(1)\underbrace{\mathcal I[y,\textbf π|\textbf x,\textbf λ]}_{knowledge~uncertainty}=\underbrace{\mathcal H[P(y|\textbf x;\textbf λ)]}_{total~uncertainty}-\underbrace{\mathbb E_{P(\textbf π|\textbf x;\textbf λ)}[\mathcal H[P(y|\textbf π)]]}_{expected~data~uncertainty}\tag{1}knowledge uncertaintyI[y,π∣x,λ]=total uncertaintyH[P(y∣x;λ)]−expected data uncertaintyEP(π∣x;λ)[H[P(y∣π)]](1)
这些不确定性具有不同的属性,具体取决于输入x\textbf xx是否与训练集具有相同的或不同的域(分布)。如果x\textbf xx是领域内(ID)的数据,则ensemble成员应该返回一致的预测,给出低的expecteddatauncertainty(DU)expected~data~uncertainty(DU)expected data uncertainty(DU)。如果x\textbf xx是领域外(OOD)的数据,则会产生不一致的预测,其具有高的totaluncertainty(TU)total~uncertainty(TU)total uncertainty(TU)。
3.SEQUENCE ENSEMBLE DISTILLATION
对序列模型应用标准和分布蒸馏增加了另一种复杂性。本节介绍了Token-Level蒸馏方案,因为这些方案再允许单个字符,单词不确定性的同时,能组合序列级的不确定性。我们将符号定义扩展到序列到序列模型中,其中数据对(x,y)(\textbf x,\textbf y)(x,y)表示参考的输入输出,并且y^\hat {\textbf y}y^表示x\textbf xx对应的预测序列。teacher ensemble {θ(m)}m=1M\{\textbf θ^{(m)}\}^M_{m=1}{θ(m)}m=1M可以通过整合下式各成员的结果进行预测:
P(yl∣y<l,x;θ(m))=P(yl∣πl(m)),πl(m)=f(y<l,x;θ(m))P(y_l|\textbf y_{\lt l},\textbf x;\textbf θ^{(m)})=P(y_l|\textbf π^{(m)}_l),\textbf π^{(m)}_l=f(\textbf y_{\lt l},\textbf x;\textbf θ^{(m)})P(yl∣y<l,x;θ(m))=P(yl∣πl(m)),πl(m)=f(y<l,x;θ(m))
并且,student模型在集合{πl(1:M)}l=1L\{\textbf π^{(1:M)}_l\}^L_{l=1}{πl(1:M)}l=1L上进行训练。
3.1 Ensemble Distillation
对于序列模型,可以以多种方式进行蒸馏。这项工作中采用的方法是token-level知识蒸馏,这是最简单的方法之一。teacher和student ϕ\phiϕ使用相同的参考历史序列y<l\textbf y_{<l}y<l(即teacher-forcing)和输入x\textbf xx,然后,ensemble模型与student模型在token-level的分类分布上使用KL散度进行最小化:
L(ϕ)=1L∑l=1LKL((1M∑m=1Mπl(m))∣∣P(yl∣y<l,x;ϕ))(2)\mathcal L(\phi)=\frac{1}{L}\sum^L_{l=1}KL\bigg ((\frac{1}{M}\sum^M_{m=1}\textbf π^{(m)}_l)||P(y_l|\textbf y_{\lt l},\textbf x;\phi)\bigg )\tag{2}L(ϕ)=L1l=1∑LKL((M1m=1∑Mπl(m))∣∣P(yl∣y<l,x;ϕ))(2)
我们扩展在上一节中描述的distribution distillation,使其能应用于序列模型。对于 token-level distribution distillation,具有参数λ\textbf λλ的student预测第lll个字符的具有参数为αl\textbf α_lαl的Dirichlet分布:
P(π∣y<l,x;λ)=Dir(π;αl),αl=f(y<l,x;λ)P(\textbf π|\textbf y_{\lt l},\textbf x;\textbf λ)=Dir(\textbf π;\textbf α_l),\textbf α_l=f(y_{\lt l},\textbf x;\textbf λ)P(π∣y<l,x;λ)=Dir(π;αl),αl=f(y<l,x;λ)
给定ensemble模型的预测结果{πl(1:M)}l=1L\{\textbf π^{(1:M)}_l\}^L_{l=1}{πl(1:M)}l=1L,distribution distillation可以通过下面的负对数似然(NLL)来最小化训练:
L(λ)=−1ML∑l=1L∑m=1Mln(Dir(π(m);αl))(3)\mathcal L(\textbf λ)=-\frac{1}{ML}\sum^L_{l=1}\sum^M_{m=1}ln(Dir(\textbf π^{(m)};\textbf α_l))\tag{3}L(λ)=−ML1l=1∑Lm=1∑Mln(Dir(π(m);αl))(3)
等式3直接从实例每个步骤的ensemble预测中优化蒸馏模型的参数。虽然这产生了用于找到λ\textbf λλ的适当准则,但是当预测以所有历史上下文上为输入的ensemble的分布,优化网络参数可能非常具有挑战性。为了简化这种优化,可以采用两阶段方法。首先,通过使用具有参数α~l\tilde {\textbf α}_lα~l的Dirichlet分布来建模具有历史序列的ensemble的预测:
α~l=argmaxα{1M∑m=1Mln(Dir(πl(m);α))}\tilde {\textbf α}_l=\mathop{argmax}\limits_{\textbf α}\bigg \{\frac{1}{M}\sum^M_{m=1}ln(Dir(\textbf π^{(m)}_l;\textbf α))\bigg\}α~l=αargmax{M1m=1∑Mln(Dir(πl(m);α))}
然后,distribution distillation的参数可以通过最小化ensemble Dirichlet和 distilled Dirichlet之间的KL散度来训练:
3.2 Guided Uncertainty Approach
ENSEMBLE DISTILLATION APPROACHES FOR GRAMMATICAL ERROR CORRECTION翻译相关推荐
- 复现有道NLPCC-2018 CGEC:A Neural Machine Translation Approach to Chinese Grammatical Error Correction
有道NLPCC-2018 CGEC任务论文:A Neural Machine Translation Approach to Chinese Grammatical Error Correction ...
- 论文阅读:Overview of the NLPCC 2018 Shared Task: Grammatical Error Correction
论文阅读:Overview of the NLPCC 2018 Shared Task: Grammatical Error Correction 1. 引言 2. 任务定义 3. 数据 3.1 训练 ...
- 论文笔记:Improving Grammatical Error Correction Models with Purpose-Built Adversarial Examples
论文笔记:Improving Grammatical Error Correction Models with Purpose-Built Adversarial Examples 文章简要介绍 出处 ...
- 自动语法错误校正(Grammatical Error Correction)
写英语论文很折磨人.平时用英语写的少,关键时候写的头痛死.记起前段时间在知乎上看了一个哥们写的NLP潜在热门方向,介绍了自动语法错误校正(具体名称记不起来了,当时没有收藏,现在找不到了).就不知道怎么 ...
- Improving the Efficiency of Grammatical Error Correction with Erroneous Span Detection翻译
摘要 我们提出了一种独立于语言的新颖方法,通过将GEC任务分为两个子任务来提高语法错误纠正的效率:错误跨度检测(ESD)和错误跨度校正(ESC).ESD使用有效的序列标注模型来识别语法错误的文本范围. ...
- Improving the Efficiency of Grammatical Error Correction with Erroneous Span Detection and Correctio
EMNLP20,GEC(Grammar Error Correct)比较近的一篇文章,没啥太多的novelty,主要是用了RoBertA,和以往的neural方法一样,seq2seq model,只是 ...
- Efficient Hybrid De Novo Error Correction and Assembly for Long Reads
Efficient Hybrid De Novo Error Correction and Assembly for Long Reads 长read的高效的混合从头纠错和装配 Abstr ...
- 【语音】论文阅读笔记 Non-autoregressive Error Correction for CTC-based ASR with Phone-conditioned Masked LM
目录 摘要 介绍 预备和相关工作 1. CTC-based ASR 2. Masked LM 3. ASR error correction 提出的方法 1. Phone-conditioned Ma ...
- Jabba: hybrid error correction for long sequencing reads using maximal exact matches机译:Jabba:使用最大精
Jabba: hybrid error correction for long sequencing reads using maximal exact matches 机译:Jabba:使用最大精确 ...
- Bi-level error correction for PacBio long reads. PacBio长读数的两级纠错
Bi-level error correction for PacBio long reads. PacBio长读数的两级纠错 作者: Liu Yuansheng; Lan Chaowang; Blu ...
最新文章
- 数据库schema 是什么
- 电脑文件夹可以分屏的软件_电脑上什么便签软件可以添加音频?
- 取石子游戏(信息学奥赛一本通-T1218)
- LeetCode 35. Search Insert Position
- c语言下标法与指针法,《C和指针》中关于指针与下标的问题
- 2018年Java展望
- 11.18 如何将界面注册到系统?
- html的div块float后宽度无效,行内元素(例如)设置float之后才能用width调整宽度...
- Java - Thinking in Java 第2章 一切都是对象
- Unity3D 多平台_预编译相关宏定义
- 【历史上的今天】5 月 28 日:图灵提交划时代论文;DR DOS 的第一个版本发布;TrueCrypt 停止开发
- SQLServer 2000 Service Pack 4 简体中文版
- 你能把我带走吗?python:走吧
- 黑客用我们服务器挖矿了
- Android一键锁屏,去除锁屏密码
- Webstorm干货(开发效率快到飞起!!!)
- 【题解】同济线代习题二 8.1
- 考健身教练证要学历吗
- 从三国的人物身上我们能学到些啥?
- C51中各种存储区名词解释
热门文章
- 580集photoshop顶尖视频教程送给你,设计总监手把手带你学ps!
- Photoshop教程:10秒闪电搞定照片构图
- 单词记忆系统-项目需求分析
- 正态分布是离散分布还是连续分布_简单统计学|正态分布之连续数据的概率分布...
- Matlab中图形对象属性gcf使用
- dataframe保存为txt_Python读写txt文本(示例说明)
- 记录解决英文和阿拉伯文混合的字符串,在阿拉伯环境下靠左显示,但需要从右开始显示
- Win10家庭版安装软件时提示“为了对电脑进行保护,已经阻止此应用”
- 进程间通信的方式有哪些?
- ios微信消息自动朗读_如何使您的iOS设备大声朗读文章,书籍和更多内容