论文github地址 值得阅读与一试: https://github.com/facebookresearch/fairseq
以往谈到sequence to sequence,往往会下意识地想到 RNN, 但这篇文章告诉我们,CNN 不仅可以做 sequence to sequence,不仅在大规模机器翻译的训练数据上结果比 RNN 要好,而且模型更加易于优化与加速。
好,下面开始谈 用 CNN 如何做 Sequence to Sequence:
模型架构如下:
首先 encode 层: 输入是词的嵌入Rf,先要做一层线性变换Rd,经过多层卷积之后(中间要做padding保证每次卷积过后的大小不会变化),再经过gated linear units (GLU)做一次非线性变换,得到输出仍是 Rd。
词的嵌入与位置的嵌入,