上一节课我们介绍了 Many-to-Many 在序列标注问题中的应用,在 RNN 部分的最后一节课中,我们来介绍另一种 Many-to-Many 的架构。本节课核心内容包括:
- 基于 Many-to-Many 架构的机器翻译应用
10.1 基于 Many-to-Many 架构的机器翻译应用
Many-to-Many 结构的输出具有一定的滞后性,常用于机器翻译、QA 问答模型之中。比较典型的就是 Sequence-to-Sequence。下面我们先看下这种架构的示意图:
对比在第三部分介绍的 Many-to-Many 架构会发现,当前的这种架构的输出并非是从第一个 RNN Cell 开始,而是当整个序列输入完毕之后才开始预测第一个输出,并不断循环输出至最后。这种架构比较适合机器翻译的应用场景,下面我们就结合 seq2seq 来介绍如何基于 Deeplearning4j 来搭建这样的 RNN 架构。
首先我们看下建模的逻辑:
public static ComputationGraphConfiguration getSMTModel(){ComputationGraphConfiguration configuration = new NeuralNetConfiguration.Builder().regularization(true).seed(123456L).l2(0.0001).weightInit(WeightInit.XAVIER).learningRateScoreBasedDecayR