⬆⬆⬆ 点击蓝字
关注我们
AI TIME欢迎每一位AI爱好者的加入!
本期AI TIME PhD直播间,我们有幸邀请到了来自哈尔滨工业大学社会计算与信息检索研究中心的在读博士覃立波,他的研究方向为任务型对话系统。
本次演讲主题是——多领域端到端任务型对话系统研究分享 Dynamic Fusion Network for Multi-Domain End-toend Task-Oriented Dialog。
覃立波:哈尔滨工业大学社会计算与信息检索研究中心(SCIR)在读博士生,导师车万翔教授,创立知名公众号[机器学习算法与自然语言处理]及同名知乎专栏,研究兴趣为任务型对话系统,以第一作者曾在ACL、EMNLP、AAAI、IJCAI发表论文多篇。
一、经典的任务型对话系统中的pipeline结构 (Pipeline Task-oriented Dialog System)
Pipeline Task-oriented Dialog System是由自然语言理解(NLU), 对话管理(DM), 和自然语言生成(NLG)几个主要模块构成的。举例来说,语音信号输入“帮我订一张去北京的机票”,可以通过这三个主要模块得到文本回复。首先,“帮我订一张去北京的机票”会作为假设/观测 (Hypothesis/Observation) 输入到自然语言理解(NLU)模块,自然语言理解主要包括领域识别、意图识别和语义槽填充。经过自然语言理解模块后得到输出的语义帧(Semantic frame):领域为”机票“, 意图为”订机票“, 语义槽为”到达地=北京“。随后语义帧作为对话管理(DM) 的输入得到最终对话状态 (Dialogue state),”出发地=NULL,到达地=北京, 出发时间=NULL“,然后通过自然语言生成 (NLG)模块直接生成对话动作 (Dialogue action)去发出询问(出发地)并生成文本回复 (Text response)“请问您从哪里出发?”。
图1:Pipeline Task-oriented Dialog System
虽然Pipeline Task-oriented Dialog System已经在商业系统中应用比较广泛了,但它仍然会存在一些问题。第一个是错误传播(Error propagation),因为中间会经过三个模块,所以如果一个阶段出现问题,那么错误会越积越多。第二个是数据标注的困难(Heavy Data Annotation)。每一个子模块都需要标注大量数据,在现实中是不可取的。于是研究人员提出,能不能直接用端到端任务型对话系统(End-to-end Task-oriented Dialog)生成回复呢?
二、基础端到端任务型对话系统。(End-to-end Task-oriented Dialog System)
如图所示,给定一个Dialogue History X={x1,x2......xk} 和Knowledge Base B,直接生成回复Y= {y1,y2......yn}。不需要之前提到的NLU, DM, NLG模块。图中的橘黄色代表Dialog History,白色表格代表Knowledge Base,蓝色是生成的Response部分。通过给定的Dialog History和Knowledge Base,用Seq2seq Model直接生成了文本的回复。
图2:End-to-end Task-oriented Dial