聊天机器人实践(一)

目前机器学习,尤其是深度学习,已经成功的解决了图像识别的问题。从IMAGENET大赛的近几年成绩看,识别类问题准确度已经接近100%。


与此同时,机器学习在解决“语音到文字”(Speech to Text)以及“文字到语音” (Text to Speech)方面也有了飞跃。


而一群更加疯狂的人在尝试用机器学习解决自然语音理解,甚至在自然语言理解的基础上,开发聊天机器人。


服务
描述地址
Botframework by Microsoft提供会话管理,跨平台连接方案https://dev.botframework.com/API.AI会话训练,会话管理,语音识别,意图识别,一系列训练好的主题https://api.ai/Telegram Bot Store聊天机器人应用商店https://storebot.me/


通过这三个服务, 就可以构建聊天机器人并且发布上线。


Step 1 - 在Telegram上注册账号

通过 BotFather创建Bot。


Step 2 - 在Botframework上注册账号

创建一个Bot, 同时下载Botframework提供的SDK/Sample( Node.js|C#),连接到Telegram。

基于Botframework的对话,要写很多代码实现,这样我们更需要一个连接到已经提供一些对话的服务上。


Step 3 - 接入 API.AI

API.AI可以提供标注对话,开放域对话和语音识别,意图识别等功能。


Step 4 - 服务发布

Telegram是一个神奇的IM,它提供了聊天机器人应用商店。使用Telegram IM的用户可以快速体验和使用这些Bot。

一些Bot的体验真的很棒,尤其是使用了人工智能技术的Bot,以至于会出现下面的评论

还有其他聊天机器人的玩家:wit.ai, Chatfuel, Facebook Messager, Apple Siri, 腾讯机器人平台, Microsoft LUIS.AI, etc.

不管是像微软这样的大公司,还是像Operator在垂直领域提供服务的创业公司,都将聊天机器人看成是下一代人机交互的服务形态,聊天机器人不单纯的提供了一个新的服务渠道,它还改变了服务本身,即通过历史数据训练Language Model,来部分取代人的作用,聊天机器人对信息的组织和处理能力,在搜索引擎基础上,又往前迈了一大步。比如,京东JIMI依靠DeepQA系统,实现“最强大脑”,JIMI就是聊天机器人的一个形态。


聊天机器人模型分类


基于检索的模型

回答是提前定义的,使用规则引擎、正则匹配或者深度学习训练好的分类器从数据库中挑选一个最佳的回复。

基于生成的模型

不依赖于提前定义的回答,但是在训练的过程中,需要大量的语料,语料包含了context和response 。当下流行使用LSTM和 RNN训练生成的模型,这种方法最早用来完成机器翻译的任务 - Sequence to Sequence Learning with Neural Networks

目前,在生产环境下,提供聊天服务的,一般都是基于检索的模型,而Seq2Seq的出现,有可能使基于生成的模型成为主流,因为Seq2Seq在长对话的情况下,依然可以表现的很好。


长对话和短对话

长对话需要考虑的因素更多,就像目前API.AI提供的服务中,要完成一个任务,比如预定酒店。


小明: 帮我订今天晚上,上海浦东香格里拉酒店。


这时,API.AI得到了时间,地点和人员。它可能正好检索到了我们在订酒店故事里的一条被标注的记录。Intent, Entity确定了, Action就被确定了。


可是,如果是下面:

小明: 帮我订今天晚上,上海的酒店。


Chatbot就要询问:

Bot: 你需要订哪家酒店?


长对话,其实就是能在用户场景下对话,要识别场景,就需要考虑时间、地点、刚刚用户都说了什么以,用户和Bot的关系。


"订酒店"属于个人助理类服务,目前,api.ai已经支持了这种“追问用户更多信息”的功能,属于简单的问题。

而类似于客服机器人,更多情况是多问题-多交织的对话,就是长对话中,很难解决的问题。

所以,当下,大量机器人是面向短对话的。比如,微软小冰,小娜,图灵机器人, etc.


开放领域和封闭领域

这两个主要从话题层面进行区分。在开放语境下,用户可以和聊天机器人聊任何话题。在封闭语境下,只能聊机器人设定的主题。


这主要取决于数据:有什么数据,就能聊什么主题。


比如在车载系统中,对话的机器人一般都是十个左右的意图,围绕意图进行训练聊天主题。

老司机一般都聊什么?

服务区还有多远?

我买的股票怎么样?

播放一个音乐

听交通台

呼叫一个电话

...

挑战


关联上下文

关联上下文,就需要在设计机器人的时候,给它一个问题,获得一个回复。生成回复的时候,要考虑 P, U, L.

P - Personality matrix

U - User Relationship with Bot

L - Lexicon

这需要在训练LSTM Net的时候,要将更多信息注入,而且也更像是将基于检索的模型和基于生成的模式混合起来完成。


意图识别

就像API.AI, 及其WIT.AI, LUIS.AI们构想的一样,要完成有效的对话,先要搞清楚用户在表达什么意图。但是目前API.AI们提供的方案需要人工标注Entity和Intent,这种工作很繁琐,效率低。

能通过历史数据,无监督或者半监督的完成意图的分类模型是亟须解决的一个挑战。


如何判断一个模型的好坏

在使用LSTM训练基于生成的模型的过程中,一个很大的挑战就是没有自动化的量化的标准:除了人工的和模型对话意外,不确定模型间的好坏。

这个问题的解决办法,应该是在训练时,就同时训练正确的回答和错误的回答,然后使用recall@k机制验证。


一种设想

在经过了很多调研和尝试后,一种比较Smart的机器人的实现方案可能是下面这个样子:

从社交网络上对接到服务需要走InboundMessage, 从OutboundMessage中异步获取回复。

Bot Engine 处理session, context, personality,知识图谱,对话规则和主题。

对话主题是基于人工经验制作的。除了包括引导用户做自我介绍类的"系统对话",还要包括实现业务价值的"服务对话",比如“学习英语单词”,还要有“日常对话”,比如打招呼,询问最近看的电影等生活场景。

Bot Engine不能做到回复所有问题,因为基于规则的原因,能覆盖的聊天内容范围小,当在Bot Engine中,得不到好的答案或者没有命中一个规则时,就请求背后的Bot Model.

Bot Model是通过深度神经网络训练而来,可以回答任何问题。

在对话服务过程中,会产生新的数据,使用强化学习,给Bot Model正向的激励。

使用知识图谱记录Bot,User, World三层知识。

作为这个系列文章的第一篇,主要是介绍聊天机器人目前发展的状况和分类,在后面几篇中,将对上图所设想的方案做更多描述。


◆  ◆  ◆  ◆  ◆  

张洋铭,投资人中最懂动漫的程序员,负责PlugandPlay早期科技类项目投资,个人关注动漫虚拟助手。

微信公众号:张洋铭Ocean(ocean_anidata)

BP请投递至:ocean.zhang@plugandplaychina.com

本文作者:王海良  原文地址:http://eng.snaplingo.net/approaching-a-chatbot-service-part-1/  

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容