详解Facebook全新图像识别系统:无需依赖标记的自由搜索

Facebook 一直致力于让用户能够轻松搜索社交网络上的图片和视频内容,而无需依靠手动打上的标签。昨天,该公司的应用机器学习团队负责人 Joaquin Quiñonero Candela 宣布这一梦想终于得以实现,新的计算机视觉平台将从两个方面改善社交网络上的用户体验:基于图片本身(而不是图片标签和拍照时间)的搜索;升级的自动图片描述系统(可向视觉障碍者描述图片内容)。


回想一下你在社交网络中发的上条信息,内容很可能是一张照片或一个视频。但是,直到最近,在线搜索还一直是文本驱动的技术,即便你搜索的是图片。一张图片是否能够被找到还得依赖描述充分的标签或恰当的图注。


技术正在改变,我们已经将计算机视觉推向了下一个阶段,理解像素级别的图像内容。这有助于我们的系统做一些类似于识别图像内容、场景,里面是否包含著名地标的事情。这反过来也会帮助我们为视力受损的人更好地描述图片,以及为图像和视频搜索提供更好的结果。


建立「AI 工厂」


为了将人工智能纳入到 Facebook 工程中来,我们首先需要一个能让我们的工程师大规模利用的通用目的平台。这个平台叫 FBLearner Flow,设计这个系统是为了让打造机器学习流程的工程师不需要再担心硬件限制或因为实时流量而造成的服务质量问题。目前我们每个月要在 FBLearner Flow 上做 120 万次人工智能实验,次数要比一年之前多 6 倍。


这个平台应用的越来越广,我们正在其之上不断探索。从工具到机器学习的自动化过程,再到专用的内容理解引擎,我们已经建立了一个活跃的生态系统,让工程师编写能多机并行的训练工作流,因此任何一家公司的任何一位工程师都能使用它。


计算机视觉平台


FBLearner Flow 平台启动后作为 Facebook AI Research 的一个小研究项目,当它达到能投入生产的规模时,该平台和团队转移到了 Applied Machine Learning 团队。它现在是 Facebook 计算机视觉团队的引擎。


建立在 FBLearner Flow 之上的 Lumos,是我们为图像和视频理解打造的平台。Facebook 的工程师们无需为使用 Lumos 训练或布置一个新模型而去参加深度学习或计算机视觉的训练。通过我们给它的新的标签数据,以及从我们团队自己建立的应用中来的经过注释的数据,Lumos 平台一直在改善。


深度学习的进展已经让我们在图像分类上做出了巨大的提升——像「图像中是什么」和「物体在哪里?」这样的问题,系统的回答已经比以前精确很多了。我们设计出了能检测并分割给定图像中对象的技术,推进了这个方向上的研究。


当这些技术被应用到 Facebook 中时,照片就可以通过一个能分割图像并识别其中物体和场景的深度学习引擎,并给这张照片附上更多的意义。这就为我们提供了一个丰富的数据集,Facebook 的任何产品或服务都可以使用。数十个团队已经在 Lumos 上训练和部署了 200 多个视觉模型,他们的目的包括检测敏感内容,过滤垃圾邮件以及自动图像描述。它的应用的范围广泛,从我们的 Connectivity Labs 到搜索团队到 Accessibility 团队都在使用。


用语言描述一切


我们目前正在将这个图像理解成果应用到为照片提升自动转换文本(automatic alt text,AAT),一种能为视觉受损的人描述照片内容的技术。直到最近,这些描述还智描述照片中的物体。今天我们宣布,我们添加了一组 12 个动作,所以图像描述将会包括「人在行走」、「人在跳舞」、「人在骑马」、「人在玩乐器」等这样的描述。


AAT 的这次更新包括两个部分,使用 Lumos 能够实现快速、可升级的迭代。Facebook 上有相当比例的共享照片都包含了人物,因此,我们专注于提供涉及人物的自动描述。该人工智能团队收集了一个 130,000 张分享在 Facebook 上涉及人物的公开照片样本集。人类注释者被要求写一个照片的单行描述,假定为一个视力受损的朋友描述照片。然后,我们利用这些注释建立一个机器学习模型,可以无缝地推断照片中人的行动。该模型被用于 AAT 的下游技术。


16327869_1778016525856529_8872402930221711360_n.jpg

Facebook 对于「骑马」概念各图像的评分


Lumos 通过使用一个界面利用之前另一个任务中经过训练的模型中带有标签的样例,允许在该任务上快速迭代。例如:如果我们正在训练一个「人骑在一匹马上」的分类器,并想要添加包含马(没人骑的马)的图像的样例,我们就能从一个模型中使用一部分有标签的例子来判断一张图片是包含一匹马并对其分类。


16344855_1246509435439933_6045031658686513152_n.jpg

相似模型对同一张图的分数对比


Lumos 允许通过检索和聚类的组合来生成训练数据。给定一组标签或搜索项,该平台可以检索匹配这些标签的字幕的公共图像的分数。这些图像随后被语义聚类,以便快速进行标记。Lumos 用户可以选择注释集群作为其用例的正选或反选例子,在集群级别或单独为集群中的每个图像进行手动标记。这有助于开始一项分类任务,随后通过迭代训练以获得更高精度/回忆的分类器。


AAT 应用非常重要,因为它可以为 Facebook 的视障用户带来更棒的访问体验,其他应用也能为用户提供一些方便之处,如发现一个新的搜索参数。


更具描述性的照片搜索


通过 Lumos,我们可以为整个社交网络提供视觉搜索功能。假如你在回想自己的美好记忆,你很难指出具体的事件,更不用说拍摄的人了。而通过 Lumos,我们构建了一个全新的搜索系统,它可以利用图理解序大量信息,让你可以轻松地搜索到自己想要的东西。换句话说,如果你搜索「穿黑色衬衫的照片」,系统可以「看到」哪些照片中出现了黑色衬衫,并将相关搜索结果呈现在你的眼前,即使这些图片并没有贴上相应的标签。


Facebook 的自动图像分类器,就像 AAT 的例子中那样——通过图片的内容而不是标签来搜索你自己和朋友圈内的所有照片。

为了确保搜索结果与查询的内容有关,系统必须对照片的内容有很好的理解。因此,开发团队使用了最新的深度学习技术,在数十亿照片中学习特征以理解图片的内容。图片搜索团队主要使用了以下表示方法来让图片能有更好的排序结果:


对象识别:底层图像识别模型是一个深度神经网络,具有数百万可学习的参数。它构建在最先进的深度残差网络之上,使用了数千万张带有标记的图片进行了识别训练。它可以自动识别大量概念,包括场景(如花园)、物体(如汽车)、动物(如企鹅)、地区和经典(如金门大桥),也包括衣物(如围巾)。


图嵌入:系统同时生成高级语义特征,这是深度神经网络最后几层输出的量化版本。这些信息对于提升搜索结果准确性非常有用。


16180655_1591465974202208_3421997579427119104_n.jpg


原始语义特征是高维浮动向量,它使用了大量的存储空间用于索引——尤其是当我们要索引大量照片时。通过利用量化技术,特征被进一步压缩成数个字节,同时仍保留绝大多数语义。被压缩的表征被用作照片的紧凑嵌入,并且可以直接用于排序,检索和删除重复内容等任务。


构建这种方式的办法是从图像中提取预测的概念和类别,然后解析搜索查询以链接实体并提取概念,最后使用两组概念之间的相似性函数来确定相关性。


这是一个好的开始,但开发团队并没有停止使用预测的图像类别:我们更进一步,使用联合嵌入对图像进行查询,显著提高了搜索和回忆精度。


16180566_324913567903489_829375454921097216_n.jpg


我们把它作为一个多模态学习的排序问题。此外,我们还使用图像之间的相似性度量来确保图像搜索结果是多样化的。


展望下一步


Lumos 图像分类器的应用还需要大量团队通力协作。虽然目前的发展值得肯定,但我们仅仅触及了自动计算机视觉的表面,后面还有更长的路要走。随着计算机视觉模型越来越精细,Facebook 正在不断研究如何处理视频及其他能让人身临其境的表现形式,Lumos 将帮助我们以稳定、快速、可扩展的方式揭开所有这些可能性,它会为将来更为丰富的产品体验铺平道路。

入门Facebook计算机视觉工程NLP
暂无评论
暂无评论~