1. 简称
论文《A Stack-Propagation Framework with Token-Level Intent Detection for Spoken Language Understanding》,作者Libo Qin(Harbin Institute of Technology, China)
,经典的NLU论文(Semantic Frame)
。
2. 摘要
意图检测和槽位填充是构建口语理解(SLU)系统的两个主要任务。这两个任务是紧密联系在一起的,并且插槽通常高度依赖于意图。
在本文中,我们为SLU提出了一个新颖的框架,以更好地整合意图信息,从而进一步指导插槽填充。在我们的框架中,我们采用了具有Stack-Propagation
的联合模型,该模型可以直接将意图信息用作插槽填充的输入,从而捕获意图语义知识
。另外,为了进一步减轻错误的传播,我们为堆栈传播框架执行了令牌级别的意图检测
。在两个公开数据集上进行的实验表明,我们的模型可以达到最新的性能,并且在很大程度上优于其他先前的方法。
最后,我们在框架中使用了Transformer的双向编码器表示
(BERT)模型,这进一步提高了我们在SLU任务中的性能。
3. 引言
口语理解(SLU)是面向任务的对话系统的重要组成部分。它通常包括意图检测以识别用户的意图,以及时隙填充任务,以从自然语言表达中提取语义成分。如表1所示,给定与电影相关的话语“watch action movie”,每个标记具有不同的插槽标签,整个话语具有意图。
通常,意图检测和插槽填充是分开实现的。但是从直觉上讲,这两个任务不是独立的,插槽常常很大程度上取决于意图。例如,如果话语的意图是WatchMovie
,它更可能包含movie_name
而不是music_name
。因此,有希望结合意图信息来引导插槽填充。
考虑到两个任务之间的这种强相关性,基于多任务学习框架提出了一些联合模型,所有这些模型都优于流水线模型通过两个任务之间的相互增强。但是,他们的工作只是通过共享参数来模拟意图和广告位之间的关系。最近,一些工作开始在联合模型中对用于缝隙填充的意图信息进行建模。 提出了一种门机制,该机制包含用于插槽填充的意图信息。尽管实现了有希望的性能,但是它们的模型仍然存在两个问题
,包括:(1)它们都采用门矢量来合并意图信息。在本文中,我们认为仅依靠门功能来概括或记忆意图信息是有风险的。此外,由于这两个任务之间与隐藏矢量的交互作用,意图信息如何引导时隙填充过程的可解释性仍然很弱。 (2)如果预测的话语水平意图不正确,则它们用于时隙填充的话语水平意图信息可能会误导所有话语的预测。
在本文中,我们提出了一个新颖的框架来解决上述两个问题。第一个问题是受堆栈传播的启发,由Zhang和Weiss(2016)提出,以利用POS标记功能进行解析并获得良好的性能,我们提出了一种针对SLU任务的带有Stack-Propagation的联合模型。我们的框架直接将意图检测的输出用作插槽填充的输入,以更好地指导插槽预测过程。
此外,该框架使设计Oracle意向实验变得容易,以直观地显示意向信息如何增强插槽填充任务。对于第二个问题,我们在我们的框架中执行令牌级别的意图预测,该预测可以提供用于插槽填充的令牌级别的意图信息。如果话语中的某些令牌级别意图被错误地预测,则其他正确的令牌级别意图对于相应的时隙预测仍然有用。
在实践中,我们使用自注意编码器进行意图检测,以捕获每个标记处的上下文信息,从而预测每个标记处的意图标签。话语的意图是通过对话语的每个标记进行的预测投票来计算的。像集成神经网络(Lee等人,2016)一样,这种令牌级别的预测减少了预测方差,从而提高了意图检测的性能。而且它更适合我们的堆栈传播框架,在该框架中,意图检测可以提供令牌级别的意图功能,并保留更多有用的意图信息以填充插槽。
我们在两个基准SNIPS(Coucke et al。,2018)和ATIS(Goo et al。,2018)数据集上进行实验。这两个实验的结果通过大大超越当前最新技术方法,显示了我们框架的有效性。最后,作为预训练模型,使用了Transformer的双向编码器表示法(Devlin等人,2018,BERT),进一步提高了模型的性能。
总而言之,这项工作的贡献如下:
- 我们在SLU任务中提出了一个堆栈传播框架,该框架可以更好地整合意向性语义知识指导槽位填充,并使我们的联合模型更具可解释性。
- 我们对Stack-Propagation框架执行令牌级别的意图检测,从而提高了意图检测性能并进一步减轻了错误传播。
- 我们进行了广泛的实验,证明了我们提出的框架的好处。我们在两个可公开获得的数据集上进行的实验显示出了实质性的改进,并且我们的框架实现了最新的性能。
- 我们探索并分析将BERT纳入SLU任务中的效果。
4. 背景
Multi-task Framework vs. Stack-Propagation
对于两个相关任务任务A和任务B,图1(a)中所示的多任务框架可以通过共享编码器了解这两个任务之间的相关性
。但是,基本的多任务框架无法明确提供从上游任务到下游任务的功能。如图1(b)所示的带有Stack-Propagation框架的联合模型可以减轻该缺点
。在此图中,任务B可以利用任务A的功能,而又不会破坏堆栈传播框架中的差异性,并且可以通过共同学习同时相互促进
。
5. 核心
在本节中,我们将描述用于SLU任务的堆栈传播框架
。
图2演示了我们框架的架构,该架构由一个编码器和两个解码器组成。
-
首先,
编码器模块使用一个共享的自我注意力编码器来表示话语,该话语可以掌握两个任务之间的共享知识。 -
然后,
意图检测解码器执行令牌级意图检测。 -
最后,
我们的堆栈传播框架通过将意图检测解码器的输出和来自编码器的表示作为时隙填充解码器的输入进行串联,从而利用显式的令牌级意图信息进行时隙填充。通过联合学习方案,同时优化了意图检测和时隙填充。
5.1 Self-Attentive Encoder
在我们的Stack-Propagation框架中,意图检测任务和时隙填充任务共享一个编码器;在自注意编码器中,我们将BiLSTM与自注意机制结合使用,以利用时间特征和上下文信息的优势,这对序列标记任务很有用
。
BiLSTM读取输入话语(是输入话语中标记的数量)通过前后向重复使用去生成上下文相关隐藏状态。
自我注意是一种在可变长度序列上利用上下文感知功能进行自然语言处理任务的非常有效的方法。
在我们的案例中,我们使用自我注意机制来捕获每个令牌的上下文信息。在本文中,我们采用Vaswani et al. (2017),我们首先通过使用不同的线性投影将输入向量(d表示映射维)的矩阵映射到查询(),键()和值()矩阵。自我注意输出是值的加权和:
获得自注意力和BiLSTM的输出后。我们将这两种表示形式连接起来作为最终的编码表示形式:
其中和是串联运算操作。
5.2 Token-Level Intent Detection Decoder
在我们的框架中,我们执行令牌级意图检测,这可以为插槽填充提供令牌级意图功能,与将意图检测任务视为句子级分类问题不同。令牌级别的意图检测方法可以形式化为序列标签问题,该问题将输入单词序列映射到意图标签序列。在训练期间,我们将句子的意图标签设置为每个标记的黄金意图标签。话语的最终意图是通过对每个话语令牌的预测投票来计算的。
自我注意编码器会生成一系列上下文表示,每个标记都可以通过自我注意机制来掌握整个上下文信息。我们使用单向LSTM作为意图检测网络。在每个解码步骤i中,解码器状态由先前的解码器状态,先前发出的意图标签分布和对齐的编码器隐藏状态计算:
然后,将解码器状态用于意图检测:
其中是话语中第个令牌的意图输出分布; 表示令牌的意图,而是模型的可训练参数。
最终话语结果是通过对所有令牌意图结果进行表决而生成的:
其中,是话语的长度,是意图标签的数量; 表示0-1矢量,第个单位为1,其他单位为零; 表示返回中最大值索引的操作。
通过执行令牌级别的意图检测,主要有两个优点
:
- 执行令牌级别的意图检测可以在我们的堆栈传播框架中为每个令牌提供插槽填充功能,这可以简化错误传播并保留更有用的插槽填充信息。与句子级别的意图检测相比,如果整个句子的意图被错误地预测,那么错误的意图可能会对所有时隙产生负面影响。但是,在令牌级别的意图检测中,如果话语中的某些令牌被错误地预测,则其他正确的令牌级别的意图信息对于相应的插槽填充仍然有用。
- 由于每个令牌都可以通过使用自注意编码器来掌握整个话语上下文信息,因此我们可以将某个话语中每个令牌的预测视为对该话语意图的单独预测。因此,像集成神经网络一样,这种方法将减少预测的方差并提高意图检测的性能。实验部分从经验上证明了令牌级别意图检测的有效性。
5.3 Stack-propagation for Slot Filling
在本文中,我们的Stack-Propagation框架的优点之一是直接利用显式意图信息将时隙约束为特定的意图,从而减轻了时隙填充解码器的负担。
在我们的框架中,我们通过连接意图输出分布和对齐的编码器隐藏状态来组成时隙填充解码器的输入单元。
对于时隙填充解码器,我们类似地使用另一个单向LSTM作为时隙填充解码器。在解码步骤i,可以将解码器状态形式化为:
其中是先前解码状态,是先前推出的插槽标签分布。
类似的,解码器状态是被用于插槽填充:
其中是话语中第个单词在插槽中的插槽标签。
5.4 Joint Training
现有联合任务之间的另一个主要区别与我们的框架是意图检测的训练方法,将句子级别的分类任务转换成令牌级别的预测,直接利用令牌级别的意图信息填充广告位。意图检测目标被表述为:
同样,定义了槽位填充任务也被定义为:
其中和分别是黄金意图标签和黄金插槽标签。是插槽标签数量。
同时获取插槽填充和意图检测共同制定最终的共同目标为:
通过联合损失函数,共享自注意编码器学习到的共享表示可以共同考虑两个任务,与流水线模型相比,可以进一步简化错误传播。
6. 实验
6.1 Experimental Settings
为了评估我们提出的模型的效率,我们在两个基准数据集上进行了实验。一个是公开的ATIS数据集,其中包含航班预订的音频记录,另一个是Snips收集的定制引擎(SNIPS数据集)。 本文使用的两个数据集都遵循与Goo等人相同的格式和分区。对于ATIS数据集,单词嵌入的维数为256,对于SNIPS数据集,单词嵌入的维数为512。自注意编码器的隐藏单元设置为256。在我们的模型中,使用L2正则化为,采用压差比为0.4以减少过拟合。我们使用Adam在模型中优化参数,并采用建议的超参数进行优化。对于所有实验,我们选择在开发集上效果最好的模型,然后在测试集上对其进行评估。
6.2 Baselines
我们将模型与现有基准进行比较,包括:
-
Joint Seq.
Hakkani-Tür et al. (2016年) 提出了一种多任务建模方法,用于在单个递归神经网络(RNN)架构中联合建模域检测,意图检测和时隙填充。 -
Attention BiRNN.
Liu and Lane (2016) 利用注意力机制允许网络学习槽位和意图之间的关系。 -
Slot-Gated Atten.
Goo et al. (2018) 提出了缝隙门控联合模型,以更好地探索缝隙填充与意图检测之间的相关性。 -
Self-Attentive Model.
Li et al. (2018) 提出了一种具有意图增强门机制的新型自我注意模型,以利用广告位和意图之间的语义相关性。 -
Bi-Model.
Wang et al. (2018) 提出了Bi-Model,以考虑意图和插槽填充的相互影响。 -
CAPSULE-NLU.
Zhang et al. (2019) 提出了一种基于胶囊的神经网络模型
,该模型具有动态的按协议路由方案,以完成时隙填充和意图检测。 -
SF-ID Network.
(E et al., 2019) 引入了SF-ID网络以建立直接连接以填充插槽和进行意图检测,以帮助它们相互促进。
6.3 Overall Results
继Goo et al. (2018),我们使用F1分数评估槽位填充的SLU性能,使用准确性评估意图预测的性能,并使用整体准确性评估句子级别的语义框架解析。表2显示了在SNIPS和ATIS数据集上提出的模型的实验结果。
从表中可以看出,我们的模型大大优于所有基线,并达到了最新的性能。在SNIPS数据集中,与之前最好的联合工作双模型相比,我们在槽位(F1)得分上提高了0.7%,在意向(Acc)上提高了0.8%,在总体(Acc)上提高了3.1%。在ATIS数据集中,我们的槽位(F1)得分提高了0.4%,意图(Acc)的提高了0.5%,总体(Acc)的提高了0.8%。这表明我们的堆栈传播框架的有效性。特别是,我们的框架在句子级语义框架的准确性方面获得了最大的改进,我们将其归因于这样一个事实,即我们的框架直接考虑了明确的意图信息,可以更好地帮助掌握意图和插槽之间的关系并提高SLU性能。
为了直观地了解意图信息在SLU任务中的作用,我们还提供了使用黄金意图信息时的结果。结果显示在表2的oracle
行中。从结果可以看出,进一步利用意图信息将导致更好的插槽填充性能。结果还验证了我们的假设,即意图信息可用于指导时隙预测。
6.4 Analysis
在上节中,两个公开数据集都见证了这三个指标之间的重大改进。但是,我们想知道改进的原因。在本节中,我们首先探讨堆栈传播框架的效果。接下来,我们研究所提出的令牌级别意图检测机制的效果。最后,我们研究了自我注意力机制在我们框架中的作用。
6.4.1 Effect of Stack-Propagation Framework
验证堆栈传播框架的有效性。我们使用以下切除术进行实验:
- 利用类似于Goo et al. (2018)的GATE机制进行了加入意图信息的实验,通过门功能与时隙填充解码器交互,提供意图信息。我们称之为门机制。
-
在意图检测和槽填充分别具有自注意编码器的流水线模型上进行了实验。其他模型组件与我们的框架保持相同。我们将其命名为流水线模型。
表3给出了比较实验的结果。从门机制行的结果可以看出,如果不学习堆栈传播,而仅使用门机制来合并意图信息,插槽填充(F1)的性能就会大大下降,这表明直接利用了门机制。与使用门机构相比,采用堆栈传播的意图信息可以有效地提高插槽填充性能。此外,我们可以看到意图检测(Acc)和整体准确性(Acc)下降了很多。我们将其归因于以下事实:由于联合学习方案,不良的槽位填充性能会损害意图检测和整个句子的语义性能。
此外,从表3的流水线模型行中,我们可以看到,如果没有共享编码器,则所有指标的性能都会显著下降。这表明Stack-Propagation模型可以学习可以相互促进的相关知识,并且可以有效地缓解错误传播。
6.4.2 Effect of Token-Level Intent Detection Mechanism
在本节中,我们将通过以下消融研究提议的令牌级别意图检测的效果:
- 在意图检测中,我们分别进行了语句级的意图检测,利用BiLSTM编码器的最后一个隐向量进行意图检测。我们将其提交给
lstm + last-hidden
。为了进行比较,表3中将我们的不带槽填充的联合学习的令牌级意图检测命名为lstm+token-level
。 - 我们提出了一个联合学习框架,即槽填充使用话语级意图信息,而不是每个令牌的令牌级意图信息,类似于意图门控机制(Li等人,2018年),被命名为句子意图增强。
我们在表3的第一块中显示了这两个比较实验的结果。从结果可以看出,令牌级别的意图检测获得了比话语级别的意图检测更好的性能。·我们认为,原因在于对每个令牌的意图预测具有与集成神经网络相似的优势,后者可以减少预测的方差以提高意图性能。·结果,我们的框架可以通过引入令牌级别的意图检测来提供更多有用的意图信息,用于插槽填充。
另外,我们可以观察到,如果仅为时隙填充解码器提供句子级意图信息,则会得到较差的结果,这证明了合并令牌级意图信息的重要性和有效性。造成这种情况的主要原因可能是,合并令牌级别的意图信息可以为每个令牌保留有用的功能并简化错误传播
。
6.4.3 Effect of Self-attention Mechanism
我们将在我们的框架中进一步研究自我注意机制的好处。我们用相同的框架进行比较实验,只是用BiLSTM代替了自注意力编码器。
结果显示在表3的无自我注意力行中。我们可以观察到自我关注机制可以进一步提高SLU性能。我们将其归因于以下事实:自我注意力机制可以捕获每个令牌的上下文信息。如果没有自我注意机制,它将损害意图检测并通过联合学习对插槽填充任务产生不良影响。
值得注意的是,即使没有自我注意机制,我们的框架仍会执行最新的Bi-Model模型(Li等,2018),这再次证明了我们的有效性和鲁棒性比其他框架组件。
6.5 Effect of BERT
最后,我们还进行了实验,以使用预训练的BERT模型(Devlin等,2018)来提高SLU性能。在本节中,我们使用微调方法替换了基于BERT的自注意编码器,并使其他组件与我们的框架相同。
表4给出了ATIS和SNIPS数据集上BERT模型的结果。从表中可以看出,BERT模型在两个数据集上均表现出色,并且达到了最新的性能水平,这表明强大的预训练模型在SLU任务中的有效性。我们将此归因于这样一个事实,即经过预训练的模型可以提供丰富的语义特征,这可以帮助提高SLU任务的性能。此外,我们的模型+ BERT优于BERT SLU(Chen等,2019),后者将BERT用于联合这两个任务,在总体精度指标中,两个数据集中的意图检测和空位填充之间没有明确的交互作用。它表明我们的框架对BERT是有效的。
特别是,我们还基于BERT模型分别进行了意图检测任务和插槽填充的实验。为了进行意图检测,我们将特殊的[CLS]词嵌入到分类层中以对意图进行分类。对于插槽填充,我们将每个令牌的最终隐藏表示馈送到插槽标签集上的分类层中。结果也显示在表4中。从结果可以看出,插槽填充(F1)和意图检测精度(Acc)低于我们基于BERT的联合模型,这再次证明了利用这种关系的有效性在这两个任务之间。
在本文中,我们提出了一种使用Stack-Propagation进行口语理解的联合模型,以更好地整合槽位意图信息填充。另外,我们执行令牌级别的意图检测,以提高意图检测性能并进一步简化错误传播。
7. 重点论文
- Chih-Wen Goo, Guang Gao, Yun-Kai Hsu, Chih-Li Huo, Tsung-Chieh Chen, Keng-Wei Hsu, and Yun- Nung Chen. 2018. Slot-gated modeling for joint slot filling and intent prediction. In Proc. of NAACL.
- Yuan Zhang and David Weiss. 2016. Stack- propagation: Improved representation learning for syntax. In Proc. of ACL.
- Qingyu Yin, Yu Zhang, Wei-Nan Zhang, Ting Liu, and William Yang Wang. 2018. Deep reinforcement learning for chinese zero pronoun resolution. In Proc. of ACL.
- Victor Zhong, Caiming Xiong, and Richard Socher. 2018. Global-locally self-attentive encoder for dialogue state tracking. In Proc. of ACL.
- Chenwei Zhang, Yaliang Li, Nan Du, Wei Fan, and Philip Yu. 2019. Joint slot filling and intent detection via capsule neural networks. In Proc. of ACL.
- Haihong E, Peiqing Niu, Zhongfu Chen, and Meina Song. 2019. A novel bi-directional interrelated model for joint intent detection and slot filling. In Proc. of ACL.
- Qian Chen, Zhu Zhuo, and Wen Wang. 2019. Bert for joint intent classification and slot filling. arXiv preprint arXiv:1902.10909.
- Zhixing Tan, Mingxuan Wang, Jun Xie, Yidong Chen, and Xiaodong Shi. 2018. Deep semantic role labeling with self-attention. In Proc. of AAAI.
8. 代码编写
本文源码地址:https://github.com/LeePleased/StackPropagation-SLU
# 后续追加代码分析
参考文献
- Qin, L., Che, W., Li, Y., Wen, H., & 0001, T. L. (2019). A Stack-Propagation Framework with Token-Level Intent Detection for Spoken Language Understanding. Emnlp/Ijcnlp.