首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对话系统之seq2seq模型&深度分离卷积应用

论文题目:Depthwise Separable Convolutions for Neural Machine Translation

第一遍阅读,简单做个笔记,持续更新

谈到智能对话系统,我们最熟悉的应该是基于LSTM + seq2seq + attention的模型了。

几乎一直以来处理序列问题都是LSTM/GRU在编码端或者解码端抽取文本信息,利用隐状态对信息的传递,使得LSTM可以整合整句话的信息。

随着CNN在图像领域的突破,CNN也逐渐被用于解决NLP问题,并且取得了不错的成绩。

比如,自回归卷积模型(auto-regressive convolutional models )在应用到语音,图像和文本生成任务上,已经取得了很好效果;甚至在处理sequence问题上已经超越了RNN。卷积不需要处理整个一段话,而是提供了一种处理非局部信息的有效方式。正如我们所知道的,CNN通常都是通过加深模型深度以增加效果,很明显随之而来就是参数暴增,训练难度加大。鉴于此问题,我们从深度分离卷积(depthwise separable convolutions )得到灵感,比如xception and mobilenets,应用到NLP领域,并取得了成功。

这篇论文提出的卷积seq2seq架构被称为SliceNet,在NLP的机器翻译任务上进行了测试。该架构有两个关键点:

1,depthwise的堆叠 + 分组卷积grouped + residual连接

2,去除掉空洞卷积 dilation,实际上separability特性已经可以取代掉这个之前CNN-seq2seq的重要组件了。

深度分离卷积可以分为两个部分:spatial and pointwise ;前者是作用在input的每一个channel上,并不像之前卷积计算会叠加所有channel;pointwise是1*1的核将spatial的结果进行channel方向的融合,并产生新的channel大小。这部分涉及的公式如下:

这种depthwise & seq2seq模型,由一系列离散的卷积单元units构成,每个unit通过训练能学习到特定的特征。这些units连续组装在一起,可以逐渐学习到越来越高的特征抽象随着网络深度的增加。该模型的意义在于专注每一层channel,然后将其融合在一起,这就是depthwise的特性。对比普通CNN同时计算all channel,属于对参数的低效或者无效利用。

上文也说了depthwise参数量小,那我们具体算算,贴一张论文中的截图如下:

我们就算前两个,第一行是普通卷积,k是核的size,c是输入输出的通道数,所以显然总参数量为k*c方;第二行是depthwise,spatial+pointwise=kc + c方。

下面讲一下该模型的结构图,如下所示:

该模型遵循卷积自回归,正如bytenet,wavenet中一样,输入和输出有同样的深度;该模型通过两个独立的自网络concat,然后被喂到解码端。在每一步,自回归解码器产生一个新的输出预测值,然后返回喂给编码器,进而预测输出。encoder & decoder 都有depthwise的堆叠,并且利用了attention机制。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190823A0SGW300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com