前文传送门:
从零开始学自然语言处理(24)—— 巧妙的条件随机场(CRF)(下)
面试现场...
问:什么是Encoder-Decoder模型框架?
答:Encoder-Decoder框架其实是一个编码-解码框架,主要处理Sequence to Sequence(seq2seq)问题,seq2seq问题其实是输入一个字符串序列,然后经过模型框架的处理后输出一个字符串序列,这种任务十分常见,例如我们经常使用的翻译不就是输入一段A语言,输出一段B语言翻译结果么?又例如对话与问答系统,当我们输入一段话,会返回一段回复。
问:框架结构如何?
答:Encoder-Decoder框架结构主要为下图这种结构:
主要有三部分组成,分别是编码部分(Encoder),存储部分和解码部分(Decoder),编码部分主要是输入一段字符串,并将其编码;存储部分存储的信息一般为固定长度的中间向量,该向量包含了之前编码部分输入字符串中每个输入的信息;解码部分是根据存储的中间向量内容和已经输出的内容将其解码输出一段字符串。
例如输入的序列为X=(x1,x2,...,xn),经过Encoder得到中间向量C=Encoder(X),然后Decoder根据中间向量C和已输出的序列y1,y2,...,y(i-1)输出当前输出内容,即yi=Decoder(C,y1,y2,...,y(i-1))。
其编码和解码部分的模型可以选用RNN、LSTM、BiRNN、GRU等等。
问:该框架有什么缺点?
答:该框架的局限性是Encoder和Decoder的联系只能通过固定长度的中间向量,Encoder需要将所有输入序列信息压缩在这个中间向量中,当输入序列较长时,由于中间向量长度固定,整个输入序列的每部分的信息被不断稀释,会丢失信息。
问:如何改进?
使用Attention机制。
问:Attention机制具体内容是?
答:这个...,记不太清楚了...
问:好了,面试结束,出门左转~
扫码下图关注我们不会让你失望!