Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling
总体
本文的任务背景是SLU(Spoken Language Understanding)中Intent Determination和Slot Filling。作者受在机器翻译和语音识别中表现了很好效果的Attention-based的encoder-decoder模型的启发,提出了两种模型思路,第一种是在Attention-based的encoder-decoder模型基础上引入对齐信息,因为在slot filling任务和机器翻译以及语音识别任务有一点不同,后者encoder和decoder的长度不一定是相同的,而slot filling任务中encoder和decoder是一一对应的,所以作者认为引入额外的对齐信息会带来比较好的效果;第二种是在alignment-based RNN模型基础上引入Attention信息,增加解码时对原始信息的理解,也取得了比原始模型更好的效果。
模型细节
1. Encoder-Decoder with Alignment
该模型主要有三种形式,如下图所示。在介绍具体三种模型之前,先简单说明一下Attention和Alignment的计算。
1. Attention
Attention机制是在深度学习中广泛使用的提高模型效果的技巧,在本文的模型中,每一个time step i的Attention是根据对应位置encoder的隐藏层输出与其他位置做加权平均得到,具体计算公式为:
其中 是计算和的得分函数,就是time step为位置的Attention。
2. Alignment
在Slot Filling任务中的Encoder和Decoder的长度一定是相同的,每个位置一定是一一对应的,这一点与机器翻译和语音识别中的Encoder-Decoder模型是不同的。所以作者在解决该任务时,考虑将encoder中每个位置的隐藏层输出引入到对应的decoder位置。
这样的好处在于,每次decoder解码时,都知道自己解码位置的具体信息是什么。
- 有Attention,没有Alignment
该模型和经典的Encoder-Decoder很相似,只有Attention机制。在每个位置的槽标签预测时,都可以抽象为以下的函数映射:
其中 是上一个隐藏层的输出,是该位置计算得到的Attention,是上一个位置的输出。
- 有Alignment,没有Attention
在该模型中,只加入了Alignment,没有加入Attention,在每个位置的槽标签预测时,都可以抽象为以下的函数映射:
其中 是上一个隐藏层的输出,是encoder对应位置的隐藏层输出,是上一个位置的输出。
- 既有Attention,又有Alignment
在该模型中,同时加入了Alignment和Attention,在每个位置的槽标签预测时,都可以抽象为以下的函数映射:
其中 是上一个隐藏层的输出,是该位置计算得到的Attention,是encoder对应位置的隐藏层输出,是上一个位置的输出。
2. Attention-Based RNN Model
第一种模型的主要思路是对Encoder-Decoder模型引入对齐机制,而我们想到另一种很简单的拥有对齐机制的模型就是简单的Bi-RNN+直接解码,这种模型直接在Bi-RNN的输出再通过一个output layer就可以输出预测结果了,本身就是直接使用Alignment信息作为输入的。那么,我们一个很自然的思路就是,Bi-RNN+直接解码的模型只有对齐信息,对全局信息仅仅通过RNN获取,是不是可以在该对齐机制下引入Attention机制,增加对全局信息的获取呢。
作者正是在这种思路下(我认为是这样的。)又尝试了Attention-Based RNN Model。模型很简单,示意图如下所示。
可以看到,首先使用Bi-RNN对原始query进行编码,然后在output layer计算时,引入了Attention信息,计算方式和第一种模型的计算相同。
在预测intent时,如果不使用Attention机制的话,就对隐藏层输出做mean-pool,得到的结果作为output layer的输入;如果使用Attention机制的话,则直接使用计算得到的Attention作为output layer的输入。
该模型论文中还提到,因为只有一个encoder结构,所以该模型的效率更高,计算量更少。
实验
数据
使用的是广泛应用于SLU领域的ATIS数据集,训练数据包含4978条,均来自ATIS-2 and ATIS-3 corpora,测试数据包含893条,来自ATIS-3 NOV93 and DEC94 data sets。一共有127个slot labels和18个intent类型。使用F1-score评价Slot Filling的效果,使用error rate评价Intent Determination的效果。
还是用了另一组包含5318条数据的数据集,一共有110个slot labels和21和intent类型。使用10折交叉验证评价效果。
Slot Filling
第一组是本文提出的模型之间的实验结果对比,如下图所知,没有Attention和Alignment的Encoder-Decoder模型效果很差,加上Alignment以后效果有了很大提高,加入Attention后又有了微小的提高。BiRNN+Attention也比Bi-RNN有了微小的提高。
说明,Alignment信息对Slot Filling任务有很大帮助,Attention也有作用,但是作用比起Alignment要小一些。
第二组是本文的模型与之前模型的实验结果对比。
Intent Determination
ID任务对比以前提出的两个模型有了较大的提高。
Joint Training
Joint Model 和以前模型实验结果对比。
启发
- 认识到不同任务之间的区别,针对特定任务的具体特点可以提出特定的trick,这样往往会有比较好的效果。