GL-GIN: Fast and Accurate Non-Autoregressive Model for Joint MultipleIntent Detection and Slot Fill

论文标题:GL-GIN: Fast and Accurate Non-Autoregressive Model for Joint Multiple
Intent Detection and Slot Filling(联合多意图检测和槽位填充的快速精确非自回归模型).

论文地址:https://aclanthology.org/2021.acl-long.15.pdf 

代码地址GitHub - yizhen20133868/GL-GIN

 Abstract: 
多意图SLU能够处理话语中的多种意图。然而最先进的联合模型严重依赖自回归方法,导致两个问题:推理速度慢和信息泄露。本文探索了一种用于联合多意图检测和槽位填充的非自回归模型,具体来说,作者提出了一种全局-局部图交互网络,其中局部槽位感知交互层被提出来建模槽位相关性以缓解不协调槽位问题,而全局意图图交互层被引入来建模话语中多个意图和所有槽位之间的交互在两个公共数据集上实验表明,该框架实现了最先进的性能,同时速度提升了11.5倍

 自回归模型存在的问题:

(1)推理速度慢:(a)代表自回归模型,只能从左到右逐词生成输出。上图在预测Denver时看不到airport的信息,即当前的slot必须由上一个决定,导致推理速度变慢;而(b)代表非自回归模型,可以保证模型并行运行,大大加快了推理速度。

(2)信息泄露:自回归模型根据先前生成的槽信息(从左到右)预测每个词槽,导致双向上下文信息泄露。

本文的贡献如下:

(1)首次尝试探索一种用于联合多意图检测和槽位填充的非自回归方法。
(2)提出了一种全局--局部图交互网络。其中局部槽位感知交互层被提出来建模槽位相关性以缓解不协调槽位问题,而全局意图图交互层被引入来建模话语中多个意图和所有槽位之间的交互。
(3)在两个基准数据集上的实验结果表明,该框架达到了最佳性能,且显著加快了槽位解码速度。
(4)最后框架可以和预训练模型结合,达到一个新水平。

 模型架构:

 如上图所示模型分为三部分:Self-Attentive Encoder、Token-level Intent Decoder、Global-Locally Graph Interaction Layer。

(1)Self-Attentive Encoder:

        结合了BiLSTM和Self-Attention,最后将二者的输出拼接在一起得到E作为最后的编码表示。

        E = H ||C, 其中H是BiLSTM的输出,C为Self-Attention的输出。

通过采用BiLSTM读取正向和反向输入序列{x1,x2,...,xn},然后得到上下文sensitive隐藏状态H,H={h1,h2,...,hn}。而C为Sel-Attention的输出,公式如下所示:

 接下来decode的操作都在Encoder的输出E上完成。

(2)Token-level Intent Decoder:

 在进行意图识别时,使用了一个token级别的意图检测。首先仍然使用BiLSTM对Encoder的输出E做进一步的增强表示操作,

 

被用作意图识别;

 其中表示第t个单词的意图结果,表示激活函数,是可训练的矩阵参数。

然后句子意图的结果可以通过以下方式获得:

 

 对上述公式,原论文中举的例子:

 上述公式的意思,加入每对应一个token的概率如果大于0.5,那么就累加1,计算最终的累加和。如果比句子长度的一半要大,则代表当前意图k是这句话的意图。因此表示的是token i对意图k的贡献大小。例如:从3个token中获得关于4个意图的投票,I1={0.9,0.8,0.7,0.1},I2={0.8,0.2,0.7,0.4},I3={0.9,0.3,0.2,0.3}。{3,1,2,0}-->选出大于3/2投票数的标签-->O^l={O1,O3}。

 (3)Global-Locally Graph Interaction Layer

 全局局部图交互层主要由两部分构成:一个是局部槽感知图交互网络,用于建模时跨槽依赖;另一个是全局意图-槽图交互网络,用于考虑意图和槽位之间的交互。

Local Slot-aware Interaction Layer:

 每个字槽用一个顶点表示,然后每个顶点都用相应的槽隐藏表示进行初始化。每个槽只在滑动窗口内部与其它槽进行连接(如对节点Si,只和在{Si-m,...,Si+m}集合内的节点进行连接,其中m是超参数,表示使用话语上下文的长度的滑动窗口的大小),即允许模型实现跨槽的依赖性建模,从而缓解槽位之间不协调的问题。由于是跨槽建立依赖关系,因此构建了一个槽位感知图交互层,以便依赖关系可以从邻居节点传播到当前节点。

槽之间的信息聚合使用GAT(Graph Attention Network),其中GAT的第L层定义如下:

其中 表示一组连通槽的顶点。在堆叠了L层之后,得到上下文槽感知的局部隐藏特征:

 

Global Intent-Slot Interaction Layer:

 

 这里是不使用自回归的重点,前面预测的所有多个意图此处和序列槽S进行连接,进而实现并行输出。在这里,图中共有n+m个节点,m代表之前预测的意图数量,n代表序列长度。槽token的输入是,它由槽感知局部交互图网络产生的,而输出意图特征是嵌入

,其中 是一个可训练的嵌入矩阵。

槽位和意图节点的第一层状态向量是:

即意图节点的特征=

 ϕ表示线性变换。

而边的信息包含以下三种类型:

(1)意图-槽位连接:每个槽连接所有预测的多个意图。

(2)槽位-槽位连接:每个槽在窗口大小内和其它槽进行连接,以进一步建模槽之间依赖性并结合双向上下文信息。

(3)意图-意图连接:所有意图之间均存在连接,以模拟每个意图之间的关系,因此它们都表达了同一话语的意图。

全局GAT层的信息聚合过程如下:

 其中分别表示连接槽和意图的点的集合。

Slot Prediction:

 最终使用得到的槽全局进行预测,这个融合了意图和槽特征。其中是可训练的参数。

 Joint Training

损失函数是两个任务的联合损失:

 其中是单个意图标签的数量,是槽位标签的数量。最终的损失函数表示为:

,其中是超参数。

 Experiments:

数据集:

 实验结果:

主实验:

 速度对比:

 消融实验:

 可视化:

 Case Study:

 本文用fine-tuning的Roberta预训练模型代替自注意力编码器。给出了AGIF、GL-GLN和两个带有Roberta的模型在两个数据集上的结果比较。首先,基于Roberta模型在两个数据集上表现出色,这可以归因于预训练模型可以帮助SLU提供丰富的语义特征,其次上述例子可以看到GL-GLN性能优于AGIF,很好的识别出了时间槽。

基于预训练模型可以很好的提升性能:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值