在2017年发表在AAAI上的论文Topic Aware Neural Response Generation中看到的Sequence-to-Sequence model(序列到序列模型 / Seq2Seq模型)的定义。
在Seq2Seq模型中,给定一个源序列
X=(x1,x2,⋯,xT)和一个目标序列
Y=(y1,y2,⋯,yT′),在
X已知的情况下,模型最大化
Y的生成概率:
p(y1,y2,⋯,yT′∣x1,x2,⋯,xT)具体而言,Seq2Seq模型属于编码器-解码器框架的范畴,编码器逐个读取
X中的元素并通过一个
RNN模型将其表示成情境向量
c,然后解码器将
c作为输入并计算
Y的生成概率。Seq2Seq模型的目标函数可以变形为以下形式:
p(y1,y2,…,yT′∣x1,x2,…,xT)=p(y1∣c)t=2∏T′p(yt∣c,y1,⋯,yt−1)作为编码器的RNN模型通过以下方式计算情境向量
c:
ht=f(xt,ht−1);
c=hT,其中
ht表示第
t个时间步编码器的隐层状态,
f是一个非线性变换,一般是
LSTM单元或者
GRU单元。
解码器是一个标准的
RNN模型,它基于情境向量
c在每个时间步
t通过以下公式计算候选词的概率分布:
st=f(yt−1,st−1,c);
pt=softmax(st,yt−1),其中
st为解码器
RNN模型在时间步
t的隐状态,
yt−1是解码器在时间步
t−1生成的序列元素。