计算机系统应用教程网站

网站首页 > 技术文章 正文

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

btikc 2024-08-31 17:13:45 技术文章 14 ℃ 0 评论

论文题目: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机制。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表