【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

Yelp 是如何使用深度学习对商业照片进行分类的

  • 2015-11-06
  • 本文字数:2403 字

    阅读完需:约 8 分钟

Yelp 是美国最大点评网站,拥有世界各地的 Yelper 上传的成千上万的照片。各种各样的照片给进入当地的商业提供了一个丰富的窗口。通过开发一个照片理解系统使 Yelp 能够创建有关个人照片的语义数据。跟 Yelp 第一次在基于内容的照片多样化方面所做的尝试一样,由系统生成的数据正在增强 Yelp 近期推出的封面照片多样化、标签式照片浏览等服务。

构建一个照片分类器

对于理解照片中的模棱两可的目标,其实有许多不同的方式。一开始,为了帮助简化 Yelp 的问题,Yelp 只专注于将照片分类为几个预定义的类。之后,Yelp 又只专注于关于饭店的照片类别。

事实上将照片进行分类,就可以将其当做机器学习中的分类任务,需要开发一个分类器,Yelp 首先需要做的就是收集训练数据,在图片分类任务中就是收集很多标签已知的照片。Yelp 收集这些信息可以通过几种不同的方式:

  • 照片标题:在很多照片的标题中都包含代表照片自身含义的词汇,例如,很多“菜单”照片的标题中包含单词“菜单”。为了识别这些关于食物的项目,Yelp 依靠自己的菜单结构(例如, http://www.yelp.com/menu/gary-danko-san-francisco/ ),它保留了每种食物的商业名单。Yelp 发现,将列表中的食物项目与照片的标题进行匹配产生了一个高准确率的数据集。
  • 照片属性:当上传照片到 Yelp 上时,用户允许标记照片的一些属性,虽然它们并不总是准确的,但仍然可以很有效地帮助照片分类。
  • 众包:通过众包可以让大众自动参与照片的标注,并同时纠正一些错误的标注。Yelp 已经发现,通过众包 Yelp 通过合理的成本(在时间和金钱)获得了质量总体良好的标签。众包体现了一种群体智能。

一旦 Yelp 有了标签数据,Yelp 就开始采用“AlexNet”形式的深度卷积神经网络(CNNs)来识别这些图片(因为这种方法是一种监督学习方法,非监督学习目前仍然是深度学习的难点方向)。CNNs 是由多个卷积层组成,ReLU 层、pooling 层、局部响应正则化层和全连接层。Yelp 的 CNN 被建立在基于 Caffe 架构的 AWS EC2 GPU 实例上。Yelp 喜欢 Caffe,因为它简单易用、高性能、模块化、开源、还一直在不断完善。为了应对 Caffe 的软件依赖,Yelp 使用 Docker 封装了 Yelp 的 CNN,以便它可以更容易地部署。

Yelp 还创建了抽象,以确保 Yelp 的 CNN 可以很容易地与其他形式的分类器进行集成,包括 CNN 的不同实例。如下图所示,Yelp 的基线是一个“Caffe 分类器”,它通过 Caffe 的方式运行 CNN;它是一个抽象分类器的一种特殊形式,可以采取不同的信号,并执行不同的分类算法。Yelp 目前的“facade”分类器,是一个集成分类器,采用了不同分类结果的加权平均。如果 Yelp 决定进一步集成依赖于其它信号的新的分类器,这将让问题变得更加简单。

Yelp 在一个均匀黄金分割的 2500 张照片的测试集上进行试验,Yelp 目前的“facade”分类器的整体精确度达到了 94%,召回率达到了 70%。根据 Yelp 的描述,虽然这些数字绝对可以再提高,但 Yelp 发现对于下面描述的应用它们已经足够了。

照片分类服务

Yelp 使用面向服务的架构(SOA),Yelp 做了一个 RESTful 照片分类服务,用来支持现有的和即将推出的 Yelp 的应用程序。由于服务预计拥有不止一个分类器(例如,不同的版本或为不同类型的业务),该服务 API 使用一个分类器 ID,一个行业 ID,以及可选的类,然后返回所有属于该行业的照片,其已经通过分类器被归类:

Yelp 使用一个标准的 MySQL 数据库服务器来承载所有的分类结果,所有的服务请求可以通过简单的数据库查询被处理。为了避免更昂贵的实时分类,因为 Yelp 目前的应用并不取决于最新的照片分类,所以 Yelp 只执行线下分类。该架构如下图所示:对于每一个新的分类器,Yelp 扫描所有的照片,并且将分类结果存储在一个数据库中。扫描在计算上消耗很大,但通过将分类器在任意多的机器上进行并行处理,Yelp 可以减轻这一点。扫描结束后,Yelp 会每天自动收集新的照片,并将它们发送到一个进行分类和数据库负载的批次中:

应用:封面照片多样化

一旦有了照片分类服务,就可以有效地增强 Yelp 的许多关键功能。Yelp 的业务详细信息页面显示了一组“封面照片”,基于用户的反馈和某些照片的属性,它们能够通过照片评分引擎进行推荐。但是,目前 Yelp 的封面照片存在一个典型问题,即所选的照片缺乏多样性,例如,如下图所示,所有封面照片都是关于食物的(拉面),用户无法看到其他方面的照片,除非他们点击“查看全部”按钮。

通过照片分类服务,现在就可以让封面照片变得多样化,Yelp 可以容易地确定最高得分的非食品的照片,然后将其纳入封面照片。通过严格的 A / B 测试,Yelp 已经证实饭店的浏览者更愿意看到一个显示突出的“食品”照片和突出的“非食品”照片,以及两个小“食品”的照片和另外两个“非食品”照片,如下图所示。多样化大大增加了 Yelp 用户与照片之间的互动。

应用:标签式浏览照片

因为任何人浏览 Yelp 照片都是在有了解之前,大部分来自于饭店的 Yelp 照片都是食物。但 Yelp 从用户中得到反馈,他们发现用户关心的可不仅仅是食物。有些人使用 Yelp 的图片用来检查一个特殊事件的气氛或导航到一个第一次去的地点,而其他人使用 Yelp 的照片用于一些更严肃的应用,如发现餐厅是否能容纳残疾的顾客。随着标签式照片浏览的推出,所有这些任务现在都变得更容易、更高效。

Yelp 表示,标签式照片浏览是他们的照片分类服务现在提供的最显著的应用。照片现在在各自的标签(类)下进行组织;从下图可以看出,跳到你正在寻找的准确信息现在变得更加容易。

下一步是什么

任何机器学习系统都不可能是完美的。Yelp 表示,如果你想帮助提高 Yelp 照片分类的质量,请随意标注你看到的任何未分类的照片。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2015-11-06 18:002932
用户头像

发布了 268 篇内容, 共 118.0 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

Matlab实现机器学习

袁袁袁袁满

三周年连更

Django笔记十九之manager用法介绍

Hunter熊

Python django Manager

CDH安装与部署

乌龟哥哥

三周年连更

切片的其他妙用

宇宙之一粟

Go 切片 三周年连更

极速上手使用Docker,这篇文章就够了!

浅羽技术

Java Docker centos 容器化 三周年连更

如何评价 ChatGPT 回答策略的 ensure only ethical usage 特质

Jerry Wang

ChatGPT ChatGPT4 三周年连更

Windows下 IDE工具常见编译错误FAQ

鸿蒙之旅

OpenHarmony 三周年连更

轻松处理pdf文件:Acrobat Pro DC 2023 中文激活版

真大的脸盆

Mac Mac 软件 PDF编辑 pdf编辑工具

火山引擎云原生数据仓库ByteHouse技术白皮书V1.0 (Ⅵ)

字节跳动数据平台

大数据 数据仓库 云原生 元数据 企业号 4 月 PK 榜

高效理解机器学习

俞凡

机器学习 算法

音视频八股文(9)-- flv的h264六层结构和aac六层结构

福大大架构师每日一题

音视频 ffmpeg 福大大

Java注解编译期处理AbstractProcessor详解

石臻臻的杂货铺

Java

挑战 30 天学完 Python:Day14 高阶函数

MegaQi

挑战30天学完Python 三周年连更

读书笔记:如何成为某个领域的前1%

老张

读书笔记 方法 写作技巧

10分钟打造基于ChatGPT的Markdown智能文档

俞凡

人工智能

粉丝提问:区块链与大数据开发读研方向怎么选?

千与编程

区块链、 大数据 开源

我们如何将 Amazon Snowcone 送入轨道

亚马逊云科技 (Amazon Web Services)

手撕代码系列(三)

控心つcrazy

JavaScript 前端面试题 手撕代码 ES6-ES12 面试必考

爱在日落黄昏时 | 我有话要说

后台技术汇

三周年连更

【Python实战】Python采集代理IP信息

BROKEN

三周年连更

大模型“涌现”的思维链,究竟是一种什么能力?

脑极体

人工智能

深入探讨Go语言中Semaphore信号量的机制原理

Jack

云资源提供技术

阿泽🧸

云资源 三周年连更

C++ STL容器和算法:详解和实例演示

小万哥

c++ 容器 算法 后端 stl

通过华为云ECS云服务器搭建安防视频监控平台

DS小龙哥

三周年连更

Qz学算法-数据结构篇(二分查找、删除)

浅辄

三周年连更

自动化运维工具一览

穿过生命散发芬芳

自动化运维 三周年连更

《底层逻辑2:理解商业世界的本质》

石云升

读书笔记 三周年连更

Matlab实现最优化

Shine

三周年连更

挑战 30 天学完 Python:Day15 错误类型

MegaQi

挑战30天学完Python 三周年连更

2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数数组 nums ,返回 nums 的所有非空 子序列 的 宽度之和 由于答案可能非常大,请返回对 109

福大大架构师每日一题

golang 算法 rust 福大大

Yelp是如何使用深度学习对商业照片进行分类的_语言 & 开发_张天雷_InfoQ精选文章