飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

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 读者交流群)。

2015-11-06 18:003317
用户头像

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

关注

评论

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

MindIE推理采样后处理参数temperature和top_k的引发的精度问题

zjun

做海外直播带货需要注意什么?

Ogcloud

海外直播专线 海外直播 直播专线 tiktok直播专线 海外直播带货

PDF编辑阅读转换器PDF Expert for Mac中文激活版

小玖_苹果Mac软件

亲测有效!如何快速实现 PostgreSQL 数据迁移到 时序数据库TDengine

TDengine

tdengine 时序数据库

2025 年 JeecgBoot AI 低代码平台白皮书

JEECG低代码

AI 低代码 低代码平台 ChatGPT DeepSeek

【YashanDB知识库】如何更改自动统计信息收集任务

YashanDB

数据库 yashandb

Supersonic 总结2024年手游行业:混合休闲游戏崛起,多元化变现策略引领增长

Geek_2d6073

电信SD-WAN:提升企业网络性能的创新解决方案

宽炜网络

SD-WAN

【YashanDB知识库】用crontab实现YashanDB自动备份

YashanDB

数据库 yashandb

豆包 APP 上线端到端语音能力,低时延、可打断;OpenAI 实时 Agent 源代码:20 分钟开发 Voice Agent

声网

【连载 13】ThreadLocal 类

FunTester

数智化风控最佳实践!XTransfer获数智技术领航企业奖

XTransfer技术

世界一流|深化数智财务共享,夯实央企财务数智化转型根基

用友智能财务

财务 国企 会计

【YashanDB知识库】为什么YashanDB只有Geometry类型,没有Geogrephy类型

YashanDB

数据库 yashandb

海外直播专线:将电商直播拓展到海外市场

Ogcloud

海外直播专线 直播专线 tiktok直播专线 海外直播网络 tiktok直播网络

什么是AOP面向切面编程?怎么简单理解?

不在线第一只蜗牛

Python 面向编程

揭秘字节跳动内部流量调度与容灾实践【上】

火山引擎边缘云

容灾 灾备 DNS 流量编排

AI驱动的翻译工具:自动化处理 Univer Sheets 单元格内容翻译

梦数技术团队

AI 翻译 自动化 Excel 电子表格

深度解析:获取亚马逊畅销榜API接口及实战应用

科普小能手

数据挖掘 数据分析 电商 API 接口 lazada

【YashanDB知识库】如何利用数据库线程池稳定TP吞吐

YashanDB

数据库 yashandb

网络爬取/机翻数据可能存在哪些雷区?

澳鹏Appen

数据标注 网络爬取 机翻数据

从 Spark 到 StarRocks:实现58同城湖仓一体架构的高效转型

StarRocks

Grafana 统一可视化了,告警如何统一?

巴辉特

FlashDuty 统一告警

AI应用专家的实战经验:如何通过智能工具实现博客的高效数字化转型——慢慢学AI140

AI决策者洞察

人工智能’ Prompt

从单数据源到多数据源的探讨

不在线第一只蜗牛

Spring Boot

5 分钟搞定 Golang 自定义代码分析器

俞凡

golang 代码质量

【YashanDB知识库】关于表空间压缩

YashanDB

数据库 yashandb

EloqKV---一款全新架构的高性能分布式KV数据库

晨章数据

数据库、

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