关于启发式对话中的知识管理系统.doc
《关于启发式对话中的知识管理系统.doc》由会员分享,可在线阅读,更多相关《关于启发式对话中的知识管理系统.doc(14页珍藏版)》请在三一文库上搜索。
1、关于启发式对话中的知识管理系统【导读】自然语言对话系统正在覆盖越来越多的生活和服务场景,同时,自然语言对话的理解能力和对精细知识的对话召回率在技术上仍有很大挑战。启发式对话通过建立知识点之间的话题关联,使对话系统能够主动发现相关知识,充分发挥知识的协同作用,引导对话过程,把知识在合适的时间主动送达用户。知识不只是以知识图谱或问答库等形式被动被搜索,启发式对话中的知识结合了先验经验和用户对话习惯,从而拥有知识角色,让对话理解和对话流程更加自然,也更有用户价值。在本期公开课课程中,AI 科技大本营邀请到了思必驰 NLP 部门负责人葛付江针对“启发式对话中的知识管理”做系统的讲解和梳理。以下内容为大
2、本营公开课整理。今天给大家分享一下,关于启发式对话中的知识管理系统,分享的内容包括以下五个方面:对话系统的架构首先是对话系统的架构,我们来看一下对话系统流程。在一般的对话系统应用场景,比如在智能音箱、智能电视,包括现在车载的设备等,当用户说了一个问句,智能客服自动的问答和对话,这样的系统的基本流程是它接收到用户的一个问句或者用户说的一句话,然后系统里做一些处理,给用户一个答复。我们今天说的对话系统和传统的问答系统有一个重要的区别,对话系统它是维护上下文的,在做一个对话的时候是有上下文场景,在这个上下文的过程中需要控制一些对话的状态,来完整地理解用户的意图。例如,用户问一句明天会下雨吗?系统会做
3、一些预处理,即一些自然语言处理上的特征处理,比如分词、词性标注、命名实体识别这样的模块,在这里可以识别到一些实体,比如里边的时间是明天,关于天气现象是下雨,这是命名实体可以做到的。经过特征的预处理以及命名实体的识别,然后进入正式的对于这句话的理解。首先是对于用户的每一个问句需要做一个领域的判断,一般做这个领域判断是因为在对话系统里会支持各种场景,首先把用户的这句话限定在一个固定的场景下,然后才能做相应的后续处理。领域的判断一般情况下有各种方式,不管是写模板,还是一些分类的算法,比如这句话我们送到一个分类器里,它可能能判断出它是一个天气领域相关的。在这里边,通过 Slot Filling,它就可
4、以得到天气领域的一个意图,这个意图领域是天气领域,有它的地点和时间。当然这句话没有提到地点,因为一般这样的系统会通过传感器或者是定位的信息,或者是 IP,或者各种设备相关的场景的信息获取到他一个默认的地点或者默认的城市,根据这些信息,然后我们得到一个结构化的意图。这个结构化的意图,然后送给一个对话管理或者对话状态追踪的模块,这个对话状态的管理去做一个判断,说以当前这个领域,比如天气这个领域它的 Slot 是否是满足的。对于天气这个领域比较简单,发现这句话实际上它的领域意图、时间、地点都已经满足了,然后把这些槽位都补充上。根据这些补充好的信息,实际上它就是一个结构化的信息,根据它的时间、地点、天
5、气现象,然后去后台的数据服务里做一个查找,把真正的天气,比如明天需要下雨或者是晴天这样一个信息取出来,然后经过一个答案生成,Response Generation 这样一个模块,然后生成一句比较自然的话,比如说明天可能是一个晴天,然后就说明天是一个晴天,如果再说得更自然一点,可能说是一个出游的好时间,类似这样的,整个流程大概是这样,实际上是一个比较简单的过程。通过这个流程我想跟大家分享一下对话系统的基本架构,首先它要处理一个用户的 Query,然后它要经过一个对话管理的模块,这个对话管理实际上就是维护上下文的信息。再下面是一个意图的理解,这个意图的理解可能有各种方式,包括知识库或者叫知识图谱,
6、包括问答的形式,这种问句相似度匹配,还有一些通用的各种其他的意图的理解,包括意图分类的这些东西。在这个里边,对话管理在这个里边,一般情况下对话管理实际上是一个类似于流程图的东西,比如以刚才天气的里边,它实际上是一种叫 Slot Filling,有几个信息填满之后就可以了。然后在一些其他的对话过程中,比如说典型的客服,实际上一般在客服的具体场景下,比如金融领域的某一种金融业务或者是用户查询一种金融产品,比如保险这种产品,某一种保险产品,它有一些信息,它实际上是一个流程图的形式。还有一种是我们后面会提到的启发式的对话,这几种形式的结合,其实是一个对话的管理。现在一般的系统可能都是处理某一种对话,要
7、么就是 Slot Filling,要么就是一个设定好的流程,要么是一种启发式,能把它做到融合的可能还不是特别多。继续在这个图里边,刚才提到对话管理就是 DM,对话的理解就是知识库,问答对,还有一些通用的,比如说抱怨,一种通用的状态,一般情况下可能是一种分类的方式来做的这种 NLU 的理解之后,各个模块做到这个 NLU 之后,它需要去做一个抉择,因为在各种系统里边,用户的一句话可能都会找到一个答案,我们到底选哪一个答案,所以就做一个排序,排序完之后经过一个答案的生成,最后给用户一个答复。当然这里边,边上还有一个模块就是上下文的管理,它在对话管理、NLU 以及排序和答案生成这些模块里都会用多,它会
8、维护一些上下文的信息。当然这张图结构是比较简单的,但是每一个里边实际上有挺多东西,我们后面看具体的内容,最后我们回过头再来看这张图,可能就会有一些不一样的东西。看之前我们先总结一下现在一些对话机器人的现状,一般对话机器人怎么来评价或者它现在的状态,一般评价的标准,我们对机器人的评价是不太好评价的,我们做一个系统或者做一个学术的研究,一般情况下它怎么来衡量这个机器人的效果,实际上是一个很重要的事,我们要做这个事前需要先定一个标准。一般的像对话系统主要的几种评价的东西,一个是准确率,准确率可能就是基于一些问答对还是不对,或者对话答的对还是不对,比如这个对话进行了十轮,这十轮里有几次对的,几次错的,
9、直接给一个零一的判断,然后算出准确率。另外一个,人工打分,因为这个对话过程中它可能并不是一个绝对的零一的判断,有的时候它给的答案可能不那么合理,但是一定程度上能够接受,所以人一般可以给它打一个分数,比如说 1 到 10 分或者 1 到 5 分,给一个分数,最后给这个机器人一个综合的打分。学术上可能借鉴一些其他系统的标准,比如说困惑度或者 BLEU 值这样的方式来给一些打分,一般这种标准更多是在一个限定的数据集里去衡量这句话,生成的这句答复它的语言流畅程度,可能更多的是从语言流畅程度的角度来衡量,当然这些困惑度或者BLEU值,它的好处是能自动地来判断,但是坏处是它其实很难严格地从语意上来判断这个
10、系统好或坏。在一些极窄的领域里,比如说订餐,甚至更窄一点,比如订一个披萨或者订咖啡,或者拨打电话,这种很窄的领域,实际上现在机器学习的方法和模板的方法都能够做到一个比较好的精度。机器学习或者深度学习,但是深度学习在这种场景下它也依赖于一个比较大的数据量,相对于这个场景来说,因为一般在这种实验上,它的场景还是比较小的。如果场景比较多的话,现在在一个比较复杂的场景里,可能现在深度学习的效果还不是很好,就是在多轮对话的场景下,并且有多个场景混合的话。另外在一些较大的领域,比如客服,客服这个场景,它一般情况下对于一个企业的客服,一个企业的客服可能会涉及到几种产品,既使是一类产品也会涉及到这一类产品不同
11、的产品线以及它各种型号这些东西,客服它相对来说是一个比较宽的领域。现在不管是深度学习,还是其他传统的机器学习,如果在整体都用深度学习的方式,它的准确率是比较低的,很少能做到 50% 以上的,就是在一个比较大的领域里。所以现在在客服领域里,很多系统是基于检索式或者是基于模板的,检索式就是它准备好了一些标准的问答对,因为企业做自己的客服的时候,一般情况下积累了一些它自己对自己产品的标准问题和答案的,用户的一个问题就到这里找一个最相似的问题,然后给它一个答案。这种方式目前是用得比较多的。另外一种就是模板,人工去写一些规则的模板或者叫语义的模板,然后去解释用户的这个问句包含哪些主要的信息,然后把它对到
12、一个意图上给一个答案,在这些领域里边,较大的领域实际上机器学习的算法还是有一些挑战的,即使用模板它也有很多的挑战,因为模板多了之后它就会有冲突以及不好维护的问题。启发式对话系统启发式对话系统,是我们正在做的一个启发式对话系统,启发式对话系统现在有一些相似的概念,比如说主动式对话,思必驰提出来这个启发式对话可能主要是在这样,在一些企业的场景下很多时候用户实际上是面对一个对话机器人,他不太清楚能问什么样的问题,以及这个机器人的能力是什么样,它能回答什么样的问题,或者用户大概知道他要什么东西,但是他对于问问题这个事,让他去问很多问题还是要费一点脑筋的。启发式对话大概就是这么一个流程。它实际上通过这些
13、问题背后的一些联系,能让这个对话一直持续下去。当然你说你不想了解然后它就结束了。这是一个基本的概念。我们来看一下启发式对话有哪些基本的特点,首先根据用户的问题主动引导对话交互,用户问了一个问题,系统会根据这个问题把一些相关的问题列出来或者问用户他想不想了解。用户的问题是以多种形式连接到知识点,当然这个对话后面,我们叫知识点,以一个知识点的方式,连接一个知识点可能就是对于一个具体的问题,这个问题可能有各种不同的问法,我们都认为它是一个知识点。以多种形式指的是现在常见的形式,它可能是一个问答对的形式,在这个对话系统后面可能是一个问答对的形式,也可能是一个知识图谱的形式来存在的,但是它们的连接是统一
14、的,都是以一种知识点来管理它们。知识点如果直观地理解,我们可以认为它就是问答对或者知识图谱里面的一个实体相关的属性这样的东西,这些知识点之间或者问题之间,它通过话题来融合,话题实际上对用户是一个不可见的概念,它是为了去做推荐,因为我们把问题通过话题做一个连接之后,后面这个启发式对话实际上是根据话题来做一些选择,用户问了一个问题,我们把这个问题所在的知识点,这个知识点它所在的话题,根据这个话题去找到一些相关的话题,然后在那些话题下面找到一些对应的问题,然后推荐给用户。话题之间有一些语义或者逻辑关系的,后面会具体讲这些话题之间是怎么组织的。整个对话过程可能就是根据话题来做整体的规划以及跳转的。这是
15、现在整个启发式对话它的一些特点。这是一个具体的例子,这是一个产品的形态,就是说这个话题的组织。对于一个企业的客户,它如果想做一个它的对话系统,它可以人为地去设定一些话题,这个话题是以树型的组织,比如在这个里边就是一个关于花相关的话题,比如怎么学习花艺,各种花艺相关的信息,每一个话题,橙色的这部分是这个话题的组织,话题树,用户可以设定这样一个话题的组织。在这个话题下面,每一个话题下面用户都可以去定一些,比如花艺大师,花艺大师下面用户可以定义它在这下面一些人相关的信息,然后具体把这些人相关的信息列出来。一个终端的用户就可以去问这些关于人的信息,所以话题大概有这么几种形式,首先以右边这个图的形式,某
16、一个话题下面可能有两三个这样的话题,当然这个话题还可以有层次,它可以有子话题、孙子话题,这个层次结构可以来组织扩展,当然一个话题下面可以有很多话题,这个话题的一个组织形式,这些基本的概念。对话系统中的知识管理再我们来看一下,在对话系统里边这些知识它在对话的理解以及对话管理中是怎么来发生作用的,后面我会结合现有的技术,现有的大家常见的做对话里边的相关技术,然后和启发式对话一起来介绍对话系统中的知识管理。首先来看几个例子,在机器人理解语言中可能遇到的一些问题,这个给大家一个直观的感觉,可能遇到哪些问题。比如说在理解上,机器人理解语言的过程中,比如说“今天天津适合洗车吗”这样一个输入,如果是语音或者
17、拼音输入都可能会有这样的问题,“今天天津适合洗车吗”可能和“今天天津市河西”,天津市有一个河西区,可能就会理解错,从拼音到文字可能就会出错,实际上这个非常相似的。这是我们在语言上可能会有一些问题,机器来做这个事的时候,它实际上很难来判断,人是有一些背景的知识和上下文知识的。我们来看一下,刚才列了那么多问题,一般情况下来做这个对话里边核心的,刚才我们在最开始的架构图里已经看到对话系统里边核心的三大块,一个是自然语言理解,一个是对话意图理解,对话管理和对话答案的生成三个部分。大家比较关注的是前两个方面,对话的理解和管理,理解这部分可能最常见的是基于规则的系统,比如我们就写一个 pattern,科研
18、人员、时间、发表过的文章,类似这样的,这个规则系统里有一些词典和规则的组织,当然这有一系列规则组织的问题,实际上它也是一个比较浩大的工程,但是我们从算法或者是我们理解的角度,可能觉得它还是一个比较简单的方式,当然规则多了之后是挺难维护的。另外一种可能就是通过意图的分类的方式,比如通过一些机器学习的方式给它做一个分类。比如我们做一点简单的,比如天气,对话系统只要理解出来它是天气,然后我们就给它播一个天气预报,很多场景下用户也可以接受,系统不理解它里边具体的东西,只理解是某一种意图,然后就给它做一个播报。这里面常见的这种分类的算法都可以用得到。另外一种是问句检索的方式,比如在闲聊或者客服中实际上都
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 启发式 对话 中的 知识 管理 系统
链接地址:https://www.31doc.com/p-3388130.html