encoder-decoder框架和普通框架的区别在哪里?

前言:
初识别seq2seq是在AIIA网络流量预测竞赛中,赛题要求根据历史流量信息预测未来95天小时粒度的流量信息。通过调研,把任务归到seq2seq问题上,由于没有序列预测经验,只取得了前十的成绩。这是一个encoder输出长度固定的场景,不同于经典的翻译场景。翻译场景中的decoder output的输出长度是可变的。比赛过去有一个月了,心里一直有一个疑问,encoder-decoder在输出固定长度序列的场景下,较普通框架,到底好在哪里?直到在做文本序列标注调研时,看到A Bi-model based RNN Semantic Frame Parsing Model for Intent Detection and Slot Filling 这篇文章,其中的槽值填充也是seq2seq。本文对比了普通框架和encoder-decoder框架的效果,并对原因进行了阐释。
encoder-decoder框架与普通框架的区别和联系:
1)encoder decoder框架与普通框架实验结果对比
下图可以看到,encoder-decoder比普通框架有不到1%的性能提升。
在这里插入图片描述-在这图片一里插入图片描述2)encoder-decoder优于普通框架原理解释
作者也对此进行了解释,encoder-decoder框架解决输出长度不固定的问题,不需要alignment。另外,encoder-decoder复杂度高于普通框架,所以取得了更好的效果。
在这里插入图片描述在这里插入图片描述
2)进一步的理解
作者采用意图识别和槽值填充联合训练的方式。用其中一个任务encoder阶段的隐含来作为另一个任务decoder阶段的输入。encoder-decoder的两个任务计算如下:

在这里插入图片描述在这里插入图片描述普通框架的计算原理如下:

在这里插入图片描述在这里插入图片描述对比发现,encoder-decoder框架较普通框架,多了St这个变量。该变量表示t时刻decoder的隐层输出。也就是说参变量是encoder的隐含层和decoder的隐含层,比普通框架(只有encoder)多了一个decoder隐含层。实际上,encoder距离输出更远,我们也可以看作是多了encoder隐含层这个与输入更近的信息。
总结:
对于输出长度不固定的场景,只用encoder是解决不了的;对于输出长度固定的场景,如AIIA网络流量预测,用seq2seq只是为了增加精度,这时候输出函数的因变量是encoder的隐含层和decoder的隐含层,比普通框架(只有encoder)多了一个隐含层。补充:普通框架只有一个隐含层。模型复杂度提高了,这种复杂度提高,其实还包含像残差网络中对更早信息的利用,从而带来了精度的提升。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值