欢迎大家跟我学习第二章的第六节,UNIT的专业术语科普。
这一节我会介绍所有和UNIT相关的专业术语,方便接下的UNIT实操课程。
第一个:BOT和技能。
- BOT & 技能
一个Bot对应的是在一个特定的场景下独立完成的对话系统。用来满足特定场景下的对话理解与交互需求,通常按行业垂直划分。
例如:银行信用卡办理的Bot,电视遥控的Bot。
Bot在这里和我们手机里App是类似的。
例如:一个银行卡办理的Bot,一个电视遥控的Bot,甚至说一个差旅的Bot。它就是在一个特定场景下独立完成的对话系统。
技能是某一个方向的对话能力,分为两个:一个是自定义技能;一个是系统的技能。自定义的技能完全由用户配置,系统技能由UNIT平台预置。但是开发者可以在后期进行干预,技能同时包含了对话意图和问答意图.Bot拥有的技能,既可以用于用户对话的对话意图,也可以实现简单的FAQ问答。
- 意图 & 词槽
意图的意思是在一个对话任务中,Bot要理解用户的目的。
例如:用户说帮我换到中央台,对应的就是电视控制Bot技能下的对话的意图就是换台;
例如:我说北京天气,这个对应的意图就是查天气,它是代表着一种下一步其实要做的一种操作的方向;
定义Bot技能下的对话意图时,需要设置对话意图关联的词槽。关联的词槽是实现对话意图的必须条件,以及Bot理解对话意图后给Bot用户的一个回应。
用户意图分为对话意图和问答意图,问答意图主要用来圈定某一个范围内的主题问答对,这就是意图。意图很多时候可以理解成一个方法,是一个开始,然后把它做成一个分类,通过知道了他的意图是什么,然后下一步,我们就知道你这句话的意思。
简单的说意思是什么,然后接着去引导用户给出更多的信息。
词槽是满足用户对话意图时的关键信息或限定条件。可以理解为,用户需要提供的筛选条件。简单的来说,就是为了完成这件事所需要的关键信息。
例如:在查询天气的时候,词槽就是地点和时间;
例如:说换到中央台的时候,中央台就是一个电视台的词槽;
词槽会一定程度上影响系统对换台这个对话意图的执行,这个是意图和词槽的定义,这两块非常关键。
在整个UNIT系统中,我们进一步的来把它理解下。
- 将一句话理解为意图和词槽
比如:用户说今晚6点帮我在全聚德预定一个房间。意图是预订餐厅,词槽就是关键的信息,餐厅名是全聚德,时间是2017年7月5日18点。
进一步我们会发现,我们需要知道有多少人,才能决定订多少人的包厢。
所以机器人会说:“好的,多少人?”。那么用户进一步回答:“10个人”。这个意图是澄清人数词槽,那这个词槽是人数,是10。
进一步的用户说:“多谢”。这个意图是表达感谢,词槽是空。
我们要注意一下,词槽为空是一个比较正常的现象,不要说发现词槽为空硬要往里面去填,这个是没有意义的行为。
- 词典
下一个比较关键的定义叫词典。词典是属于词槽的所有词汇的集合,这个读起来比较拗口。我们拿两个例子做个解释。
比如餐厅的词槽,刚才我们看到了是全聚德,那词典就是所有的餐厅名,全聚德、海底捞、便宜坊、肯德基等等。这样大家就能理解了,词槽是:全聚德,它是一个餐厅名。词典则是所有的餐厅名。
再比如说晴天,词槽是晴天,词典是所有天气的词槽,晴天、阴天、下雨、大雨等。我们看到图片上有一个“#”,这代表的是它的同义词,肯德基和KFC是同义词,晴朗、晴和晴天是同义词,有雨、下雨是同义词,阴和阴天是同义词。
我们在这些同义词上也要尽可能多的标注出来,才能让机器人更加聪明,才能够识别不同的词语。
下面这对比较重要的概念是对话样本和对话模版。
- 对话样本 & 对话模版
对话样本:是用来给对话系统做示范,教它在用户说的具体句子里面如何理解对话意图,哪个词是重要信息,对应的词槽是什么。
比如通过对话样本标注告诉机器人,三亚明天会不会下雨和三亚明天会下雨吗,都是告诉它这是询问天气的语句。其中三亚是对应城市city这个词槽,明日和明天都是time这个词槽。
我们训练的越多,机器人的理解能力就越强。这个和我们在现实生活中小孩子的学习是非常相似的。听的越多、读的越多,他就越聪明,这就是对话样本。
对话模版是用来给对话系统按照具体的语法句式做出的示范,教它在某一个特定的语法句式中如何理解对话意图。哪个词是重要的信息,对应的词槽和特征值是什么。
我们从话术里面就可以感觉到,对话模版它是一个模版,换句话说我们要给它定义好的一个模版,然后告诉它这句话里边哪一部分代表着什么。
我们看一下对话样本 & 对话模版中对话模版的例子,前面这一块的例子看起来很生涩,有一个“system location,system time天气如何”,这个其实可以把它做成一个“城市+时间+天气如何”这样一个询问天气的对话意图。
比如北京的天气如何?北京今天的天气如何?
这里边我们就会发现,北京或者天津就是这个“system location”,它代表的是所有城市词的组合,“system time”代表的今天&明天,是所有时间描述组成的组合。
对话模版也可以使用读条对话模版组成一个对话模版组,实现按片段去匹配用户的query,实现更强的对话意图,泛化匹配的能力,提高模版对用户的query的召回率。
通常情况下,当我们的对话样本比较少的时候,我们会先用一些对话模版上线。这时候,先让机器人通过对话模版去回答用户的问题,进而再大量的收集用户的信息,收集更多的对话样本,再反过头来让机器变得更加聪明。
下一个比较重要的概念叫特征词。
- 特征词
通常情况下特征词代表了一种约束某条对话模版匹配的范围。比如天气、下雨、热等类别的关键词,它是一种特征词或者提供一定限度的泛化能力。
在订机票的对话中,从北京到上海的“到”就可以和“去、飞”等助词,一起作为特征词。我们如果活用特征词,就可以事半功倍并提高对话模版的精度和覆盖度,最终得到一个很好的效果。
再进一步给大家解释一下,什么叫做特征词词典。它和词槽词典感觉上很类似,开发者自行导入词典,用于系统识别特征词。所有相关的特征词的组合,我们叫它特征词词典。
- 问答对 & 问答集
问答对是什么?
问题和答案的组合称之为问答对,这个听起来比较好理解。它支持一对一、一对多、多对一和多对多。
当某一个问题的问题对中包含多个答案的时候,答案随机呈现,这就是一个问答对,问题与答案的组合。
问答集是什么?
问答集是承载着问答对的容器,与技能中问答意图的定义一一对应,它是一个集合所以叫它问答集。
支持批量将问答内容导入问答集,也支持在线编辑。
- 训练模型
把Bot下所有的配置标注的对话样本、对话模版,打包提交给UNIT平台,来训练对话理解模型,这就叫训练模型。
训练的时长跟训练的对话样本量,对话模版量是有很大关系的。训练量越多,训练的时间越长。训练完成后沙盒中的Bot就会自动加载并生效模型,通常操作会花费几分钟的时间。
- 沙盒环境 & 生产环境
沙盒环境的定义:沙盒环境是UNIT平台提供给开发者创建Bot,训练优化Bot模型的一个环境。每个Bot都配有一个沙盒环境,将训练好的Bot模型生效到沙盒环境后,就可以进行效果验证了,同时可以接入到自己的业务系统中进行使用。沙盒环境可以生成多个模型模版,但只能选择一个放在沙盒环境中。
我们用的多个模型模版,只能放到一个沙盒环境中。
生产环境的定义:生产环境是UNIT平台在百度云上为开发者提供的可定制的稳定的对话服务环境。
它和我们的开发者开发的术语中的生产环境是一样的,就是线上的一个稳定为用户提供服务的环境,就叫生产环境。
说了这么多的概念,我们来看一下是怎么用的。
- UNIT:多轮交互中的回应方式
刚刚我们举的这个例子:
帮我订一个全聚德的十人包间;
好的,您想订什么时间的;
上面就是一个词槽澄清的询问。
今晚6点吧;
好的,帮您订好了;
接下来,还有一种叫引导。
- 需要帮您叫车吗?这是一个引导;
- UNIT:将用户提问进行问答匹配
第二个例子:怎么借现金?,这是一个问题。
我就会在我的库里边去发现,怎么借现金是和【现金贷】借现金的申请流程是什么?这两个是一个意思,我就会把答案推出来,然后告诉你怎么去借现金。这是另外一个问答匹配的例子。
再给大家展示一个精确询问和多轮引导的例子。
- 精确询问 & 多轮引导
刚才我们看到怎么借现金?它是一个问答单元,然后回答。
那问答单元加对话单元是什么样的?
我想了解现金贷怎么申请?
我这有三种,您选择哪一个?
这是一种对话。
我借现金吧;
帮您找到三个相似问题;
那第一个吧;
然后机器人再去说;
这是一个对话单元加问答单元,这两个是有一定区别的。
接下来再给大家介绍两个在智能对话领域经常会说到的概念——知识图谱。
- 知识图谱
知识图谱本质上是语义网,描述真实世界中存在的各种实体或者概念。通俗的将,它可以理解成一个数据库。当然,它不是数据库,不过我们可以用这样的方式去辅助理解。知识图谱是知识的结构化表示。
通常我们用一张巨大的,有点和边组成的图来可视化表现知识图谱。
点,代表实体或概念。用全局唯一确定的ID来表示,称为标识符。点包含属性,称为值对,用来刻画实体的内在特性。
边代表实体之间的关系,用来联系两个实体。说起来非常拗口,我们来举一个例子:
- 比如:知识库中有一个iPhone7的屏幕尺寸的答案,还有一个是iPhone7plus的屏幕尺寸答案。当用户问到iPhone7屏幕比iPhone7plus屏幕大多少时,知识图谱可以支持机器人进行加减乘除的运算,得出大小,比较答案,就不需要在知识库中具备对应的知识规则。
它可以跳出一些知识规则,自动的去做一些匹配。
- 情感分析
情感分析是为对话赋予情感值,根据情感值的正负将情感倾向分为:正面情感、中立情感以及负面情感。
通常情况下,企业更关心客户在对话中产生的负面情绪。因为这明确代表了企业客服工作和改进的方向,以及降低客户的投诉。提升客户体验和工作考核KPI直接相关。
情感分析主要应用于机器人的智能质检中,可以作为一个指标判断对话质量。
评测情感分析的指标主要分为:情感分类的准确和负面情感的召回率。这个之前我们也简单的在前面的对话系统中,大概的介绍了一下。
当我们的一个机器人上线,发现全都是负面情感的时候,我们就知道如何去优化了。什么样的话术引发了后面的负面情感,我们也知道这样的话术尽量少用,或者通过上下文的关联,知道如何优化我们的故事线、优化我们的对话逻辑。
最后我们做一个UNIT所有概念的总结。
- 总结
首先ChatBot分为两块,一个是如何理解用户,一个是如何回应用户。我要先听懂你说的话,之后还要怎么去回复你说的话。这和我们在现实生活中,人和人的交往、沟通是非常相似的。
如何理解又分为意图和词槽,例如:订电影票是一个意图,电影名称、电影院和日期就是词槽。属于如何理解这块。
词槽中有个很重要的词叫词典,词典就是我们所有这些词槽的集合。例如:电影院的影城,所有电影院的名称(天幕新彩云影城、天幕新彩云、天幕),都是天幕新彩云的别称。又或者是:新华国际影城大钟寺店和新华大钟寺店,大钟寺的新华,它们都是一个意思。我们要尽可能多的收集这些词典。
第二步第二块是如何回应,它又分为词槽澄清、回复和引导,刚刚也在例子里给大家做了一个介绍,例如:到哪个电影院看。就是一个词槽澄清,需要确定用户的词槽是什么。
回复又分为两块,一个叫回复话术,一个叫触发条件。
回复话术:用户说好了所有订票的内容,机器人说:“好的,这就为您订票”。这就是一个回复话术。
触发条件:同时它何时回复,是通过之前收集到的信息,还要做一个词槽填满,当我把这个词槽都填满了之后,我才会去说:“好的,这就问您订票”。如果词槽没有填满,可能会去引导说:“您要去哪个电影院呀,要看哪个电影呀”。
第三块是引导,引导分为引导话术、引导目标和出发条件。
引导话术例如:我已经订好了电影票,我可以继续问:“您是不是要买小吃呀?是不是要选个座位?我还可以帮您干什么?”。
引导目标例如:引导买一些饮料,小吃。
触发条件也就是何时去引导,当我已经把这个任务完成了,词槽都填满的时候,我再去进行下一个任务。引导买小吃或是饮料。
好的,这一课主要是给大家科普一下UNIT所有的相关概念,希望大家能有一个全面的理解,之后在UNIT的实操中可以更加得心应手,谢谢大家!