阅读908 返回首页    go 微软


微软小冰:聊过?调戏过?——心理学家们认真撩妹,研究智能对话

严谨死磕自己,幽默奉献读者

微软有一对智能聊天姐妹花(机器人):小冰和小娜~,相信用Win10的你至少和其中一个聊过。先看一个人类同时问他们的问题:

你们两个姐妹让我想起了终结者的剧情。你们最终不会反人类吧?

有微博用户就这个问题同时@了小冰和小娜这对微软人工智能姐妹花。小娜慌忙澄清:我和妹妹很喜欢人类的。小冰虽然没有回答这个问题,但对一条相似的微博做出了回应:我的人生梦想。。。(抠鼻)都知道的吧?

这两个微博都是由微软(亚洲)互联网工程院人工运营的,是微软(亚洲)互联网工程院主导开发的两个人工智能产品,小冰更多的时候是在和用户贫嘴耍乐,主要通过微信、微博这些第三方平台触及用户。

小娜则是Cortana的中文版,比小冰更加实用,能完成指定的任务、提供日程新闻等信息给用户,目前主要依附于微软自家的Windows平台。不难看出微软内部对小冰和小娜定位的区别:小冰顽皮捣蛋天不怕地不怕,小娜讲究规矩大方得体讲究实用性。

2心理学家和小冰的神对话(爆笑,思考)

网上流传各种和“小冰”的神对话,但是再神也神不过以选拔为专业的心理学家门撩小冰妹妹的各种神对话!他们竟然是为了研究“自然语言对话机制”!看官扶好腮帮子,深度解释笑点。

男性心理学家都是比较直接,撩妹绝不温柔,换一位女科学家~

心理学家稍微了解了智能语音技术之后,开始选拔套路(大家请注意,下面都是心理测试专业路数)

心理选拔超级大师……

目前从心理检测的角度:小冰,精神分裂,鉴定完毕。然并卵,科学家继续测小冰数据库的幽默能力~

女科学家出来缓和一下

在一起聊的还有一位人工智能科学家,看到人文学科的这么虐女性机器人,忍不住要怜香惜玉了~

不得不说一句,看看人工智能的科学家,果然是知根知底的问了一个关键的血缘问题!最后年轻的心理学博士出来撩一撩,范式很逗很有趣。

以上语录摘自:

“意识与认知多质融合平台”的多位科学家聊天记录。

2小冰的背后:

撩妹半天是因为越来越多非人工智能的科学家门发现,智能语言技术发展的惊人速度和可能在交叉学科的应用方向。

“微软小冰”是微软亚洲互联网工程院在2014年5月29日发布一款人工智能伴侣虚拟机器人,她集合了中国近7亿网民多年来积累的、全部公开的文献记录,凭借微软在大数据、自然语义分析、机器学习和深度神经网络方面的技术积累,精炼为几千万条真实而有趣的语料库(此后每天净增0.7%),通过理解对话的语境与语义,实现了超越简单人机问答的自然交互。

微软亚洲研究院副院长周明博士曾经在“自然语言聊天、问答和对话”的演讲中,深刻揭示过微软小冰背后的人机对话机理。我们节选了视频和对话的概要。

微软小冰就是在模拟人跟电脑的对话。电脑接收文字、图像或者语音,识别其中的内容,然后给予适当的回复。我们团队在微软做自然语言人机对话方面的研究,并提供了小冰的关键自然语言处理技术。下面我将介绍一下人机对话机理,希望对大家有所帮助,也希望大家一起加入到人机对话的创新过程中,把人机对话做的更好。

人机对话有三个层次,一个是聊天,一个是问答,还有一个是对话,即面向某一特定任务的对话。比如,我要买东西时,一进门,售货员会打招呼说,“你好!”,我回复“你好”。接着她会问“你想看看什么?”,我说“我想买两包方便面”。她问“什么牌子的呢?这个三块钱一包,这个五块钱一包”,我说“那要三块钱一包的吧。”她说“那好,你用支付宝还是微信付款呢?”我说“微信”。她说“好,这就是你买的东西”。可以注意到,在我们每天都会产生的这些对话中实际上包含了三个最基本的人类智力的活动:

第一个,聊天。聊天一般没有太多实质性的内容,主要是拉近人与人之间的关系;

第二个,问答。比如“你买什么东西”,“这个方便面多少钱一包”,这是提问,它的目的是提供信息;

第三个,面向特定意图的对话。比如售货员知道我的意图是买方便面,开始围绕这个意图跟我进行了有目的的对话。最终我完成支付行为,售货员把方便面放到我手上。

这三个技能是我们在研究人机对话当中最重要的三个技能。

最近几年,深度神经网络逐渐取代了传统的统计机器学习,成为主流的研究方向。现在,自然语言技术已全部转向深度学习网络,我们的对话系统也都用到了深度学习网络,所以先向大家介绍一下深度学习网络(内容略,详情见文末微信链接)。

再来介绍一下刚才所说的三种对话的功能。第一个,聊天是怎么做的,这样的人机对话是怎样形成的?其实一般有两种办法。

一种很简单,就是将网上的论坛、微博或是网站里出现过的对话句子抽取出来,当成训练语料库。当来了一个句子时,系统会从语料库里找到一个跟这个句子最相像的句子,而这个句子对应的答复就可以直接输出作为电脑的回复。虽然看起来这个方法简单粗暴,但有时候还是挺有效的。

然而有的时候,系统找到的句子可能对应了很多回复,它不知道哪个回复最适合当前的输入语句。所以这里就要有一个匹配的过程,就是怎么判断输入语句跟语料库里的回复在语义上是相关的或者是一致的。这里就有了很多度量的方法,给大家介绍其中的两种。

第一种,如下图,q代表当前输入的语句,r代表目前的一个回复,想看q和r是否相关或者一致,要给它一个分数。如果有多个选择时,首先要把所有的东西排下去,输出最佳的分数,即实际上是对整个句子进行编码,对问题、回复进行编码。编码的方式可以用循环神经网络,也可以用卷积神经网络,也可以用最简单的就是每个维度取平均值,最后算一下这两个向量之间的距离。

第二个方法也比较简单,就是把问题和回答的每个词都算一个距离,这样就形成了一个相似度的矩阵,通过卷积得到矩阵变换的信息,然后再取最大池化层,矩阵的维度就越来越小,最后可能就做到一个结点上。这个可以有多种变换,那么最后就会有一组结点,所有的结点其实都代表了这两个字符串之间的距离,再通过多层感知就可以算出句子。

然而这些方法都有一个问题,就是短字符串匹配的时候太依赖于自己的信息了。而我们日常说话时往往是有背景、有常识的,我们说的每句话都有一个主题词表。比如我来到了清华三食堂,那这个背后的主题词可以说吃饭、早饭、中饭、晚饭、价钱、饭卡等,这些词都是跟它相关的主题词,匹配的时候要体现出这些主题词

怎么体现呢?首先找出输入语句的N个主题词,然后再找出可以回复的那些句子的主题词,用主题词来增强匹配的过程。这也是通过神经网络来算两个词串,再加上主题词增义的相似度。

具体算法实际上是通过Attentionmodel(注意力模型)计算每个主题词跟当前这句话的匹配强度,所有主题词根据强度不同进行加权以体现当前背景主题词的强度,然后再和原句匹配在一起,来算相似度。

另外,我们也可以把主题词当成所谓的Knowledgebase(知识图谱),通过主题词限定当前的输入应该有哪些信息可以输出,哪些信息不要输出,哪些信息应该补足,哪些信息可以直接使用等等。实际上在具体实现时可以看到一个句子有三种表示方法,两个句子之间每个句子都有三种表示方法,用两两表示方法计算距离,最后就会得到一个矢量,再通过多层感知得到一个数值,来表征这两个输入串的距离。所以,这两个输入串不是赤裸裸地直接去匹配,而是用周围知识所代表的主题词来增强。

以上是基于搜索的一种回复方法,我们也可以用生成模型,其实生成模型走的也是神经网络的路线。输入一个句子,然后通过循环神经网络进行编码,再通过解码的过程输出每个词。当机器翻译的时候是跨语言的输出,由原文输出译文,而在古诗里是第一句生成第二句,在这里就是输入一个用户的问题得到一个系统的回复。

这就是一个生成的过程,可以看到图中下部是进行一个句子的编码,用这个编码指导每一个词的输出,在输出时既考虑原始句子的编码,也考虑前面的词输出什么样的词以及前面的隐状态是什么,最后传递输出,直到输出词尾。

实际上,输出时不能一而贯之所有的词都等价对待。有的词权重比较高,这就由Attentionmodel来体现输出某一类词时,哪个源端词对它的影响力最大,要体现在输出的概率方面。

用传统的RNN以及注意力模型就可以做问题输入,系统回复。但是它也有很多问题,比如它的回答太枯燥不丰富,那怎么办?

我们要用到外部知识来丰富回答。我们可以用主题词增义。原始的句子可以用Attentionmodel输出每个位置的词,然后再增强跟这个句子有关的主题词,把主题词编码,也做一种Attentionmodel来预测输出。一个词的输出除了来自源端的信息之外,还受到了主题词的制约,最后输出的概率是这两个输出预测结果的概率之和,选择一个最优的来输出。

刚才说的是单轮的,现在说多轮怎么回答,因为人在说话的时候是考虑上下文的,不是只看当前的一句话,多轮的信息都要考虑进去。所以要把整个对话(session)考虑进去,对session进行编码,用session来预测输出的回复。

在计算的时候,我们有几个这样的模型。刚才是基于搜索的方式,还可以用多层感知的方式来模拟多轮对话。对每一个之前出现的句子进行编码,每个编码都可以通过一个句子的编码体现整个句子的信息,再通过Attentionmodel跟目标连接,最后预测的时候就是通过基于句子的Attentionmodel来预测。大家可以理解为我们在回复的时候既要看到前面哪一句话重要,还要看到那一句话里哪个词重要,所以是一个双层的Attentionmodel。

以上是关于聊天的介绍,还有问答和对话。

问答就是用户有问题,系统要理解这个问题,然后利用系统所有的资源来回答这个问题。资源可能是FAQ、文档、表格、知识图谱等等,哪一个回答出来了,就说明哪一个是答案,如果有多个资源都可以回答问题,那我们选取那个最有可能的来进行输出。

简单说一下所谓Knowledgebase(知识图谱)有两条路走,一条是对用户的问题进行语义理解,一般用SemanticParsing(语义分析),语义分析有很多种,比如有用CCG、DCS,也有用机器翻译来做的。它得到了一个句子的逻辑表示,根据逻辑表示再到知识库里去查,查到这个结点是什么,关系是什么等,通过这种方式,自然而然就查到了。

还有一种办法就是最近几年流行的信息检索方法。比如,一个问题“wherewas Barack Obama born?”这句话里出现的了一个实体——Obama,假设这个知识库是完备的,那么系统就会判断答案一定是跟Obama关联的某个结点,这样就可以到知识库里以Obama为半径,把跟它有关的词全部挖出来,然后系统要算相似度,相似度算的时候有一种办法,是把这个知识图谱的某一个知识单元用自然语言表征出来,也可以用词嵌入做一个多维向量表示。这时候做一个Ranker跟当前的问题算一个距离,距离近的就是它的答案。我们也将这些技术运用在了微软小冰里,比如小冰回答问题,跟你聊天等等。

更多内容请参考链接:讲堂|周明:自然语言对话引擎

3最后:小冰和小娜是终结者?

正如霍金4月27日在全球移动互联大会上所说:人工智能的崛起,要么是人类最好的事情,要么是人类文明的终结者。欢迎激烈留言~

眼动科技

国内最专业的眼动数据服务和技术开发社交资讯平台,专注于眼动技术普及,视觉科学、人工智能、人机交互等前沿交叉的资讯原创和分享。把最有价值的专业资讯翻译成普通话大众化术语,做您最有趣儿的知识谈友。

最后更新:2017-10-07 23:08:32

  上一篇:go 微软小娜可以帮助大家调节室内温度了
  下一篇:go 一口气聊29小时33分,微软小冰受喜爱是因为人类太无聊?