任务型对话机器人自然语言理解(一)

网友投稿 970 2022-05-30

一、引言

随着移动互联网和智能终端的快速发展,任务型对话机器人的应用越来越广泛。任何一款成熟的对话机器人产品都离不开任务型对话系统。目前,对于任务型对话系统工业界主流的做法都是采用一套较为固定的pipline方式实现。具体的流程图如下:

整个pipline由三大模块组成:自然语言理解(NLU);对话管理(DM);自然语言生成(NLG)。现在越来越多的产品还融入了知识库,主要是在对话管理模块引入。在这里自然语言理解、对话管理、自然语言生成都属于自然语言处理技术。在语音会话时,会在输入和输出端加上语音识别(ASR)和语音合成(TTS)。自然语言理解(NLU):主要作用是对用户输入的句子或者语音识别的结果进行处理,提取用户的对话意图以及用户所传递的信息。

对话管理(DM):对话管理分为两个子模块,对话状态追踪(DST)和对话策略学习(DPL),其主要作用是根据NLU的结果来更新系统的状态,并生成相应的系统动作。

自然语言生成(NLG):将DM输出的系统动作文本化,用文本的形式将系统的动作表达出来。

以上每个模块在学术界都对应着一个研究领域,本文中主要介绍对话系统中的自然语言理解模块(NLU),NLU是对话系统中非常重要的一个模块,主要包括意图识别和槽位填充。下面将介绍意图识别和槽位填充的概念以及近几年用于意图识别和槽位填充的主流方法。

二、意图识别和槽位填充概念

(1)意图识别

意图识别,顾名思义就是判断用户要做什么,比如一个用户向机器人问了一个问题,于是机器人就需要判断这个用户他问的是天气、是旅游还是问某部电影的信息呢?说到底意图识别就是一个文本分类的问题。既然对应文本分类,那么首先就需要将明确有哪几类意图,也就是说我们需要预先定义好意图的类别然后才能考虑意图识别的问题。那么如何定义意图类别呢,它不像情感分类任务那样,不管什么场景,都能划分成积极、消极和中立情感三分类;我们讲意图分类是需要将其置于特定的场景中来考虑的,不同应用场景就有不同的意图分类。比如在美团APP上,它把用户的搜索意图分为订外卖、订酒店、订旅游门票、订电影票、订机票等类别。

任务型对话机器人之自然语言理解(一)

(2)槽位填充

理解一段文字的一种方法是标记出对句子有意义的词或记号。在自然语言处理领域,这个问题被称为语义槽填充问题。

在对话系统中,槽填充过程一般指从用户一句话中抽取出关键信息,将用户隐式的意图转化为显式的指令从而让计算机理解。语义槽一般用来表示用户的需求,如出发地、到达地、出发时间等信息,作为意图识别的关键字,是进行下一步对话的提示信息。

在对话系统中,填槽的意义有两个,一个是作为条件分支进行多轮对话,还有一个是作为信息补全更明确的表达出用户的意图。换言之,填槽不仅是补全用户意图的方式,而且前序槽位的填写还会起到指导后续信息补全走向的作用。

三、意图识别和槽位填充方法

关于意图识别和槽值填充既可以作为两个单独的任务处理,也可以联合处理。由于两个任务之间的存在较大的相关性(意图和槽值之间有相关性),因此联合建模的效果一般会更好。接下来我们将介绍一些相关的论文方法。

论文1:A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding

(1)概述

(2)模型结构

(3)定义损失

(4)模型结果

联合模型和分开的模型的对比:

论文2:Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling

(1)概述

(2)联合模型

联合意图识别和槽位填充的基于注意力的RNN模型如下图所示:

在用于序列标记的双向RNN中,每个时间步的隐藏状态都携带整个序列的信息,但是信息可能会随着向前和向后传播而逐渐丢失。因此,在进行时槽位预测时,我们不仅希望在每个步骤中仅使用对齐的隐藏状态,还希望查看是否使用上下文向量为我们提供了任何其他支持信息,尤其是那些需要长期依赖的信息未被隐藏状态完全捕获。

在模型中,双向RNN(BiRNN)沿正向和反向读取源序列。文章中RNN采用了长短时记忆网络(LSTM)。插槽标签依赖关系在前向RNN中建模。类似于上述编码器-解码器体系结构中的编码器模块,每个步骤的隐藏状态是前向状态和后向状态的串联。每个隐藏状态都包含整个输入单词序列的信息,并重点关注单词周围的部分。然后将此隐藏状态与上下文向量组合以产生标签分布,其中上下文向量计算为RNN隐藏状态的加权平均值。

对于意图识别和槽填充的联合建模,文中采用双向RNN的隐藏状态来生成意图类分布。不加入注意力机制时,先对隐藏状态向量最大池化,然后输入到逻辑回归中来进行意图分类。加入注意力机制时,则取得隐藏状态向量加权平均值。

值得注意的是,与利用显式对齐输入的基于注意力的编码器/解码器模型相比,基于注意力的RNN模型具有更高的计算效率。在模型训练期间,编码器-解码器插槽填充模型两次读取输入序列,而基于注意力的RNN模型只读取一次输入序列。

(3)实验结果

表1显示了提出模型的槽填充F1分数。表2将槽填充模型性能与先前报告的结果进行了比较。

表3显示了文章提出的意图模型和先前方法之间的意图分类错误率。

表4显示了与先前报告的结果相比,在意图检测和槽填充方面的联合训练模型性能。

进一步验证联合训练模型的性能,文章将提出的模型应用于其他ATIS数据集,并通过10倍交叉验证对它们进行评估。编码器-解码器和基于注意力的RNN方法均取得了可喜的结果。

【参考】

[1] Zhang X, Wang H. A joint model of intent determination and slot filling for spoken language understanding[C]//IJCAI. 2016, 16: 2993-2999.

[2] Liu, B., & Lane, I. (2016). Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling. Interspeech.

[3] https://www.jianshu.com/p/cec045c55175?utm_campaign=haruki

[4] https://zhuanlan.zhihu.com/p/92909762

智能问答机器人 智能质检 智能话务机器人 智能语音助手

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:重学数据结构(四、数组和广义表)
下一篇:pthread_attr_init线程属性
相关文章