美文网首页0岁的产品经理产品经理
Chatbot入门2 | 如何让机器人实现天南地北的聊天?

Chatbot入门2 | 如何让机器人实现天南地北的聊天?

作者: c67a5dea0ca4 | 来源:发表于2019-04-28 09:26 被阅读4次

    Chatbot入门系列开启

    计划用7篇文章讲解下Chatbot入门需要了解的各种概念和简要的实现方式

    · Chatbot入门1 - 聊天机器人简介

    之前文章已经发过了,见《AI说 | 你接触的各种机器人,他们是怎么和你聊上天的?》

    · Chatbot入门2&3 - 闲聊机器人

    本文讲解实现方式,下文讲解应用

    ·Chatbot入门4&5 - 问答机器人

    ·Chatbot入门6&7 - 任务型机器人

    说实话,写这些东西还蛮花时间的,看的人也不多,但是输出倒逼输入一直以来是我坚信的观点,所以不管有没有人看吧,我都会坚持写下去的:)

    欢迎各位捧场~

    01

    啥是闲聊机器人?


    「闲聊」简单讲,就是在开放域的对话中,没有明确意图的聊天,相对随意。

    聊天的内容可以是天南地北,各种寒暄,问候,瞎扯,调侃,笑话等等。

    就像我们人与人沟通的时候

    · 一见面先说吃饭了没有?

    · 最近过得怎么样?

    · 最近看的什么电影?

    这些其实都是闲聊

    闲聊在「智能音箱」中体现得更为广泛,日常生活里,我们问小爱同学/天猫精灵/小度等一堆乱七八糟的问题,一般他们都能兜住,就是因为背后有「闲聊机器人

    而「闲聊机器人」中一些取巧的回答,往往能博得满堂彩,让大家觉得AI十分滴智能:P

    02

    闲聊机器人的对话流程


    闲聊机器人本身的抽象流程并不复杂,可以简单概括为4个步骤

    1)输入问题

    即获取用户的问题,又分为两种场景。

    · 文本场景(例如微信文字聊天)

    在这种场景下直接将文本的内容作为输入即可

    · 语音场景(例如智能音箱)

    在这种场景下,问题输入前,需要先将语音转化为文本(通过ASR实现)

    2)语义理解

    这一步即机器要如何实现理解文本话语的内容,这是整个流程中最具有技术性的一步,我们在 Part3部分讲解下。

    3)回答生成

    当机器理解了问题之后,要去找寻这个问题对应的答案,这个部分我们在 Part4 部分讲解下

    4)输出回答

    和输入相同这一步也是需要区分场景

    · 文本场景(例如微信文字聊天)

    在这种场景下直接将 第3步 的文本回答内容作为输出即可

    · 语音场景(例如智能音箱)

    在这种场景下,回答输出前,需要先将文本转化为语音播报出来(通过TTS实现)

    03

    闲聊机器人的语义理解如何实现


    1)基于规则 -rule-based模型

    这种方式听起来高大上,实际上非常简单,就是通过关键词或者是正则表达式进行匹配。

    例如上文中的「喜欢你」的回复

    这种方式,你简单理解为 IF-Else 方式实现的没毛病。

    之前一张图特别火,说只要三行代码,就能够搞定上亿的人工智能项目,

    也可以同样理解为  IF-Else 匹配方式

    这几行代码的意思是

    · 如果语句出现「?」,就去掉「?」,加上「!」回复

    · 如果语句没有出现「?」,会回复相同的内容

    这当然是个玩笑:)

    但基于规则的方式,目前确实是在广泛的使用中。

    · 优点:

    因为它和模型相比,他并不需要进行大量的语料训练,当你出现了这个关键词,就给你指定的答案,配置起来效率非常高

    · 缺点:

    1. 规则是不存在泛化能力

    例如上文的的「喜欢你」和「对你很有好感」,意思可能是相近的。

    但关键词是配置的「喜欢你」,当用户说「对你有好感」时,机器人没法回答

    2. 难以调试

    当规则的数量大到上千条的时候,调整规则变得异常的困难

    因为你新增或修改了某条规则,就可能会影响到其他几条规则的生效

    2)基于深度学习 -model-base模型

    这种就是真正的用到了NLU(自然语言理解)和深度学习

    在通过「深度学习模型」去理解用户的话语后,将其和已有的问题列表进行匹配,找到「语义最相似」的一个问题

    · 优点:

    1. 较强的泛化能力

    例如,有时候在语音的场景下,因为ASR转译出错,出来的语句可能是「我喜欢嗯啊」

    这时候规则如果配置的是「喜欢你」,出不来相应的答案,但模型可能还能正确的识别

    甚至也能识别「我觉得我喜欢上了小爱同学了」、「喜欢上小爱了怎么办」等多种问法

    2. 问题数量庞大的时,也能较好的调试

    由于是基于语料进行训练,所以只要问题和问题之间,是有明显清晰的边界,那么即使问题数量庞大,通过添加问题的相似句(即各种各样的问法),也能实现较好的调试

    · 缺点:

    1. 训练需要大量的语料

    因为是使用深度学习训练模型,必须要有大量的语料

    2. 深度学习是「黑盒」,有时候你对他无能为力

    因为深度学习本身是一个「黑盒」模型(即你不知道模型内部是如何理解语义的),所以有时候出现一些Badcase,即使添加了大量语料进行优化,效果可能也很差

    3)混合使用

    在实际的场景里面,一般会结合两者进行使用。

    简单的不容易产生歧义的直接用规则搞定,复杂的需要泛化能力的才使用深度学习。

    03

    闲聊机器人的回答是怎么产生的


    1)实现原理

    正如上面提到的,「闲聊机器人」理解用户问题的方式,将「用户的问题」和数据库中「已有的问题列表」进行匹配,找到最符合的那个。

    所以回答也就变得简单的,就是将这个问题对应的答案返回即可

    一个问题里面存在多答案的时候,可以根据「用户的问题」和「各个答案」在语义上的相似程度去打分,取得分最高的那个

    另外答案本身也可以带有一些标签,例如给「男性」和「女性」用户,分别有不同的答案。

    2)答案数据来源

    主要有两种

    · 爬取网站

    例如微软小冰刚做的时候,就是爬取了大量网站的问答,清洗出了海量的问答对

    · 人工编写答案

    这种在「智能音箱」中特别的多,你甚至可以自己给自己定制一些个性化的回答。

    04

    如何考量一个闲聊机器人的做的好坏


    目前在业界普遍人会采用CPS进行评价

    CPS(Conversations Per Session,平均单次对话轮数)

    用人话来解释,就是你和一个「闲聊机器人」进行单次对话,有来有回,聊的越多,那么说明这个聊天机器人做得越好

    网上的公开数据显示,微软小冰的CPS高达 32!

    而大家熟知的苹果Siri,CPS只有2~3,真的差了有十几条街的距离!

    05

    重点总结


    闲聊机器人的对话流程:

    1)输入问题

    2)语义理解 - 三种实现方式

    · 基于规则 - rule-based模型

    · 基于深度学习 - model-base模型

    · 两者相结合

    3)回答生成

    - 实现方式

    · 通过找到「问题」对应的预设「答案」

    · 有多答案时,根据「语义相似度」打分,取分值最高的

    - 数据来源

    · 爬取各种网站数据

    ·人工录入编写

    4)输出问题

    # 推荐阅读

    -AI说 | 如何入门AI行业,成为人工智能产品经理?(上)

    更多内容,欢迎关注公众号【朱利安笔记】,定期推送AI产品干货 ~

    相关文章

      网友评论

        本文标题:Chatbot入门2 | 如何让机器人实现天南地北的聊天?

        本文链接:https://www.haomeiwen.com/subject/brqagqtx.html