AI(人工智能)技能已经广泛运用于美团的浩瀚业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最精良的算法工程师正致力于将AI技能运用于搜索、推举、广告、风控、智能调度、语音识别、机器人、无人配送等多个领域,帮助美团3.2亿消费者和400多万商户改进做事和体验,帮大家吃得更好,生活更好。

基于AI技能,美团搭建了天下上规模最大,繁芜度最高的多人、多点实时智能配送调度系统;基于AI技能,美团推出了业内第一款大规模落地的企业运用级语音交互产品,为50万骑手配备了智能语音系统;基于AI技能,美团构建了天下上最大的菜品知识库,为200多万商家、3亿多件商品绘制了知识图谱,为2.5亿用户供应了精准的用户画像,并构建了天下上用户规模最大、繁芜度最高的O2O智能推举平台。

美团这个环球最大生活做事互联网平台的“大脑”是怎么构建的?从本周起,我们将连续揭橥“AI in 美团”系列文章,给大家全面揭开各项技能的底细。

其余,业界第一部全面讲述互联网机器学习实践的图书《美团机器学习实践》也即将上市,敬请期待。

AI in 美团深度进修在美团搜索广告排序的应用实践

一、序言

在打算广告场景中,须要平衡和优化三个参与方——用户、广告主、平台的关键指标,而预估点击率CTR(Click-through Rate)和转化率CVR(Conversion Rate)是个中非常主要的一环,准确地预估CTR和CVR对付提高流量变现效率,提升广告主ROI(Return on Investment),担保用户体验等都有主要的辅导浸染。

传统的CTR/CVR预估,范例的机器学习方法包括人工特色工程 + LR(Logistic Regression)[1]、GBDT(Gradient Boosting Decision Tree)[2] + LR、FM(Factorization Machine)[3]和FFM(Field-aware Factorization Machine)[4]等模型
比较于传统机器学习方法,深度学习模型近几年在多领域多任务(图像识别、物体检测、翻译系统等)的突出表现,印证了神经网络的强大表达能力,以及端到端模型有效的特色布局能力。
同时各种开源深度学习框架层出不穷,美团集团数据平台中央也迅速地搭建了GPU打算平台,供应GPU集群,支持TensorFlow、MXNet、Caffe等框架,供应数据预处理、模型演习、离线预测、模型支配等功能,为集团各部门的策略算法迭代供应了强有力的支持。

美团海量的用户与商家数据,广告繁芜的场景下浩瀚的影响成分,为深度学习方法的运用落地供应了丰富的场景。
本文将结合广告分外的业务场景,先容美团搜索广告场景下深度学习的运用和探索。
紧张包括以下两大部分:

CTR/CVR预估由机器学习向深度学习迁移的模型探索。
CTR/CVR预估基于深度学习模型的线下演习/线上预估的工程优化。

二、从机器学习到深度学习的模型探索

2.1 场景与特色

美团搜索广告业务席卷了关键词搜索、频道筛选等业务,覆盖了美食、休娱、酒店、美人、结婚、亲子等200多种运用处景,用户需求具有多样性。
同时O2O模式下存在地理位置、韶光等独特的限定。

结合上述场景,我们抽取了以下几大类特色:

用户特色人口属性:用户年事,性别,职业等。
行为特色:对商户/商圈/品类的偏好(实时、历史),外卖偏好,生动度等。
建模特色:基于用户的行为序列建模产生的特色等。
商户特色属性特色:品类,城市,商圈,品牌,价格,匆匆销,星级,评论等。
统计特色:不同维度/韶光粒度的统计特色等。
图像特色:种别,建模特色等。
业务特色:酒店房型等。
Query特色分词,意图,与商户相似度,业务特色等。
高下文特色韶光,间隔,地理位置,要求品类,竞争情形等。
广告曝光位次。

结合美团多品类的业务特点及O2O模式独特的需求,着重先容几个业务场景以及如何刻画:

用户的消费场景“附近”要求:美团和大众点评App中,大部分用户发起要求为“附近”要求,即探求附近的美食、酒店、休闲娱乐场所等。
因此给用户返回就近的商户可以起到事半功倍的效果。
“要求到商户的间隔”特色可以很好地刻画这一需求。
“指定区域(商圈)”要求:探求指定区域的商户,这个区域的属性可作为该流量的信息表征。
“位置”要求:用户搜索词为某个位置,比如“五道口”,和指定区域类似,识别位置坐标,打算商户到该坐标的间隔。
“家/公司”: 用户部分的消费场所为“家” 或 “公司”,比如探求“家”附近的美食,在“公司”附近点餐等,根据用户画像得到的用户“家”和“公司”的位置来识别这种场景。
多品类针对美食、酒店、休娱、美人、结婚、亲子等浩瀚品类的消费习气以及做事办法,将数据拆分成三大部分,包括美食、酒店、综合(休娱、美人、结婚、亲子等)。
个中美食表达用户的餐饮需求,酒店表达用户的旅游及住宿需求,综合表达用户的其他生活需求。
用户的行为轨迹实验中创造用户的实时行为对表达用户需求起到很主要的浸染。
比如用户想找个餐馆聚餐,先筛选了美食,创造附近有火锅、韩餐、日料等店,大家对火锅比较感兴趣,又去搜索特定火锅等等。
用户点击过的商户、品类、位置,以及行为序列等都对用户下一刻的决策起到很大浸染。

2.2 模型

搜索广告CTR/CVR预估经历了从传统机器学习模型到深度学习模型的过渡。
下面先大略先容下传统机器学习模型(GBDT、LR、FM & FFM)及运用,然后再详细先容在深度学习模型的迭代。

GBDT

GBDT又叫MART(Multiple Additive Regression Tree),是一种迭代的决策树算法。
它由多棵决策树组成,所有树的结论累加起来作为终极答案。
它能自动创造多种有区分性的特色以及特色组合,并省去了繁芜的特色预处理逻辑。
Facebook实现GBDT + LR[5]的方案,并取得了一定的成果。

LR

LR可以视作单层单节点的“DNN”, 是一种宽而不深的构造,所有的特色直接浸染在末了的输出结果上。
模型优点是大略、可控性好,但是效果的好坏直接取决于特色工程的程度,须要非常风雅的连续型、离散型、韶光型等特色处理及特色组合。
常日通过正则化等办法掌握过拟合。

FM & FFM

FM可以看做带特色交叉的LR,如下图所示:

从神经网络的角度考虑,可以看做下图的大略网络搭建办法:

模型覆盖了LR的宽模型构造,同时也引入了交叉特色,增加模型的非线性,提升模型容量,能捕捉更多的信息,对付广告CTR预估等繁芜场景有更好的捕捉。

在利用DNN模型之前,搜索广告CTR预估利用了FFM模型,FFM模型中引入field观点,把n个特色归属到f个field里,得到nf个隐向量的二次项,拟合公式如下:

上式中,fj 表示第j个特色所属的field。
设定隐向量长度为k,那么比较于FM的nk个二次项参数,FFM有nkf个二次项参数,学习和表达能力也更强。

例如,在搜索广告场景中,假设将特色划分到8个Field,分别是用户、广告、Query、高下文、用户-广告、高下文-广告、用户-高下文及其他,相对付FM能更好地捕捉每个Field的信息以及交叉信息,每个特色构建的隐向量长度8k, 全体模型参数空间为8kn+n+1。

Yu-Chin Juan实现了一个C++版的FFM模型工具包,但是该工具包只能在单机演习,难以支持大规模的演习数据及特色凑集;并且它省略了常数项和一次项,只包含了特色交叉项,对付某些特色的优化需求难以知足,因此我们开拓了基于PS-Lite的分布式FFM演习工具(支持亿级别样本,千万级别特色,分钟级完成演习,目前已经在公司内部普遍利用),紧张添加了以下新的特性:

支持FFM模型的分布式演习。
支持一次项和常数项参数学习,支持部分特色只学习一次项参数(不须要和其他特色做交叉运算),例如广告位次特色等。
拟合公式如下:

支持多种优化算法。

从GBDT模型切到FFM模型,积累的效果如下所示,紧张的提升来源于对大规模离散特色的刻画及利用更充分的演习数据:

DNN

从上面的先容大家可以看到,美团场景具有多样性和很高的繁芜度,而实验表明从线性的LR到具备非线性交叉的FM,到具备Field信息交叉的FFM,模型繁芜度(模型容量)的提升,带来的都是结果的提升。
而LR和FM/FFM可以视作大略的浅层神经网络模型,基于下面一些考虑,我们在搜索广告的场景下把CTR模型切换到深度学习神经网络模型:

通过改进模型构造,加入深度构造,利用端到真个构造挖掘高阶非线性特色,以及浅层模型无法捕捉的潜在模式。
对付某些ID类特殊稀疏的特色,可以在模型中学习到保持分布关系的稠密表达(embedding)。
充分利用图片和文本等在大略模型中不好利用的信息。

我们紧张考试测验了以下网络构造和超参调优的实验。

Wide & Deep

首先考试测验的是Google提出的经典模型Wide & Deep Model[6],模型包含Wide和Deep两个部分,个中Wide部分可以很好地学习样本中的高频部分,在LR中利用到的特色可以直接在这个部分利用,但对付没有见过的ID类特色,模型学习能力较差,同时合理的人工特色工程对付这个部分的表达有帮助。
Deep部分可以补充学习样本中的长尾部分,同时提高模型的泛化能力。
Wide和Deep部分在这个端到真个模型里会联合演习。

在完成场景与特色部分先容的特色工程后,我们基于Wide & Deep模型进行构造调度,搭建了以下网络:

在搜索广告的场景中,上图的Part_1包含离散型特色及部分连续型特色离散化后的结果 (例如用户ID、广告ID、商圈ID、品类ID、GEO、各种统计类特色离散化结果等等)。
离散化办法紧张采取等频划分或MDLP[7]。
每个域构建自己的embedding向量 (缺失落特色和按照一定阈值过滤后的低频特色在这里统一视作Rare特色),得到特色的Representation,然后通过Pooling层做采样,并拼接在一起进行信息领悟。

右侧的Part_2部分紧张包含我们场景下的统计类特色及部分其他路子建模表示后输入的特色 (例如图片特色、文本特色等),和Part_1的末了一层拼接在一起做信息领悟。

Part_3为多个全连接层,每个Layer后面连接激活函数,例如ReLu, Tanh等。

右上的Part_4部分紧张包含广告曝光位次 (Position Bias)及部分离散特色,紧张为了提高模型的影象性,具有更强的刻画能力。
Wide和Deep部分结合,得到终极的模型:

深度学习模型在图像语音等数据上有显著浸染的缘故原由之一是,我们在这类数据上不太方便产出能很好刻画场景的特色,人工特色+传统机器学习模型并不能学习出来全面合理的数据分布表示,而深度学习end-to-end的办法,直接结合Label去学习如何从原始数据抽取得当的表达(representation)。
但是在美团等电商的业务场景下,输入的数据形态非常丰富,有很多业务数据有明确的物理含义,因此一部分人工特色工程也是必要的,提前对信息做一个合理的抽取表示,再通过神经网络学习进行更好的信息领悟和表达。

在美团搜索广告的场景下,用户的实时行为有非常强的指代性,但是以原始形态直接送着迷经网络,会丢失掉很多信息,因此我们对它进行了不同办法描述和表示,再送着迷经网络之中进行信息领悟和学习。
另一类很有浸染的信息是图像信息,这部分信息的一种处理办法是,可以通过end-to-end的办法,用卷积神经网络和DNN进行拼接做信息领悟,但是可能会有网络的繁芜度过高,以及演习的收敛速率等问题,也可以选择用CNN预先抽取特色,再进行信息领悟。

下面以这两类数据特色为例,先容在Wide & Deep模型中的利用办法。

用户实时行为行为实体 用户的实时行为包括点击商户(C_P)、下单商户(O_P)、搜索(Q)、筛选品类(S)等。
商户的上层属性包括品类(Type: C_Type, O_Type)、位置(Loc: C_Loc, O_Loc)等。
Item Embedding 对用户的行为实体构建embedding向量,然后进行Sum/Average/Weighted Pooling,和其他特色拼接在一起。
实验创造,上层属性实体(C_Type, O_Type, C_Loc, O_Loc)的表现很正向,离线效果有了很明显的提升。
但是C_P, O_P, Q, S这些实体由于过于稀疏,导致模型过拟合严重,离线效果变差。
因此,我们做了两方面的改进:1. 利用更充分的数据,单独对用户行为序列建模。
例如LSTM模型,基于用户当前的行为序列,来预测用户下一时候的行为,从中得到当前时候的“Memory信息”,作为对用户的embedding表示;或Word2Vec模型,天生行为实体的embedding表示,Doc2Vec模型,得到用户的embedding表示。
实验创造,将用户的embedding表示加入到模型Part_2部分,特色覆盖率增加,离线效果有了明显提升,而且由于模型参数空间增加很小,模型演习的韶光基本不变。
2. 利用以上方法产生的行为实体embedding作为模型参数初始值,并在模型演习过程中进行fine tuning。
同时为理解决过拟合问题,对不同域的特色设置不同的阈值过滤。
计数特色 即对不同行为实体发生的频次,它是对行为实体更上一层的抽象。
Pattern特色 用户最近期的几个行为实体序列(例如A-B-C)作为Pattern特色,它表示了行为实体之间的顺序关系,也更细粒度地描述了用户的行为轨迹。
图片描述 商户的头图在App商品展示中霸占着很主要的位置,而图片也非常吸引用户的把稳力。
图片分类特色 利用VGG16、Inception V4等演习图片分类模型,提取图片特色,然后加入到CTR模型中。
E2E model 将Wide & Deep模型和图片分类模型结合起来,演习端到真个网络。

从FFM模型切到Wide & Deep模型,积累到目前的效果如下所示,紧张的提升来源于模型的非线性表达及对更多特色的更充分刻画。

DeepFM

华为诺亚方舟团队结合FM比较LR的特色交叉的功能,将Wide & Deep部分的LR部分更换成FM来避免人工特色工程,于是有了DeepFM[8],网络构造如下图所示:

比起Wide & Deep的LR部分,DeepFM采取FM作为Wide部分的输出,在演习过程中共享了对不同Field特色的embedding信息。

我们在部分业务上考试测验了DeepFM模型,并进行了超参的重新调优,取得了一定的效果。
其他业务也在考试测验中。
详细效果如下:

Multi-Task

广告预估场景中存在多个演习任务,比如CTR、CVR、交易额等。
既考虑到多个任务之间的联系,又考虑到任务之间的差别,我们利用Multi-Task Learning的思想,同时预估点击率、下单率,模型构造如下图所示:

由于CTR、CVR两个任务非常类似,以是采取“Hard Parameter Sharing”的构造,完备共享网络层的参数,只在输出层区分不同的任务。
由于下单行为受展现位次的影响非常小,以是下单率的输出层不考虑位次偏差的成分。
输出层在不同任务上单独增加所需特色。
离线演习和线上预估流程减半,性能提升;效果上相对付单模型,效果基本持平:

近期,阿里揭橥论文“Entire Space Multi-Task Model”[9],提出目前CVR预估紧张存在Sample Selection Bias(SSB)和Data Sparsity(DS)两个问题,并提出在全局空间建模(以pCTCVR和pCTR来优化CVR)和特色Transform的方法来办理。
详细的Loss Function是:

网络构造是:

超参调优

除了以上对网络构造的考试测验,我们也进行了多组超参的调优。
神经网络最常用的超参设置有:隐层层数及节点数、学习率、正则化、Dropout Ratio、优化器、激活函数、Batch Normalization、Batch Size等。
不同的参数对神经网络的影响不同,神经网络常见的一些问题也可以通过超参的设置来办理:

过拟合网络宽度深度适当调小,正则化参数适当调大,Dropout Ratio适当调大等。
欠拟合网络宽度深度适当调大,正则化参数调小,学习率减小等。
梯度消逝/爆炸问题得当的激活函数,添加Batch Normalization,网络宽度深度变小等。
局部最优解调大Learning Rate,得当的优化器,减小Batch Size等。
Covariate Shift增加Batch Normalization,网络宽度深度变小等。

影响神经网络的超参数非常多,神经网络调参也是一件非常主要的事情。
工业界比较实用的调参方法包括:

网格搜索/Grid Search:这是在机器学习模型调参时最常用到的方法,对每个超参数都敲定几个要考试测验的候选值,形成一个网格,把所有超参数网格中的组合遍历一下考试测验效果。
大略暴力,如果能全部遍历的话,结果比较可靠。
但是韶光开销比较大,神经网络的场景下一样平常考试测验不了太多的参数组合。
随机搜索/Random Search:Bengio在“Random Search for Hyper-Parameter Optimization”[10]中指出,Random Search比Grid Search更有效。
实际操作的时候,可以先用Grid Search的方法,得到所有候选参数,然后每次从中随机选择进行演习。
这种办法的优点是由于采样,韶光开销变小,但另一方面,也有可能会错过较优的超参数组合。
分阶段调参:前辈行初步范围搜索,然后根据好结果涌现的地方,再缩小范围进行更风雅的搜索。
或者根据履历值固定住其他的超参数,有针对地实验个中一个超参数,逐次迭代直至完成所有超参数的选择。
这个办法的优点是可以在优先考试测验次数中,拿到效果较好的结果。

我们在实际调参过程中,利用的是第3种办法,在根据履历参数初始化超参数之后,按照隐层大小->学习率->Batch Size->Drop out/L1/L2的顺序进行参数调优。

在搜索广告数据集上,不同超参的实验结果如下:

2.3 小结

搜索广告排序模型经历了从GBDT --> FFM --> DNN的迭代,同时构建了更加完善的特色体系,线下AUC累积提升13%+,线上CTR累积提升15%+。

三、基于深度学习模型的工程优化

3.1 线下演习

TensorFlow程序如果单机运行中涌现性能问题,一样平常会有以下几种问题:

繁芜的预处理逻辑耦合在演习过程中。
选择精确的IO办法。

剥离预处理流程

在模型的试验阶段,为了快速试验,数据预处理逻辑与模型演习部分都耦合在一起,而数据预处理包含大量IO类型操作,以是很适宜用HadoopMR或者Spark处理。
详细流程如下:

在预处理阶段将查表、join字典等操作都做完,并且将查询结果与原始数据merge在一起。
将libfm格式的数据转为易于TensorFlow操作的SparseTensor办法:

将原始数据转换为TensorFlow Record。

选择精确的IO办法

TensorFlow读取数据的办法紧张有2种,一样平常选择缺点会造成性能问题,两种办法为:

Feed_dict 通过feed_dict将数据喂给session.run函数,这种办法的好处是思路很清晰,易于理解。
缺陷是性能差,性能差的缘故原由是feed给session的数据须要在session.run之前准备好,如果之前这个数据没有进入内存,那么就须要等待数据进入内存,而在实际场景中,这不仅仅是等待数据从磁盘或者网络进入内存的事情,还可能包括很多前期预处理的事情也在这里做,以是相称于一个串行过程。
而数据进入内存后,还要串行的调用PyArrayToTF_Tensor,将其copy成tensorflow的tensorValue。
此时,GPU显存处于等待状态,同时,由于tf的Graph中的input为空,以是CPU也处于等待状态,无法运算。
RecordReader 这种办法是tf在Graph中将读取数据这个操作看做图中一个operation节点,减少了一个copy的过程。
同时,在tf中还有batch与threads的观点,可以异步的读取数据,担保在GPU或者CPU进行打算的时候,读取数据这个操作也可以多线程异步实行。
静态图中各个节点间的壅塞:在一个繁芜的DAG打算图中,如果有一个点打算比较慢时,会造成壅塞,下贱节点不得不等待。
此时,首先要考虑的问题是图中节点参数所存储的位置是否精确。
比如如果某个打算节点是在GPU上运算,那么如果这个节点所有依赖的variable工具声明在CPU上,那么就要做一次memcpy,将其从内存中copy到GPU上。
由于GPU打算的很快,以是大部分韶光花在拷贝上了。
总之,如果网络模型比较大略,那么这种操作就会非常致命;如果网络构造繁芜,比如网络层次非常深,那么这个问题倒不是太大的问题了。

在这个Case中,由于须要提升吞吐,而不仅仅是在试验阶段。
以是须要用RecordReader办法处理数据。

优化过程

将整体程序中的预处理部分从代码中去除,直接用Map-Reduce批处理去做(由于批处理可以将数据分散去做,以是性能非常好,2亿的数据分散到4900多个map中,大概处理了15分钟旁边)。
MR输出为TensorFlow Record格式,避免利用Feed_dict。
数据预读,也便是用多进程的办法,将HDFS上预处理好的数据拉取到本地磁盘(利用joblib库+shell将HDFS数据用多进程的办法拉取到本地,基本可以打满节点带宽2.4GB/s,以是,拉取数据也可以在10分钟内完成)。
程序通过TensorFlow供应的TFrecordReader的办法读取本地磁盘上的数据,这部分的性能提升是最为明显的。
原有的程序处理数据的性能大概是1000条/秒,而通过TFrecordReader读取数据并且处理,性能大概是18000条/秒,性能大概提升了18倍。
由于每次run的时候打算都要等待TFrecordReader读出数据,而没用利用batch的办法。
如果用多线程batch可以在打算期间异步读取数据。
在TensorFlow所有例子中都是利用TFRecordReader的read接口去读取数据,再用batch将数据多线程抓过来。
但是,实在这样做加速很慢。
须要利用TFRecordReader的read_up_to的方法合营batch的equeue_many=True的参数,才可以做到最大的加速比。
利用tf.train.batch的API后,性能提升了38倍。

此时,性能已经基本达到我们的预期了。
例如整体数据量是2亿,按照以前的性能打算1000条/秒,大概须要运行55个小时。
而现在大概须要运行87分钟,再加上预处理(15分钟)与预拉取数据(10分钟)的韶光,在不增加任何打算资源的情形下大概须要2个小时以内。
而如果是并行处理,则可以在分钟级完成演习。

3.2 线上预估

线上流量是模型效果的试金石。
离线演习好的模型只有参与到线上真实流量预估,才能发挥其代价。
在蜕变的过程中,我们开拓了一套稳定可靠的线上预估体系,提高了模型迭代的效率。

模型同步

我们开拓了一个高可用的同步组件:用户只须要供应线下演习好的模型的HDFS路径,该组件会自动同步到线上做事机器上。
该组件基于HTTPFS实现,它是美团离线打算组供应的HDFS的HTTP办法访问接口。
同步过程如下:

同步前,检讨模型md5文件,只有该文件更新了,才须要同步。
同步时,随机链接HTTPFS机器并限定下载速率。
同步后,校验模型文件md5值并备份旧模型。

同步过程中,如果发生缺点或者超时,都会触发报警并重试。
依赖这一组件,我们实现了在2min内可靠的将模型文件同步到线上。

模型打算

当前我们线上有两套并行的预估计算做事。

基于TF Serving的模型做事

TF Serving是TensorFlow官方供应的一套用于在线实时预估的框架。
它的突出优点是:和TensorFlow无缝链接,具有很好的扩展性。
利用TF serving可以快速支持RNN、LSTM、GAN等多种网络构造,而不须要额外开拓代码。
这非常有利于我们模型快速实验和迭代。

利用这种办法,线上做事须要将特色发送给TF Serving,这不可避免引入了网络IO,给带宽和预估时延带来压力。
我们考试测验了以下优化,效果显著。

并发要求。
一个要求会召回很多符合条件的广告。
在客户端多个广告并发要求TF Serving,可以有效降落整体预估时延。
特色ID化。
通过将字符串类型的特色名哈希到64位整型空间,可以有效减少传输的数据量,降落利用的带宽。

TF Serving做事真个性能差强人意。
在范例的五层网络(512256256256128)下,单个广告的预估时延约4800μs,详细见下图:

定制的模型打算实现

由于广告线上做事须要极高的性能,对付主流深度学习模型,我们也定制开拓了详细打算实现。
这种办法可以针对性的优化,并避免TF Serving不必要的特色转换和线程同步,从而提高做事性能。

例如全连接DNN模型中利用Relu作为激活函数时,我们可以利用滚动数组、剪枝、寄存器和CPU Cache等优化技巧,详细如下:

// 滚动数组 int nextLayerIndex = currentLayerIndex ^ 1 ; System.arraycopy(bias, bOff, data[nextLayerIndex], 0, nextLayerSize); for (int i = 0; i < currentLayerSize; i ++) { float value = data[currentLayerIndex][i]; // 剪枝 if (value > 0.0) { // 寄存器 int index = wOff + i nextLayerSize; // CPU 缓存友好 for (int j = 0; j < nextLayerSize; j++) { data[nextLayerIndex][j] += value weights[index + j]; } } } for (int i = 0; i < nextLayerSize; k++) { data[nextArrayIndex][i] = ReLu(data[nextArrayIndex][i]); } arrayIndex = nextArrayIndex;

优化后的单个广告预估时延约650μs,见下图:

综上,当前哨上预估采纳“两条腿走路”的策略。
利用TF Serving快速实验新的模型构造,以担保迭代效率;一旦模型成熟切换主流量,我们会开拓定制实现,以担保线上性能。

模型效果

借助于我们的分层实验平台,我们可以方便的分配流量,完成模型的小流量实验上线。
该分层实验平台同时供应了分钟粒度的小流量实时效果数据,便于模型评估和效果监控。

四、总结与展望

经由一段韶光的摸索与实践,搜索广告业务在深度学习模型排序上有了一定的成果与积累。
接下来,我们将连续在特色、模型、工程角度迭代优化。
特色上,更深度挖掘用户意图,刻画高下文场景,并结合DNN模型强大的表达能力充分发挥特色的浸染。
模型上,探索新的网络构造,并结合CNN、RNN、Attention机制等发挥深度学习模型的上风。
持续跟进业界动态,并结合实际场景,运用到业务中。
工程上,跟进TensorFlow的新特性,并对目前实际运用中碰着的问题针对性优化,以达到性能与效果的提升。
我们在持续探索中。

参考文献

[1] Chapelle, O., Manavoglu, E., & Rosales, R. (2015). Simple and scalable response prediction for display advertising. ACM Transactions on Intelligent Systems and Technology (TIST), 5(4), 61.

[2] Friedman, J. H. (2001). Greedy function approximation: a gradient boosting machine. Annals of statistics, 1189-1232.

[3] Rendle, S. (2010, December). Factorization machines. In Data Mining (ICDM), 2010 IEEE 10th International Conference on (pp. 995-1000). IEEE.

[4] Juan, Y., Zhuang, Y., Chin, W. S., & Lin, C. J. (2016, September). Field-aware factorization machines for CTR prediction. In Proceedings of the 10th ACM Conference on Recommender Systems (pp. 43-50). ACM.

[5] He, X., Pan, J., Jin, O., Xu, T., Liu, B., Xu, T., … & Candela, J. Q. (2014, August). Practical lessons from predicting clicks on ads at facebook. In Proceedings of the Eighth International Workshop on Data Mining for Online Advertising (pp. 1-9). ACM.

[6] Cheng, H. T., Koc, L., Harmsen, J., Shaked, T., Chandra, T., Aradhye, H., … & Anil, R. (2016, September). Wide & deep learning for recommender systems. In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems (pp. 7-10). ACM.

[7] Dougherty, J., Kohavi, R., & Sahami, M. (1995). Supervised and unsupervised discretization of continuous features. In Machine Learning Proceedings 1995 (pp. 194-202).

[8] Guo, H., Tang, R., Ye, Y., Li, Z., & He, X. (2017). Deepfm: A factorization-machine based neural network for CTR prediction. arXiv preprint arXiv:1703.04247.

[9] Ma, X., Zhao, L., Huang, G., Wang, Z., Hu, Z., Zhu, X., & Gai, K. (2018). Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate. arXiv preprint arXiv:1804.07931.

[10] Bergstra, J., & Bengio, Y. (2012). Random search for hyper-parameter optimization. Journal of Machine Learning Research, 13(Feb), 281-305.

作者简介

薛欢,2016年3月加入美团,紧张从事搜索广告排序模型干系的事情。

姚强,2016年4月加入美团,紧张从事搜索广告召回、机制与排序等干系算法研究运用事情。

玉林,2015年5月加入美团,紧张从事搜索广告排序干系的工程优化事情。

王新,2017年4月加入美团,紧张从事GPU集群管理与深度学习工程优化的事情。

图书推举

我们“美团技能团队”"大众年夜众号之前已经发布过很多AI和算法方面的文章,但从中很难明得算法工程师完全的事情流程。

见告大家一个好,美团算法团队多位技能专家集体编写的《美团机器学习实践》一书即将出版。
这本书详细地讲述了最热门的人工智能技能如何运用于搜索、推举、打算广告、风控、图像处理等各种场景,如何在美团这个环球最大生活做事互联网平台实际落地,敬请期待。

招聘信息

美团广告平台全面卖力美团到店餐饮、到店综合(结婚、美人、休闲娱乐、学习培训、亲子、家装)、酒店旅游的商业变现。
搜索广告基于数亿用户、数百万商家和数千万订单的真实数据做挖掘,在变现的同时确保用户体验和商家利益。
欢迎故意向的同学加入搜索广告算法组。
简历请投递至:leijun#meituan.com

大概你还想看

利用TensorFlow演习WDL模型性能问题定位与调优

即时配送的ETA问题之亿级样本特色布局实践

美团点评同盟广告的场景化定向排序机制