论文题目:A Co-interactive Transformer for joint Slot Filling and Intent Detection
原论文地址
PyTorch代码
论文精简版-PPT
1.背景
意图检测和槽填充是构建口语理解(SLU)系统的两个主要任务。
以前的研究要么用 多 任 务 框 架 隐 式 地 对 两 个 任 务 进 行 建 模 {\color{Red}多任务框架隐式地对两个任务进行建模} 多任务框架隐式地对两个任务进行建模,要么 只 考 虑 从 意 图 到 槽 的 单 个 信 息 流 {\color{Red}只考虑从意图到槽的单个信息流} 只考虑从意图到槽的单个信息流。
先前的方法都没有在统一框架中同时对两个任务之间的双向连接进行建模。
针对以上问题,作者提出了 Co-Interactive Transformer,考虑了两个任务之间的交叉影响。 作者没有采用vanilla Transformer中的self-attention机制,而是提出了一个协同交互模块,通过在两个相关任务之间建立双向连接来考虑交叉影响,其中slot和intent可以参与到相应的任务中。
2.方法论
现有的联合模型可以分为两大类:
1. 采 用 具 有 共 享 编 码 器 的 多 任 务 框 架 解 决 槽 填 充 和 意 图 识 别 \color{Red}采用具有共享编码器的多任务框架解决槽填充和意图识别 采用具有共享编码器的多任务框架解决槽填充和意图识别
虽然这些模型通过相互增强优于管道模型,但它们只是通过共享参数隐式地建模槽填充和意图识别两任务的关系
2. 明 确 应 用 意 图 信 息 指 导 槽 填 充 任 务 \color{Red}明确应用意图信息指导槽填充任务 明确应用意图信息指导槽填充任务
缺点是只考虑了从意图到槽的单一信息流,并没有考虑槽到意图的信息流。
与普通的 Transformer 不同,本文框架中的核心组件是一个协同交互模块,用于对两个任务之间的关系进行建模,旨在考虑两个任务的交叉影响并提高两个任务。具体来说,在每个协同交互模块中,首先在意图和槽标签上应用 标 签 注 意 力 机 制 \color{Red}标签注意力机制 标签注意力机制来捕获初始显式意图和槽表示,从而提取意图和槽语义信息。其次,意图和槽表示被输入到一个协同交互的注意力层中以进行交互。显式意图表示被视为查询,槽表示被视为获得槽感知意图表示的键和值。同时,显式槽表示被用作查询,意图表示被视为键和值以获得意图感知槽表示。以上这些操作可以建立跨intent和slots的双向连接。潜在的直觉是插槽和意图可以通过协同交互注意力机制关注相应的互信息。
2.1. Shared Encoder共享编码器
共享 E n c o d e r Encoder Encoder: B i L S T M BiLSTM BiLSTM,旨在利用词序中时间特征的优势
输入序列: { x 1 , x 2 , . . . , x n } , n 是 t o k e n \{x_1, x_2, . . . , x_n\},n是 token { x1,x2,...,xn},n是token的数量
B i L S T M BiLSTM BiLSTM 前向和后向读取输入序列,以产生一系列上下文敏感的隐藏状态 H = { h 1 , h 2 , . . . , h n } H=\{h_1, h_2,...,h_n\} H={ h1,h2,...,hn} ,通过重复应用递归 h i = B i L S T M ( ϕ e m b ( x i ) , h i − 1 , h i + 1 ) h_i = BiLSTM (\phi^{emb}(x_i), h_{i−1},h_{i+1}) hi=BiLSTM(ϕemb(xi),hi−1,hi+1),其中 ϕ e m b ( ⋅ ) \phi^{emb}(·) ϕemb(⋅)表示嵌入函数。
2.2. Co-Interactive Module协同交互模块
Co-Interactive 模块是框架的核心组件,旨在建立意图检测和槽填充之间的双向连接。
在 vanilla Transformer 的Encoder中,每个子层包括self-attention(自注意力) 和 a feed-forward network (前馈神经网络FFN)组成。 (这里只需关注Encoder部分,Decoder部分是有三个子层,橙色和蓝色的部分)

图片来源Attention Is All You Need
协同交互模块包含三部分,分别为:
1.意图和槽标签注意力层来获得明确的意图和槽表示。
2.利用协同交互注意力层而不是自注意力层来显式地对交互进行建模。
3.扩展了基本 FFN,以在隐式方法中进一步融合意图和槽信息。
2.2.1. Intent and Slot Label Attention Layer
用槽填充和意图检测解码层的参数作为槽嵌入矩阵和意图嵌入矩阵。
槽嵌入矩阵: W S ∈ R d × ∣ S l a b e l ∣ \pmb{W}^S\in\mathbb{R}^{d\times|S^{label}|} WWWS∈Rd×∣Slabel∣
意图嵌入矩阵: W I ∈ R d × ∣ I l a b e l ∣ \pmb W^I\in\mathbb{R}^{d\times|I^{label}|} WWWI∈Rd×∣Ilabel∣
其中, d d d表示隐藏层维度, ∣ S l a b e l ∣ , ∣ I l a b e l ∣ |S^{label}|,|I^{label}| ∣Slabel∣,∣Ilabel∣分别表示槽标签和意图标签的数量,
在某种意义上可以看作是标签的分布。
意图和槽表示:
H ∈ R n × d \pmb{H}\in\mathbb{R}^{n\times d} HHH∈Rn×d为 Q ( q u e r y ) Q(query) Q(query), W v ∈ R d × ∣ v l a b e l ∣ ( v ∈ { I o r S } } ) \pmb{W}^v\in\mathbb{R}^{d\times|v^{label}|}(\pmb{v}\in\{I\ or S\}\}) WWWv∈Rd×∣vlabel∣(vvv∈{ I orS}})为 K ( k e y ) K(key) K(key)和 V ( v a l u e ) V(value) V(value)
利用上述信息获得带有意图标签注意力的意图表示 H v \pmb{H}_{
{v}} HHHv
A = s o f t m a x ( H W v ) (1) \pmb{A}=softmax(\pmb{H}\pmb{W^v})\tag{1} AAA=softmax(HHHWvWvWv)(1)
H v = H + A W v T = H + A t t e n t i o n ( H , W v , W v ) (2) \pmb{H_v}=\pmb{H}+\pmb{AW^v}^{\color{Green}\mathrm T}\\ =\pmb{H}+Attention(\pmb{H},\pmb{W^v},\pmb{W^v})\tag{2} HvHvHv=HHH+AWvAWvAWvT=HHH+Attention(HHH,WvWvWv,WvWvWv)(2)
H I ∈ R n × d \color{Red}\pmb{H_I}\in\mathbb{R}^{n\times d} HI