如何提高机器人的识别准确率
之所以谈到这个话题,是因为我在和很多人工智能训练师沟通时,大家经常会问到这个问题。不管是刚刚开始智能运营,还是已经上线了一段时间的企业,大家面临的一个共同问题是:机器人无法正确识别用户的意图。识别都出错了,问题解决又从何谈起呢?
举个例子,一家银行的客服机器人,客户发来以下问题:
“账单”
“信用卡账单”
“还信用卡账单”
“信用卡额度”
“信用卡还款额度”
请大家思考一下,客户的意图分别是什么?
“账单”——查账单;
“信用卡账单”——查账单;
“还信用卡账单”——还款;
“信用卡额度”——查额度;
“信用卡还款额度”——查账单。
我们会发现,哪些问题容易识别错误?
“还信用卡账单”,机器人容易识别成“查账单”
“信用卡还款额度”,机器人容易识别成“查额度”
我们虽然以银行为例,但我想,大家在实际训练和运营中,一定遇到过类似的问题。那我们该如何提高机器人的意图识别能力呢?
首先我想说,这其实是一个很系统的事情,没有立竿见影的灵丹妙招,也没有吹糠见米的妙手奇法。但我们可以从以下几点着手,系统的总结和寻找提高机器人识别率的方法,我这里先抛砖引玉,大家可以沿着这个思路,对自家机器人的识别能力进行提升。
第一、知识目录的梳理是底层
我们都知道,知识库中都是标准问,而客户很少会通过标准问向我们提问,通常情况下,在经过客户的语言转述后,由于客户个人语言逻辑的习惯,同一个问题会有各种各样的表达,这就带来了一个问题,如何把客户众多的相似问对应到标准问。
我们第一步就是整理标准问,这里需要注意:
1、标准问从哪里来?
2、标准问是越多越好吗?
3、标准问该如何写?
标准问是从知识目录中来,有多少知识分类,就对应有多少标准问,所以标准问不能随便产生,同时也不是越多越好,因为标准问越多,机器人进行识别的难度越大。标准问的写法是我们在和很多人工智能训练师沟通时会经常讨论到的,我们发现,很多训练师的标准问是从大量客户的相似问中根据自己的经验提炼出来的,而不是从知识类目中,按照标准写法进行整理的,所以这里还是建议大家按照标准写法进行书写。
从这点上我们可以看出,知识目录会影响标准问,而标准问又会影响到识别率,那么,我们该如何整理知识目录呢?
第一步,进行场景梳理。根据企业的业务情况,梳理出机器人可以解决的问题,根据这些问题,进行场景的梳理;
第二步,根据这些场景,梳理出机器人服务的一级类目、二级类目、三级类目。我们的标准问就是从这些类目中来的。这种做法会避免一个问题,那就是训练师在标注中遇到无法标出的问题时,会随意增加标准问,也就是不会增加分母的数量;
第三步,基于训练的方便和业务经验,对于不同类目进行合并和新增分类,这样会大大增加训练的效率和识别率。
知识目录的梳理,是整个机器人识别的知识架构,也是标准问产生的基础,有了这个,我们就解决了识别的第一个问题。所以,如果训练师在机器人的运营训练中,出现了识别率不高或者阶段性下降的问题,可以先从知识目录进行分析,寻找原因。
第二、个性问的整理是基础
客户是不会按照我们整理好的标准问来向机器人提问的,而是会使用个性问。所以,我们整理的个性问越多,覆盖到客户问题的概率也就越大,那我们该如何进行相似问的整理呢。在弄清楚个性问该如何整理前,我们先思考这样几个问题:
1、个性问从哪里来?
2、如何处理个性问?
个性问当然是从客户中来,也就是客户和我们实际对话中说的话,我们称之为原始语料。根据不同场景收集客户的原始问法,收集的越多,覆盖的越广,机器人的识别能力就越强。就好像是学生学习,在掌握了各种学习方法和公式之后,最重要的就是刷题,一个学生刷的题越多,考试的时候,成绩就越好。一个学生为什么会做错题,只有两种可能,一是审题错误,二是看了之后不会。怎么办呢,除了掌握正确的方法之外,就是多做题。机器人同理,多整理个性问,机器人看的个性问越多,自然识别能力就越强。
那我们该如何处理相似问呢?从客户原始对话中得到的原始语料拿来就可以直接使用吗?当然不行,为了提高准确度和效率,我们需要按照以下步骤进行处理:
第一步,进行语料的清洗,这个比较简单,我们这里不做详细讲述;
第二步,对清洗之后的语料,根据我们上一环节梳理出的类目进行聚类和分类,聚类可以让我们分清楚每一个大类,分类可以对每一类语料的多少进行判断;
第三步,对于归类之后的语料,如果达不到训练的要求,可以继续收集或者训练师自己进行编写。
通过以上步骤,我们对机器人识别需要用到的个性问就处理好了,这是机器人训练的基础,没有这一步,机器人的识别能力是很难提高的。
也有一些企业的训练师会问到我这个问题:现在不是有深度学习吗?干嘛还要整理那么多个性问,这也太原始了吧。而且还告诉我,他们在对机器人训练时,给机器人匹配的语料也很少,但是识别率还是不错的,他们就会认为语料梳理其实没那么重要。
在这里我想说的是,虽然有深度学习技术,但算法对语料的数量还是有要求的,有的企业给到机器人的语料也很少,但是感觉机器人的识别能力不错,其实,很有可能是因为系统提供商之前做了同行业的大量的客户,在同行业的训练中积累了大量的语料。所以,我们只需要根据自己企业的情况进行部分语料的整理就可以了,因为同行业之间客户的问法还是有很多相似之处的。
所以,当你的机器人识别准确率低时,从语料开始,从整理个性问开始,从根本上解决问题。但是,这一环节我们不能上来就做,还是要根据问题咨询量的分布进行优先顺序的安排,倘若全面铺开,恐怕见效就比较慢,如何做,我后面会详细的讲述。
第三、标注的质量是关键
在和一些企业的人工智能训练师沟通时,大家还会谈到一个问题:同样一条个性问,训练师甲认为应该是A场景,训练师乙却认为应该是B场景。其实,这个问题和人工一样,同样一个问题,两个人的理解完全不同,那自然给出的答案也就不同。
为什么会出现这样的情况,我们该如何进行处理?如果这个问题不解决,就会影响机器人的识别能力,在搞清楚这个问题之前,我们先要理清这样几个问题:
1、标注和识别能力之间的关系?
2、如何提高标注的质量?
3、日常标注工作的开展,工作如何分配?
标注和识别能力之间的关系,我们可以这样来理解。一个3岁的小孩子,我们拿一些动物的图片给他看,告诉他图片中的动物是什么,让小孩子把图片中的内容和实际的动物建立起正确的联系,这就是标注。如果光给小朋友看一张照片,小朋友恐怕很难记得住,我们给小朋友看的图片越多,他认识动物的能力就越强,这也说明,原始数据的数量还是很重要的。
通过这个例子,我们就知道了标注和识别能力之间的关系,也就是说,机器人识别能力的高低和标注工作的开展有直接的关系。那么,我们该如何提高标注的质量呢,为什么会出现训练师甲认为应该是A场景,训练师乙认为应该是B场景的情况,其根本原因是标注规则制定的不够清晰,标注流程不够完善。
标注规则的制定,是根据公司业务的实际情况,对收集的语料该如何落实到知识库相应的类目进行明确详细的规定,规则制定的越明确,越清晰,标注人员在进行标注时就会越准确,那训练的效果自然就会越好。标注流程对标注中出现的各种情况,不同人员之间的分工、衔接进行规划,这也是保证标注质量的关键。
标注工作量大,日常该如何开展,如何进行工作分配呢?
最好的方式就是有专门的标注团队,专人负责,这样便于工作的开展。但在我们接触的大部分企业中,很少有企业能在标注这个岗位上安排足够的人员,因为智能训练团队本身人手就不足。因为人手不足标注的工作量就很难满足,对于这个问题,我们可以通过以下方法来解决:
1、内部调度。可以从公司内部临时调度人员进行标注工作的开展,具体多少人,时间的长短可以根据标注工作总量的多少决定;
2、外部资源。可以对不涉及企业机密的标注工作进行外包,来解决人手不足的问题。所以,标注工作的开展,是提高机器人识别能力的关键工作之一,企业应该安排有管理能力,业务能力强的人士担任标注团队的管理人员。
第四、Bad Case决定工作如何开展
即使我们把以上的工作都做好,但机器人还是可能出现识别率不高,或者阶段性出现识别率下降的问题。因为机器人的训练是个长期运营的过程,识别率的提升也是需要过程的。在这个过程中,我们会面临人手不足、工作量大、内部流程不顺畅等各种问题。因此我们除了按部就班的进行训练工作,还有一项重要的工作,那就是Bad Case,我们需要对识别错误的问题进行优化处理,只有这样,才能不断的提高机器人的识别能力。
对于出错的问题,我们需要进行大量的工作才能提高识别率。因此,我们不可能对所有的问题都进行处理,一来我们没有那们多人手,二来这样见效会非常缓慢,而且有些问题即使处理了,效益也不高。所以,对于出现的问题,我们要根据咨询量的多少,以及公司近期的业务开展情况来决定处理的优先顺序,这样可以把有限的资源投入到更有价值的场景中。
识别能力是机器人处理问题的第一步,识别率的高低涉及到很多模块,不是通过处理单一的问题就能解决的。因此,对于这个问题,不能头痛医头,脚痛医脚,要全面统筹,具有全局意识,才能从根本上稳步推进,不断提升机器人的识别能力。
文/才博(中国)客户管理机构首席服务专家 杨茂林
阅读全文:
《客户观察》2021年3月刊 总第4期 p75-p80
扫码图片二维码进入《客户观察》电子期刊书橱