Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling论文解读

论文连接:Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling

代码连接:https://github.com/applenob/RNN-for-Joint-NLU(TensorFlow)
https://github.com/DSKSD/RNN-for-Joint-NLU(PyTorch)

摘要

​ 基于注意力的编码器-解码器神经网络模型最近在机器翻译和语音识别中显示出令人鼓舞的结果。在这项工作中,我们提出了一种基于注意力的神经网络模型,用于联合意图检测和slot filling,这对于许多语音理解和对话系统都是至关重要的步骤。与机器翻译和语音识别不同,对齐在slot filling中是显式的。我们探索将对齐信息整合到编码器-解码器框架中的不同策略。从编码器-解码器模型中的注意力机制中学习,我们进一步建议将注意力引入基于对齐的RNN模型。这种关注为意图分类和slot filling预测提供了更多信息。我们的独立任务模型在ATIS任务上实现了最优的意图检测错误率和slot fillingF1分数。与独立任务模型相比,我们的联合训练模型在意图检测上进一步获得了0.56%的绝对误差(相对值23.8%的相对误差),在slot filling上获得了0.23%的绝对增益。

方法

Encoder-Decoder Model with Aligned Inputs

Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling论文解读

​ 使用双向RNN为每个句子生成两个隐状态,分别为bhT,...,bH1bh_T,...,bH_1fh1,...,fhTfh1,...,fh_T,最终得到的隐状态为两个结果的串联组合,为hi=[fhi,bhi]h_i=[fh_i,bh_i]

​ 前向和后向编码器RNN的最后一个状态携带整个源序列的信息。 使用反向编码器RNN的最后一个状态来计算初始解码器的隐藏状态。 解码器使用的是单向RNN。同样,使用LSTM作为基本RNN单元。 在每个解码步骤ii中,解码器状态sis_i被计算为:先前的解码器状态si1s_{i-1}、先前得出的标签yi1y_{i-1}、对齐编码器隐藏状态hih_i和上下文向量cic_i

si=f(si1,yi1,hi,ci)s_i = f(s_{i-1},y_{i-1},h_i,c_i)

其中上下文向量cic_i是由编码层状态h=(h1,...,hT)h=(h_1,...,h_T)加权求和得到的。

ci=j=1Tαi,jhjc_i=\sum^T_{j=1}\alpha_{i,j}h_j

αi,j=exp(ei,j)k=1Texp(ei,k)\alpha_{i,j}=\frac{exp(e_{i,j})}{\sum^T_{k=1}exp(e_{i,k})}

ei,k=g(si1,hk)e_{i,k}=g(s_{i-1},h_k)

gg是一个前馈神经网络,在解码器的每一步,对其的输入都是编码器的状态hih_i,上下文信息向量提供的状态信息可以被看作对(h1,...,hT)(h_1,...,h_T)的加权特征。

Attention-Based RNN Model

Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling论文解读

​ 在用于序列标记的双向RNN中,每个时间步长的隐藏状态都携带整个序列的信息,但信息可能会随着正向和反向传播而逐渐丢失 。因此,在进行slot filling预测时,我们不想在每一步只使用对齐的隐藏状态hih_i,而是想看看上下文向量cic_i的使用是否给了我们任何额外的提升。

​ 在所提出的模型中,双向RNN(BiRNN)在正向和向后方向读取源序列。 使用LSTM单元作为基本的RNN单元。插槽标签相关性在前向RNN中建模。类似于上述编解码器体系结构中的编码器模块,每个步骤的隐藏状态hih_i是前向状态fhifh_i和后向状态bhibh_i的级联,hi=[fhi,bhi]h_i = [fh_i,bh_i]。 每个隐藏状态hih_i包含整个输入单词序列的信息,并在步骤ii中强烈关注单词周围的部分。 这个隐藏状态hih_i然后与上下文向量cic_i结合产生标签分布,其中上下文向量cic_i被计算为RNN隐藏状态h=(h1...hT)h=(h1,...,hT)的加权平均值。

​ 如果不使用注意力,将对隐藏状态hh随时间变化应使用平均池化,然后使用逻辑回归以进行意图分类。 如果启用了注意力,将取隐藏状态hh随时间的加权平均值。

实验

​ 在ATIS数据集上进行了测试。

Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling论文解读
Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling论文解读
Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling论文解读