前言:6.23日团员@沛康 去北理工参加了由paperweekly联合北理工、清华大学举办的NLP方向的博士生论坛。本次论坛主要偏向于NLP领域前沿技术的学术讨论,其中有两人的内容理解门槛较低,在此分享给大家。
一、商用的对话机器人技术及挑战(吴金龙_爱因互动技术合伙人)
对话机器人历史悠久,从1966年MIT的精神治疗师机器人ELIZA到现在已有半个世纪。但现代意义的机器人其实还很年轻。检索型单轮对话机器人得益于搜索引擎的商业成功和信息检索的快速发展,目前技术上已经比较成熟。最近学术界和工业界也积极探索深度学习技术如Word2vec、CNN和RNN等在检索型机器人中的使用,进一步提升了系统精度。虽然技术上较为成熟,但在实际应用中检索型机器人还存在不少其他问题。例如,很多企业历史上积累了大量非结构化数据,但这些数据并不能直接输进检索型机器人,而是需要事先通过人工整理。即便有些企业存在一些回答对的数据可以直接输入检索型机器人,但数量往往只有几十到几百条,非常少。可用数据的质量和数量限制了检索型机器人的精度和在工业界的广泛使用。
吴博士认为,在未来3-5年以对话的方式提供服务,完成用户指令,会成为主流的人机交互方式。未来的对话机器人主要分为三类:个人信息助理、客服/导购机器人和泛娱乐/教育聊天机器人。
CUI是个性化推荐、定向广告、数据挖掘、领域知识与模型等技术与用户之间的粘合剂。
真实应用中通常会包含多个不同类型的机器人,它们协同合作,解答用户不同类型的问题。我们把协调不同机器人工作的机器人称之为路由机器人(Route-Bot)。路由机器人根据历史背景和当前query,决定把问题发送给哪些机器人,以及最终使用哪些机器人的答复作为提供给用户的最终答复。
下图是以路由机器人搭配闲聊机器人、知识图谱机器人、任务多轮机器人、检索单轮及闲聊机器人等构成的对话框架。
检索型单轮机器人(FQA-Bot)涉及到的技术和信息检索类似,如下图所示。
在上述架构之外,检索单轮机器人会面临很多query和候选答案包含词很少的问题,这里会利用同义词和复述等技术对query和候选答案进行扩展和改写。词表示工具Word2vec、GloVe、Fasttext等可以获得每个词的向量表示,然后使用这些词向量计算每对词之间的相似性,获得同义词候选集。当然同义词也可以通过已经存在的结构化知识源如WordNet、HowNet等获得。复述可以使用一些半监督方法如DIRT在单语语料上进行构建,也可以使用双语语料进行构建。PPDB网站包含了很多从双语语料构建出来的复述数据集。权重计算方法经常会和余弦相似度(cosine similarity)一同使用于向量空间模型中,用以判断两份文件之间的相似性。
匹配算法方面,吴博士介绍了两种最常用的深度匹配模型,左图为QA匹配,即用户的query和QA pairs中的answer进行匹配;右图为QQ匹配,即query和QA pairs中的question进行匹配。其中QQ匹配比较常用,采用了RNN的编码模型,先对query和question向量化后,进行编码,然后计算相似性,进入全连接层,最后归一化,计算出相似概率。
以上的两种匹配模型,存在两大问题:词的重要性依赖于另一个句子的内容;长距离依赖的关系难以学习,需要降低位置对词重要性的影响。针对以上两个问题,吴博士介绍了引入注意力机制的AttnMatch模型。
此外,吴博士还介绍了两种优化方法:
第一,更好地选择负样本。
如下图左侧例子所示,如果正负样本中关于这类问题的所有描述都有“屏幕”二字,那么模型就会认为“屏幕”二字无关紧要,因此可能会认为“屏幕碎了”和“手机壳碎了”很相似。
所以,在构建负样本集的时候要避免此类情况发生。通过分析错误集和线上实际效果一步步优化负样本的选择。
第二:可以通过匹配的answer的相似性,来判断两个问题的相似性,如下图:
上图中,Q1和Q2的回答都是一样的,因此虽然Q1和Q2问的是两个问题,但是可以处理为高度相似。利用这种思想,可以更好的处理小数据集和OOV(out of vocabulary未登录词)的问题。
任务型多轮机器人(Task-Bot)通过多次与用户对话交互来辅助用户完成某项明确具体的任务,如下图:
关于上图中每个模块的说明:
关于用端到端的思想试图解决任务多轮机器人的方法,相信大家都看过许多,但是这种方法目前还处于研究阶段,没法落地。吴博士根据工程经验提出了一种比较务实的优化思路。
如上图所示,优化基于平行结构的槽位组合,尝试采用森林结构。
在传统的结构下,由于槽位是平行的,所以槽与槽之间没有依赖关系,在用户进行填槽操作的时候,常有信息冗余的情况。比如在某项任务中,需要了解用户多大,有几个孩子,如果用户只有11岁,那就没必要再问有几个孩子了。
若采用森林结构,可以尝试用机器学习的方法预先设定槽位之间复杂的依赖关系。
在最后,吴博士介绍了一些更偏产品设计的内容,如下图:
1)对于目前的对话系统而言,一定要管理好客户的期望值,很多客户认为很简单的功能,其实很难解决;
2)目前单个机器人/任务的对话还算流畅,但是在多个对话和多个机器人之间的对话还比较糟糕,需要从对话设计的角度突破;
3)机器给出建议,人工最终决定在很多业务下更合适;
4)重视异常检测和处理。
二、更智能的对话系统:情绪、个性和常识(黄民烈_清华大学教授 博导)
黄教授这篇报告比较学术,主要关注在开放域聊天中,如何让对话系统更加智能化,即能具有一定的情绪,个性,并且掌握一定的人类常识。我简单给大家梳理下~
黄教授的团队首次将情感因素引入了基于深度学习的生成模型中,即ECM(Emotional Chatting Machine:情绪化聊天机器人)。
先看几个例子,下图均是从现在比较成熟的聊天机器人中截取的:
目前开放域聊天机器人普通无法处理以下三个问题:语义理解的问题,个性身份一致性问题,上下文理解的问题。
为何会存在这些问题,可以从目前对话系统的技术架构中得到答案:
(上一篇中介绍的QQ/QA匹配的模型,是一种深度学习的架构,比起一般方法来较为复杂,而上图是一般检索模型的流程图,比如说基于规则和基于统计。)
总结:基于检索的模型,只是从语料库中检索回答,而生成式的模型,目前还比较初级。目前有不少生成式对话系统的研究工作都将关注点集中于提升生成语句的语言质量,但往往忽略了对人类情感的理解。因此,团队着手研究如何让计算机通过文字方式表达情绪,希望能在人机对话系统中加入感知情绪的成分,能从语言和情感两个维度上生成恰当的回复。
下图为黄教授团队解决该问题的四个方向:
其他研究者普遍关注第一个方向,即内容质量;黄教授这里主要关注后三个方向,即
ECM 的主要数据来源是新浪微博。ECM 在传统的 Sequence to Sequence 模型的基础上,采用静态的情感向量嵌入表示,动态的情感状态记忆网络和情感词外部记忆的机制,让 ECM 得以根据用户的输入,并基于指定的情感分类(包括快乐、伤感、愤怒、厌烦、好感等五种情绪)输出相应的回复。
下图为架构图(这里看不懂可以略过…):
(简单解释下:首先收集整理微博的帖子和对应的回复语料,然后通过机器学习和人工校核的方式,把每个语料对都打上情绪标签,然后把情绪标签嵌入到解码过程中)
下图为模型效果图:
可以看到对应同一句话,不同的情绪表达差别很大。
例如,上图中,针对餐厅吃饭的场景,系统要了解一系列相关的背景知识。
这里是在模型中引入了上面所说的三种类型:提问方式,主题和语法常用词。
(这里感兴趣的同学可以去看对应论文:Learning to ask questions in open-domain cnversation systems. ACL 2018)
(上图较模糊,红色越深代表相关性越高,可以看到“兔子”对应主题,“吗”对应提问方式)
机器要拥有「情绪」,能够更加智能,在黄教授看来需要有两个方面的内容。首先是语义理解,另一个则是身份设定。语义理解不难懂,现在有很多公司及研究机构都在做类似的工作。但身份设定,则是要在聊天进行的过程中嵌入机器人的身份和属性。
当我们在和聊天机器人互动时,最开始往往很好奇的就是对方到底是人还是机器人,所以会问到一些关于对方身份的问题。
上图右侧,是为该聊天机器人预设的身份特征。
模型由三个模块组成:
流程如下:
备注:
https://www.jianshu.com/p/28baebdf24ef
https://blog.csdn.net/qq_40027052/article/details/78723576
以上内容,来自饭团“AI产品经理大本营”,点击这里可关注:http://fantuan.guokr.net/groups/219/ (如果遇到支付问题,请先关注饭团的官方微信服务号“fantuan-app”)
---------------------
饭团团长黄钊hanniman,图灵机器人-人才战略官,前腾讯产品经理,5年AI实战经验,8年互联网背景,微信公众号/知乎/在行ID“hanniman”,饭团“AI产品经理大本营”,分享人工智能相关原创干货,200页PPT《人工智能产品经理的新起点》被业内广泛好评,下载量1万+。