论文and代码 阅读笔记

1.<
----------------------------------------------------------------------

本文介绍基于Attention-Based RNN和 Encoder-decoder 模型的意图识别(intent detection)与槽填充(slot filling),常应用在对话系统的NLU(Nature Language Understand)模块,本文模型特点是将意图识别和槽填充组合在一个模型中来同时实现。所谓意图识别可以看做分类问题,来理解一句话所讲的内容是属于哪个类别,槽填充可以看做序列标注问题,他要求是精确对齐的(alignment is explicit)。列如,对一句话 'what's the lowest round trip fare from dallas to atlanta',他的意图是在讲'airfare'(如果意图分类有:airfare,flight),对应的槽填充结果是:'O O B-cost_relative B-round_trip I-round_trip O O B-fromloc.city_name O B-toloc.city_name',其中'O'表示槽.论文中的例子如下:

1.Encoder-Decoder Model with Aligned Inputs

使用Encoder-Decoder加Attention模型联合意图识别和槽填充两个任务,在Encoder一方,使用双向LSTM模型,

Decoder采用单向LSTM模型。文中讨论了如下三种模式,

论文and代码 阅读笔记_第1张图片

当做intent分类是,只将Encoder的最后一个state喂给分类器!

(a)不使用对齐输入(with no aligned inputs )

就是指每个状态的Decoder的输入只有

(b)使用对齐输入(with aligned inputs)

(c)使用对齐输入(aligned inputs)和Attention模型

 输入序列是X(x1,x2,x3,x4),在某个解码时刻i,此刻解码状态是Si,通过Encoder得到隐层对齐向量Hi(h1,h2,h3,h4),求得此时刻Attention模型的语境向量(context vector)Ci,上一时刻产生的标签是Yi-1,则有Si = f(Si-1,Yi-1,Hi,Ci)。这里Context Vector的计算是讲隐层状态Hi做为一个前向神经网络的输入,然后将神经网络的输出送入到Softmax函数求出离散概率值,在跟Hi相乘得到Ci。公式如下,函数g()就是一个前向神经网络。

   论文and代码 阅读笔记_第2张图片 


2.Attention-Based RNN模型

这是文中提出的直接使用双向LSTM模型+Attention模型的方案,如下图:

当采用Attention模型时:

我们直接使用隐层状态H来做意图分类。

当不采用Attention模型时:

我们在隐层状态上加一层mean-pooling,然后再加逻辑回归来做意图分类。

相比较上文提到的Encoder-Decoder Model with Aligned Inputs方法,Attention-Based RNN方法具有更高效的特点,因为在训练过程中,方法一需要读输入两次,二方法二只需要读一次。


论文and代码 阅读笔记_第3张图片













你可能感兴趣的:(机器学习,人工智能,自然语言处理,LSTM,Attention-model)