【文末有彩蛋】
最近我身边的后端小哥哥心态有点崩,女朋友控诉他老加班不回微信,闹分手!我给他出一招,找个聊天机器人啊,兄弟,加班恋爱两不误,皆大欢喜啊。小哥哥一听,嘿,有谱。
现在人工智能技术发展出的聊天机器人已经具备了相当全面的功能。像会讲笑话,会作曲的微软小冰;能叫我们起床,播放音乐的亚马逊Alexa......很多推荐系统会读取我们的个人信息并帮助我们做智能推荐。
小哥哥立马找市面上的AI聊天机器人玩了一圈,发现话都说不好的太多了。很多机器人只能用“傻”来形容,更别说联系上下文回答女朋友的问题了。小哥哥心一横,自己造一个得了。
我们先把聊天机器人的基础理论来简单撸一遍。
大家最常用的Siri被称为Dialog System,是任务导向聊天机器人的一种,Siri最早出现是在2011年,它血统纯正,出自是美国军方一个研究项目,最早只能做单轮的知识性对话,比如用户提问“武大靖是做什么的”,系统给出回答。
所以它在预订机票、导航、客服等一系列以完成某项有明确目标的任务为导向的人机对话场景中做的很好。
当然现在技术提升,它已经可以做很多比较完整的多个回合的对话了,不过其本质没有改变--即系统根据用户的问题给出正确答案。现在Siri可以集成历史数据来回答问题,一些基本的统计规律也会有意想不到的精确度。
举个例子:女朋友想吃饭,告诉你随便。你该怎么去寻找这附近有什么好吃的?
(意图是)饮食-(是想吃)食物-(想吃)饭-(因为附近跟地点有关,所以想找)餐厅
我们来分析一下:从ROOT(根目录)一直往下走到叶节点,每个节点都代表着某种任务讯息,不断地从子节点中,挑选出与句子最相关的语任务节点,这最终就形成了一条任务路径,我们便能从路径认知出这句话的含义,附近有什么好吃的,经过走访后,就得出了找卖饭的餐馆这个意图。
看,只要数据库足够大,Siri在短程路径的每一步都很精确。
但当你询问:“给我多一些第二个餐馆的信息”时,Siri就不明白“第二个餐馆”所指代的是具体是哪一个。这也是我们普遍认为Siri有点“傻”的原因。
随着NLP自然语言处理技术的发展,真正意义上的“闲聊聊天机器人”登上舞台,典型的例子就是微软小冰,它能够模拟人类聊天,可以视为一种无目的的对话系统。
有人对任务导向的Siri和闲聊代表的“小冰”从不同角度,不同的方向进行交叉对比,发现Siri在自然语言理解(NLU)方面就是一个傻瓜,(但执行能力一流)如果让Siri和“小冰”对话,那么不可否定的是SIRI会在三个回合内败下阵来。
我们来做个实验:
▲微软小冰
▲Siri
看出区别了吗?假定你有两个朋友,Siri看起来嘴笨但执行能力一流,小冰善解人意特别会聊天,在自然语言理解方面更胜一筹,但如何衡量回复质量是一个难点。
当然,这两种机器人并不是完全独立毫无相交的,他们的不同特点在不同的领域都发挥着各自的价值,场景应用包括但不限于儿童陪伴,老人陪伴、无人驾驶、IOT场景、智能客服、咨询行业、订单、购买等。
如果想要自己去尝试搭建一个聊天机器人,其实也不难。你可以从以下渠道窥探一二:
▲工具:
▲书籍:
大牛推荐的一本叫《Speech and language Processing》的书,大牛说他的很多聊天机器人的背景知识都来自于这里,大家可以去一起学习一下。