前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云+社区年度征文】成功交付20+NLP技能后,AI产品经理总结的实战方法论

【云+社区年度征文】成功交付20+NLP技能后,AI产品经理总结的实战方法论

原创
作者头像
饭大官人
发布2020-12-20 21:48:10
3K1
发布2020-12-20 21:48:10
举报

从事自然语言处理领域已经超过两年半的时间了。

在此期间,头脑风暴大概了100多个想法,推演细化期间拍死一半,开发过程中又夭折一半,最终交付到客户手上的对话技能已经超过了20多个。

从最初的理论学习,到实际开发,再到产品上线,最后拿到上线后产品用户反馈和数据反馈,一路来成长了许多。

作为一个人工智能产品经理,在这个平台写下自己的心路历程,以供各位开发侧的同学讨论,以求技术发展,共同精进专业。

本文较长,分为三个段落谈谈我做自然语言以来,总结的实战方法论。

段落一,究竟如何理解自然语言处理

段落二,如何评测对话机器人的智能程度

段落三,拟人化程度真的是越高越好么

正文开始。

————————————————

一、究竟如何理解自然语言处理

自然语言处理(以下简称为NLP)被誉为人工智能皇冠上的明珠,想要摘得这颗明珠,道路上自然是充满了艰难险阻。

都说NLP麻烦,那么究竟麻烦在哪里呢?

有人可能从技术角度分析,是词法分析,句法分析,语义分析,情感分析,上下文理解,指代关系等等等等,我们先忘记这些专业范畴的概念,来看看下面的一些例子。

如果说

“武汉市长江大桥

“货拉拉拉不拉拉布拉多”

“美的家电,美的全面,美的彻底”

这类分词处理仅仅是基础入门级热身的话,最让我们NLP从业者崩溃的,往往是这类句子:

“中国队大胜美国队,中国队大败美国队”

“冬天能穿多少穿多少,夏天能穿多少穿多少”

“中国足球:谁都打不过;中国乒乓:谁都打不过”

“剩男剩女产生的原因只有两个,一个是谁也看不上,二个是谁也看不上”

“喜欢上一个人”我所理解的就有至少四种意思。

“wocao”不同的发音,同样有不同意思,而ASR也只会翻译成汉字。

以中文的博大精深,分分钟都可以教自然语言处理做人。

在实际的业务中,从业务后台翻出用户使用具体产品的对话log来看,用户的表达中,经常会出现下面的内容,常常让机器人并不知道如何接话,卡顿在那里。

“XSWL”

“Duck不必”

“给我康康你们的处理进度”

“这个老妹儿长的太上头了”

NLP难在哪?这里简单做一下提炼。

1、语言是人类思维/知识/想法的有损表达。

2、用法隐蔽,语义抽象,语法歧义。

3、日常用语不规范,指代/省略带来结构和语义的缺失。

4、语言是不断演化的,概念会转移,新的概念层出不穷。

5、实际业务中的错别字,双关语,错误表达,矛盾表达。

脱离具体的语境,很多句子对于人类而言,也是有歧义和理解困难的,何况是计算机。

这不是算法的,技术类问题,而是语言学,甚至是社会学的问题。

若想摘下人工智能皇冠上的明珠,文科和理解的专业积累与精进,缺一不可。

机器理解人类的意思,仅仅是是NLU,机器根据人类的表述,识别,推理,最终引导用户完成任务,才是NLP的最终目标。

所以从目前的情况来看,NLP的能力边界,也仅仅是在于(服务型)任务上有新奇的体验,而在闲聊(情感陪伴)层面,当下还是欠缺比较多的。

我们还是从实战层面出发,说说笔者做服务型任务的业务经验。

————————————————

二、如何评测机器人的智能程度?

笔者早年间研究各种各样的智能语音助手,以培养自己的业务敏锐度。

创业期间也曾设计出多个单轮或者多轮对话的技能,大量的实战业务经验帮我总结出一套方法论,即,如何评测智能助手的意图理解能力

对一个机器人而言,能否理解/识别用户表述的意图,是衡量AI智能与否的核心。

【意图理解】(1)中控分配意图能力

当前市面上的AI智能助手,往往包含着各种各样的能力。

从业者角度而言,本质是各个技能的集合,而每一项能力都是服务和满足特定领域类的需求,比如听音乐,导航,事项提醒,电影票,机票,火车票什么的。

很多的技能在固定域里面能够表现得非常好,但是集中到一起,表现就未必好了。

核心考量点:准确识别用户需求,并分配到指定技能服务的能力。

用户提出的每个需求,计算机都会做出反馈(文本、语音、图片、功能卡片、多媒体事件等等)。

在反馈之前,是先要做到识别并理解,然后成功分配到指定的技能上,最后由指定的技能完成反馈,即服务行为。

而人类的语言表达千奇百怪,我们期望计算机自然能够通过人的自然表达,成功理解人类的意图,并使用对应的回复衔接业务。

例子:

我想听我想去拉萨>>>意图应该分配给音乐,然后由【音乐】完成反馈。

我想去拉萨>>>意图分配导航,然后由【导航】完成反馈。

例子:

提醒我一下我明天帮女朋友买一束花花>>>意图可以分配给【事项提醒】技能

我想明天帮女朋友订一张到上海的火车票,你早上8点半提醒我下抢票>>>意图如果分配给【订火车票】技能就错了

这个就是中控分配意图的能力。也是所有AI智能助手,集合各项能力的一个核心能力。做不好中控的意图识别,智能化无从谈起。

市面上,例如腾讯叮当、小爱同学,小度助手这类大生态的集合的处理方案,属于最大的开放域,相当多的技能只能是采用命令词跳转的方式启动,这种对话行动无疑是要等待,而且对话流程冗长,面对着输入的不确定性,所以用户为什么不用GUI(图形交互界面)去完成目标呢。

而一些细分领域的,比如说出行、餐饮、客服、游戏领域的智能助手,这些相对的封闭固定的领域,还用关键词的方式进入指定技能再寻求服务,就显得非常笨了。

如果做不到全开放域的中控,至少也得在固定域里面做好意图需求识别以及分配的能力,这样方便发挥语音输出便捷直达目标的能力,才不至于像个玩具。

【意图理解】(2)句式/话术/词槽泛化度

用大白话来讲:同一个意思,当用户采用不同的表达的时候,AI是否能够正确理解

业内的专业说法是“可识别话术/词槽的泛化程度”。解决方案是“增加更多的语义覆盖”。

泛化有两种,一种是句式,另一种是词槽。

先说句式的例子:

笔者经常观察用户的对话日志后台,发现用户在播放音乐的时候,表述各种各样。

我想听音乐>>>随便放首歌>>>音乐响起来>>>music走起>>>

有些能够能理解,【音乐】正确回复随机歌单,有些话术的表述无法理解则被【兜底】给接走了,这种反馈就是助手的失误了。

列举词槽例子:

我想吃711/想吃七十一/想吃seven eleven/想吃关东煮/想吃好炖>>>

我想吃肯德基/想吃KFC/想吃开封菜>>>

笔者的所开发的智能助手有一个【电影票】技能,观察用户对话日志时的一些发现。

《速度与激情8》刚刚上映,用户会表述是我想看速度与激情、速激、速8等等;

《魔童哪咤》上映的时候,用户的表述是,我想看哪咤的电影

《叶问3》上映的时候,用户的表述会是,叶问。甚至是甄子丹的那个电影

而AI先提取对应的影片名,然后交给接口方去完成查询行为,只有正确填充“指定电影的全称”才能够可查询成功,所以此处就需要做映射关系的特殊处理。

在定电影票例子中,是十分考虑场景和时效性,也就是说,用户在不同的时间点,说我要看《某》系列电影的时候,口语上大概率是绝对不会带上第几部的。

这些要求其实都是生活中的一些例子,既然人类可以做到理解,自然AI也理所应当做得更好。

作为从业者,一定要多看自己的公司业务的对话日志后台,观察用户在对话过程中,究竟是如何去使用我们的产品,这个是我们的迭代产品的重要依据,随时根据用户实际使用情况,做出完善。

就过往的泛化经验而言,结构性的句子变化相对较小,而词语的变化就很多,像分析数据一样经常看用户的对话日志,会有很多的积累。

比如阿里巴巴的天猫精灵是具备线上语音购物的能力的,那么眼下的2020春节,相当多的用户会在我想买口罩这种话术之外,直接表述,我想买3M的口罩甚至会直接问有没有N95卖,毕竟在眼下的这个语境,N95几乎就是口罩的代名词了。

如果这类没有覆盖,那你也只能通过版本迭代去训练,各位AI从业者基于自家产品的版本迭代效率,思考一下差距。

所以“一开始就做好”相比“通过各种渠道反馈发现不好,然后通过迭代去做好”,从产品设计基本功上来看,根本是两种境界。

所以解决方案是,此处应该是有一个动态热词的词库,产品设计和运营方式不展开,不在本篇讨论范围内。

在实际的业务中,很多词汇和句式会被不断地造出来,至于优先级如何选择,如何泛化覆盖词槽和句式,鉴于文章定位,此处不适合展开。

【意图理解】(3)反馈准确度/容错率

考量AI的反馈给用户的内容是否能够准确匹配需求,是否具备显性确认以提升容错性。各个语音交互设计规范都提及了这一点。

例子:

我想听林志炫的《烟花易冷》>>>如果AI推送的是周杰伦的就不对。

如果没有资源,也应该处理成,未找到XXX,让我们来听YYY方为合理。

而当接口方真(因为版权)没有资源时,明确没有,是一种我听懂了,但是实在没有,给你提供替代方案的处理,而如果你不明示没有,我可能会再追问一句,然后你还是不明示,到底是我没说明白,还是你没听懂呢?

例子:

假设现在是1月1日的晚上23点钟,用户说“帮我订一个明天早上7点的闹钟”

假设现在是1月2日的凌晨1点钟,用户说“帮我订一个明天早上7点的闹钟”

第二种情况,如果按照计算机的逻辑去理解,那1月2日的明天早上则是1月3日的早上了,这种定闹钟的方式意味着悲剧。

而基于日常逻辑,两种情况,都应该提供1月2日,早上7点钟的闹钟方为合理。

逻辑处理完毕后,然后就是话术的处理,回复方式有几种选择:

回复1:已经为您设置闹钟。

回复2:已为您设置明天早上7点钟的闹钟。

回复3:已经为您设置明天早上7点的闹钟,我将会在6个小时后叫醒你。

如果没有显性确认,就没有容错性,用户就会心中不安,一旦被【闹钟】服务坑过用户一回,那么就会恶评如潮。本来用户就用的低频,一旦不信任,被打入冷宫再也没什么机会了。

只要你仔细体验观察,相当多的AI语音助手在给于反馈的时候,此类细节处理得不好,容错率实在是太低了。好的容错性设计,其实应该是每个AI从业者体内的基因,成为被动技能,天赋一样的能力。

【意图理解】(4)模糊/歧义表述处理

GUI的交互意味着输入可控,CUI/VUI的交互意味着输入不可控。

这中间相当一部分是人类的表达问题,但是一旦造成的回复不满意,意味着用户将花费巨大的成本去再来一次。最后被用户批评或者被定性为“人工智障”、“就是个能对话的玩具”往往很让人沮丧。

核心考量点:当用户使用模糊歧义表述的时候,AI的处理方式

例子:

我明天下午4点要去上海出差。

注意此时至少存在两处模糊歧义表述,

一是用户并没有指定交通工具。

二是明天下午4点,指的是4点出发,还是4点到那里。

例子:

(假设现在是周一)帮我定下周三去上海的机票。

注意:ASR的转化是无法翻译停顿的,到底是帮我订,下周三的,还是,帮我定下,周三的呢?

在真实的对话中,人们是能够根据停顿节奏,以及具体的场景猜测到底是如何断句的。

以上两个例子是我们业务中反馈的真实案例。

说说我自己处理这类问题的思路,即提前交付结果,等待用户反馈

第一个例子,根据用户的GPS坐标出行便捷程度以及商业诉求进行推荐。火车,飞机,或者是打车均是正确的选择。

例如可以做出如下回复,“基于天气情况,建议火车出行,为你找到从XX到上海的火车票,1月3日出发,高铁二等座,价格……

第二个例子,根据用户提出需求的时间,就近选择结果反馈,并给予显性确认。

当面对模糊/歧义意图的时候,一定要有一个处理逻辑,去管理用户的期望值和服务。

面对模糊/歧义表述的处理方式在行业内通通都是大难题。好的处理方案,能够判断用户的歧义表述,并引导纠错。

至于处理逻辑是直接给于结果,还是通过追问的形式二次判断,就是具体业务具体场景的选择了。

不过多举例,但是有无处理方案,应该纳入进评测点。

【意图理解】(5)目标达成表现

核心考量点:帮助用户达成目标中间所花费的成本。

当前市面上几乎所有的服务类技能,都是AI通过提取用户表述中的具体信息,填充到指定槽位完成服务的推荐,而当用户没有给予主要槽位的时候,是需要引导用户完成的。

市面上有两种做法,一种是固定路径,不可改变的填槽。

比如说【火车票】技能,正常的对话是这样的。

先问出发地和目的地,然后问出发日期,然后确定车次,中间不能改不能乱,然后方可完成查询行为。

用户第一句话:我想买火车票?AI回复,好的,你想从哪里到哪里?

用户第二句话:从北京到上海。AI回复,您想什么时候出发?

用户第三句话:明天下午出发。AI回复,为你找到如下车次,请问你想要第几个。

用户第四句话:那就第一个吧。AI回复,好的,正在为你下单。

这种我称之为,固定序不可逆填槽,简直笨到了极致。

如果你颠倒顺序填充槽位,AI很可能就智障掉了。

生活中,我们这边一个70岁以上的老人,可以在窗口完成火车票购买,(抛开口音的问题)但是无法通过AI助手完成火车票的购买。

为什么呢?很多比较笨的AI,跟图形界面一样,要求用户适应它的逻辑去完成填充。

这种处理方案,简直违背自然语言处理的这一初衷。

而好的智能助手是可以做到乱序填槽,并且随意改槽位条件的。

例子:

用户第一句话:

我想买一张明天从北京到上海的火车票,我要下午四点出发的,我想要一等座。

我们可以根据结果,着AI提取槽位,以及反馈的能力。

用户第二句话:

再帮我看看,后天上午十点出发的,二等座也行。

如果AI能够搞定,那证明可以达到一定的智能化程度了。

以上是应对用户的表述,而在对话服务过程中,还有一个反向管理,完善槽位的引导。

我们可以做一个简单的练习,例如在买电影票的场景,从需求到下单至少需要4个核心槽位。A电影名,B电影院,C场次,D几张票。(选座可以提供默认规则)

想要完成订单的确认,则成功引导用户填充ABCD四个槽位即可。好的完善和引导,则是:

如果用户填充了AB,AI应该追问CD的例子:我想看《魔童哪咤》,帮我在附近找个最近的电影院。此时AI需要展示哪几个场次可以选择,然后追问要买几张票

如果填充了ABC,应该追问D的例子:我想看《魔童哪咤》,附近找个最近的电影院,8点钟左右开场的。此时AI只需要追问要买几张票即可。

ABCD四个主槽位,无论用户的先后顺序,先填充哪个槽位,后续能够完善填充即可。

人类的表述千奇百怪,无论多少个槽位,人类都可以组织语言联合起来表述。乱序填充槽位才是智能化,自然表述的的基本要求。

以上,是作为智能助手能否理解/识别用户表述的意图,并帮助用户达成目标的5个考量指标。

这个考量指标,可以应用在任何一个对话类产品,就“意图理解”这个维度的评测表现。

————————————————

三、拟人程度真的是越高越好么?

私以为,最理想的人工智能,就像

《Her》里面的萨曼莎;

《钢铁侠》里面的贾维斯;

《超能陆战队》里面的大白;

《多啦A梦》里面的机器猫;

我们都要想要一个哆啦A梦,可是实际的情况,距离超级人工智能还无比遥远。

从事自然语言处理以来,跟很多同行交流,大家似乎都在努力往拟人化角度发力,即,努力把自己的AI助手做到足够像真人,最好能够通过图灵测试。

美术设计,在视觉传达层面,有一个“恐怖谷”的概念。

那么对话机器人里同样有着一个类似的概念,我且称之为“傻子谷”的概念。

即,尽管你在某些领域表现得足够专业,有认知,可是一旦在某个常识问题上表现差劲,那么就会让人失望。

可我们从未想过的一个问题是:在实际应用时,自然语言交互助手真的越拟人化越好吗?

引用一段实验资料。

宾夕法尼亚州立大学某实验室就进行了这样一项测试。研究员们告知志愿者:他们将在电商平台中选购商品,并需要和在线客服交谈咨询,并最终达成下单的目标。

志愿者面对的是一个个的导购机器人,它们分别有着不同的响应速度和拟人程度,试验目的是测试智能导购助手的表现。

研究员们设置了多个对照组,一组是对话过程中告诉志愿者自己是导购机器人,另外一组则是机器人尽量伪装成人类,参与试验。

试验的过程自然是可以预测到的,因为人类表达的多样性,有些导购机器人可以迅速精准的回答用户问题,有的却听不懂人话,顾左右而言他。

在交互过后调查支援者的满意度时,结果令人意外。

同样的购买结果的用户体验中

明确知道对方是机器人的志愿者就会给出80分的满意度评价;

而那些伪装成人类的导购机器人却只能获得60分的满意度评价。

拟人化的目的是让机器人表现得像人类,而一旦用户真的把机器人当人类了,而没法像人类一样解决问题,用户的满意度是下降的。

我们自己在日常工作中,当语音助手、智能客服等等产品不能解决问题,答非所问,或者强行讲冷笑话,或者卖萌的时候,我们的暴躁指数往往会呈直线上升。

其实背后就是一个“用户期望值管理”问题。

如果我知道你是机器人,我会相对仔细认真的跟你聊天,期望你帮助我解决问题,在这个过程中,你表现得比较拟人化,我会提升好看。

如果你一开始就表现得非常像人类,我也误把你当成了人类,如果在一些基础的,常识性的问题上,得不到答案,那么就很失望。

你不是真人么?为啥你连这种常识性的问题都接不上来!

现在有一些智能机器人都开始做了虚拟男友/女友的概念,在设计上也是尽可能做到拟人,但是实际上的业务难题,并不是语言学的问题,而是社会学伦理学的问题。

比如说:

女朋友站在镜子前试衣服,“好烦啊,以前的衣服都大了一圈。”

可以有下面四种回答:

我们可以一般上分一边说:“哦!嗯!好看。”

我们可以认真的说:“好像不大啊,还好,挺合身的”

我们可以站起来说:“亲爱哒,那我们去逛街买衣服吧”

我们可以睁大眼睛说:“哇,亲爱的,你怎么又瘦啦”

你认为接哪一种好?

看,真正弄懂女朋友的意思,机智的男朋友肯定会选择最后一句,保底也要说我带你去逛街,这就是对话引擎中,分词理解用户的话之后,匹配上最佳答案了。这个匹配流程又是另一个基于丰富经验的判断逻辑了。

海王接的是,“亲爱的,你又瘦了,如今的衣服已经配不上你了,我们一起去买新衣服吧。”

女生随便的一句话,要的是男生的不着痕迹的真心称赞,而不是评价。

如果想要做好虚拟男友的对话管理,必须得有海王级的段位,才能够提供满足,解决女生的需求。

故,对话机器人智能的核心价值,重点在内容上,不在交互。

我们提供的也是对话系统后面的思考,判断,解决问题的能力。

以上是我做自然语言处理两年半以来积累的经验。

谢谢各位看到这里,希望这篇文章能够帮助到大家。

同时也祝腾讯云社区越来越好!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、究竟如何理解自然语言处理
  • 二、如何评测机器人的智能程度?
  • 三、拟人程度真的是越高越好么?
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档