Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling基于注意力机制的循环神经网络模型应用于联合意图检测和槽填充
摘要
基于注意力机制的encoder-decoder神经网络模型广泛应用于机器翻译和语音识别,
作者提出了基于注意力机制的神经网络模型用于联合意图识别和槽位填充。
在槽位填充中,输入文本和输出标签的对应是明确的,不像在机器翻译和语音识别中,
探讨了将对齐信息纳入encoder-decoder框架中,并引入注意力机制,为意图分类和槽标签预测提供了额外的信息。
关键词:语音理解,槽填充,意图检测,循环神经网络,注意力机制
介绍
口语理解系统SLU是口语对话系统中的一个重要部分。SLU包括下面两个任务
子任务 | 任务内容 | 可以看作 | 常用方法 |
---|---|---|---|
意图识别 | 识别说话人的意图 | 语义分类任务 | 支持向量机,深度神经网络 |
槽位填充 | 从自然语言中提取语义成分 | 序列标注任务 | 最大熵隐马尔可夫模型,条件随机场,循环神经网络 |
作者提出的联合模型简化了SLU系统,因为两个任务只需要一个模型进行训练和微调
介绍encoder-decoder模型:
输入序列
→
编码
密集向量
→
解码
输出序列
输入序列 \xrightarrow{编码} 密集向量 \xrightarrow {解码}输出序列
输入序列编码密集向量解码输出序列
注意力机制的引入可以使得架构同时学习对齐和解码
基于注意力机制的encoder-decoder在没有给定对齐信息的情况下映射不同长度的序列
在槽位填充中,对齐是明确的
作者的目标:
- 在encoder-decoder模型中更好的利用槽位填充中的对齐信息
- 基于对齐的RNN槽位填充能否通过encoder-decoder模型中引入注意力机制进一步改进
- 融合两种方法
提出的方法
对于槽位填充建立有对齐输入的encoder-decoder模型
编码器 :采用双向的RNN
使用LSTM作为基本的循环网络单元
(为什么要适用LSTM?LSTM相比于传统的RNN有哪些优势?)
传统的RNN模型图: s t = f ( x t , s t − 1 ) s_t = f(x_t,s_{t-1}) st=f(xt,st−1)
LSTM模型图,LSTM增加了一条新的时间链c,记录long-term-memory,s链代表短期记忆short-time-memory
举例:昨天的记忆是 s t − 1 s_{t-1} st−1,今天的记忆是 s t s_t st,昨天的日记本是 c t − 1 c_{t-1} ct−1,今天的日记本是 c t c_t ct
要从昨天记忆更新到今天,首先需要对长期记忆链条c做修改:
- f 1 f_1 f1函数根据昨天记忆 s t − 1 s_{t-1} st−1和今天输入 x t x_t xt对昨天的日记本是 c t − 1 c_{t-1} ct−1进行删除操作
- f 2 f_2 f2函数根据昨天记忆 s t − 1 s_{t-1} st−1和今天输入 x t x_t xt对昨天的日记本是 c t − 1 c_{t-1} ct−1进行添加操作
按照上图中的顺序更新
c
t
c_t
ct,然后根据昨天的记忆
s
t
−
1
s_{t-1}
st−1,今天的日记
c
t
c_t
ct,今天的输入
x
t
x_t
xt来更新今天的记忆
s
t
s_t
st
s
t
=
f
(
s
t
−
1
,
c
t
,
x
t
)
s_t = f(s_{t-1},c_t,x_t)
st=f(st−1,ct,xt)
双向RNN编码器
前向RNN按原顺序读取单词序列,在每个时间步长产生一个隐藏状态 f h i fh_i fhi
反向RNN按相反的顺序读取单词序列,产生隐藏状态序列 ( b h T , ⋯ , b h 1 ) (bh_T,\cdots,bh_1) (bhT,⋯,bh1)
每个时间步长的最终隐藏状态 h i = [ f h i , b h i ] h_i = [fh_i,bh_i] hi=[fhi,bhi]
使用LSTM作为RNN的基本单元
解码步骤计算
s
i
=
f
(
s
i
−
1
,
y
i
−
1
,
h
i
,
c
i
)
s_i = f(s_{i-1},y_{i-1},h_i,c_i)
si=f(si−1,yi−1,hi,ci)
- s i s_i si:解码器状态
- s i − 1 s_{i-1} si−1:前一个解码器状态
- y i − 1 y_{i-1} yi−1:前一个发出的标签
- h i h_i hi:对齐的编码器隐藏状态
- c i c_i ci:上下文向量
实现意图检测和槽位填充的联合建模
为意图检测任务添加一个额外的解码器,编码器与槽位填充任务共享
意图解码器只生成一个单一的输出,即句子的意图类分布,因此不需要对齐
训练时两个解码器的代价反向传播到编码器,所以可以完成作者的目标1
a图有注意力机制,没有对齐,
b图有对齐,没有注意力机制
c图既有对齐,又有注意力机制
基于注意力机制的RNN模型
在用于序列标注的双向RNN中,每个时间步长的隐藏状态都携带着整个序列的信息,但信息可能会在正向和反向传播过程中逐渐丢失。
与使用基于注意力机制的encoder-decoder模型相比,基于注意力机制的RNN模型计算效率更高,
基于注意力机制的encoder-decoder模型读取输入序列两次,而基于注意力的RNN模型只读输入序列一次