Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
mtbookv2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
NiuTrans
mtbookv2
Commits
1b387556
Commit
1b387556
authored
Nov 30, 2020
by
孟霞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新 chapter14.tex
parent
f4080fec
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
4 行增加
和
4 行删除
+4
-4
Chapter14/chapter14.tex
+4
-4
没有找到文件。
Chapter14/chapter14.tex
查看文件 @
1b387556
...
@@ -725,13 +725,13 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
...
@@ -725,13 +725,13 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\begin{itemize}
\begin{itemize}
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
机器翻译系统中的推断也借用了
{
\small\sffamily\bfseries
{
统计推断
}}
\index
{
统计推断
}
(Statistical Inference)
\index
{
Statistical Inference
}
的概念。传统意义上讲,这类方法都是在利用样本数据去推测总体的趋势和特征。因此,从统计学的角度也有很多不同的思路。例如,贝叶斯学习等方法就在自然语言处理中得到广泛应用
\upcite
{
Held2013AppliedSI,Silvey2018StatisticalI
}
。其中比较有代表性的是
{
\small\sffamily\bfseries
{
变分方法
}}
\index
{
变分方法
}
(Variational Methods)
\index
{
Variational Methods
}
。这类方法通过引入新的隐含变量来对样本的分布进行建模,
某种意义上说它是在描述“分布的分布”,因此这种方法对事物的统计规律描述的会更加细致
\upcite
{
Beal2003VariationalAF
}
。这类方法也被成功的
用于统计机器翻译
\upcite
{
Li2009VariationalDF,xiao2011language,
}
和神经机器翻译
\upcite
{
Bastings2019ModelingLS,Shah2018GenerativeNM,Su2018VariationalRN,Zhang2016VariationalNM
}
。
\item
机器翻译系统中的推断也借用了
{
\small\sffamily\bfseries
{
统计推断
}}
\index
{
统计推断
}
(Statistical Inference)
\index
{
Statistical Inference
}
的概念。传统意义上讲,这类方法都是在利用样本数据去推测总体的趋势和特征。因此,从统计学的角度也有很多不同的思路。例如,贝叶斯学习等方法就在自然语言处理中得到广泛应用
\upcite
{
Held2013AppliedSI,Silvey2018StatisticalI
}
。其中比较有代表性的是
{
\small\sffamily\bfseries
{
变分方法
}}
\index
{
变分方法
}
(Variational Methods)
\index
{
Variational Methods
}
。这类方法通过引入新的隐含变量来对样本的分布进行建模,
从某种意义上说它是在描述“分布的分布”,因此这种方法对事物的统计规律描述得更加细致
\upcite
{
Beal2003VariationalAF
}
。这类方法也被成功地
用于统计机器翻译
\upcite
{
Li2009VariationalDF,xiao2011language,
}
和神经机器翻译
\upcite
{
Bastings2019ModelingLS,Shah2018GenerativeNM,Su2018VariationalRN,Zhang2016VariationalNM
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
推断系统也可以受益于更加高效的网络结构。这方面工作集中在结构化剪枝、减少模型的冗余计算、低秩分解等方向。结构化剪枝中的代表性工作是LayerDrop
\upcite
{
DBLP:conf/iclr/FanGJ20,DBLP:conf/emnlp/WangXZ20,DBLP:journals/corr/abs-2002-02925
}
,这类方法在训练时随机选择
层
,在推断时根据输入来选择模型中的部分层进行计算,而跳过其余层,达到加速和减少参数量的目的。有关减少冗余计算的研究主要集中在改进注意力机制上,本章正文中已经有所介绍。低秩分解则针对词向量或者注意力的映射矩阵进行改进,例如词频自适应表示
\upcite
{
DBLP:conf/iclr/BaevskiA19
}
,词频越高则对应的向量维度越大,反之则越小,或者层数越高注意力映射矩阵维度越小
\upcite
{
DBLP:journals/corr/abs-2006-04768,DBLP:journals/corr/abs-1911-12385,DBLP:journals/corr/abs-1906-09777,DBLP:conf/nips/YangLSL19
}
。在实践中比较有效的是较深的编码器与较浅的解码器结合的方式,极端情况下解码器仅使用1层神经网络即可取得与多层神经网络相媲美的翻译精度,而极大地提升翻译效率
\upcite
{
DBLP:journals/corr/abs-2006-10369,DBLP:conf/aclnmt/HuLLLLWXZ20,DBLP:journals/corr/abs-2010-02416
}
。
\item
推断系统也可以受益于更加高效的网络结构。这方面工作集中在结构化剪枝、减少模型的冗余计算、低秩分解等方向。结构化剪枝中的代表性工作是LayerDrop
\upcite
{
DBLP:conf/iclr/FanGJ20,DBLP:conf/emnlp/WangXZ20,DBLP:journals/corr/abs-2002-02925
}
,这类方法在训练时随机选择
部分子结构
,在推断时根据输入来选择模型中的部分层进行计算,而跳过其余层,达到加速和减少参数量的目的。有关减少冗余计算的研究主要集中在改进注意力机制上,本章正文中已经有所介绍。低秩分解则针对词向量或者注意力的映射矩阵进行改进,例如词频自适应表示
\upcite
{
DBLP:conf/iclr/BaevskiA19
}
,词频越高则对应的向量维度越大,反之则越小,或者层数越高注意力映射矩阵维度越小
\upcite
{
DBLP:journals/corr/abs-2006-04768,DBLP:journals/corr/abs-1911-12385,DBLP:journals/corr/abs-1906-09777,DBLP:conf/nips/YangLSL19
}
。在实践中比较有效的是较深的编码器与较浅的解码器结合的方式,极端情况下解码器仅使用1层神经网络即可取得与多层神经网络相媲美的翻译精度,而极大地提升翻译效率
\upcite
{
DBLP:journals/corr/abs-2006-10369,DBLP:conf/aclnmt/HuLLLLWXZ20,DBLP:journals/corr/abs-2010-02416
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
机器翻译推断系统实际部署时,对存储的消耗也是需要考虑的因素。因此如何让模型变得更小也是研发人员所关注的方向。当前的模型压缩方法主要可以分为几类:剪枝、量化、知识蒸馏和轻量方法,其中轻量方法主要是更轻量模型结构的设计,这类方法已经在上文进行了介绍。剪枝主要包括权重大小剪枝
\upcite
{
Han2015LearningBW,Lee2019SNIPSN,Frankle2019TheLT,Brix2020SuccessfullyAT
}
、面向多头注意力的剪枝
\upcite
{
Michel2019AreSH,DBLP:journals/corr/abs-1905-09418
}
、网络层以及其他部分的剪枝等
\upcite
{
Liu2017LearningEC,Liu2019RethinkingTV
}
,还有一些方法也通过在训练期间采用正则化的方式来提升剪枝能力
\upcite
{
DBLP:conf/iclr/FanGJ20
}
。量化方法主要通过截断浮点数来减少模型的存储大小,使其仅使用几个比特位的数字表示方法便能存储整个模型,虽然会导致舍入误差,但压缩效果显著
\upcite
{
DBLP:journals/corr/abs-1906-00532,Cheong2019transformersZ,Banner2018ScalableMF,Hubara2017QuantizedNN
}
。知识蒸馏又名知识精炼,一些方法
还将Transformer模型蒸馏成如LSTMs 等其他各种推断速度更快的架构
\upcite
{
DBLP:journals/corr/HintonVD15,Munim2019SequencelevelKD,Tang2019DistillingTK
}
。另外还有一些其他方法不仅在输出上,还在权重矩阵和隐藏的激活层上对“教师模型”知识进行更深入的挖掘
\upcite
{
Jiao2020TinyBERTDB
}
。
\item
在对机器翻译推断系统进行实际部署时,对存储的消耗也是需要考虑的因素。因此如何让模型变得更小也是研发人员所关注的方向。当前的模型压缩方法主要可以分为几类:剪枝、量化、知识蒸馏和轻量方法,其中轻量方法主要是更轻量模型结构的设计,这类方法已经在上文进行了介绍。剪枝主要包括权重大小剪枝
\upcite
{
Han2015LearningBW,Lee2019SNIPSN,Frankle2019TheLT,Brix2020SuccessfullyAT
}
、面向多头注意力的剪枝
\upcite
{
Michel2019AreSH,DBLP:journals/corr/abs-1905-09418
}
、网络层以及其他部分的剪枝等
\upcite
{
Liu2017LearningEC,Liu2019RethinkingTV
}
,还有一些方法也通过在训练期间采用正则化的方式来提升剪枝能力
\upcite
{
DBLP:conf/iclr/FanGJ20
}
。量化方法主要通过截断浮点数来减少模型的存储大小,使其仅使用几个比特位的数字表示方法便能存储整个模型,虽然会导致舍入误差,但压缩效果显著
\upcite
{
DBLP:journals/corr/abs-1906-00532,Cheong2019transformersZ,Banner2018ScalableMF,Hubara2017QuantizedNN
}
。一些方法利用知识蒸馏手段
还将Transformer模型蒸馏成如LSTMs 等其他各种推断速度更快的架构
\upcite
{
DBLP:journals/corr/HintonVD15,Munim2019SequencelevelKD,Tang2019DistillingTK
}
。另外还有一些其他方法不仅在输出上,还在权重矩阵和隐藏的激活层上对“教师模型”知识进行更深入的挖掘
\upcite
{
Jiao2020TinyBERTDB
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
目前的翻译模型使用交叉熵损失作为优化函数,这在自回归模型上取得了非常优秀的性能。交叉熵是一个严格的损失函数,预测时
不在位置
的单词都会受到惩罚,即使是编辑距离很小的输出序列。回归模型会避免这种惩罚,因为单词是根据句子前一个词来生成的,而非自回归模型无法获知这个信息。为此,一些研究工作通过改进损失函数来提高非自回归模型的性能。一种做法使用对齐交叉熵函数
\upcite
{
Ghazvininejad2020AlignedCE
}
,其基于标签序列和目标词分布预测序列之间的对齐来计算交叉熵损失,采用动态规划的方法寻找单调对齐使交叉熵损失最小化。也可以使用基于
$
n
$
-gram的训练目标
\upcite
{
Shao2020MinimizingTB
}
,希望能最小化模型与参考译文间
$
n
$
-gram的差异。该训练目标在
$
n
$
-gram的层面上评估预测结果,因此能够建模序列依赖关系。
\item
目前的翻译模型使用交叉熵损失作为优化函数,这在自回归模型上取得了非常优秀的性能。交叉熵是一个严格的损失函数,预测时
位置错误
的单词都会受到惩罚,即使是编辑距离很小的输出序列。回归模型会避免这种惩罚,因为单词是根据句子前一个词来生成的,而非自回归模型无法获知这个信息。为此,一些研究工作通过改进损失函数来提高非自回归模型的性能。一种做法使用对齐交叉熵函数
\upcite
{
Ghazvininejad2020AlignedCE
}
,其基于标签序列和目标词分布预测序列之间的对齐来计算交叉熵损失,采用动态规划的方法寻找单调对齐使交叉熵损失最小化。也可以使用基于
$
n
$
-gram的训练目标
\upcite
{
Shao2020MinimizingTB
}
,希望能最小化模型与参考译文间
$
n
$
-gram的差异。该训练目标在
$
n
$
-gram的层面上评估预测结果,因此能够建模序列依赖关系。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
\item
自回归模型预测目标句时,当前词的生成是以之前已生成的词作为条件的,已生成词提供了较强的目标端上下文信息。然而,非自回归模型并行地生成所有词,因此不存在这样的信息。与自回归模型相比,非自回归模型的解码器需要在信息更少的情况下执行翻译任务。因此很多做法通过给非自回归模型的解码器端引入更多的信息,来降低模型的搜索空间。一些研究工作
\upcite
{
Ma2019FlowSeqNC
}
通过将条件随机场引入非自回归模型中来对结构依赖进行建模;也有工作引入了一个词嵌入转换矩阵来将源端的词嵌入转换为目标端的词嵌入来增强解码端的输入
\upcite
{
Guo2019NonAutoregressiveNM
}
;此外,也有研究者提出了轻量级的重排序模块来显式的建模重排序信息,以指导非自回归模型的解码
\upcite
{
Ran2019GuidingNN
}
。
\item
自回归模型预测目标句时,当前词的生成是以之前已生成的词作为条件的,已生成词提供了较强的目标端上下文信息。然而,非自回归模型并行地生成所有词,因此不存在这样的信息。与自回归模型相比,非自回归模型的解码器需要在信息更少的情况下执行翻译任务。因此很多做法通过给非自回归模型的解码器端引入更多的信息,来降低模型的搜索空间。一些研究工作
\upcite
{
Ma2019FlowSeqNC
}
通过将条件随机场引入非自回归模型中来对结构依赖进行建模;也有工作引入了一个词嵌入转换矩阵来将源端的词嵌入转换为目标端的词嵌入来增强解码端的输入
\upcite
{
Guo2019NonAutoregressiveNM
}
;此外,也有研究者提出了轻量级的重排序模块来显式的建模重排序信息,以指导非自回归模型的解码
\upcite
{
Ran2019GuidingNN
}
。
\vspace
{
0.5em
}
\vspace
{
0.5em
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论