--> 深度学习在美团点评的应用

深度学习在美团点评的应用

2017-03-16 文竹 李彪 晓明 InfoQ InfoQ

InfoQ

微信号 infoqchina

功能介绍 有内容的技术社区媒体

17101819_1xLU.jpg 作者|文竹 李彪 晓明 编辑|小智 近年来,深度学习在语音、图像、自然语言处理等领域取得非常突出的成果,成了最引人注目的技术热点之一。深度学习本身是一个非常庞大的知识体系,如果学习纯理论会感觉吃力的话,美团点评的技术实践也许能让你收获更多。

注:本文授权转自微信公众号「美团点评技术团队」

写在前面

美团点评这两年在深度学习方面进行了一些探索,其中在自然语言处理领域,我们将深度学习技术应用于文本分析、语义匹配、搜索引擎的排序模型等;在计算机视觉领域,我们将其应用于文字识别、目标检测、图像分类、图像质量排序等。下面我们就以语义匹配、图像质量排序及文字识别这三个应用场景为例,来详细介绍美团点评在深度学习技术及应用方面的经验和方法论。

基于深度学习的语义匹配

语义匹配技术,在信息检索、搜索引擎中有着重要的地位,在结果召回、精准排序等环节发挥着重要作用。

传统意义上讲的语义匹配技术,更加注重文字层面的语义吻合程度,我们暂且称之为语言层的语义匹配;而在美团点评这样典型的O2O应用场景下,我们的结果呈现除了和用户表达的语言层语义强相关之外,还和用户意图、用户状态强相关。

用户意图即用户是来干什么的?比如用户在百度上搜索“关内关外”,他的意图可能是想知道关内和关外代表的地理区域范围,“关内”和“关外”被作为两个词进行检索,而在美团上搜索“关内关外”,用户想找的就是“关内关外”这家饭店,“关内关外”被作为一个词来对待。

再说用户状态,一个在北京和另一个在武汉的用户,在百度或淘宝上搜索任何一个词条,可能得到的结果不会差太多;但是在美团这样与地理位置强相关的场景下就会完全不一样。比如我在武汉搜“黄鹤楼”,用户找的可能是景点门票,而在北京搜索“黄鹤楼”,用户找的很可能是一家饭店。

如何结合语言层信息和用户意图、状态来做语义匹配呢?

我们的思路是在短文本外引入部分O2O业务场景相关特征,融入到设计的深度学习来做语义匹配的框架中,通过点击/下单数据来指引语义匹配模型的优化方向,最终把训练出的点击相关性模型应用到搜索相关业务中。下图是针对美团点评场景设计的点击相似度框架ClickNet,是比较轻量级的模型,兼顾了效果和性能两方面,能很好地推广到线上应用。

17101819_VrGL.jpg

表示层

对Query和商家名分别用语义和业务特征表示,其中语义特征是核心,通过DNN/CNN/RNN/LSTM/GRU方法得到短文本的整体向量表示,另外会引入业务相关特征,比如用户或商家的相关信息,比如用户和商家距离、商家评价等,最终结合起来往上传。

学习层

通过多层全连接和非线性变化后,预测匹配得分,根据得分和Label来调整网络以学习出Query和商家名的点击匹配关系。

在该算法框架上要训练效果很好的语义模型,还需要根据场景做模型调优:首先,我们从训练语料做很多优化,比如考虑样本不均衡、样本重要度、位置Bias等方面问题。其次,在模型参数调优时,考虑不同的优化算法、网络大小层次、超参数的调整等问题。经过模型训练优化,我们的语义匹配模型已经在美团点评平台搜索、广告、酒店、旅游等召回和排序系统中上线,有效提升了访购率/收入/点击率等指标。

小结

深度学习应用在语义匹配上,需要针对业务场景设计合适的算法框架,此外,深度学习算法虽然减少了特征工程工作,但模型调优上难度会增加,因此可以从框架设计、业务语料处理、模型参数调优三方面综合起来考虑,实现一个效果和性能兼优的模型。

基于深度学习的图像质量排序

国内外各大互联网公司(比如腾讯、阿里和Yelp)的线上广告业务都在关注展示什么样的图像能吸引更多点击。在美团点评,商家的首图是由商家或运营人工指定的,如何选择首图才能更好地吸引用户呢?图像质量排序算法目标就是做到自动选择更优质的首图,以吸引用户点击。

传统的图像质量排序方法主要从美学角度进行质量评价,通过颜色统计、主体分布、构图等来分析图片的美感。但在实际业务场景中,用户对图片质量优劣的判断主观性很强,难以形成统一的评价标准。比如:

  1. 有的用户对清晰度或分辨率更敏感;

  2. 有的用户对色彩或构图更敏感;

  3. 有的用户偏爱有视觉冲击力的内容而非平淡无奇的环境图。

因此我们使用深度学习方法,去挖掘图片的哪些属性会影响用户的判断,以及如何有效融合这些属性对图片进行评价。

我们使用AlexNet去提取图片的高层语义描述,学习美感、可记忆度、吸引度、品类等High Level特征,并补充人工设计的Low Level特征(比如色彩、锐度、对比度、角点)。在获得这些特征后,训练一个浅层神经网络对图像整体打分。该框架(如图2所示)的一个特点是联合了深度学习特征与传统特征,既引入高层语义又保留了低层通用描述,既包括全局特征又有局部特征。

17101820_cW5Z.jpg

对于每个维度图片属性的学习,都需要大量的标签数据来支撑,但完全通过人工标记代价极大,因此我们借鉴了美团点评的图片来源和POI标签体系。关于吸引度属性的学习,我们选取了美团Deal相册中点击率高的图片(多数是摄影师通过单反相机拍摄)作为正例,而选取UGC相册中点击率低的图片(多数是低端手机拍摄)作为负例。

关于品类属性的学习,我们将美团一级品类和常见二级品类作为图片标签。基于上述质量排序模型,我们为广告POI挑选最合适的优质首图进行展示,起到吸引用户点击,提高业务指标的目的。图3给出了基于质量排序的首图优选结果。

17101820_2PzC.jpg

基于深度学习的OCR

为了提升用户体验,O2O产品对OCR技术的需求已渗透到上单、支付、配送和用户评价等环节。OCR在美团点评业务中主要起着两方面作用。一方面是辅助录入,比如在移动支付环节通过对银行卡卡号的拍照识别,以实现自动绑卡,又如辅助BD录入菜单中菜品信息。

另一方面是审核校验,比如在商家资质审核环节对商家上传的身份证、营业执照和餐饮许可证等证件照片进行信息提取和核验以确保该商家的合法性,比如机器过滤商家上单和用户评价环节产生的包含违禁词的图片。相比于传统OCR场景(印刷体、扫描文档),美团的OCR场景主要是针对手机拍摄的照片进行文字信息提取和识别,考虑到线下用户的多样性,因此主要面临以下挑战:

  • 成像复杂:噪声、模糊、光线变化、形变;

  • 文字复杂:字体、字号、色彩、磨损、笔画宽度不固定、方向任意;

  • 背景复杂:版面缺失,背景干扰。

对于上述挑战,传统的OCR解决方案存在着以下不足:

  1. 通过版面分析(二值化,连通域分析)来生成文本行,要求版面结构有较强的规则性且前背景可分性强(例如文档图像、车牌),无法处理前背景复杂的随意文字(例如场景文字、菜单、广告文字等)。

  2. 通过人工设计边缘方向特征(例如HOG)来训练字符识别模型,此类单一的特征在字体变化,模糊或背景干扰时泛化能力迅速下降。

  3. 过度依赖字符切分的结果,在字符扭曲、粘连、噪声干扰的情况下,切分的错误传播尤其突出。

针对传统OCR解决方案的不足,我们尝试基于深度学习的OCR。

1. 基于Faster R-CNN和FCN的文字定位

首先,我们根据是否有先验信息将版面划分为受控场景(例如身份证、营业执照、银行卡)和非受控场景(例如菜单、门头图)。

对于受控场景,我们将文字定位转换为对特定关键字目标的检测问题。主要利用Faster R-CNN进行检测,如下图所示。为了保证回归框的定位精度同时提升运算速度,我们对原有框架和训练方式进行了微调:

  • 考虑到关键字目标的类内变化有限,我们裁剪了ZF模型的网络结构,将5层卷积减少到3层。

  • 训练过程中提高正样本的重叠率阈值,并根据业务需求来适配RPN层Anchor的宽高比。

17101820_UMgB.jpg

对于非受控场景,由于文字方向和笔画宽度任意变化,目标检测中回归框的定位粒度不够,我们利用语义分割中常用的全卷积网络(FCN)来进行像素级别的文字/背景标注,如下图所示。为了同时保证定位的精度和语义的清晰,我们不仅在最后一层进行反卷积,而且融合了深层Layer和浅层Layer的反卷积结果。

17101820_3N30.jpg

2. 基于序列学习框架的文字识别

为了有效控制字符切分和识别后处理的错误传播效应,实现端到端文字识别的可训练性,我们采用如下图所示的序列学习框架。框架整体分为三层:卷积层,递归层和翻译层。其中卷积层提特征,递归层既学习特征序列中字符特征的先后关系,又学习字符的先后关系,翻译层实现对时间序列分类结果的解码。

17101820_nnVv.jpg

由于序列学习框架对训练样本的数量和分布要求较高,我们采用了真实样本+合成样本的方式。真实样本以美团点评业务来源(例如菜单、身份证、营业执照)为主,合成样本则考虑了字体、形变、模糊、噪声、背景等因素。基于上述序列学习框架和训练数据,在多种场景的文字识别上都有较大幅度的性能提升,如下图所示。

17101821_otl4.jpg

写在最后

本文主要以深度学习在自然语言处理、图像处理两个领域的应用为例进行了介绍,但深度学习在美团点评可能发挥的价值远远不限于此。未来,我们将继续在各个场景深入挖掘,比如在智能交互、配送调度、智能运营等,在美团点评产品的智能化道路上贡献一份力量。

作者简介

文竹,美团点评美团平台与酒旅事业群智能技术中心负责人,2010年从清华硕士毕业后,加入百度,先后从事机器翻译的研发及多个技术团队的管理工作。2015年4月加入美团,负责智能技术中心的管理工作,致力于推动自然语言处理、图像处理、机器学习、用户画像等技术在公司业务上的落地。

李彪,美团点评美团平台及酒旅事业群NLP技术负责人,曾就职搜狗、百度。2015年加入美团点评,致力于NLP技术积累和业务的落地,负责的工作包括深度学习平台和模型,文本分析在搜索、广告、推荐等业务上应用,智能客服和交互。

晓明,美团点评平台及酒旅事业群图像技术负责人,曾就职于三星研究院。2015年加入美团点评,主要致力于图像识别技术的积累和业务落地,作为技术负责人主导了图像机审、首图优选和OCR等项目的上线,推进了美团产品的智能化体验和人力成本的节省。

华南地区技术大事件

Facebook工程总监 :Facebook如何进行大型软件开发?

腾讯运维总监:腾讯十年运维积累的四大创新技术如何落地?

阿里巴巴安全部首席架构师:如何从多个维度剖析对抗架构设计的复杂性?

……

100+前沿技术案例将汇聚深圳,架构师应该把握哪些技术趋势?ArchSummit全球架构师峰会7月开启,点击 「 阅读原文 」了解更多大会内容,即刻报名华南地区的技术大事件,尽享8折优惠。

17101821_A5o2.jpg

今日荐文

点击下方图片即可阅读

17101821_Tbhj.jpg

程序员为什么要学深度学习?


17101822_eipb.jpg
阅读原文

阅读

投诉

精选留言

该文章作者已设置需关注才可以留言

写留言

该文章作者已设置需关注才可以留言

写留言

加载中
以上留言由公众号筛选后显示

了解留言功能详情

微信扫一扫
关注该公众号

转载于:https://my.oschina.net/u/204348/blog/861144

深度学习在美团点评的应用相关推荐

  1. 深度学习在美团点评推荐平台排序中的应用 widedeep推荐系统模型--学习笔记

    gbdt+lr的模型之前是知道怎么搞的,dnn+lr的模型也是知道的,但是都没有试验过 深度学习在美团点评推荐平台排序中的运用 原创 2017-07-28 潘晖 美团点评技术团队 美团点评作为国内最大 ...

  2. 深度学习在美团点评推荐平台排序中的运用

    美团点评作为国内最大的生活服务平台,业务种类涉及食.住.行.玩.乐等领域,致力于让大家吃得更好,活得更好,有数亿用户以及丰富的用户行为.随着业务的飞速发展,美团点评的用户和商户数在快速增长.在这样的背 ...

  3. 【AI in 美团】深度学习在美团搜索广告排序的应用实践

    转自:https://mp.weixin.qq.com/s/9Fcj5lO-JPfFVnRSSM_56w [AI in 美团]深度学习在美团搜索广告排序的应用实践 AI(人工智能)技术已经广泛应用于美 ...

  4. 深度学习在美团的应用

    近年来,深度学习在语音.图像.自然语言处理等领域取得非常突出的成果,成了最引人注目的技术热点之一.美团这两年在深度学习方面也进行了一些探索,其中在自然语言处理领域,我们将深度学习技术应用于文本分析.语 ...

  5. 深度学习在美团配送ETA预估中的探索与实践-笔记

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 本文为美团文章学习的笔记整理. 1. 背景 ETA(Estimated Time of Arrival," ...

  6. 深度学习在美团配送ETA预估中的探索与实践

    1.背景 ETA(Estimated Time of Arrival,"预计送达时间"),即用户下单后,配送人员在多长时间内将外卖送达到用户手中.送达时间预测的结果,将会以&quo ...

  7. 深度学习在美团推荐平台排序中的运用

    美团作为国内最大的生活服务平台,业务种类涉及食.住.行.玩.乐等领域,致力于让大家吃得更好,活得更好,有数亿用户以及丰富的用户行为.随着业务的飞速发展,美团的用户和商户数在快速增长.在这样的背景下,通 ...

  8. 深度学习在美团配送ETA预估中的探索与实践 1

    1.背景 ETA(Estimated Time of Arrival,"预计送达时间"),即用户下单后,配送人员在多长时间内将外卖送达到用户手中.送达时间预测的结果,将会以&quo ...

  9. 干货好文 | 深度学习是如何在美团点评推荐业务中实践的?

    本文作者:陈文石,2012年毕业于东南大学,美团点评算法专家,目前负责点评平台及综合 BG 推荐平台业务.在加入美团点评之前,曾在百度做过一些个性化推荐相关工作.对人工智能在搜索.推荐等业务应用上有较 ...

最新文章

  1. RTX 3090的深度学习环境配置指南:Pytorch、TensorFlow、Keras
  2. 【转载】如何去除C#Strings中的空格?
  3. 采购定价过程字段解析
  4. 删除二叉搜索树中的节点
  5. 【牛客 - 185D】星光晚餐(数论,结论,思维,模型)
  6. windbg 常用命令详解
  7. Qt实践录:非窗体代码片段
  8. Macaron的注入struct
  9. 【LeetCode 剑指offer刷题】树题9:34 二叉树中和为某一值的路径(112. Path Sum)...
  10. MapReduce 的架构
  11. Scanner类(next,nextLine,nextInt)的用法与常见问题
  12. 基于AD9833 的DDS信号发生器
  13. rtklib-RINEX文件读取-rinex.c解析(一)
  14. 可以打印快递电子面单的表格
  15. csgo服务器显示连接中,CSGO提示连接到官方任意服务器失败怎么办?
  16. Ubuntu 各版本代号简介
  17. 【笔记本Windows的两个ctrl键失效解决办法大全解】
  18. macOS、Linux CentOS 、Docker安装部署canal-server(canal-deployer)服务
  19. android 邮箱格式设置,Android对邮箱格式的验证
  20. 收下这份秘籍:如何提高投稿命中率

热门文章

  1. android5.0 物理键盘与软键盘同时使用修改
  2. 华为2020校招软件开发岗全流程,已签约
  3. Codeforces 1244F Chips
  4. 新的篇章:来自鲍尔默和艾洛普的公开信
  5. C++图形用户界面开发框架Qt 6.x入门级教程 - 开发工具简介
  6. Java基础之《JVM性能调优(3)—堆》
  7. 在父亲节到来之际,强烈推荐德国幽默大师的连环漫画《父与子》,父子亲情跃然纸上(多图)...
  8. torchnet.meter使用记录
  9. W5-2465X参数 至强W5-2465X功耗
  10. doraemon的python(大更新) django静态文件的配置(出错多的地方)