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

lxx930306 8年前
   <h2>前言</h2>    <p>近年来,深度学习在语音、图像、自然语言处理等领域取得非常突出的成果,成了最引人注目的技术热点之一。美团点评这两年在深度学习方面也进行了一些探索,其中在自然语言处理领域,我们将深度学习技术应用于文本分析、语义匹配、搜索引擎的排序模型等;在计算机视觉领域,我们将其应用于文字识别、目标检测、图像分类、图像质量排序等。下面我们就以语义匹配、图像质量排序及文字识别这三个应用场景为例,来详细介绍美团点评在深度学习技术及应用方面的经验和方法论。</p>    <h2>基于深度学习的语义匹配</h2>    <p>语义匹配技术,在信息检索、搜索引擎中有着重要的地位,在结果召回、精准排序等环节发挥着重要作用。</p>    <p>传统意义上讲的语义匹配技术,更加注重文字层面的语义吻合程度,我们暂且称之为语言层的语义匹配;而在美团点评这样典型的O2O应用场景下,我们的结果呈现除了和用户表达的语言层语义强相关之外,还和用户意图、用户状态强相关。</p>    <p>用户意图即用户是来干什么的?比如用户在百度上搜索“关内关外”,他的意图可能是想知道关内和关外代表的地理区域范围,“关内”和“关外”被作为两个词进行检索,而在美团上搜索“关内关外”,用户想找的就是“关内关外”这家饭店,“关内关外”被作为一个词来对待。</p>    <p>再说用户状态,一个在北京和另一个在武汉的用户,在百度或淘宝上搜索任何一个词条,可能得到的结果不会差太多;但是在美团这样与地理位置强相关的场景下就会完全不一样。比如我在武汉搜“黄鹤楼”,用户找的可能是景点门票,而在北京搜索“黄鹤楼”,用户找的很可能是一家饭店。</p>    <p>如何结合语言层信息和用户意图、状态来做语义匹配呢?</p>    <p>我们的思路是在短文本外引入部分O2O业务场景特征,融合到所设计的深度学习语义匹配框架中,通过点击/下单数据来指引语义匹配模型的优化方向,最终把训练出的点击相关性模型应用到搜索相关业务中。下图是针对美团点评场景设计的点击相似度框架ClickNet,是比较轻量级的模型,兼顾了效果和性能两方面,能很好地推广到线上应用。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/cfdd5db75dc0a577160b8886db1e9b43.png"></p>    <h3>表示层</h3>    <p>对Query和商家名分别用语义和业务特征表示,其中语义特征是核心,通过DNN/CNN/RNN/LSTM/GRU方法得到短文本的整体向量表示,另外会引入业务相关特征,比如用户或商家的相关信息,比如用户和商家距离、商家评价等,最终结合起来往上传。</p>    <h3>学习层</h3>    <p>通过多层全连接和非线性变化后,预测匹配得分,根据得分和Label来调整网络以学习出Query和商家名的点击匹配关系。</p>    <p>在该算法框架上要训练效果很好的语义模型,还需要根据场景做模型调优:首先,我们从训练语料做很多优化,比如考虑样本不均衡、样本重要度、位置Bias等方面问题。其次,在模型参数调优时,考虑不同的优化算法、网络大小层次、超参数的调整等问题。经过模型训练优化,我们的语义匹配模型已经在美团点评平台搜索、广告、酒店、旅游等召回和排序系统中上线,有效提升了访购率/收入/点击率等指标。</p>    <h2>小结</h2>    <p>深度学习应用在语义匹配上,需要针对业务场景设计合适的算法框架,此外,深度学习算法虽然减少了特征工程工作,但模型调优上难度会增加,因此可以从框架设计、业务语料处理、模型参数调优三方面综合起来考虑,实现一个效果和性能兼优的模型。</p>    <h2>基于深度学习的图像质量排序</h2>    <p>国内外各大互联网公司(比如腾讯、阿里和Yelp)的线上广告业务都在关注展示什么样的图像能吸引更多点击。在美团点评,商家的首图是由商家或运营人工指定的,如何选择首图才能更好地吸引用户呢?图像质量排序算法目标就是做到自动选择更优质的首图,以吸引用户点击。</p>    <p>传统的图像质量排序方法主要从美学角度进行质量评价,通过颜色统计、主体分布、构图等来分析图片的美感。但在实际业务场景中,用户对图片质量优劣的判断主观性很强,难以形成统一的评价标准。比如:</p>    <ol>     <li>有的用户对清晰度或分辨率更敏感;</li>     <li>有的用户对色彩或构图更敏感;</li>     <li>有的用户偏爱有视觉冲击力的内容而非平淡无奇的环境图。</li>    </ol>    <p>因此我们使用深度学习方法,去挖掘图片的哪些属性会影响用户的判断,以及如何有效融合这些属性对图片进行评价。</p>    <p>我们使用AlexNet去提取图片的高层语义描述,学习美感、可记忆度、吸引度、品类等High Level特征,并补充人工设计的Low Level特征(比如色彩、锐度、对比度、角点)。在获得这些特征后,训练一个浅层神经网络对图像整体打分。该框架(如图2所示)的一个特点是联合了深度学习特征与传统特征,既引入高层语义又保留了低层通用描述,既包括全局特征又有局部特征。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/54c8533d8cec3426660ae126d5b6f5e3.png"></p>    <p>对于每个维度图片属性的学习,都需要大量的标签数据来支撑,但完全通过人工标记代价极大,因此我们借鉴了美团点评的图片来源和POI标签体系。关于吸引度属性的学习,我们选取了美团Deal相册中点击率高的图片(多数是摄影师通过单反相机拍摄)作为正例,而选取UGC相册中点击率低的图片(多数是低端手机拍摄)作为负例。关于品类属性的学习,我们将美团一级品类和常见二级品类作为图片标签。基于上述质量排序模型,我们为广告POI挑选最合适的优质首图进行展示,起到吸引用户点击,提高业务指标的目的。图3给出了基于质量排序的首图优选结果。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/87253ed2c29c6e8cd309c9eb8ef7e764.png"></p>    <h2>基于深度学习的OCR</h2>    <p>为了提升用户体验,O2O产品对OCR技术的需求已渗透到上单、支付、配送和用户评价等环节。OCR在美团点评业务中主要起着两方面作用。一方面是辅助录入,比如在移动支付环节通过对银行卡卡号的拍照识别,以实现自动绑卡,又如辅助BD录入菜单中菜品信息。另一方面是审核校验,比如在商家资质审核环节对商家上传的身份证、营业执照和餐饮许可证等证件照片进行信息提取和核验以确保该商家的合法性,比如机器过滤商家上单和用户评价环节产生的包含违禁词的图片。相比于传统OCR场景(印刷体、扫描文档),美团的OCR场景主要是针对手机拍摄的照片进行文字信息提取和识别,考虑到线下用户的多样性,因此主要面临以下挑战:</p>    <ul>     <li>成像复杂:噪声、模糊、光线变化、形变;</li>     <li>文字复杂:字体、字号、色彩、磨损、笔画宽度不固定、方向任意;</li>     <li>背景复杂:版面缺失,背景干扰。</li>    </ul>    <p>对于上述挑战,传统的OCR解决方案存在着以下不足:</p>    <ol>     <li>通过版面分析(二值化,连通域分析)来生成文本行,要求版面结构有较强的规则性且前背景可分性强(例如文档图像、车牌),无法处理前背景复杂的随意文字(例如场景文字、菜单、广告文字等)。</li>     <li>通过人工设计边缘方向特征(例如HOG)来训练字符识别模型,此类单一的特征在字体变化,模糊或背景干扰时泛化能力迅速下降。</li>     <li>过度依赖字符切分的结果,在字符扭曲、粘连、噪声干扰的情况下,切分的错误传播尤其突出。</li>    </ol>    <p>针对传统OCR解决方案的不足,我们尝试基于深度学习的OCR。</p>    <p>1. 基于Faster R-CNN和FCN的文字定位</p>    <p>首先,我们根据是否有先验信息将版面划分为受控场景(例如身份证、营业执照、银行卡)和非受控场景(例如菜单、门头图)。</p>    <p>对于受控场景,我们将文字定位转换为对特定关键字目标的检测问题。主要利用Faster R-CNN进行检测,如下图所示。为了保证回归框的定位精度同时提升运算速度,我们对原有框架和训练方式进行了微调:</p>    <ul>     <li>考虑到关键字目标的类内变化有限,我们裁剪了ZF模型的网络结构,将5层卷积减少到3层。</li>     <li>训练过程中提高正样本的重叠率阈值,并根据业务需求来适配RPN层Anchor的宽高比。</li>    </ul>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/b646b182ed0eb050ed4757b1eccae55f.png"></p>    <p>对于非受控场景,由于文字方向和笔画宽度任意变化,目标检测中回归框的定位粒度不够,我们利用语义分割中常用的全卷积网络(FCN)来进行像素级别的文字/背景标注,如下图所示。为了同时保证定位的精度和语义的清晰,我们不仅在最后一层进行反卷积,而且融合了深层Layer和浅层Layer的反卷积结果</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/d3d428d45d5a2cb4708fa2fe9b0dd476.png"></p>    <p>2. 基于序列学习框架的文字识别</p>    <p>为了有效控制字符切分和识别后处理的错误传播效应,实现端到端文字识别的可训练性,我们采用如下图所示的序列学习框架。框架整体分为三层:卷积层,递归层和翻译层。其中卷积层提特征,递归层既学习特征序列中字符特征的先后关系,又学习字符的先后关系,翻译层实现对时间序列分类结果的解码。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/e3cd6cc5b01d606889e7c4cbbb25e7cb.png"></p>    <p>由于序列学习框架对训练样本的数量和分布要求较高,我们采用了真实样本+合成样本的方式。真实样本以美团点评业务来源(例如菜单、身份证、营业执照)为主,合成样本则考虑了字体、形变、模糊、噪声、背景等因素。基于上述序列学习框架和训练数据,在多种场景的文字识别上都有较大幅度的性能提升,如下图所示。</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/a6237985038cb238384bef77bc7b580e.png"></p>    <h2>总结</h2>    <p>本文主要以深度学习在自然语言处理、图像处理两个领域的应用为例进行了介绍,但深度学习在美团点评可能发挥的价值远远不限于此。未来,我们将继续在各个场景深入挖掘,比如在智能交互、配送调度、智能运营等,在美团点评产品的智能化道路上贡献一份力量。</p>    <h2>作者简介</h2>    <p>文竹,美团点评美团平台与酒旅事业群智能技术中心负责人,2010年从清华硕士毕业后,加入百度,先后从事机器翻译的研发及多个技术团队的管理工作。2015年4月加入美团,负责智能技术中心的管理工作,致力于推动自然语言处理、图像处理、机器学习、用户画像等技术在公司业务上的落地。</p>    <p>李彪,美团点评美团平台及酒旅事业群NLP技术负责人,曾就职搜狗、百度。2015年加入美团点评,致力于NLP技术积累和业务的落地,负责的工作包括深度学习平台和模型,文本分析在搜索、广告、推荐等业务上应用,智能客服和交互。</p>    <p>晓明,美团点评平台及酒旅事业群图像技术负责人,曾就职于三星研究院。2015年加入美团点评,主要致力于图像识别技术的积累和业务落地,作为技术负责人主导了图像机审、首图优选和OCR等项目的上线,推进了美团产品的智能化体验和人力成本的节省。</p>    <p> </p>    <p>来自:http://tech.meituan.com/deeplearning_application.html</p>    <p> </p>