开发者学堂课程【达摩院智能语音交互 - 人机对话技术浅析:任务驱动型人机对话】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/854/detail/14077
任务驱动型人机对话
内容介绍:
一、任务驱动型人机对话的流程
二、自然语言理解
三、NLU 常用神经网络方法
一、任务驱动型人机对话的流程
任务驱动型人机对话一般使用如下流程框图:
1.第一步
首先,用户给出一条自然语言的指令,如果这个指令是通过语言给出的,那么人机系统入口前会接一个 ASR 的语音识别系统,把语音转换成文字,文字会通过自然语言理解(NLU)模块,它的功能是识别输入话语的领域和意图,获得任务相关的语义信息。
NLU 模块会识别出电影领域,然后意图是寻找电影,其中的演员是 Bill Murray。
2.第二步
然后这些信息流会进入对话管理模块(DM),DM 模块包括对话状态追踪(DST)和对话决策(DP)模块,对话管理的作用是控制人机对话的过程,DM根据对话的历史信息决定对用户的反应,其中的对话状态追踪模块负责更新对话状态如 LU 模块的输出和用户特征等,对话决策模块则是基于当前对话状态,选择接下来合适的动作。
3.第三步
一般来说,对话管理常常涉及与领域相关的知识库的交互,
在这个地址里面,机器会在知识库里查找 Bill Murray ,并发现 Bill Murray 其实出演过很多部电影,因此,对话管理模块会做出一个请求电影发行年份的动作。
工业界中对话管理模块的主流方法一般是基于其它式的方法,虽然在学术界还在积极探索基于神经网络的对话管理的方法,但是这些都还不成熟,需要不断发展。
4,第四步
接下来电影的动作会通过自然语言生成(NLG)模块生成自然语言的语句,发现电影是什么时候发行。其中,NLG 有基于模板的方法,也有基于神经网络的方法,最后通过 GTS 的语音合成系统,把文字转成语音,和人类进行交互。综合以上,从 NLU 到 DM 再到 NLG ,组成了一个完整的任务驱动型人机对话的流程。
二、自然语言理解(NLU)
自然语言理解主要分为三个类型
1.按领域分类Domain Classification
指把用户输入的智能语言语句划分到某个特定的领域,如:电影,餐馆,航班等领域,不同的领域会对接不同的知识库,比如电影领域后面会接一个电影相关的知识库。
2.按意图分类 Intent Classification
指把用户的语句划分到某个意图上,如航班领域中的航班时间,机票费用,地面服务等意图。
3.按槽填充Slot Filling 分类
指在某些槽内填上对应的槽值,如出发城市是一个槽,对应的槽值是杭州,出发月份也是一个槽,槽值是四月…
4.示例
假设用户自然语言输入:杭州机场有什么地面交通?
NLU 模块把它划分到航班的领域,意图是地面服务,然后给城市名这个槽打上杭州的槽值,即槽填空分类是城市名=“杭州”。
三、NLU 常用神经网络方法
1.领域分类
常用的领域分类有:CNN,LSTM, Transformer
2.意图分类
常用的意图分类有:CNN,LSTM, Transformer
3.槽填充
槽填充问题一般会被当作一个序列标注的问题,也就是给输入的语句的序列打上标签,例如:哪些是城市名?哪些是什么都不属于?常见的方法有:Sequence labeling approaches、BiLSTM+CRF、Transf ormer
4.流水线pipeline
经典的 NLU 模块采用流水线的模式,即按照:领域分类->意图分类->槽填充的顺序进行。
5.为什么不联合意图分类和槽填充?
近年来,业界也关注到了这个问题,2016年的 Sequence-based 和 Parallel 的方法都尝试把意图分类和槽填充联合到一起。
Sequence-based(Hakkani-Tur et al.,2016),Parallel(Liu and Lane,2016)
(1)BERT 联合建模意图分类和槽填充
①依据论文:BERT for Joint Intent Classification and
Slot Filling (Chen et al.,2019)
②优点一 :可以通过预训练 BERT 缓解对话标注数据稀少造成的泛化能力较弱问题。
③优点二 :巧妙地利用 BERT 结构联合建模意图分类和槽填充。
④优点三 :可以在两个benchmark获得 SOTA,在两个公开的标准的数据集上达到了最好的性能。
方法及原理如下图所示:
Figue 1: A high-level view of the proposed model.
The input query is “piay the song little robin redbreast”.

