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
a0cc50ed
Commit
a0cc50ed
authored
4 years ago
by
孟霞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新 chapter14.tex
parent
cbeea749
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
3 行增加
和
3 行删除
+3
-3
Chapter14/chapter14.tex
+3
-3
没有找到文件。
Chapter14/chapter14.tex
查看文件 @
a0cc50ed
...
...
@@ -105,7 +105,7 @@
\parinterval
机器翻译有两种常用的推断方式
\ \dash
\
自左向右推断和自右向左推断。自左向右推断符合现实世界中人类的语言使用规律,因为在人为翻译一个句子时,人们总是习惯从句子开始的部分往后生成
\footnote
{
有些语言中,文字是自右向左书写,这时自右向左推断更符合人类使用这种语言的习惯。
}
。不过,有时候人也会使用当前单词后面的译文信息。也就是说,翻译也需要“未来” 的文字信息。于是很容易想到使用自右向左的方法对译文进行生成。
\parinterval
以上两种推断方式在神经机器翻译中都有应用,对于源语言句子
$
\seq
{
x
}
=
\{
x
_
1
,x
_
2
,
\dots
,x
_
m
\}
$
和目标语句子
$
\seq
{
y
}
=
\{
y
_
1
,y
_
2
,
\dots
,y
_
n
\}
$
,用自左向右的方式可以将翻译概率
$
\funp
{
P
}
(
\seq
{
y
}
\vert\seq
{
x
}
)
$
描述为公式
\eqref
{
eq:14-1
}
:
\parinterval
以上两种推断方式在神经机器翻译中都有应用,对于源语言句子
$
\seq
{
x
}
=
\{
x
_
1
,x
_
2
,
\dots
,x
_
m
\}
$
和目标语
言
句子
$
\seq
{
y
}
=
\{
y
_
1
,y
_
2
,
\dots
,y
_
n
\}
$
,用自左向右的方式可以将翻译概率
$
\funp
{
P
}
(
\seq
{
y
}
\vert\seq
{
x
}
)
$
描述为公式
\eqref
{
eq:14-1
}
:
\begin{eqnarray}
\funp
{
P
}
(
\seq
{
y
}
\vert\seq
{
x
}
)
&
=
&
\prod
_{
j=1
}^
n
\funp
{
P
}
(y
_
j
\vert\seq
{
y
}_{
<j
}
,
\seq
{
x
}
)
...
...
@@ -119,7 +119,7 @@
\end{eqnarray}
\parinterval
其中,
$
\seq
{
y
}_{
<j
}
=
\{
y
_
1
,y
_
2
,
\dots
,y
_{
j
-
1
}
\}
$
,
$
\seq
{
y
}_{
>j
}
=
\{
y
_{
j
+
1
}
,y
_{
j
+
2
}
,
\dots
,y
_
n
\}
$
。
\parinterval
可以看到,自左向右推断和自右向左推断本质上是一样的。
{
\chapterten
}
$
\sim
$
{
\chaptertwelve
}
均使用了自左向右的推断方法。自右向左推断比较简单的实现方式是:在训练过程中直接将双语数据中的目标语句子进行反向,之后仍然使用原始的模型进行训练即可。在推断的时候,生成的目标语词串也需要进行反向得到最终的译文。有时候,使用自右向左的推断方式会取得更好的效果
\upcite
{
DBLP:conf/wmt/SennrichHB16
}
。不过更多情况下需要同时使用词串左端(历史)和右端(未来)的信息。有多种思路可以融合左右两端信息:
\parinterval
可以看到,自左向右推断和自右向左推断本质上是一样的。
{
\chapterten
}
$
\sim
$
{
\chaptertwelve
}
均使用了自左向右的推断方法。自右向左推断比较简单的实现方式是:在训练过程中直接将双语数据中的目标语
言
句子进行反向,之后仍然使用原始的模型进行训练即可。在推断的时候,生成的目标语词串也需要进行反向得到最终的译文。有时候,使用自右向左的推断方式会取得更好的效果
\upcite
{
DBLP:conf/wmt/SennrichHB16
}
。不过更多情况下需要同时使用词串左端(历史)和右端(未来)的信息。有多种思路可以融合左右两端信息:
\begin{itemize}
\vspace
{
0.5em
}
...
...
@@ -589,7 +589,7 @@ b &=& \omega_{\textrm{high}}\cdot |\seq{x}| \label{eq:14-4}
\end{figure}
%----------------------------------------------
\parinterval
除了使用上一个步骤的输出,当前解码器的输入还使用了添加噪声的正确目标语句子,两种使用情况之间使用一个超参数控制
\upcite
{
Lee2018DeterministicNN
}
。另外,对于目标语长度的预测,本文使用编码端的输出单独训练了一个独立的长度预测模块,这种方法也推广到了目前大多数模型上。
\parinterval
除了使用上一个步骤的输出,当前解码器的输入还使用了添加噪声的正确目标语
言
句子,两种使用情况之间使用一个超参数控制
\upcite
{
Lee2018DeterministicNN
}
。另外,对于目标语长度的预测,本文使用编码端的输出单独训练了一个独立的长度预测模块,这种方法也推广到了目前大多数模型上。
\parinterval
另一种方法借鉴了BERT的思想
\upcite
{
devlin2019bert
}
,提出了一种新的解码方法:Mask-Predict
\upcite
{
Ghazvininejad2019MaskPredictPD
}
。
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论