人机对话(3)-聊天机器人(检索、生成)

当前闲聊机器人有两种实现方式:基于检索基于生成

基于检索的chatbot

检索这种方式,在搜索与推荐系统中通常会用的到。具体来说是衡量一种相似度;

在人机对话的开放域,我们虽然想要实现非常自然的人机对话,但是基于当前技术限制,如果把机器人真的当做一个独立对象去对话,它必须有推理与知识能力,目前AI水平是无法达到的;如果换一个角度来看问题,如果仅仅是给用户一个可以接受的回答,并推动对话不断进行下去这样的目标实现起来就比较容易。(个人感觉更像是为突破图灵测试的一种方法)

检索系统

我们首先对语料进行检索匹配,筛选出最合适的回答

再对待选回答进行rank,基于一些更宏观的考虑比如上下文,最后将的得分最高的给用户

对语料检索匹配

基于检索的方法本质上是计算相似度,如果用户给一个query,我们将其与语料库中的对话进行匹配,相似分数最高的是不是就是最优解?

检索回复机理

然后问题就落在如何定义所谓的相似度?什么是语句的相似?听起来就像我们在推荐系统中定义什么是用户可能喜欢。那么我们就需要再进行两步:

1、定义影响相似性的特征

一些重要的词、词频、词性、RNN、词嵌入等

2、定义特征输入-分数的匹配函数

cos相似度、CNN深度学习等算法

这样的检索功能其实应用到客服问答领域非常合适,只要命中知识库哪个问题,就返回该问题下的回答

考虑上下文进行response 评分

经过上一轮检索匹配接下来我们就有了几个候选response,我们需要进行其他维度的考虑使得回复更合理;比如很有可能出现前文提到的信息bot又重新出现。所以我们需要将上下文考虑进去,从而使得对话看起来比较智能

考虑上下文

1.我们将待选回复r 与历史对话u都经过词嵌入以及GRU序列神经网络预处理

2、将每一个预处理后的r向量分别与u向量进行match相似计算

3、将结果进行CNN处理 (提取特征并缩小矩阵)

4、再通过一个GRU网络处理,这层GRU是上下相连的,即考虑了上下文处理

5、经过最后的输出层给出一个分数

分数最高的是我们r是我们返回给用户的答复

总结

基于检索的bot核心思想是从语料库中寻找最适合的匹配回答,那么bot的效果就会被相似计算的特征设计以及语料库的丰富度影响

基于生成的chatbot

生成模型在深度学习领域应用广泛,在自然语言方面应用最为成功的就是机器翻译;像之前介绍序列模型时还有一些诗歌与音乐的创作也属于这类模型的应用。

对于闲聊bot来讲,模型更像是类似机器翻译的 编码-解码 的生成模式,输入一个语句,最后模型返回另一个语句

encoder-decoder

模型左侧是编码器、右侧是解码器;

理解的话,可以认为是编码器将语句特征提炼出来给解码器,然后解码器以该特征作为条件限制去按照训练过的参数去生成另一个语句。比如机器翻译就可以理解为某个语义从一个语言到另一个语言的映射。

考虑上下文

对于聊天机器人来讲,不仅需要单次对话看起来不错,还需要在多轮对话中也有好的表现(不要前面提过的后面又忘了),毕竟这个场景用户一定是进行多轮对话

image.png

图中可以看到模型通过一条绿色线context-RNN将encoder-decoder模型串了起来
也就是说每一次模型编码都会考虑前序编码结果。这样每次解码生成的语句就已经考虑了上下文的信息

考虑情感化

聊天场景除了对话流通顺,还需要给用户提供惊喜,来自于情感的惊喜。有了情感化的chatbot才更像一个聊天的人而不是bot。这是提高用户感受的重要因素

情感化因素

绿框中的Z节点就是模型对情感化的考虑

通过将contextRNN的h作为输入,进行情感分类处理,输出结果同h一同作为输入进入解码器。相当于解码器是在标记条件Z下进行生成,从而使得生成语句附带情感属性

情感因素影响生成

这是一篇论文中加入情感因素后的实例,可以看到机器人在不同情感下的回复,有点意思但是距离人类还有距离。这里的情感分类有6种,准确率确实会低,大概60%多一点。如果是三元情感分类(积极-消极-中性)准确率可能就90%左右(之前的数据,现在应该会高)。越丰富复杂的情感,机器就越难以捕捉,但足够有趣,做好情感化是chatbot一个发展方向。

情感分析应用

情感映射表情

上文中加入情感因素的语句生成虽然效果不那么好,但是如果只是情感分类,感知还是很明显的。比如已经落地的Emoji,在社交网络中用户打字后系统给予表情推荐用以代替语言。印象中微信与搜狗很早已经有做这个了,不过感觉应该是简单的单词匹配,没有涉及情感,但是使用体验不错。还有我大天朝的表情包就是个大场景

表情包

考虑知识/主题

基于生成的chatbot效果不佳有一个很重要的原因是,人类语言很多信息都是隐藏在语言背后的,就拿人来讲,4岁孩子和成年人对话中,成年人也会觉着聊来聊去就那些,小孩子懂太少,说太多听不懂;所以通过知识/主题(先验知识)对bot的response生成进行信息增添可能会有效果。

加入知识

聊天过程涉及的范围很广,用户可能会询问那部电影、哪个地方、天气等具有一定目的性的问题,我们完全可以像任务型对话一样,通过查询数据库、通过槽位追问得到信息来作为条件限制解码器的输出

主题限制

通过主题限制语句生成达到较好的效果,下面是小冰的一个应用

主题因素

仍然是在encoder-decoder 基础上,应用了topic model,即对用户的消息进行了主题分类,

每个主题下本身就是一个词频的概率分布,知道是哪个主题后,将前面的高频词汇抓出来转化为向量。再将其引入注意力模型中,结和传统的注意力模型相加起来作为输入进入解码器,使得解码器的内容在主题范围内。

相似的方式还有好几个,但是本质上都是通过加入先验知识(主题、知识库、上下文、情感)对解码器进行输出优化。基础的架构都是编码-解码模型

通过先验知识影响生成

加入强化学习DM

上述基于生成的语句通常加了很多先验知识,但是还是可能呈现飘忽不定的现象。因为对话缺乏灵魂,chat场景与task一样需要策略管理系统。

不同之处在于task的策略学习比较容易定义,任务对话填写槽位时给予reward,每次actor都会有相对明确的reward。

而在chat场景,对话没有明确的目标,定义reward比较麻烦,reward是滞后的。可能需要在用户获得满意结果时给予一个很大的reward,不满意的时候各一个很大的惩罚。距离用户满意所耗费的轮数会给一个小的惩罚等等。

强化学习东西挺多,挖坑放着

结语

感觉chatbot机器人确实落地问题挺大的,但这也是预期肯定会存在的,毕竟如果聊天都跟真人似的,就距离强人工智能不远了~~

比较靠谱的还是检索类的chatbot,完全可以应用在客服场景。另外感觉在一些垂直细分场景(情感咨询、教育)做是否会更好,毕竟领域窄了,语料可以构建得更好,提高稳定性;前一阵子看到国外有一个chatbot机器人用来和用户聊深度学习的知识,所以说窄领域可能会有一定的惊喜。https://www.lilabot.com/

(笔者正寻求NLP、人机对话方向产品职位 微信:cheng390552021)

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

推荐阅读更多精彩内容