近日,微软沈向洋等人发表论文《微软小冰的设计与实现》,几乎无保留地公开了小冰系统的开发过程,详述了系统架构和关键组件,包括对话管理器、核心聊天、技能和移情计算模块。
社交聊天机器人,或能够与人类进行共情对话的智能系统的开发,一直是人工智能领域持续时间最长的目标之一。近年来,随着大量会话数据的出现,以及机器学习的突破被应用于会话AI,对话智能系统在学术研究界和行业中都取得了可喜的成果。
本文来自微信公众号:新智元(ID:AI_era),来源:Arxiv,编辑:肖琴、金磊
微软小冰是世界上最流行的社交聊天机器人之一。自2014年5月发布以来,小冰已经和超过6.6亿用户聊过天,并成功地与其中许多用户建立了长期情感联系。
近日,微软小冰团队发表论文《微软小冰的设计与实现》(The Design and Implementation of XiaoIce, an Empathetic Social Chatbot),几乎无保留地公开了小冰系统的开发过程,详述了系统架构和关键组件,包括对话管理器,核心聊天,技能和移情计算模块,展示了小冰是如何在长时间的对话中动态地识别人类的情感和状态,理解用户的意图,并响应用户的需求的。
这篇论文可以说是迄今最详细的关于微软小冰的论文,作者包括微软亚洲工程院的周力、李迪,以及雷德蒙德研究院的高剑峰和沈向洋。
小冰的设计目标
小冰的主要设计目标是成为一个AI伴侣,用户可以与之形成长期的情感联系。作为一个开放领域的社交聊天机器人,小冰能够与人类用户建立这样的长期关系,这不仅使她有别于早期的社交聊天机器人,也使她不同于苹果Siri、亚马逊Alexa、Google Assistant和微软Cortana等最近开发的AI助理。
图1显示了一名用户和小冰之间如何在两个月时间里建立起情感联系。当用户第一次遇到聊天机器人(Session 1)时,她在对话中试图了解小冰的特性和功能。然后,在不到两周的时间里(Session 6),用户开始和小冰谈论她的兴趣爱好(一部日本漫画)。到第4周(Session 20),她开始把小冰当作朋友,问她一些与她的真实生活有关的问题。7周后(Session 42次),用户开始把小冰当作同伴,几乎每天都和她聊天。又过了两周(Session 71),每当她希望有人聊天时,小冰成了她的第一选择。
图1:用户和小冰如何在两个月内建立起情感联系,使用的是中文(右),英文翻译(左).
小冰是在一个移情计算框架的基础上开发的,它使得机器(在我们的用例中是社交聊天机器人)能够识别人类的情感和状态,理解用户的意图,并动态地响应用户的需求。
小冰的目标是通过一种特殊形式的图灵测试,称为“分时测试”(timesharing test)。在测试中,机器和人类在一个具有分时计划的陪伴系统中共存。如果一个人喜欢它的陪伴(通过对话),我们就可以称它为“移情”机器。
在接下来的部分,我们将介绍小冰的设计和实现的细节,然后,展示系统的架构和关键组件,包括对话管理器,核心聊天,重要技能和移情计算模块。
小冰的设计原则
社交聊天机器人需要有足够高的智商(IQ)才能获得一系列技能,跟上用户的需求,并帮助他们完成特定的任务。
更重要的是,社交聊天机器人还需要足够的情商(EQ)来满足用户的情感需求,例如情感感受和社会归属感,这些都是人类的基本需求。
IQ和EQ的结合是小冰系统设计的核心。小冰的个性也是独一无二的。
IQ + EQ + 个性
IQ 能力包括知识和记忆建模、图像和自然语言理解、推理、生成和预测。这些都是发展对话技巧的基础,它们对于社交聊天机器人来说是必不可少的,可以满足用户的特定需求,帮助用户完成特定的任务。
在过去的5年里,小冰已经开发了230种不同的技能,从回答问题、推荐电影或餐馆,到安慰用户和讲故事。最重要、最复杂的技能是核心聊天(Core Chat),它可以与用户就许多主题进行长时间的开放式对话。
图2:用户与小冰的聊天记录,使用日语(中间),英语翻译(左)。移情模型提供了一种上下文感知策略,可以在需要的时候驱动对话(右)。例如,小冰决定在第3轮对话停顿时将对话“驱动”到一个新主题,并在第4轮和第7轮对话中,当用户自己也参与到新主题时积极倾听。
EQ有两个关键组成部分:同理心和社交技巧。如图2所示,小冰展示出了足够的情商,因为她产生了有社交吸引力的反应(例如,幽默感、安慰等),并且能够决定在对话陷入停滞时,是否将对话“驱动”到一个新的主题,或者当用户参与到对话时,是否积极倾听。
个性(Personality)的定义是形成个体独特性格的行为、认知和情感模式的特征集合。社交聊天机器人需要表现出一致的个性,在对话中为用户设定正确的期望,获得用户长期的信心和信任。
小冰的角色被设计为一个18岁的女孩,她总是可靠、富有同情心、充满深情,而且有很好的幽默感。尽管小冰非常博学(因为她能接触到大量的数据),但她从来没有表现出任性的一面,只是在适当的时候展示她的智慧和创造力。如图1所示,小冰聪明地回答了一些敏感的问题(如Session 20),然后巧妙地转换到对双方来说都更舒服的新话题。
社交聊天机器人的指标:CPS
与任务导向型的机器人不同,他们的性能可以通过任务成功率来衡量,衡量社交聊天机器人的性能很难。
过去,图灵测试被用来评估聊天性能。但这还不足以衡量与用户长期的情感接触是否成功。相反,我们将每次会话交流回合数(Conversation-turns Per Session, CPS)作为社交聊天机器人的度量标准。它是聊天机器人和用户在一轮会话中的平均对话次数。CPS越大,社交聊天机器人的参与度就越好。
社交聊天作为分层决策
为了实现这些设计目标,我们在数学上将人机对话作为决策过程,并根据预期的GPS来优化小冰的长期用户参与度。
如图3所示,小冰试图通过促进对话模式的多样性来维护用户的兴趣。每个会话模式都由处理特定类型会话段的技能管理。例如, 在Turn 1,小冰使用“General Chat”技能,以一句休闲聊天开始了对话;然后,在Turn 4,小冰使用“Music Chat”技能,切换到一个新的音乐话题;在Turn 15,使用“Song On-Demand”技能推荐了一首歌,并在“Turn 18”使用“Ticket-Booking”技能帮助预定了一张音乐会的票。
图3:这段对话可以看作是一个决策过程
小冰的系统架构
小冰的总体架构如图4所示。它由3个层组成:用户体验、对话引擎和数据。
图4:小冰的系统架构
用户体验层:该层将小冰连接到流行的聊天平台(如微信、QQ),并以两种模式与用户交流:全双工模式和轮流对话模式。该层还包括一组用于处理用户输入和小冰响应的组件,如语音识别和合成、图像理解和文本规范化。
对话引擎层:由对话管理器、移情计算模块、核心聊天和对话技能组成。
数据层:由一组数据库组成,这些数据库存储收集到的人类会话数据(文本对或文本图像对)、用于核心会话和技能的非会话数据和知识图,以及小冰和所有注册用户的个人档案。
对话引擎深度解析
对话引擎层主要包括四大组件:对话管理器、移情计算(empathetic computing)、Core Chat和技巧。
对话管理器
对话管理器是对话系统的中央控制器。它由全局状态跟踪器(Global State Tracker)和对话策略(Dialogue Policy)组成。 该操作可以是顶级策略激活的技巧或Core Chat。
全局状态跟踪器
全局状态跟踪器通过一个工作内存(working memory)来跟踪对话状态。工作内存在每个会话开始时是空的,然后在每个对话中将用户和小冰的对话以及根据移情计算模块从文本中检测到的实体和移情标签,用文本字符串的形式来进行存储。
移情计算
小冰使用分层策略:
⑴顶级策略通过在每个对话轮次中选择Core Chat或基于对话状态激活的技能来管理整个会话;
⑵一组低级策略,每个策略对应一种技能,用于管理其会话段。
对话策略旨在通过基于XiaoIce用户反馈的迭代、反复试验和错误过程来优化长期用户参与。
话题管理器(Topic Manager)
话题管理器模拟人类在对话期间更改话题的行为。它由一个分类器和一个话题检索引擎组成,分类器用于在每个对话回合决定是否切换话题。
如果小冰对话题没有足够的了解,无法进行有意义的对话,或者用户感到厌烦,就会引发话题切换。
移情计算
移情计算反映了小冰的情商。
给定用户输入查询Q,移情计算将上下文C考虑在内,将Q改写为上下文版本Qc,使用查询移情向量eQ对用户在对话中的感受和状态进行编码,用响应移情向量eR指定响应R。
移情计算模块的输出表示为对话状态向量s =(Qc,C,eQ,eR),用于选择技能的对话策略和用于生成的激活技能(例如,CoreChat)的输入。
移情计算模块由三个部分组成:上下文查询理解、用户理解和人际响应生成。
上下文查询理解(CQU)
CQU根据C语中的上下文信息将Q重写为Qc。例如下图所示:
用户理解
该组件基于Qc和C生成查询移情向量eQ。eQ由表示用户意图、情绪,话题、观点和用户角色的键值对的列表组成,如下图所示:
人际响应生成
该组件生成响应移情向量eR,它既指定了要生成的响应的移情方面,也体现了小冰的角色。如下图所示:
Core Chat
Core Chat是小冰IQ和EQ非常重要的组成部分。它与移情计算模块一起提供了以文本输入和生成人际响应作为输出的基本通信能力。
Core Chat由两部分组成,一般聊天(Generate Chat)和域聊天(Domain Chat)。一般聊天负责参与涵盖广泛话题的开放性会话;域聊天负责在特定领域(如音乐、电影和名人)进行更深入的对话。
因为一般聊天和域聊天都是使用相同的引擎实现的,所以在此只介绍一般聊天。
一般聊天
一般聊天是一个数据驱动响应生成系统。
它将对话状态s =(Qc,C,eQ,eR)作为输入,并在两个阶段输出响应R:响应候选者生成和排名。
一般聊天可以从由人类生成的对话或文本组成的数据库中检索响应候选者,或者通过神经生成模型在运行中生成响应候选者。
使用未配对数据集和XiaoIce知识图(KG)生成响应候选的示例,本文为此显示了与“北京”(上图)话题相关的小冰KG片段。 对于人机对话(左下),每个用户查询被重写为由箭头指示的上下文查询,然后识别其话题(例如,“北京”),相关话题(“八达岭长城”和“ 从KG(顶部)检索“北京小吃”),使用组合查询话题及其相关话题的查询从未配对数据集(右下角)检索响应候选者。
对话技能(Dialogue Skills)
小冰拥有230个对话技能,这些技能与Core Chat一起构成了小冰的智商组成部分。接下来将从四个方面描述这些技能:图像评论、内容创建、深度参与和任务完成。
图像评论
在社交聊天中,人们经常围绕着图片进行互动。例如,在Twitter上,上传照片和附带的tweet(评论)变得越来越流行。
上图示出了围绕共享图像的社交聊天。 可以看到,对话不仅基于可见对象(例如,男孩,自行车),而且还基于图像中隐含的事件,动作或甚至情绪(例如,比赛,获胜)。
对于人类用户来说,后面这些方面对于推动有意义且有趣的对话更为重要。
图像评论技能不仅可以正确识别对象并真实地描述图像的内容,还可以生成反映个人情感、态度、位置等的评论。
(a)图像标记;(b)图像描述;(c)图像评论。
内容创建
这些技能使小冰能够与人类用户在创作活动中进行合作,包括基于文本的诗歌创作、基于语音的歌曲和有声图书创作。
上图中的(a)展示了一位用户使用小冰为她的母亲制作了一个FM节目,为即将到来的春节做准备。(b)展示了小冰可以根据用户配置自动创建一个故事,例如,这个故事是用于教育还是娱乐,主要人物的姓名、性别和性格等。
深度参与
深度参与技能是针对特定的话题和设置,满足用户特定的情感和智力需求,从而提高用户的长期参与。下图显示了一些示例技能。
深度参与技能的例子。(a)食物识别与推荐技能,由食物图片触发;(b)“安慰我33天”技能,由用户输入中检测到的极度负面情绪触发;(c)“计数羊”技能,由类似“数羊”、“多少只羊”等短语触发。(d)绕口令技能,由“开始绕口令”命令触发。
这些技能可以在两个维度上分成不同的系列:从IQ到EQ,从一对一到小组讨论,如下图所示:
任务完成(Task Completion)
与流行的语音助手(如Google智能助理和微软Cortana)类似,小冰配备了一系列技能,可帮助用户完成任务,包括天气,设备控制(全双工),按需点播,新闻推荐,Bing Knows等。如下图所示:
任务完成技能的例子。(a)天气技能,由“小冰,今天天气如何”的命令触发;(b)设备控制(全双工)技能,由指令“小冰,该起床了”触发。
论文地址:https://arxiv.org/pdf/1812.08989v1.pdf
本文来自微信公众号:新智元(ID:AI_era),来源:Arxiv,编辑:肖琴、金磊