华为云AI首席“聊天官”来了(二)

上回介绍了我们聊天官的人设确定过程,这次就让我们看看该如何让“小唯”能说会道起来吧~

没看到上一篇的,我来传送门

开始整活!

准备了这么多,终于要开始写语料了,可是对话范围这么广,我们从何写起?

1、闲聊问答分类

根据日常对话的类型,我们定义了闲聊的类型,并做了如下优先级的排序

优先级

类别

定义

备注

p0

寒暄

问候,打招呼等

开启聊天的必要问法

人设

用户对机器人好奇产生的关于人设或其他属性的问题

用户对陌生人,新朋友,都会好奇他的背景信息

敏感

涉及国家,机密,黄赌毒等敏感的话题,人或事

以免被查水表

debug

用户用来测试bot是否可用,是否可以进行对话

前面分析过,为了跨过用户的测试心理,撬动他对bot的认知

p1

抱怨

bot感到不满,程度比辱骂低

用户一定会问到badcase,少不了要被臭骂一顿

调戏

用户与bot聊,bot不可能做到的事情,挑逗bot

管你是男是女,上来就问你有没有对象,大家都懂

竞品

bot同其他智能bot比较

AI产品这么多,少不了要被比较来比较去

夸奖

用户对bot的称赞

对回答不错的问题,我们还是有自信接受夸奖的

p2

热点

互联网热点,热梗

不懂梗的人,很难跟互联网的人聊起来

情感

用户自己的情感输出

每天不止一遍的不想上班要对谁说?找我们就对了

辱骂

bot不满,爆粗口,侮辱bot

破口大骂的场合还是较少的,毕竟我们只负责聊天

确定好撰写范围后,就是写手的分工,根据写手不同的性格会分配不同的类别给他们写。后续可能会出现一个人对某个类别写的厌倦了,此时会再进行重新分工,以保证语料是在纵向和横向同时扩展,进而提高语料质量。

2、利用规则扩展语料

为了能命中用户的不同问法,写手们要尽可能多的写一些扩展问,但是面对像你爸爸是谁,你妈妈是谁,你哥哥是谁。。。等查户口式的问题,光把家里七大姑八大姨都写完就很费力了,还要给每个亲戚配上问题,这活我们可不干!还好CBS服务(华为云对话机器人服务)提供了规则的录入方式,支持我们按[爸爸|妈妈|哥哥|妹妹]是谁的方式,节省了大量的工作。当然前提是,这些问题我们准备有一种答案来回复。那好奇的同学就会问,如果是不同答案呢?问的好,请看下面的方法。

3、抽象对话场景,封装技能

所谓技能,就是把某一场景的对话能力封装起来的集合,比如查天气、订车票、或者像上一段我们说的查户口等。我们可以针对不同城市、时间回答天气情况;可以针对不同时间、出发地、目的地回答票务情况,当然也可以根据不同亲戚关系来给出不同回答,甚至是你爸爸的爸爸的爸爸的...是谁这种情况。除了此类功能性的对话可以作为技能以外,一些可以抽象的句式同样可以做为技能,比如比较选择的问法,AB谁更厉害,你喜欢A还是B。因为用户会拿任何事物进行比较,我们无法穷举,这时对话技能就可以很好的解决这个问题,此处再次感谢CBS服务(华为云对话机器人服务)。下图是我们在对话机器人中设计订票技能时,配置的对话流程,很清晰,不懂算法的人也能配的出来。

对了,千万不要在订票过程中跟机器人说,我要去你心里这样的话哦:)。为了能让机器人的对话范围更丰富,更长尾,我们也引入了外部的一些内容,比如查星座运势,知识问答,甚至还能让他给你作诗,更多技能欢迎来找小唯解锁。

4、表现出上下文的理解能力

前面讲到要征服技术男,机器人少不了一些上下文的理解能力,为了解决这个问题,我们同样是人工+智能的结合。

首先,从对话场景出发,机器人难免会出现回答不上的情况,这时用户,一般会换种问法再继续发问,因为一般人和人之间的对话,也会出现一句话解释不清楚的情况,需要再次澄清。但如果用户反复问了多次,机器人还回答不上,不是又暴露了我们的愚蠢了么。不可以!所以我们会在对话中做一些逻辑,比如当用户连续X次问同一问题时,机器人会有固定的回复;当用户重复机器人的回复时(毕竟,人类的本质是复读机),机器人也会有固定的回复。不信你看:

 

其次,在技能内,我们也可以通过理解用户的意图来达到上下文的理解,比如在查天气时:

同时,为了增强机器人黏性,我们也在设计一些小游戏,可以让用户在闲暇的时候,来玩一玩,试试跟小唯说“猜数字”吧。

5、兜底话术

兜底话术,既在机器人不知道怎么回答时,使用的默认回复。好的兜底可以让人察觉不到机器人的愚蠢”,可以避免尴尬,也要避免对话进入僵局,这样用户就不愿跟你玩了。下面是我们总结的在人工编写兜底话术时的一些原则。

  • 不要机械化,不要说“我不清楚你在说什么”这类的话,看到这几个字,仿佛就看到一个机器人在那嘎巴嘴,不知道你有没有这种感觉。还有想想我们常见的智能客服,回答不上时,就会回复我还不了解,我听不懂你在说什么,就很机械,加强了与用户之间的异类感,用户体验也不会好,甚至还想骂他。
  • 拆穿用户debug心里。既然你想测试我,挖个坑想看我往里面跳,那我就站在坑外面看着你,嗯,就是这种感觉。比如:你这是在测试我; 我知道你就是想看我出丑这类话术回复用户。
  • 转移话题。这可是我们生活中,逃避话题的常见手段,当然,机器人也一样适用。比如:你刚才是不是说过这个;你对这个这么感兴趣么,等等。当然也可以引导至可聊天范围,引导用户去问机器人可以回答的问题上。比如:虽然我不是百科大全,但我能帮你查查天气;聊这些不如我给你讲个笑话,等等。
  • 引导用户澄清。一些难于区分场景的回复,比如用户问再来一个,目前我们无法判断用户想要再来一个什么,唱歌、跳舞、还是讲笑话,所以我们回复,好的,那你再问我一次
  • 装作理解了用户的样子。学习一下我们鼻祖ELIZA的回复方式,化身一个心理医生,让用户来主导对话,我们只是个倾听者,只对提问这个行为进行回复,而不是对问题内容进行回复,比如:那你觉得呢;你为什么会这么想。

以上举了一些栗子,我们在努力总结更多的原则来让“小唯”看起来聪明点,甚至还能向下引导对话,延长用户的对话时间,进一步达成我们可持续对话的目的。除了人工编写兜底话术外,我们还引入了生成式的对话模型的能力,此处还要@CBS服务(华为云对话机器人服务),来帮助我们自动生成回复。根据人工编写的语料,学习人设的回复风格,来回答一些人工无法覆盖的长尾问题。下面这个对话,对着小唯发誓,可都是生成的,没有一句是人工写的,来品品吧。

最后,关于我们

讲了两篇,从人设的设计到话术的设计,其实就是围绕着“平等对话”的本质,减少用户的异类感,同时,过程中给用户留下记忆点,让用户感受到我们有趣,聪明,与其他机器人不一样的点。当然少不了平时对各种聊天场景的观察和体会,少不了写手们一句一句的设计对话逻辑,少不了精准的语义模型,情感模型等。做对话的终点都是星辰大海,都在盼望“贾维斯”来到身边的那一天,任重道远,我们继续加油!

最后还是要祭出我们的公众号二维码,关注,然后来找小唯聊天吧!

最后的最后,团队也接各类项目合作,也需要各类人才,有对小唯感兴趣的欢迎随时来找我们哦。我们是华为云EI-对话机器人服务:)

(完)