Seq2seq模型
当输入和输出都是不定长序列时,可以使⽤编码器—解码器(encoder-decoder) 或者seq2seq模型。这两个模型本质上都⽤到了两个循环神经⽹络,分别叫做编码器和解码器。编码器⽤来分析输⼊序列,解码器⽤来⽣成输出序列。
图中描述了使⽤编码器—解码器将英语句⼦翻译成法语句⼦的⼀种⽅法。在训练数据集中,可以在每个句⼦后附上特殊符号“< eos>”(end of sequence)以表⽰序列的终⽌。编码器每个时间步的输⼊依次为英语句⼦中的单词、标点和特殊符号“< eos >”。图中使⽤了编码器在最终时间步的隐藏状态作为输⼊句⼦的表征或编码信息。解码器在各个时间步中使⽤输⼊句⼦的编码信息和上个时间步的输出以及隐藏状态作为输⼊。希望解码器在各个时间步能正确依次输出翻译后的法语单词、标点和特殊符号“< eos >”。解码器在最初时间步的输⼊⽤到了⼀个表⽰序列开始的特殊符号“< bos >”。
编码器的作⽤是把⼀个不定⻓的输⼊序列变换成⼀个定⻓的背景变量c,并在该背景变量中编码输⼊序列信息。常⽤的编码器是循环神经⽹络。
给定训练样本中的输出序列 y 1 , y 2 , . . . y T y1, y2, ...y_T y1,y2,...yT’,对每个时间步 t ′ t′ t′(符号与输⼊序列或编码器的时间步t有区别),解码器输出yt′的条件概率将基于之前的输出序列 y 1 , . . . y t ′ − 1 y_1, ... y_t′-1 y1,...yt′−1和背景变量 c c c,即 P ( y t ′ ∣ y 1 , . . . , y t ′ − 1 , c ) P(y_t′| y_1,... , y_t′-1, c) P(yt′∣y1,...,yt′−1,c)。
机器翻译
机器翻译是指将⼀段⽂本从⼀种语⾔⾃动翻译到另⼀种语⾔。