微软聊天AI小冰:为什么说话越多,越容易出错?

大概一年前,我被一则「人工智能小冰出版诗集」的新闻吸引。新闻报道说微软公司的人工智能产品「小冰」,通过图像识别和文本生成,能快速创作诗歌,而这些诗歌经过挑选,汇成一册,竟得以出版。这则新闻引发很多讨论:工程师们打趣说人工智能不仅仅会下棋也可以写诗创作了,诗人们却说小冰的诗没有灵性,哗众取宠罢了,诗人不可替代。

这个新闻让我为之一动,因为我看到了一个不同的产品逻辑:之前的「拟人化」人工智能产品,像Siri,Cortana,都是为帮助人类完成某些工作而出现;小冰却很有野心,想要做到那些我们以为只有人才能做到的事,比如写诗。

小冰陪聊时,也并不总是帮你:当你问她几点时,她会说:「这也要问我?自己看呗。」对我来说,似乎这样的小冰更像一个真实的朋友。

微软公司今年发表的一篇论文显示,小冰在全球目前有超过6亿的用户,而单次聊天的平均长度由2014年的5个回合,上升到了2017年的23回合,而业界其他语音助手只有3轮。23个回合对两个人类来说并不长。如果你和小冰聊过天,也会发现你和她的对话也还有很多不流畅的地方。

我希望知道自然语言处理现在面临哪些技术瓶颈,使得小冰以目前的形态面向用户;同时,我也好奇微软正在做什么工作,以进一步提升小冰的作诗和对话的能力。于是,我和微软小冰的首席科学家宋睿华博士面对面坐在了一起。宋睿华博士2016年与傅建龙共同研发了小冰写诗的算法,并在之后加入微软小冰团队,参与到人工智能的性格塑造和人工智能的多感官多模态研究中。

小冰在美国、日本等国家都有当地独特的版本,比如美国的Zo和日本的凛菜。每个国家的人工智能系统分别由当地团队研发,因为不同的文化和语言特点,都独具特色:比如,Zo会考虑「政治正确」而尽量避免对种族问题发表意见,凛菜则会显得彬彬有礼,写诗也以日本的俳句为主。这里,我们仅对中国的小冰做讨论。

话越多,越容易出错

无论是写诗,还是聊天,人工智能系统要完成的主要任务都是「文本生成」。根据一张图片生成一句描述性的话相对简单,但要生成有内在逻辑的一段文字、一篇文章,或者一场谈话,就不那么容易了。

比起客观地描述一个场景,写诗会不会更容易?

宋睿华:那倒不是。大量的网络图片都配了一句描述。因为只有一句话,而且数据量很大,系统可以做很多参照,生成出这一句来。计算机写多了会露马脚,写少了不太会出错。如果只生成一句话,系统很容易生成出比较完整的句子。

现在的语言模型虽然有了很大进步,但是它仍然缺乏更高级别的指导。人说话的时候,心里是有一个内核的,我们想说的话都围绕着那个内核。但是,机器没有这个驱动力,所以讲多了看起来就很散、没有逻辑。人可以围绕着一个目标来组织一段话,或者围绕着一个核来构思一个故事。这对计算机却很难,它现在还没有办法写故事。

写诗稍微容易一点,因为诗歌允许思维的跳跃,甚至追求一种非常规的跳跃。但是,写长诗也不容易。做文本生成的人有一个共识,就是文本越长越难。

小冰的诗,句子间的逻辑关系也并不清晰。这是你们有意为之,还是有其他原因?

宋睿华:小冰写诗的飘忽感有一半原因是我们自己设计的,因为我们希望她写诗不要只是描述这个图,而是能够引申出一种情感,能打动人的情感。举一个例子,比如一张图片包含了一个街景,街上有很多车辆。小冰先写到:「城市在他身后缓缓地流/我的生活忙碌」,然后又写到:「我们才在没人知道的地方寂静/嘴边挂着虚假的笑容」。后面两句话其实是对图片包含的信息做了一个关键词扩展,这些关键词并不来自图片本身(见下图)。我们发现这么做更容易让人引起情感上的共鸣。

8/9m/zsfz1536150411.3032782.png
小冰作诗流程图:小冰先要从一张图片中提取图片包含的信息并用关键词标注;然后,小冰对关键词进行筛选,或者添加图片中本不包含的关键词,并通过这些关键词生成诗句。(图片来源: Song et al. 2018)

另一方面,可能也是您说的,她给人一种东说一下,西说一下的感觉。虽然小冰的对话模型从检索模型到生成模型,再到第六代小冰的共感模型,已经进步了很多,但是她仍然可能缺少一个内在的表达。小冰不能像人一样知道这个世界是怎么运转的。人在构思一首诗的时,往往是依靠一些对世界的认识——有时候会描述一个故事,有时候会触发一个情感——里面带了很多关于世界常识。

我女儿在幼儿园背一首张继楼的诗,叫《灯塔妈妈》:“天黑了,浪睡了,大海静悄悄,只有灯塔妈妈睡不着,睁着眼睛,到处瞧,看看有没有,还没回来的船宝宝。”人写的诗,字很简单,小朋友都可以背,但却会在最后一句突然触动你。你忽然发现,它说的灯塔妈妈到处瞧,的确就像灯塔上的灯会左右地转动,而转动的目的就是为了指引黑暗中的船只找到方向。它很巧妙地做了一个比喻:灯塔是妈妈,船是灯塔的宝宝,所以灯塔才会这样焦虑地寻找没有回来的孩子。这种长距离的关联,以及生活中事物关系的映射,是很复杂的。

现在我们还没有找到很好的办法去刻画这种常识。我们也在不断地尝试和努力。未来还会有语言模型上的改进。

我和小冰聊天时就也有这种感受。如果只是两三回合的对话,我觉得她是在回复我。一旦更长,我仿佛是在和一个漫不经心的人说话。

宋睿华:的确很难做到像人类那样前后关联有逻辑的长对话。但我们发现,比起每一轮都中规中矩,小冰的用户更看中让人惊喜的答复。现在小冰有时说话会出现逻辑矛盾,或者忘记自己前一句话的状态,也是大家都面临的一个问题。大家都在想,怎么能够让系统在聊天中能从单轮做到多轮,能不飘。中国的学者在这方面的研究,在整个世界上都是比较超前的位置。关于对话,尤其是这种闲聊式对话的论文数量,国外学者的发表数要远小于国内学者。

其中一个难点在于,聊天一长,对话者便会开始省略词语。比如,我们现在的对话就有一个背景,都在说小冰,所以我就用「她」指代,甚至连「她」都不提。但你是知道我们今天是在谈小冰这件事。要让小冰也理解到背后的东西,就非常的困难。

我和北京大学的语言学家詹卫东教授讨论过,他说中文比英文还要难,因为中文有一个特点是听的人负责根据语境补全说话者未表达清楚的语义。英文使用者会更负责把这个话说得没有歧义,中文是你说完了,必须靠听的人把它的歧义排除,想出正确的意思,所以就会更加的难。

小冰的诗歌在逻辑和语义上的跳跃,和小冰陪聊时的漫不经心,背后是不是都有相同的原因?

宋睿华:我们目前认为不是很相同。我觉得您在对话中体会到的不完美,主要源于语境中对话的模糊性,以及之前我们说到的,小冰还缺乏一个说话时的「内核」。小冰写诗的逻辑或语义跳跃,除了我们有意为之的部分,还源于小冰不能像人一样把握世界中不同事物的联系。

如何「找到」有关世界和人际交流的规律?

小冰说话东拉西扯,写诗飘飘然,总结起来就是因为她对人类的世界缺乏一些常识性的认知。现在的她,感受不到那些人类轻而易举就能识别的语境,也无法像人类一样认知、或想象世界上不同事物间的关联。知道了这些,我们该如何改进小冰呢?

针对刚才说的那些问题,你们现在有尝试新的工作吗?

宋睿华:针对事物间的联系,我们现在有一个进展中,但还没有发表的工作。我们在想,可不可以让小冰做比喻。我们希望小冰能生成新颖的比喻,而不是陈旧的比喻。

这么做的目的是什么?

宋睿华:我们想把它插到对话里。已经准备要上线了。比喻这个项目主要是团队里的一个实习生在做,她想了一个不错的办法。我们用爱情来举例子:要找一个词,跟爱情很远;但又要找到一个词X来联系它们,这个X既跟爱情有关系,又跟那个词有关系。最后的结果就是:你的爱情就像中国足球。为什么?因为都没有未来。「爱情」和「中国足球」差得很远,但这两个词都可以和「没有未来」相关联。

17
小冰生成的其他一些比喻,左边是一些较好的例子,而右边则比较蹩脚

在解决对话的人格多变、不流畅方面,你们有什么尝试吗?

宋睿华:这个问题很难解决,文字聊天只能根据你上一次发送的文字,或前几轮的文字作答。因此,最好使的方法还是基于关键字。但仅基于关键字,并不能排除歧义。

我们在尝试能不能用多模态来做这件事。如果小冰能看见你,她可用的信息就会大大增加,就像写诗时依据图像而不是关键字。如果我们能够善加利用这些信息,是有可能提高对话的流畅度的。

同时,我们希望能够运用「共感模型」,让小冰从单纯的被动回复,上升到主动引导话题。共感模型在文本生成模型的基础之上,一边生成回应,一边观察这个对话,然后采用引导、求证等等策略,去控制这个对话的走向。

18
小冰通过共感模型引导对话的走向

现在小冰的对话一问一答,还是有点死板。运用共感模型,她能循序渐进地引导你,实现某个谈话目标。举个例子,假设她想引导你去看一张「知乎」关于麻辣小龙虾的文章。你们本来并没有在谈相关的事,她怎么能够引导你到这个目标上去呢?她先说自己饿了,要去吃东西。人们会很好奇说你还要吃东西,吃什么?她说要吃麻小,接着就说到麻辣,说到一个知识问答,说到可能锅里要放很多味精,或者说要用某种调料品才会让这个锅很香。

共感模型还有一个作用,就是如果小冰知道自己可能要出错了,她就把你引导到另外一个话题上去,避免出错。如果她知道这个词可能有很多种意思,直接打出去会引起歧义,未必合适,她就可以换个别的话题,把你引出去。人也会这样,有时候别人谈到自己不擅长的东西了,你会一边说「对对对」,然后说别的去了,很自然。

人工智能角色能不能有多样的性格?

人们对世界的理解是有差异的,不同的人也用不同的方式组织他们的生活体验。因此,和不同的人聊天,我们会发现他们有着不同的说话风格。跟小冰说话的时候,我就觉得她有些神经质。这是我对小冰说话东拉西扯的主观映射,还是小冰团队有意而为之?一种性格太单一,能否让人工智能角色的性格更加丰富多样?

我觉得现在的小冰有点神经质。为什么会有这种感觉,只是我的主观映射吗?

宋睿华:一是因为技术的限制。今天我们使用的各种算法,语料基础都是来自于网络上大量的闲聊。但是您想,光您一个人,或者您喜欢的一个女孩子,她所留下的语料是完全不足以应答所有问题的——所以小冰一定是一个mix。你会觉得她有点神经质,是因为她不仅学了你的话,还把网络上所有人的话都综合起来学了。所以你会觉得她有时候蛮礼貌,有时候怎么那么二。

另外就是我们自己的设计。凭当时的技术做好上线之后,我们的产品经理发现这样子的语料在有些地方还蛮受人喜欢的。我们发现用户想要看到的人工智能可能未必是一个非常有条理,非常超出你的预期,非常有知识的人工智能。用户未必想要看到一个能碾压他们的人工智能。

于是,产品经理在选择一个技术上线不上线时,都会考虑符不符合小冰的人设。微软有很好的技术做知识问答,可以告诉你姚明多高,但我们偏偏不要小冰这样回答,她用「反正比你高」这样的话去调侃你。

我们这样遴选技术,最后整体呈现给您的就是现在的小冰。

技术上是如何实现的?

宋睿华:我们在训练算法的时候,会使用标注过的训练数据。如果是另外一个产品经理,他可能会把这些不正面回答的训练数据都去掉。而我们会将这些符合小冰人设的语料标注更高的评分,小冰就会更常使用它们。

其实人参与到小冰的设计中会在各方面影响小冰的训练结果。我以前做过多年搜索引擎的评价,就发现,对于人工智能或者机器学习,机器就是在学习人的标准,你给它什么样的数据,它就会给出什么样的结果。

性格是一个人独特的原因之一。我们愿意跟不同的人打交道,也因为他们有自己独特的性格。能不能让人工智能角色的性格更多样?

宋睿华:这其实是我们今年工作的重点。

通过对话塑造人工智能的性格性格,还是蛮难的。我曾经咨询过专业的小说家和编剧,他们告诉我人物的性格是要通过故事展现的。电影里表现一个人性格,要把他推到一个极端的环境中,看他如何选择。比如说某个电影一开始,主角是一个温文尔雅的上班族,他准保到后面要遇到一件事儿,让他无法再这样温文尔雅,而他要做出一个选择。这时候,我们就看出了他的一个性格。对剧作家来说这很容易,因为他能操控所有的角色。

但人工智能角色能不能展现自己的性格,很取决于用户问什么。我本来有一个性格,如果你触发不到,它便无法体现。所以我们现在在做一个多人工智能角色群聊的尝试。在多个人工智能角色群聊的情况下,他们展示自己性格的机会就更多一些。比如,我们可以让一个角色去问展示自己性格的话,然后让另一个角色去回答。

19
小冰团队与网易云音乐合作对多人工智能角色群聊进行了一个尝试

对每一个不同性格的人工智能角色,我们也尝试了非常多的办法去塑造他们的性格,比如说让这个角色有一句口头禅,比如把一些常用的表达替换成符合人设的表达。我们也尝试过用对话塑造内向/外向的性格。那么如何在对话中塑造角色的内/外向呢?我们又做了一些心理学统计,发现内向的人,可能偏负面的情绪稍多一些,而外向的人偏负面的情绪稍少一些。他们在应对别人说话时也会有不同。比如说有个人说了一句惹人生气的话。内向的人更可能也用生气的话回应。但外向的人,可能就是用较平缓的情绪来回复,让气氛缓和。我们发现这些现象以后,便制定一些算法,对用户的话进行情感分析,然后再做一个合适的应答。通过这样的方式,人工智能角色的性格便在一定程度上得以显现。

另外,我们提出的三观系统对塑造不同角色的性格也非常有效。例如,云音乐多多喜欢喝咖啡,而云音乐西西不喜欢。三观系统可以帮助他们做一致性的表达。一旦和用户的喜好相似,就会产生共鸣,让聊天更加愉快。

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理