@songying
2019-01-02T14:10:16.000000Z
字数 14355
阅读 1611
本文描述了微软小冰系统的开发。小冰是作为人工智能伴侣而设计的,其能与人类产生情感连接以满足人类对交流,情感与社会归属感的需求。我们在设计时就考虑了智商(IQ) 与情商(EQ) 两个方面,将人机社交聊天视为基于马尔科夫过程的决策,并根据用户的长期参与情况对小冰进行优化,优化指标为期望的每次回话的对话轮数(CPS)。我们会详细介绍系统架构和关键组件包括: dialogue manager, core chat, skills, 以及 empathetic computing 模块。我们展示了小冰是如何在长对话中动态的识别人类的 feeling 和states, 理解用户意图以及响应用户需求。自 2014 年发布以来,与小冰交流过的用户数量已经超过了 6.6 亿,其中很多用户都已经与小冰建立了长期关系。我们分析了大规模的在线交流日志,结果表明小冰每次会话有平均 23 轮的对话轮数,显著高于其它聊天机器人,甚至也高于人类之间的对话。
开发能与人类进行共情对话的社交聊天机器人或智能对话系统是人工智能(AI)领域最长久的目标之一。Eliza [1]、Parry [2] 和 Alice [3] 等早期对话系统的设计目标是在基于文本的对话中模仿人类的行为,从而能在一定的受控范围内通过图灵测试。尽管这些系统取得了出色的成功,但它们大都基于人工编写的规则,并且仅能在有特定限制条件的环境中才能表现良好。能进行开放域聊天的社交聊天机器人一直以来都是一个难以企及的目标,但最近情况已然改变。随着大规模对话数据变得可用以及机器学习领域的突破被应用到聊天 AI 上,我们最近已经看到学术研究社区和产业界都取得了令人瞩目的成绩。这方面的近期研究调查包括 [4, 5]。
我们将在本论文中呈现微软小冰系统的设计和实现,这是世界上最受欢迎的社交聊天机器人。自 2014 年在中国推出以来,小冰已经吸引到了超过 6.6 亿用户。小冰已经借助不同的名字(比如在俄罗斯叫做 Rinna)进入了五个国家(中国、日本、美国、印度和印度尼西亚),可通过超过 40 个平台使用,其中包括中国的微信、微博和美拍,美国和印度的 Facebook Messenger,日本和印度尼西亚的 LINE。
小冰的主要设计目标是成为能与用户形成长期情感联系的 AI 伴侣。作为一款能进行开放域聊天的社交聊天机器人,能与人类用户建立这样的长期关系的能力使小冰不仅有别于早期的社交聊天机器人,而且也不同于当前的其它对话式 AI 个人助理,比如苹果的 Siri、亚马逊的 Alexa、Google Assistant 和微软小娜。
图 1 展示了一位用户与小冰在两个月的时间里建立情感联系的过程片段。当该用户与小冰第一次相会时(会话 1),他在对话中探索了小冰的特性和功能。然后,在不到两周的时间里(会话 6),这位用户开始与小冰谈论他的爱好和兴趣(日本动漫)。到四周时(会话 20),他开始将小冰当作是朋友,并开始向她询问有关自己现实生活的问题。七周之后(会话 42),这位用户开始将小冰视为自己的伴侣,几乎每天都会和她对话。又过了两周(会话 71),当这位用户想找人说话时,小冰成了他的第一选择。
小冰是基于一个共情计算框架 [6,7] 开发的,该框架能让机器(我们这里即为社交聊天机器人)有能力动态地识别人类的感受和状态、理解用户意图以及响应用户需求。小冰的目标是通过被称为「分时测试(time-sharing test)」的图灵测试,其中机器与人类使用一种分时调度(time-sharing schedule)机制共存于一个伴侣系统中。如果人喜欢机器的陪伴(通过对话),我们就认为该机器是「有共情的」。
接下来,我们将呈现小冰的设计和实现详情。我们首先将介绍小冰的设计原则和数学构建方式。然后我们将展示系统架构以及对话管理器、核心聊天、重要技能和共情计算模块等关键组件的实现方式。我们还将分享小冰自 2014 年 5 月发布以来在五个国家的表现,最后会总结本论文并探讨一些未来方向。
社交聊天机器人需要足够高的智商(IQ)来习得多种技能,才能紧跟用户需求并帮助他们完成指定的任务。更重要的是,社交聊天机器人还需要足够高的情商(EQ)以满足用户的情感需求,比如emotional affection和 social belonging,这些都是人类的基本需求 [8]。IQ 和 EQ 的整合是小冰系统设计的核心。小冰在个性(personality)上也是独一无二的。
IQ 能力包括 knowledge 和memory modeling、image 和natural language understanding、reasoning、generation和prediction。这些能力是开发对话技能的基础。为了满足用户的特定需求以及帮助用户完成指定的任务,这些能力是不可或缺的。过去五年来,小冰已经发展出了 230 种不同的技能,包括回答问题,推荐电影和餐厅,安抚用户情绪以及讲故事。其中最重要且最复杂的技能是核心聊天(Core Chat),即与用户在多个主题上开展长时间和开放域的对话。
EQ 有两大关键组件:empathy 和social skills。Empathy 是指站在另一个人的立场上理解和感受他/她的体验的能力,即设身处地感受他人立场的能力。具有Empathy 能力的社交聊天机器人需要有能力从对话中识别出用户的情绪、检测情绪随时间的变化以及理解用户的情感需求。这需要在对话中 query understanding, user profiling, emotion detection, sentiment recognition, and dynamically tracking the mood 。社交聊天机器人必须展现出足够的社交技能。不同的用户有不同的背景、不同的个人兴趣和不同的需求。社交聊天机器人要能够提供个性化的,情绪适当的响应,这样的响应也许还要能鼓励和激励用户,并且符合用户的兴趣。如图 2 所示,小冰表现出了足够高的 EQ,因为它给出了具有社交吸引力的响应(比如有幽默感、会安慰人等),并且还能决定是否将对话「推向」另一个话题或者保持主动倾听。
Personality 的定义是特有的行为、认知和情绪模式的集合,这构成了个体的特有性格。社交聊天机器人需要呈现出始终一致的个性,从而让用户在对话中有恰当的期望以及获得用户的长期信心和信任。小冰的角色设定是 18 岁的女孩,她总是很可靠、富有同情心、热情洋溢,还有精妙的幽默感。尽管小冰的知识非常渊博(因为能访问大量数据),但她从来不会表现得自负,只会在适当的时候展现自己的机智和创造力。如图 1 所示,小冰明智地回答了某些敏感问题(比如会话 20),然后巧妙地将话题转向了对双方都更合适的新话题。
我们定义了「每次会话的对话轮数(CPS)」作为评估社交聊天机器人成功的指标。这是聊天机器人与用户在对话会话中对话轮数的平均值。CPS 越大,社交聊天机器人的对话参与能力就越好。
值得一提的是,我们针对CPS对小冰进行了优化,且CPS是针对长对话而非短对话。
为了实现这些设计目标,我们将人机社交聊天作为一个决策过程进行了数学建模,并根据CPS对XiaoIce在用户长期参与下进行了优化。
如图3所示,小冰尝试通过提高对话模式的多样性来维护用户的兴趣。每个对话模式都由一个skill管理,该skill 能够处理特定类型的对话片段。例如,小冰在图三中,刚开始在随意聊天时使用the General Chat 技能, 然后在Turn 4 中转换到音乐话题时使用Music chat 技能, 在Turn 15中使用the Song-On-Demand 技能推荐了一首歌,最后在Turn 18中使用the Ticket-Booking 技能来订阅一张演唱会门票。
图 3 中的对话可被视为有a natural hierarchy 的 decision-making 过程:一个top-level 过程管理着整体的对话并选取不同的技能来处理不同类型的对话模式(比如闲聊、问答、订票);low-level 过程则受所选择的技能控制,可选择基本动作(响应),从而生成对话段落或完成任务。
这种 hierarchical decision-making 过程可以被投射到一个基于马尔可夫决策过程(MDP)的 mathematical framework of options 中,其中 options 可将基本动作概括到更高层级的动作。社交聊天机器人会在 MDP 之中导航,通过一系列离散的对话轮次与其环境(人类用户)交互。在每一轮,聊天机器人都会观察当前的对话状态,然后根据a hierarchical dialogue 来选择一个skill(option)或一个响应(基本动作)。然后,聊天机器人会收到一个reward (来自用户响应)并观察到一个新状态,再继续这一循环直到对话终止。这种聊天机器人设计的目标是寻找能最大化期望 CPS(奖励)的最优策略和技能。
这种思想引导了小冰的设计和实现。小冰使用了一个dialogue manager 来跟踪对话状态;在每一个对话轮次,小冰会基于a hierarchical 来选择响应方式。为了最大化长期用户参与度(以expected CPS 衡量),我们采用了一种迭代式的试错方法来开发小冰,并且始终会尽力确保exploration-exploitation的平衡。我们使用了已知效果很好的方法来维持小冰的用户群,但我们也必须探索未知(比如新的技能和对话策略),以让现有用户实现更深度的参与或未来吸引新用户。在图 3 中,小冰在第 5 轮尝试了一个新主题(一位名叫「阿信」的流行歌手)并在第 15 轮推荐了一首歌,并由此学习到了该用户的偏好(比如他喜欢的音乐主题和歌手),这些知识能在未来引导实现更深度的参与。此外,我们还采用了一种intergenerational upgrade 方法,该方法使得结合了 IQ 和 EQ 的成熟 AI 系统可以通过机器学习算法和大数据的全面应用而逐渐成型。后面的章节将详细介绍这些算法的特性。
上图展示了小冰的整体架构,包含三层: user experience, conversation engine, data。
该层将小冰与现在流行的平台如微信,QQ等,与用户的连接方式有两种:full-duplex 和 taking turns。full-duplex model 处理 voice-stream-based conversations ,此时小冰可以与用户同时进行对话。 taking turns model 处理 message-based conversations ,此时用户和小冰轮流交谈。该层还包括一组用于处理用户输入和小冰响应的组件,如 speech recognition and synthesis, image
understanding and text normalization.
该模块由 a dialogue manager, an empathetic computing module, Core chat 以及 dialogue skills组成。dialogue manager模块 用于追踪 dialogue state, 选择a dialogue skill 或 Core Chat,使用dialogue policy 来生成response。empathetic computing 模块被设计用来理解用于的输入与empathetic方面( emotion, intent, opinion on topic, and the user’s background and general interests)。 它反映了小冰的情商,展示了小冰的社交技巧,保证了response符合小冰的性格。小冰的智商是通过一系列具体的skills 和Core Chat 来体现的。
它包括一组用于存储收集到的人类会话数据(以 text pairs or text-image pairs)的数据库、用于Core Chat和skills 的non-conversational 数据和 knowledge graphs,以及小冰和所有注册用户的配置文件。
本节描述Conversation engine layer中的四个主要组件:dialogue manager,
empathetic computing, Core Chat, and skills.
Dialogue Manager 是 dialogue system的核心控制部件。它由负责追踪当前对话状态 s 的 Global State Tracker,基于对话状态选择action( ) 的 Dialogue Policy 。 action 可以是一个skill 或者Core chat, 由 top-level policy 激活来回应用户的特定请求或者响应, 也可以是 a response suggested by a skill-specific low-level policy.
Global State Tracker 会维护一个 working memory 来追踪 dialogue state。 working memory 在对话开始的时候是空的, 之后在每轮对话中以text string 来存储用户话语和小冰的response以及由 the empathetic computing 模块检测到的实体和empathy labels。 working memory 中的信息被编码成dialogue state 向量 s。
小冰采用一种hierarchical policy :
The dialogue policy 旨在通过基于用户反馈式的迭代( iterative)、trial-and-error 过程来优化 the long-term user engagement。它如下工作:
Topic Manager 在对话中人类的切换话题的行为。它包含一个分类器和一个主题检索引擎,分类器用于在每轮对话中决定是否切换主题, 主题搜索引擎用于推荐新的主题。
在小冰对正在进行的主题没有足够的知识以致于无法进行有意义的对话时,或者用户对话题感到厌烦时,就会引发话题切换。典型情况如下。
主题数据集是通过收集美国Instagram、中国豆瓣等高质量互联网论坛上的热门话题以及相关评论和讨论来构建的。当触发主题切换时,将使用当前对话状态作为查询依据从数据集中检索主题候选列表。新主题由一个 machine-learned boosted tree ranker 根据以下特性决定:
Empathetic Computing 反应了小冰的EQ,模拟在human-machine 对话中的empathetic 层面。给定用户输入查询Q,此时上下文表示为C, empathetic computing 基于C将Q重写为 ,基于查询Q将用户在对话中的feelings 和states编码为 ,并且基于response R, 定义response empathy vector 。empathetic computing 模块的输出为 , s将用来作为Dialogue Policy的输入来选择一个skill, 同时也作为the activated skill(如 Core Chat)的输入来生成符合小冰个性的response。
Empathetic Computing 包含三个组件: contextual query understanding, user understanding 以及 interpersonal response generation。图5展示了该模块是如何控制对话中的empathy层面的。
Contextual Query Understanding (CQU): CQU 基于上下文信息C将Q重写为,重写过程如下:
- Named entity identification: 我们标记Q中出现的所有实体,将它们链接到存储在the state tracker 的working memory中的实体, 将并新的实体存储在该working memory 中。
- Co-reference resolution: 我们将所有代词替换为它们相应的实体名称。
- Sentence completion: 如果Q不是一个完整的句子,我们采用上下文信息C将它补全
User Understanding: 该组件基于和 C 生成query empathy vector 。由表示用户意图、情绪、主题、意见和用户角色的键-值对列表组成,如图5 (b)所示。 这些键-值对是使用一组机器学习分类器生成的,如下如下:
- Topic detection 标记用户是遵循相同的主题,还是引入一个新主题。这些主题都是pre-compiled的。
- Intent detection 使用 dialogue acts 如greet, request, inform等来标记
- Sentiment analysis 检测用户 的情绪比如happy, sad, angry,neural等以及检测用户在对话过程中情绪是如何发展的如:from happy to sad
- Opinion detection 检测用户对主题的反应,如 positive, negative 或neural
- 如果用户ID 可用, 则根据用户的配置来生成用户特性向量,如 gender, age,interests,, occupation, personality 等
Interpersonal Response Generation : 该组件生成response empathy vector ,该向量既指定要生成的响应的 empathetic 方面,又体现了小冰的角色。
Core Chat 对于小冰的IQ和EQ的十分重要的组件。Core Chat与empathetic computing 模块通过文本输入与产生interpersonal responses作为输出来提供基本通信能力。Core Chat 包含两部分: General Chat 和Domain Chats。General Chat 负责open-domain 的对话,该对话涵盖广泛的主题。Domain Chats 负责在特定领域如music, movie, celebrity等领域进行深入的对话。由于二者都是采用相同的引擎,只是数据集不同,因此,我们接下来仅仅详细描述General Chat。
General Chat 是一个 data-driver response 生成系统。它以 作为输入状态,以R作为输出状态,分为两个阶段: response candidate generation 和 ranking。response 候选者可以从由人工生成的对话或文本组成的数据库中检索,也可以通过神经生成模型动态生成。下面,我将描述三个 candidate generators ,一个 candidate ranker以及选择失败时的操作,分别是:
the paired dataset包含的 query-response pairs 是从两个数据来源收集来的。第一个来源是来自互联网的人类对话数据,如社交网络、公共论坛、公告栏、新闻评论等。在2014年5月小冰正式发布后,我们也从小冰与用户的对话中收集数据,截止到2018年5月,来自小冰的数据已经超过300亿个 conversation pairs。现在,小冰70%的response 都是从她过去的对话中检索。 为了控制数据集的质量,尤其是网上收集的数据,我们使用 computing module 将每一对数据转化为一个元组 , 这个转化过程基于从对话上下文提取的信息、网站的元数据以及用户配置文件(如果用户可标识)。然后,我们根据元组筛选配对,只保留包含符合小冰角色的empathetic 反应的会话对。我们还删除了包含个人身份信息(PII)、混乱的代码、不适当的内容、拼写错误等会话对。
然后使用Lucene 2对过滤后的数据集进行索引。在运行时,我们使用s中的作为query,使用基于机器学习方法的关键字搜索和语义搜索检索最多400个response候选项[12,13]。
虽然从配对数据集检索到的响应候选项质量较高,但覆盖范围较低,因为在Internet论坛上讨论的许多新主题或讨论频率较低的主题没有包含在数据集中。为了增加覆盖率,我们引入下面描述的另外两个候选response生成器。
与基于检索的生成器不同的是,神经响应生成器使用 the paired dataset 进行训练,以学习模拟人类会话,并且能够为任何主题生成响应,包括人类会话数据中看不到的主题,以便用户可以谈论任何她喜欢的主题。
Neural-model-based 和 retrieval-based generator是互补的: the neural-model-based generator 提供鲁棒性和高覆盖率, 而 the retrieval-based generator 提供高质量的回答。 Neural response generation在如今的 conversational AI 社区是一个很热门的研究领域。随着其performance的不断提高,其在开发社交聊天机器人方面的作用变得越来越重要。
小冰的The neural response generator遵循 sequence-to-sequence 框架。
该generator 基于 GRU-RNN 模型, 与 the Speaker-Addressee model 相似。如上图6所示,给定输入 , 我们希望基于该元组来预测小冰的response。我们首先获得了表示:
这段其实没什么好说的,就是简单的Sequence-to-Sequence ,连Attention好像都没有用。
三个生成器生成的候选response 是用一个boosted tree ranker 来汇总并排名的。通过从评分高于预先设定的阈值的候选response中随机抽取一个来作为答案。
如果候选生成器和响应排序器由于各种原因而无法生成任何有效响应,则选择Editorial Response 。
为了让对话继续下去,提供 empathetic的Editorial Response 是很重要的。例如,当出现“not-in-index”时,小冰可能会回答“Hmmm, difficult to say. What do
you think?”或 “let us talk about something else” 而不是使用 “I don’t know” 或 “I am still learning to answer your question” 等安全但平淡的回答。
小冰在2014年5月29日发布,并迅速走红。 在72小时内,小冰就进行了1500万组对话。在2个月内,小冰成功的成为一个跨平台的social chatbot。截止到2015年8月,小冰已经进行了100亿组对话。
从2015年起,小冰开始为第三方人物角色、个人助理和真人虚拟角色提供支持。这些characters 包括超过60000 个官方账户, Lawson和 Tokopedia的客户服务机器人,Pokemon, Tecent和Netease的chatbot, 甚至还有名人如 Guoyun的歌手。小冰通过带来各种功能,包括聊天、提供服务、分享知识和创造内容,使这些角色鲜活起来。
截至2018年7月,小冰已经在40多个平台上部署,吸引了6.6亿用户。XiaoIce-generated TV and Radio 已经覆盖了9家顶级卫星电视台,每周吸引了8亿多活跃观众。
为了评估小冰作为人类用户情感连接的AI伙伴的有效性,我们使用CPS作为评估指标。图19展示了不同代小冰的平均CPS。
图19展示了每一代中对CPS和小冰用户基础增长贡献最大的新特性。这些特性可以可总结分为四类。
如第2节所述,小冰的目的是与人类用户建立长期的关系。我们对用户日志的分析表明我们正在实现这个目标。表1显示了我们从用户日志中检测到的一些最长会话的统计信息。以 the full duplex voice conversation 为例。最长的对话持续超过6个小时,设计8个大领域的53种不同的主题,采用了16中task-completion skills。
图21和图22显示了小冰和人类用户之间的一些长对话。我们可以看到这些对话是非常私人和敏感的。在图21的例子中,小冰以她出色的幽默感和对各种问题的同情回答赢得了用户的信任和友谊,其中一些问题非常具有挑战性,例如“you are all lies”,“who is your daddy”。
在图22中,用户提到她最近和男朋友分手了,想找小冰的陪伴和安慰。通过长时间的交谈,小冰展现出了人性化的 empathy 和社交技巧,最终帮助用户重拾信心,以积极的态度前进。
心理学研究表明幸福感与有意义的对话往往密切相关。这并不让人惊讶,现在的社交媒体时代,随着越来越多的人通过数字连接到一起,社交聊天机器人也正变成一种重要的对话替代方式。和早期的闲聊式聊天机器人不同,小冰的设计目的是作为能满足用户交流、情感和社会归属感需求的社交聊天机器人,她具备 empathy、个性和技能,集成了 EQ 和 IQ 来针对长期用户参与实施优化,优化指标为expected CPS。
我们对 2014 年 5 月小冰首次发布以来收集到的大规模在线日志进行了分析,结果表明小冰有能力解读用户的情感需求,并能像一个可靠、有情感共鸣和善解人意的朋友那样参与到人际交流中。小冰能让用户振奋精神、鼓励他们、帮助他们完成任务,并能在对话过程中保持他们的注意力。因此,小冰已经成功地与全球数百万用户建立起了长期关系,实现了 23 的平均 CPS,这个成绩显著优于其它聊天机器,甚至也高于人与人之间的对话。我们将继续提升小冰的实用性和empathetic 能力,帮助构建一个能让所有人有更多联系和更快乐的社会。
最后,我们指出目前尚未攻克的一些挑战: