深度学习在美团的应用

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

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

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

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

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

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

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

图1 clicknet框架

表示层

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

学习层

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

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

小结

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

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

传统的图像质量排序方法主要从美学角度进行质量评价,通过颜色统计、主体分布、构图等来分析图片的美感。但在实际业务场景中,用户对图片质量优劣的判断主观性很强,难以形成统一的评价标准。比如:
1. 有的用户对清晰度或分辨率更敏感;
2. 有的用户对色彩或构图更敏感;
3. 有的用户偏爱有视觉冲击力的内容而非平淡无奇的环境图。

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

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

图2 图像质量排序技术框架

对于每个维度图片属性的学习,都需要大量的标签数据来支撑,但完全通过人工标记代价极大,因此我们借鉴了美团的图片来源和POI标签体系。关于吸引度属性的学习,我们选取了美团Deal相册中点击率高的图片(多数是摄影师通过单反相机拍摄)作为正例,而选取UGC相册中点击率低的图片(多数是低端手机拍摄)作为负例。关于品类属性的学习,我们将美团一级品类和常见二级品类作为图片标签。基于上述质量排序模型,我们为广告POI挑选最合适的优质首图进行展示,起到吸引用户点击,提高业务指标的目的。图3给出了基于质量排序的首图优选结果。

图3 基于图像质量排序的首图优选

为了提升用户体验,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的宽高比。

图4 基于Faster R-CNN的受控场景文字定位

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

图5 基于FCN的非受控场景文字定位

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

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

图6 基于序列学习的端到端识别框架

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

图7 深度学习OCR和传统OCR的性能比较

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 315. 计算右侧小于当前元素的个数(二叉查找树二分查找归并排序逆序数总结)

文章目录1. 题目2. 解题2.1 二叉查找树2.2 二分插入2.3 归并排序1. 题目 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例: 输入: [5,2,6,1] 输出: [2,1,1…

Python实现共现语义网络

Python实现共现语义网络:

领域应用 | 金融资管领域知识图谱的构建和应用

转载公众号 | DataFunTalk分享嘉宾:李渔 熵简科技 联合创始人编辑整理:唐汝佳出品平台:DataFunTalk导读:本次分享的主题是金融资管领域知识图谱的构建和应用,主要介绍如何运用大数据、AI这些技术手段,来帮助…

我分析了ACL21论文列表,发现对比学习已经...

文 | 花小花Posy小伙伴们,好久不见呀,小花又回来了!最近关注对比学习,所以ACL21的论文列表出来后,小花就搜罗了一波,好奇NLPers们都用对比学习干了什么?都是怎么用的呀?效果怎样呀&a…

2016,你最不应该错过的热门技术文章

本文首发在“美团技术团队”微信公众号,内容已覆盖截止至2017年1月23日最新的技术文章。 1955年3月15日,爱因斯坦给刚去世的密友Michele Besso家人的信中说: “像我们这样信仰物理学的人都知道,过去、现在和未来之间的分别只不过是…

LeetCode 629. K个逆序对数组(DP)

文章目录1. 题目2. 动态规划3. 优化的DP1. 题目 给出两个整数 n 和 k&#xff0c;找出所有包含从 1 到 n 的数字&#xff0c;且恰好拥有 k 个逆序对的不同的数组的个数。 逆序对的定义如下&#xff1a;对于数组的第i个和第 j个元素&#xff0c;如果满i < j且 a[i] > a[…

快速的找出元素是否在list中 python

number [[1,2],[3,2]] num np.array(number) np.argwhere(num2) np.argwhere(num2) array([[0, 1], [1, 1]], dtypeint64) 注意&#xff1a;只能是维度相同的时候&#xff0c;才能用该方法。 om ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or nd…

论文浅尝 | 知识图谱的神经符号推理(上)

笔记整理 | 叶橄强&#xff0c;浙江大学在读硕士&#xff0c;研究方向为知识图谱的表示学习和预训练。知识图谱推理是支撑信息提取、信息检索和推荐等机器学习任务的基础组成部分&#xff0c;并且由于知识图可以看作知识的离散符号表示&#xff0c;自然可以利用符号技术做知识图…

ICML2021 | Self-Tuning: 如何减少对标记数据的需求?

文 | 王希梅&#xff0c;高敬涵&#xff0c;龙明盛&#xff0c;王建民源 | THUML本文介绍ICML2021的中稿论文&#xff1a;Self-Tuning for Data-Efficient Deep Learning&#xff0c;就“如何减少对标记数据的需求”这一重要问题给出了我们的思考。论文标题&#xff1a;Self-Tu…

美团点评Docker容器管理平台

本文是郑坤根据第14期美团点评技术沙龙“你不知道的美团云”演讲内容整理而成&#xff0c;已发表在《程序员》杂志2017年1月刊。 美团点评容器平台简介 本文介绍美团点评的Docker容器集群管理平台&#xff08;以下简称“容器平台”&#xff09;。该平台始于2015年&#xff0c;是…

Python 获取本机或者服务器的 IP 地址

获取计算机名称 hostname socket.gethostname() 获取本机 IP ip socket.gethostbyname(hostname) print(ip) 具体操作 import socket hostname socket.gethostname() ip socket.gethostbyname(hostname) print(ip)通常使用 socket.gethostname() 方法即可获取本机 IP …

LeetCode 754. 到达终点数字(数学推理)

1. 题目 在一根无限长的数轴上&#xff0c;你站在0的位置。终点在target的位置。 每次你可以选择向左或向右移动。第 n 次移动&#xff08;从 1 开始&#xff09;&#xff0c;走 n 步。 返回到达终点需要的最小移动次数。 示例 1: 输入: target 3 输出: 2 解释: 第一次移动…

论文浅尝 | 神经符号推理综述(下)

笔记整理 | 许泽众&#xff0c;浙江大学在读博士3、神经驱动的符号推理相比于之前的两种类型&#xff0c;神经驱动的符号推理的目的是挖掘规则&#xff0c;而神经网络在其中扮演的作用是解决纯符号推理的不确定性&#xff0c;并且能够有效的减少搜索空间。这种类型的方法的基本…

Dockerfile构建python 运行项目运行环境

https://blog.csdn.net/qq_24487005/article/details/123380810 目录 构建思路 DockerFile脚本 环境文件解析 pip.conf sources.list openssl.cnf localtime install.sh startup.sh docker镜像构建 构建思路 1、把容器内需要用到的文件全部复制到容器中 2、设置一个工作目录&am…

没有导师指导,该如何自己选题发CVPR?

| 背景底层计算机视觉技术&#xff0c;如图像增强、图像复原等&#xff0c;一直以来都是一个重要且热门的研究方向。传统的方法多基于稀疏编码、小波变换等技术&#xff0c;近年来&#xff0c;深度学习的兴起为该领域带来了新的发展机遇&#xff0c;同时大幅度提升了方法性能。…

Android硬件加速原理与实现简介

在手机客户端尤其是Android应用的开发过程中&#xff0c;我们经常会接触到“硬件加速”这个词。由于操作系统对底层软硬件封装非常完善&#xff0c;上层软件开发者往往对硬件加速的底层原理了解很少&#xff0c;也不清楚了解底层原理的意义&#xff0c;因此常会有一些误解&…

LeetCode 482. 密钥格式化

1. 题目 给定一个密钥字符串S&#xff0c;只包含字母&#xff0c;数字以及 ‘-’&#xff08;破折号&#xff09;。N 个 ‘-’ 将字符串分成了 N1 组。给定一个数字 K&#xff0c;重新格式化字符串&#xff0c;除了第一个分组以外&#xff0c;每个分组要包含 K 个字符&#xf…

暑期学校 | 东南大学2021年国际暑期学校项目:从感知理解到智能认知 (知识图谱及应用课程)...

国际暑期学校开课啦 项目介绍 从感知理解到智能认知——走近新一代人工智能From perceptual understanding to intelligent cognition-Approaching a new generation of AI本项目是由东南大学计算机科学与工程学院、软件学院、人工智能学院组织&#xff0c;通过开设人工智…

The command ‘/bin/sh -c apt-get install -y vim’ returned a non-zzero code: 100

最近在学习docker时&#xff0c;发现使用ubuntu构建镜像时&#xff0c;如果有apt-get install命令&#xff0c;老是出现以下错误&#xff1a;The command ‘/bin/sh -c apt-get install -y vim’ returned a non-zzero code: 100 查了一下&#xff0c;发现很多人都说是使用ubun…

LeetCode 970. 强整数

文章目录1. 题目2. 解题2.1 暴力法2.2 优化双重循环1. 题目 给定两个正整数 x 和 y&#xff0c;如果某一整数等于 xi yj&#xff0c;其中整数 i > 0 且 j > 0&#xff0c;那么我们认为该整数是一个强整数。 返回值小于或等于 bound 的所有强整数组成的列表。 你可以按…