论文阅读:ByteNet, Neural Machine Translation in Linear Time
Neural Translation Model
给定源语言 string
与PixelCNN类似,
strings通常是各自语言中的句子,string中的每一个token则是字母(或者单词)。
模型包括以下两个部分:
Encoder:将源语言的string转换成特征表示。
Decoder:将特征表示转化成目标语言的string。
Desiderata
模型的运行时间和输入的长度呈线性比。
encoder输出的特征表示应与输入长度呈线性比(而不是一个常量)。这意味着特征向量的长度与它携带的信息成正比。
任意两个token之间的前向或反向传播的路径长度应该尽可能的短。即传播路径的长度需要相对于输入长度“解耦”,这有助于网络学习语言中的长距离依赖。
ByteNet
ByteNet的Decoder是直接叠放在Encoder上的(而不是将Encoder的输出固定成定长向量或者attention pooling之后再输入Decoder),通过dynamic unfolding可以生成变长的输出。
Dynamic Unfolding
设源序列
选择
In our case, we let a = 1.20 and b = 0 when translating from English into German, as German sentences tend to be somewhat longer than their English counterparts.
问题:原文说动态展开的步骤可以
may freely proceed beyond the estimated length
|tup| of the encoder representation.
都可以超出
两种Residual Blocks
with relu: 常用于machine translation experiments
with MU: 曾用于language modelling experiments