关于ATIS以及基于注意力机制的递归神经网络模型 的学习记录

本文是关于ATIS语料库和基于注意力机制的递归神经网络模型的学习笔记,探讨了在口语对话系统中的语言理解。研究集中在意图识别和信息槽填充任务,分析了两种模型:1)基于注意力的编码-解码器模型,2)基于注意力的RNN模型。实验表明,注意力机制在信息槽填充和意图识别中提升了性能,尤其是在联合训练模型中。此外,论文对比了独立任务模型和联合模型的效果,并提供了ATIS数据集上的实验结果。
摘要由CSDN通过智能技术生成

关于ATIS以及基于注意力机制的递归神经网络模型

的学习记录

此为本人学习的类笔记,主要内容为借助Google翻译机译的论文WHAT IS LEFT TO BE UNDERSTOOD IN ATIS? 

和  Attention-Based Recurrent Neural Network Modelsfor Joint Intent Detection and Slot Filling

一、 摘要及研究背景

1、论文WHAT IS LEFT TO BE UNDERSTOOD IN ATIS?

(在ATIS中要理解的是什么?)

1)、摘要

       航空旅行信息系统(ATIS)语料库是过去二十年来在口语对话系统中进行语言理解(SLU)研究等许多研究中使用的主要数据资源之一。SLU的两个主要任务是意图识别(ID)和信息槽填充(SF)。最近的研究表明使用鉴别机器学习技术与ATIS测试集合的这两个任务的错误率低于5%。虽然这些低错误率可能表明这个任务已经接近解决,但进一步的分析揭示了ATIS作为研究语料库的持续使用效用。在本文中,我们的目标不是尝试可以减少剩余SLU错误的特定技术或功能,而是通过广泛的错误分析来探索实现该实用程序的方法。我们得出结论,即使有这么低的错误率,ATIS测试集仍然包含许多看不见的示例类别和序列,因此我们需要更多的数据。更好的一方面是,使用真实的更复杂的自然语言而形成的较大数据集,我们可以避免在建模和功能设计方面的过度调整。

2)、研究背景

      口语理解(SLU)旨在提取话语的意义。虽然理解语言仍然被认为是一个未解决的问题,但在过去十年中,在有限的领域,各种实用的面向目标的会话理解系统被构建起来。这些系统旨在依靠自然语言使机器自动识别用户的意图,提取相关的参数或信息,并相应地采取行动以满足用户的需求。在种系统中,通常使用自动语音识别(ASR)来识别扬声器的接收的声音。然后使用SLU组件从识别的单词序列中识别说话者的意图。最后,调用对话框或任务管理器(DM)与用户交互(不一定是自然语言),并帮助用户实现在系统设计中支持的任务。

在90年代初,DARPA(国防高级研究计划局)发起了航空旅行信息系统(ATIS)项目。ATIS任务包括对与飞行相关信息的口头查询。例如,“下个星期我想从纽约飞往波士顿“这一话语,要求机器理解,可简化为提取任务特定参数的问题,如目的地离境日期的问题。参与系统采用数据驱动的统计方法[1,2]或基于知识的方法[3,4,5]。

几乎在同一时期,一个新的方法成功应用在呼叫中心中使用的早期商业交互式语音应答(IVR)系统,这是一种基于语义框架填充的SLU方法,。SLU被定义为将用户的话语分类为预定义类别(称为意图呼叫类型)[6]。

呼叫分类系统和语义框架填充系统之间的最大区别是:前者不显式地试图确定由用户提供的参数,其主要目标是将呼叫链接到相应的呼叫中心部门。对于用户提供的参数,只关注它们是否有助于进行正确分类。虽然这对于SLU的任务来说是一个完全不同的观点,但它实际上是对模板填充的补充,因为每个呼叫类型可以被视为要填充的模板。例如,在DARPA ATIS项目的情况下,当主要意向(或目标)为Flight时,用户还询问了许多其他事情,如地面运输飞机规格。该程序还为这些较不频繁的意图定义了专门的模板。这导致了意向确定(ID)和基于信息槽填充(SF)的SLU方法的无缝集成。与以前的去耦和顺序方法相比,这种综合方法实际上提高了端到端自动化速率。例如,Jeong等人[7]提出的共同使用三角形链条件随机场(CRF)联合建模的两个系统。

2、 论文Attention-Based Recurrent Neural Network Modelsfor Joint Intent Detection and Slot Filling.( 基于注意力机制的递归神经网络模型,用于联合意图识别和信息槽填充)

1)、摘要

      最近,在机器翻译和语音识别中,基于注意力机制的编码-解码神经网络模型显示出可喜的成果。在这项工作中,我们提出了一种关注型神经网络模型,用于联合意图识别和信息槽填充,这两种模型都是许多语音理解和对话系统的关键步骤。与机器翻译和语音识别不同,在信息槽填充中,其对齐方式是显式的。我们探索用不同的方式,将这一种对齐信息方式纳入到编码解码器框架中。通过学习这种编码-解码器模型的注意力机制,我们进一步提出引入基于这种注意力机制的递归神经网络模型。这种注意力机制为意图分类和时隙标签预测提供附加信息。我们的独立任务模型在基于ATIS任务上实现了最新的意图识别错误率和信息槽填充F1分数。我们的联合训练模型在独立任务模型上进一步获得了意图识别的绝对误差减少0.56%(相对23.8%)和信息槽绝对增长0.23%。

2)、研究背景

口语语言理解(SLU)系统是口语对话系统中的一个重要组成部分。SLU系统通常涉及识别说话人的意图,并从自然语言查询中提取语义成分,这两个任务通常被称为意图识别和信息槽填充。

意图识别和信息槽填充通常单独处理。意图识别可以视为一个语义话语分类问题,可以应用于支持向量机(SVM)[1]和深层神经网络方法[2]等流行分类器。信息槽填充可以视为序列标签任务处理。解决序列标签问题的流行方法包括马尔科夫最大熵模型(MEMMs)[3],随机条件场(CRFs)[4]和递归神经网络(RNNs)[5,6,7]等。在文献[8,9]中,还提出了意图识别和信息槽填充的联合模型。这种联合模型简化了SLU系统,因为只需要进行训练和微调这两个任务。

近来,编码-解码器神经网络模型已经成功应用于许多序列学习问题,如机器翻译[10]和语音识别[11]等。在编码-解码器模型背后的主要思想是,将输入序列编码为密集向量,然后使用该向量生成相应的输出序列。[12]引入的注意力机制使编码-解码器架构能够同时训练对齐和解码。

其具体应用如下:

 一、RNN用于信息槽填充:

信息槽填充可以视为序列标注问题,我们有{(x(n),y(n)) :n= 1,...,N}的训练样例,建立一个函数f:X →Y ,将输入序列x映射到相应的标签序列y。在信息槽填充中,输入序列和标签序列具有相同的长度,因此有显式的对齐。


图1:具有意图识别和信息槽注释的ATIS语料库样本。

RNN已被广泛应用于许多序列建模问题[6,13]。在信息槽填充的每个时间步骤中,RNN读取一个字符作为输入,并根据输入和映射的输出序列考虑所有可用信息来预测其对应的时隙标签。训练该模型以找到最大化可能性的最佳参数集合θ



其中x表示输入字符序列,表示在时间t之前的输出标签序列。在推论中,我们要找到给定输入序列x的最佳标签序列y,使得:



二、RNN编码-解码器:

RNN编码-解码器框架首先在[10]和[14]中引入。编码器和解码器是两个独立的RNN。编码器向矢量c读取输入序列(x1,...,xT)。该向量编码整个源序列的信息,并在解码器中用于生成目标输出序列。解码器将输出序列的概率定义为:



其中表示在时间t之前的预测输出序列。与序列标签的RNN模型相比,RNN编码-解码器模型能够将序列映射到不同长度的序列。源序列和目标序列之间没有明确的对齐方式。后来在[12]中引入的注意力机制使得编码-解码器模型能够同时训练软对齐和解码。

二、论文 Attention-BasedRecurrent Neural Network Models for Joint Intent Detection and Slot Filling.中的方法

1、具有对齐输入的编码-解码器模型

用于联合意图识别和信息槽填充的编码-解码器模型如图2所示。在编码器端,我们使用一种双向递归神经网络(双向RNN)。双向RNN已经被成功应用于语音识别[15]和口语理解[6]。我们使用LSTM [16]作为基本的递归网络单元,与简单的RNN相比,能够更好地建立长期依赖性。



图2:用于联合意图识别和信息槽填充的编码-解码器模型。(a)没有对齐方式的输入。(b)具有对齐方式的输入。(c)具有有一致的输入和关注。编码器是双向的RNN。反向编码器RNN的最后一个隐藏状态用于初始化解码器RNN状态。

在信息槽填充中,我们要映射一个单词序列x =(x 1 ,...,x T)到其对应的时隙标签序列y =(y 1 ,...,y T)。双向RNN编码器向前和向后读取源序列。前向RNN以其原始顺序读取单词序列,并在每个单位时间产生隐藏状态fhi。类似地,反向RNN以相反的顺序读取单词序列并产生隐藏状态序列(bhT,...,bh1)。最后的编码器隐藏状态hi在每个单位时间步骤i是前向状态fhi和后向状态bhi的级联,即hi=[fhi,bhi]。

前向和后向编码器RNN的最后一个状态携带整个源序列的信息。我们使用后向编码器RNN的最后一个状态来计算[12]中的方法之后的初始解码器隐藏状态。解码器是单向RNN。然后,我们使用LSTM单元作为基本的RNN单元。在每个解码步骤i中,解码器状态si的函数可以由计算为先前解码器状态si-1,先前发射标签yi-1,对齐编码器隐藏状态hi和上下文矢量ci决定:

其中双向向量i被计算为编码器状态h =(,...,h T)[12] 的加权和:


g是指前馈神经网络。在每个解码步骤中,显式校准的输入是编码器状态hi。双向向量ci向解码器提供附加信息,并且可以被视为连续的加权特征集合(h,...,hT)。

对意图识别和信息槽填充的联合建模,我们为意图识别(或意图分类)任务增加了一个额外的解码器,用于与信息槽填充解码器共享。在模型训练期间,两个解码器的内容都被反向传播到编码器。意图解码器仅产生一个单个输出,该输出是句子的意图类分布,因此不需要对齐。意图解码器状态是共享的初始解码器状态s0的函数,共享的初始解码器状态s0编码整个源序列的信息和双向矢量cintent,其表示意图解码器注意的源序列的一部分。

个人理解:  对齐输入指的是具有固定长度的输入,编码-解码模型简单的说,就是根据一个输入序列x,来生成另一个输出序列y。例如,在翻译中,输入序列是待翻译的文本,输出序列是翻译后的文本;在问答系统中,输入序列是提出的问题,而输出序列是答案。

编码-解码模型:所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。 



当然了,这个只是大概的想法,具体实现的时候,编码器和解码器都不是固定的,可选的有RNN/BiRNN/LSTM等等,自由组合。比如说,你在编码时使用BiRNN,解码时使用RNN,或者在编码时使用RNN,解码时使用LSTM等等。

论文选取了编码和解码都是RNN和LSTM(不太懂)的组合。下面是对RNN的笔记。

在RNN中,当前时间的隐藏状态是由上一时间的状态和当前时间输入决定的,也就是



获得了各个时间段的隐藏层以后,再将隐藏层的信息汇总,生成最后的语义向量



如果将最后的隐藏层作为语义向量C,即 



解码阶段可以看做编码的逆过程。这个阶段,我们要根据给定的语义向量C和之前已经生成的输出序列y1,y2,…yt−1来预测下一个输出的单词yt,即 



而在RNN中,上式又可以简化成 



               

其中s是输出RNN中的隐藏层,C代表之前提过的语义向量,yt−1表示上个时间段的输出,反过来作为这个时间段的输入。而g则可以是一个非线性的多层的神经网络,产生词典中各个词语属于yt的概率。

 

2、基于注意(attention)机制的RNN模型

针对联合意图识别和信息槽填充的基于注意的RNN模型如图3所示。在基于对齐的RNN序列标签模型引入注意(attention)机制的思想,源于在编码-解码器模型中使用注意力机制。在用于序列标签的双向RNN中,每个单位时间的隐藏状态携带整个序列的信息,但信息可能随着向前和向后传播而逐渐丢失。因此,当进行时隙标签预测时,不仅仅是在每个步骤中利用对齐的隐藏状态hi,而且需要看使用双向向量ci能否给予我们一些额外的支持信息,特别是将那些需要具有长期依赖性的且没有被隐藏的状态完全捕获。


 

图3:用于联合意图识别和信息槽填充的基于注意力机制的RNN模型。双向RNN向前和向后读取源序列。在前向RNN中建立标记依赖关系。在每个单位时间中,使用连接的前向和后向隐藏状态来预测时隙标签。如果启用注意力机制,则上下文向量ci提供与输入序列的部分相关的信息,该部分与用于时隙标签预测的时间对齐隐藏状态hi一起使用。

在所提出的模型中,双向RNN(BiRNN)沿前向和后向读取源序列。我们使用LSTM单元作为基本的RNN单元。信息槽标签依赖相互关系在前向RNN中建模。类似于上述编码-解码器架构中的编码器模块,每个步骤的隐藏状态hi是前向状态fhi和向后状态bhi的级联,hi=[fhi,bhi]。每个隐藏状态hi包含整个输入序列的信息,其中特别要关注在步骤i处的字符周围的部分。然后将该隐藏状态hi与双向向量cI组合以产生分布标签,其中双向矢量ci是RNN隐藏状态h=(h,...,hT)的加权平均值。

对意图识别和信息槽填充的联合建模,为了产生意图类分布,我们重复使用双向RNN 的预先计算的隐藏状态h。如果不使用注意(attention)机制,我们在隐藏状态适用于平均值集和[17]随着时间的推移由h的逻辑关系决定,然后回归到执行的意图分类。如果启用注意(attention)机制,我们反而采用隐藏状态h的加权平均值。

与使用显式对齐输入的基于注意(attention)机制的编码-解码器模型相比,基于注意(attention)机制的RNN模型具有更高计算效率。在模型训练期间,编码-解码器信息槽填充模型读取输入序列两次,而基于注意(attention)机制的RNN模型仅读取输入序列一次。

个人理解:Attention模型,或者说注意模型。简单的说,这种模型在产生输出的时候,还会产生一个“注意范围”表示接下来输出的时候要重点关注输入序列中的哪些部分,然后根据关注的区域来产生下一个输出,如此往复。模型的大概示意图如下所示 




相比于之前的encoder-decoder模型,attention模型最大的区别就在于它不在要求编码器将所有输入信息都编码进一个固定长度的向量之中。相反,此时编码器需要将输入编码成一个向量的序列,而在解码的时候,每一步都会选择性的从向量序列中挑选一个子集进行进一步处理。这样,在产生每一个输出的时候,都能够做到充分利用输入序列携带的信息。

三、论文二实验方案

      个人理解:在实验方案中,采用ATIS数据集按照之前的固定长度encoder-decoder模型和attention模型分别进行训练,然后将结果与其他论文中用传统方法的准确率进行比较。

1)、数据

ATIS(航空旅行信息系统)数据集[18]被广泛应用于SLU研究。数据集包含进行航班预订的人员的录音。在这项工作中,我们遵循[6,7,9,19]中使用的ATIS语料库[1]设置。训练集包含ATIS-2和ATIS-3语料库的4978个话语,测试集包含ATIS-3 NOV93和DEC94数据集的893个话语。共有127个不同的信息槽标签和18个不同的意图类型。我们使用F1分数评估信息槽填充的系统性能,并使用分类错误率对意图识别的性能进行评估。

我们在[9]和[20]中获得了另一个用于SLU评估的ATIS文本语料库。该语料库包含5138个具有注释的意图和信息槽标签的语句。总共有110个不同的信息槽标签和21个意图类型。我们使用与[9]和[20]中相同的10倍交叉验证设置。

2)、训练过程

在实验中使用LSTM单元作为基本的RNN单位。我们的LSTM实现遵循[21]中的设计。给定数据集的大小,我们将LSTM单元中的单位数设置为128. 默认的忘记门偏置设置为1 [22]。我们在所提出的模型中只使用一层LSTM,而在未来的工作中,将会探讨层叠LSTM层的深层模型。

大小为128的字符嵌入在批量大小为16的随机初始化的小批量训练之间并进行微调。在正常化模型训练期间,对非循环连接[21]应用压差率0.5,梯度降低的最大模设置为5.我们使用[23]中建议的参数设置后的Adam优化方法。

3)、独立培训模型结果:信息槽填充

我们首先汇报我们的独立任务训练模型的结果。表1显示了使用我们提出的架构的信息槽填充F1分数。表2比较了我们提出的信息槽填充模型性能和以前报告的结果。



在表1中,第一组结果用于3.1节中描述的编码-解码器模型的变化。令我们惊奇的是,没有使用显式对齐信息的纯注意型信息槽填充模型表现不佳。让模型从训练数据中学习对齐方式似乎不适合信息槽填充任务。第2行和第3行显示了利用对齐输入的非注意和关注型编码解码器模型的F1分数。基于注意力机制的模型的平均值和最佳分数均略高于非注意力模型的F1分数。通过调查模型的注意力机制,我们发现注意(attention)机制的权重更有可能均匀分布在源序列中的单词上。

表1中的第二组结果是第3.2节中描述的双向RNN模型。与上一组结果相似,我们观察到使用注意力机制的模型略微改善了F1评分。双向矢量对槽填充的贡献不是很明显。看来对于这样的级别的序列长度(对于该ATIS语料库,平均句长度为11),由双向RNN产生的隐藏状态i能够编码进行时隙标签预测所需的大部分信息。


图4:在给定句子中预测最后一个单词“中午”的插槽标签时,推断注意的图示。较深的色调表示较高的注意(attention)。当字“中午”作为对齐输入反馈到模型时,注意力机制试图从插入标签预测的输入字序列中找到其他支持信息。

表2比较了我们的信息槽填充模型和以前的方法。我们的两个模型架构的结果都提高了以前报告的最佳F1分数。

表2:与以往方法的比较。ATIS信息槽填充的独立培训模型。



4)、独立训练模型结果:意图识别

表3比较了我们的意图模型和以前的方法之间的意图分类错误率。我们提出的模型的意图误差率大大优于最先进的结果。基于注意力的编码器 - 解码器意图模型推进了双向RNN模型。这可能归因于从编码器传递的序列级别信息和解码器RNN中的非线性附加层。

表 3 :和以前的方法比较。独立训练模型在ATIS 意图识别中的结果。



编码-解码器架构在独立训练模型上进行意图识别时,在信息槽填充上获得0.09%的绝对增长和0.45%的绝对增长(相对改进的22.2%)。对于基于注意(attention)机制的双向RNN架构,对于独立训练模型和联合训练模型在意图识别方面实现的信息槽填充的绝对增长分别为0.23%,0.56%(相对改进的23.8%)。注意力集中的RNN模型似乎在联合训练中改进更多。我们的联合训练方法的结果优于报告的联合建模结果。

 

5)、联合模型结果

表4显示了与以前报告的结果相比,我们在意图识别和信息槽填充方面的联合训练模型性能。如表中所示:

表4:与以往方法的比较。

联合训练模型对ATIS信息槽填充和意图识别的结果。



为了进一步验证我们的联合训练模型的性能,我们将所提出的模型应用于附加的ATIS数据集,并与[9]和[20]中的10倍交叉验证进行比较。编码-解码器和基于注意(attention)机制的RNN方法的结果都符合预期。

表5:使用10倍交叉验证的附加ATIS语料库的联合训练模型结果。



四、使用ATIS数据集作为实验数据集的论文

   1、JOINT SEMANTICUTTERANCE CLASSIFICATION AND SLOT FILLING WITH

RECURSIVE NEURAL NETWORKS

   2、THE EFFECT OFLOSS FRAMING ON THE PERCEIVED DIFFERENCE OF

CO2 AMOUNTS: IMPLICATIONS FOR ADVANCEDTRAVEL INFORMATION SYSTEMS (ATIS)

五、学习心得

        在阅读论文的过程中,由于对专业术语的不了解Attention-Based RecurrentNeural Network Models这一让我产生了很大的疑惑?什么是基于注意力机制的递归神经网络模型?神经网络倒是听说过,可注意力(Attention)指的是什么?我查了很多资料。

         通过查阅,我知道了:

1、googlemind团队的这篇论文《Recurrent Models of Visual Attention》,他们在RNN模型上使用了attention机制来进行图像分类,从而让Attention机制火了起来;

2、与论文2相似的是Bahdanau等人在论文《Neural Machine Translation byJointly Learning to Align and Translate》中,使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,将attention机制应用到NLP领域中;

3、论文 Neural Machine Translation by Jointly Learning to Align andTranslate 在NLP中使用attention机制,他们把attention机制用到了神经网络机器翻译(NMT)上,NMT其实就是一个典型的sequence to sequence模型,也就是一个encoder to decoder模型,传统的NMT使用两个RNN,一个RNN对源语言进行编码,将源语言编码到一个固定维度的中间向量,然后在使用一个RNN进行解码翻译到目标语言。

在decoder中加入一种attention的机制。直观上理解,就是decoder可以决定更多地注意原句子中的某些部分,从而不必把原句子中的所有信息都encode成一个固定的向量。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值