论文连接: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为每个句子生成两个隐状态,分别为 b h T , . . . , b H 1 bh_T,...,bH_1 bhT,...,bH1和 f h 1 , . . . , f h T fh1,...,fh_T fh1,...,fhT,最终得到的隐状态为两个结果的串联组合,为 h i = [ f h i , b h i ] h_i=[fh_i,bh_i] hi=[fhi,bhi]。
前向和后向编码器RNN的最后一个状态携带整个源序列的信息。 使用反向编码器RNN的最后一个状态来计算初始解码器的隐藏状态。 解码器使用的是单向RNN。同样,使用LSTM作为基本RNN单元。 在每个解码步骤 i i i中,解码器状态 s i s_i si被计算为:先前的解码器状态 s i − 1 s_{i-1} si−1、先前得出的标签 y i − 1 y_{i-1}