谷歌敷衍Allo的背后 是超智能的图像识别技术
编者按:Ariel Fuxman是谷歌研究科学家,他于2006年从多伦多大学获得计算机科学博士学位。他2015年加入谷歌,之前的8年时间在微软担任高级研究员。本文中他介绍了谷歌在I/O大会上新推出的智能聊天应用Allo,到底有怎样神奇的智能回复功能,以及这些功能是如何通过图像识别技术实现。
谷歌今天发布了智能聊天应用Allo。从开发Allo的第一天起,我们就想打造一个真正特殊的产品,通过机器智能的力量,让聊天变得更加简单、更加高效、更有表达力。Allo的一些特殊功能Photo Reply。我们利用了机器学习来理解分享的图片到底有什么内容,从而给用户提出丰富的自然语言回复建议,用户只要简单点击就能发送,省去了打字的麻烦。这让用户使用手机小键盘的时候,也可以非常方便地让聊天对话比较有料。
举个栗子,当你的朋友升级成为父母,难免会非常激动地给你发来(你并不感兴趣的)小娃照片。
图片来自Google Research Blog。
此时Allo就给你提供了几个快捷回复的建议:
选项一:哇啊啊啊!
选项二:好可爱!
选项三:可爱的宝宝!
(这完全是对晒娃无感的我,一向惯用的敷衍方式。)随手一点,再也不担心友谊的小船说翻就翻。
幕后功臣Photo Reply
今年冬天的时候,谷歌产品经理Patrick McGregor和Ryan Cassidy给了我们一个挑战:敢不敢做一个简化媒体分享的聊天软件,并且同时让用户玩得开心、获得很好的谷歌体验。我与Vivek Ramavajjala、Sergey Nazarov和Sujith Ravi等几位同事一起,接受挑战,开始打造Photo Reply。
我们利用了由机器感知团队开发的谷歌图像识别技术,来将图像和语义个体联系起来——人、动物、汽车等等。然后,我们应用了一个机器学习模型,将识别出来的语义个体与自然语言回复联系起来。我们的系统为几千个个体类型生成了回复,这些类型是从谷歌知识图表的一个分类学子集中取出,并且有可能在不同的粒度等级上。举个例子,当你收到一张小狗的照片时,系统可能会监测出这条狗实际上是一条拉布拉多犬,并建议你回复“超爱拉布拉多!”或者当有人给你发了一张意大利面的照片,系统会监测出意面的类型,然后说:“意大利扁面超好吃!”甚至不一定是关注细类,可以上升到美食文化的层面,回复说:“我超爱意大利美食!”
面对上图中的意大利面,系统建议回复:“意大利扁面超好吃!”“我超爱意大利美食!”图片来源Google Research Blog。
面对玫瑰的图片,系统建议回复:“好漂亮!”“好爱玫瑰!” 图片来源Google Research Blog。
我们发现系统有一项功能特别有用,就是它不仅能针对具体的物体建议回复,还能针对抽象的概念。它可以针对事件(生日聚会、婚礼等等)、自然风景(日出、远山等等)、娱乐活动(登山、露营等等)以及更多的类别来建议回复。另外,系统还可以基于与图片内容有关的情绪,来进行回复建议,例如“开心”。下面的两个例子,是针对抽象概念的回复:
针对毕业典礼的图片,系统建议回复:“恭喜!”“你成功了!”图片来源Google Research Blog。
针对跳伞活动的图片,系统建议回复:“太刺激了!”“胆子太大了!”图片来源Google Research Blog。
学习个体-回复之间的联系
Photo Reply在运行的时候可以识别分享照片中的语义个体,触发针对性的回复。这项模型将语义个体与自然语言回复联系起来,而模型是通过Expander离线学会的,Expander是谷歌一项基于图片的大规模半监督学习平台。我们打造了一个很大的图表,节点对应图片、语义个体以及文本回应。图像的边界指明了图片中的语义个体何时被识别、针对一张图片的具体回复何时确定以及照片之间的视觉相似点。有一些节点被“标记”了,我们通过在图表中传播标记信息,来学会未标记节点之间的关联。
为了说得明白一点,我们可以看看下面这张图表。这里有两张表:红色标记对应“好吃”回复,蓝色标记对应“美味”回复。“意粉”和“扁面”这两个节点没有标记,但是因为他们与红蓝两种标记都很近,算法可以学会这两个节点应该与“好吃”和“美味”回复联系起来。注意,通过这种方式,我们将“扁面”语义个体与“好吃”回复联系了起来,即便是图表中的所有扁面图片都没有直接与该回复有联系。Expander可以以超大的数量来进行此类学习,搞定包含几十亿个节点、几千亿个边界的图表。
图表例子。图片来自Google Research Blog。
Photo Reply是多模式学习的一个很棒的例子,在这种学习模式中,计算机视觉和自然语言处理结合起来,从而创造出一种非常好的用户体验。今年夏天晚些时候,Allo就会正式上线安卓和IOS平台。到时候记得用Allo发发照片,看看谷歌的人工智能到底会如何回复呢?
Via Google Research Blog
上一篇: 小米7将亮相MWC 2018:或搭载骁龙845处理..
下一篇: 17个C语言可以做的小案例项目