论文连接: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
使用双向RNN为每个句子生成两个隐状态,分别为和,最终得到的隐状态为两个结果的串联组合,为。
前向和后向编码器RNN的最后一个状态携带整个源序列的信息。 使用反向编码器RNN的最后一个状态来计算初始解码器的隐藏状态。 解码器使用的是单向RNN。同样,使用LSTM作为基本RNN单元。 在每个解码步骤中,解码器状态被计算为:先前的解码器状态、先前得出的标签、对齐编码器隐藏状态和上下文向量:
其中上下文向量是由编码层状态加权求和得到的。
是一个前馈神经网络,在解码器的每一步,对其的输入都是编码器的状态,上下文信息向量提供的状态信息可以被看作对的加权特征。
Attention-Based RNN Model
在用于序列标记的双向RNN中,每个时间步长的隐藏状态都携带整个序列的信息,但信息可能会随着正向和反向传播而逐渐丢失 。因此,在进行slot filling预测时,我们不想在每一步只使用对齐的隐藏状态,而是想看看上下文向量的使用是否给了我们任何额外的提升。
在所提出的模型中,双向RNN(BiRNN)在正向和向后方向读取源序列。 使用LSTM单元作为基本的RNN单元。插槽标签相关性在前向RNN中建模。类似于上述编解码器体系结构中的编码器模块,每个步骤的隐藏状态是前向状态和后向状态的级联,。 每个隐藏状态包含整个输入单词序列的信息,并在步骤中强烈关注单词周围的部分。 这个隐藏状态然后与上下文向量结合产生标签分布,其中上下文向量被计算为RNN隐藏状态的加权平均值。
如果不使用注意力,将对隐藏状态随时间变化应使用平均池化,然后使用逻辑回归以进行意图分类。 如果启用了注意力,将取隐藏状态随时间的加权平均值。
实验
在ATIS数据集上进行了测试。