产品列表PRODUCTS LIST

首页 > 技术与支持 > 网络解码器采用的技术特点
网络解码器采用的技术特点
点击次数:1135 更新时间:2019-05-14
   网络解码器是一个很成功的翻译模型。这个模型接受一个序列作为输入,并将序列中的信息编码为中间表示。然后解码器解码中间表示为目标语言。在我们的这个项目中,输入序列是法语句子,输出是相应的英语翻译。
 
  在我们深入网络解码器如何工作之前,我们需要了解下模型是如何表示我们的数据的。在对模型的工作机制一无所知的情况下,我们可以合理地推测如果我们给模型一个法语句子,模型能给我们对应的英语句子。也就是说,输入一个单词序列,模型应该输出另一个单词序列。然而,模型只不过是一组参数,在输入上进行多种运算。模型并不知道什么是单词。类似ASCII编码将字母映射到数字,我们的单词也需要转成数值表是。为此,数据集中的每个的单词需要有一个的索引。模型接受的实际上不是一个单词序列,而是一个索引序列。
 
  一次传入一个句子,这没什么问题。不过,怎样才能一次传入多个句子以加速训练过程呢?句子长短不一。这些数字序列又该如何组织呢?答案是输入序列将表示为维度等于(batch大小 × 大句子长度)的张量(矩阵)。这样就可以一次输入一组句子,短于数据集中长句的句子可以用事先确定的“补齐索引”补齐。
 
  回顾下编码器输出张量,序列维度的每一项保存了RNN输出的向量。注意力模块就批次中的每个样本在序列维度上取这些向量的加权和。这样,每个样本得到一个向量,表示当前输出序列步骤计算所需的相关信息。
 
  下面我们将举一个具体的例子。如果输入句子的个单词包含了给定输出单词所需的所有重要的信息,那么个单词分配的权重是一,其他各项权重为零。也就是加权向量等于输入句子的个单词对应的向量。
 
  模型需要学习如何分配这些权重,所以我们使用了一个全连接层。序列中的每个单词对应一个权重,所以权重数量等于长句子长度。权重之和应等于一,所以全连接层将使用softmax激活函数。注意力模块将接受网络解码器先前的隐藏状态与解码器前一步输出的预测单词的词嵌入的连接作为输入,从而决定这些权重的值。