论文阅读:ByteNet, Neural Machine Translation in Linear Time

Neural Translation Model

给定源语言 string s, 通过网络模型来估计目标语言string t的概率分布p(t|s)
  与PixelCNN类似,t的联合概率分布可以通过链式法则转化为连续的p(ti|t<i,s)条件概率的乘积。
strings通常是各自语言中的句子,string中的每一个token则是字母(或者单词)。
模型包括以下两个部分:
  Encoder:将源语言的string转换成特征表示。
  Decoder:将特征表示转化成目标语言的string。

Desiderata

模型的运行时间和输入的长度呈线性比。
encoder输出的特征表示应与输入长度呈线性比(而不是一个常量)。这意味着特征向量的长度与它携带的信息成正比。
任意两个token之间的前向或反向传播的路径长度应该尽可能的短。即传播路径的长度需要相对于输入长度“解耦”,这有助于网络学习语言中的长距离依赖。

ByteNet

ByteNet的Decoder是直接叠放在Encoder上的(而不是将Encoder的输出固定成定长向量或者attention pooling之后再输入Decoder),通过dynamic unfolding可以生成变长的输出。

Dynamic Unfolding

设源序列s的长度为|s|,目标序列t的长度为|t|,则|t|的存在上界|tup||s|的线性函数:
  |tup|=a|s|+b
选择|tup|使满足条件:1.几乎总是大于|t|,2.不会超出计算需求太多。

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.

都可以超出 |tup|了那计算 |tup|有什么意义?确保输出的长度足够长?

两种Residual Blocks

with relu: 常用于machine translation experiments
with MU: 曾用于language modelling experiments

论文阅读:ByteNet, Neural Machine Translation in Linear Time

原文地址:https://arxiv.org/pdf/1610.10099.pdf