从零开始学Python自然语言处理(25)—— 通用的Encoder-Decoder模型框架

浏览: 2621

前文传送门:

从零开始学自然语言处理(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机制具体内容是?

答:这个...,记不太清楚了...

问:好了,面试结束,出门左转~

扫码下图关注我们不会让你失望!

image.png

推荐 0
本文由 ID王大伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册