phpstorm网站开发,华池网站建设,安徽省青年企业家协会通报,贵阳市网站优化近年来#xff0c;在线广告在整个广告行业的比重越来越高。在线广告中实时竞价的广告由于其良好的转化效果#xff0c;占有的比重逐年升高。DSP#xff08;Demand-Side Platform#xff09;[1]作为需求方平台#xff0c;通过广告交易平台#xff08;AdExchange#xff0… 近年来在线广告在整个广告行业的比重越来越高。在线广告中实时竞价的广告由于其良好的转化效果占有的比重逐年升高。DSPDemand-Side Platform[1]作为需求方平台通过广告交易平台AdExchange[2]对每次曝光进行竞价尝试。对于AdExchange的每次竞价请求DSP根据Cookie Mapping [3]或者设备信息尝试把正在浏览媒体网站、App的用户映射到DSP能够识别的用户然后根据DSP从用户历史行为中挖掘的用户画像进行流量筛选、点击率/转化率预估等致力于ROI [4]的最大化。 美团点评的用户量越来越大积累了大量的用户在站内的行为信息我们基于这些行为构造了精准的用户画像并在此基础上针对美团App和网站的用户搭建了美团DSP平台致力于获取站外优质的流量为公司带来效益。本文从策略角度描述一下在搭建DSP过程中的考虑、权衡及对未来的思考。 在DSP实时竞价过程中策略端都在哪些步骤起作用对每一个步骤的尝试和优化方向做出详细介绍总结DSP如何通过AB测试、用户行为反馈收集、模型迭代、指导出价/排序等步骤来打通整个DSP实时竞价广告闭环。美团DSP在一次完整的竞价展示过程中可能涉及到两个大的步骤 1. 对AdExchange的竞价请求实时竞价 2. 竞价成功之后用户点击进入二跳页、浏览、点击、最后转化。 我们分别看一下这两个步骤中策略的支持。 图1 竞价广告示意图 图1给出了每一次竞价广告的粗略示意图竞价Gateway在收到竞价请求之后会识别出美团点评用户的流量根据网站历史CTR、网站品类属性等因素进行简单的流量过滤把流量分发到后端的AdServer。AdServer作为后端广告的总控模块首先向RecServer定向召回服务获取站外展示广告召回结果然后根据获取的广告结果向PredictorServerCTR/点击价值预测服务请求每个广告的站外点击率和点击价值。最后AdServer根据获取的点击价值*v*和*ctr*根据\(v*ctr^t\)进行排序从而挑选出top的广告进行展示。 图2 二跳页广告流程图 图2给出了竞价成功后用户从站外展示的广告点击后所经历的流程示意图。用户点击站外广告后到达二跳页Gateway二跳页Gateway向AdServer请求广告列表。AdServer从RecServer获取站内二跳页广告召回结果然后根据获取的广告结果向PredictorServer请求每个广告的二跳页点击率并进行排序。排序后的结果返回给二跳页Gateway进行广告填充。 在上述两个步骤中美团DSP策略端的支持由RecServer和PredictorServer提供在图1和图2分别用红色的箭头和AdServer交互。其中RecServer主要负责站外广告和二跳页的广告召回策略而PredictorServer主要负责站外流量的CTR预估点击价值预估和二跳页内的CTR预估。整个策略的闭环如下图 图3 策略闭环图 接下来详细介绍下美团DSP的召回、CTR预估、点击价值预估相关的策略。 从上一小节的介绍可以看到定向召回服务分别在实时竞价过程中提供了站外广告的召回服务在竞价完成之后提供了二跳页的广告召回服务。站外召回和站内二跳页召回没有本质的区别比较常见的做法是二跳页会根据用户点击商品的品类进行品类过滤。下面我们具体看一下目前定向召回相关的具体策略。 基于实时行为召回 通过实时日志流平台准确的跟踪用户的实时点击浏览/收藏/购买行为对于相应的用户重新投放用户近一段时间内发生过浏览/收藏/购买行为的商品。需要注意的是这个策略需要考虑召回概率按时间进行衰减用户的实时行为能够比较强反映用户的近期兴趣距离当前时间比较长的用户行为对于用户近期兴趣的定向偏弱。 基于位置召回 O2O的业务特点与传统的电商有明显的区别传统电商是在线上达成交易意向然后通过快递送货的方式完成交易。O2O业务绝大部分消费者是在线上买入电子券然后要到店进行消费所以用户的位置信息在广告召回中起着举足轻重的作用。我们在基于位置的广告召回中尝试了以下三种策略 1. 实时地理位置召回 根据用户所在的实时地理位置召回距离比较近的广告。 * 对于移动端的广告流量可以比较准确的获得用户的实时地理位置从而进行比较精准的投放 * 对于PC端的流量地理位置是通过用户访问的IP地址进行推算的所以地理位置是有偏移的但是考虑到PC端浏览广告的流量用户位置一般都比较固定比如用户一般是在上班或者在家休息我们仍然使用了这个策略。 2. 实时商圈热单召回 根据用户所在的实时地理位置推断出用户目前所在商圈给用户投放当前商圈的热门消费单。商圈的范围一般在几公里范围之内对于用户到店消费是一个合理的距离范围所以我们离线挖掘出每一个商圈的热门消费单作为用户召回的候选。 可以看到策略1和策略2是不需要userid的所以这两个策略也是我们在识别不到userid的时候一个比较好的冷启动召回策略。 3. 偏好商圈热单召回 通过离线分析用户历史的浏览/点击/购买行为分析出用户的历史商圈偏好召回用户偏好的商圈消费热单作为广告候选集。这个策略需要用户的userid仅对于能够识别并能映射到userid的用户适用。 基于协同过滤召回 基于协同过滤的召回策略我们融合了user-based和item-based两种。 基于item-based的协同过滤我们首先通过用户的购买行为计算item之间的相似度比如通过计算发现item A和item B之间的相似度比较高我们把item A作为候选推荐给购买item B的用户作为item B的用户的召回候选集之一同样也把item B作为候选推荐给购买item A的用户作为购买item A的用户的召回候选集之一。因为item-based协同过滤的特征这一部分召回基本能够把热门爆款单都拉到候选集中。 基于user-based的协同过滤我们同样需要先计算用户之间的相似度。计算用户相似度时除了考虑用户购买的商品还可以把用户所消费过的商家及商家所在的商圈作为相似度权重考虑进来。这么做是因为很多商品是在全国多个城市都可以购买的如果只采用用户购买的商品来计算相似度可能把两个不同城市用户的相似度计算的比较高加入商家和商圈的权重可以大大降低这种情况的可能性。 基于矩阵分解的场景化召回 对于O2O消费的某些场景比如美食和外卖用户是否发生购买与用户目前所处的场景有很大关系这里的场景包含时间、地点、季节、天气等。举个例子来说工作日的中午如果还在下雨这个时候外卖的购买概率一般是比其他商品高的。 基于此我们开发了基于矩阵分解的场景化召回策略。我们采用了FM模型来进行建模建模的特征包括季节、时间工作日/周末一天之内的时段、地点、天气等。这个策略的目的是希望召回用户实时的基于场景化的需求。 上文提到在实时竞价阶段AdServer会跟PredictorServer请求每个广告的站外点击率和点击价值最后AdServer根据获取的点击价值*v*和*ctr*根据\(v*ctr^t\)进行站外广告排序挑选top的广告。最终的报价公式如下 \[a*\sum_{i1}^k v_i * ctr{_i^t}b\tag{1}\] *k*是本次竞价要展示的广告数t,a,*b*都是根据实际流量情况进行调整。其中*t*为挤压因子为了控制*ctr*在排序和报价中起作用的比重*t*越大*ctr*在排序和报价中的比重越高a,*b*需要根据DSP需要获取的流量和需要达到的ROI之间的权衡进行调整a,*b*越大出价越高获取的流量越多成本越高ROI就减少。 公式1中CTR直接作为一个引子进行出价计算所以这里的CTR必须是一个真实的点击率。因为在站外广告点击日志中正样本是非常稀疏的为了保证模型的准确度我们一般都会采用负样本抽样。这样模型估计出来的CTR相对大小是没有问题的可以作为排序依据但是用来计算出价的时候必须把负样本采样过程还原回去我们在下面的小节中详细解释。 站外CTR预估 该模型目标是对于RecServer召回的广告预测出广告的相对点击率和真实点击率相对点击率用于排序 真实点击率用于流量报价。对于每个流量AdExchange会下发给多个DSP报价最高的DSP会胜出获取在这个流量上展示广告的机会。为了能够引入更多的优质流量减少流量成本提高ROI、CTR预估模型需要充分考虑站点、广告、用户等维度的信息。 广告的点击与转化主要与用户、广告、媒体useradpublisher这三个因素相关。我们的特征也主要从这三个方向去构建并衍生出一些特征[5]。 特征选择 1. 用户特征 用户浏览购买的品类用户画像浏览器操作系统等特征。 2. 广告特征 广告deal的属性特征如商家、品类、价格、创意类型等特征。广告deal的统计特征如历史CTR、CVR、PV、UV、订单量、评分等。3. 媒体特征 网站类别网站域名广告位尺寸等特征。 4. 匹配特征主要是用户与广告维度的匹配 用户浏览、购买的品类与广告品类的match 商家的match。用户浏览广告的不同时间粒度的频次特征比如用户浏览当前广告的次数、用户上次点击广告距离当前的时间差。5. 组合特征 在LR人工特征的实现过程中需要人工构造一些组合特征比如网站广告、用户消费水平价格、广告主广告品类等对于FM和FFM能都自动进行特征的组合。 6. 环境特征 广告的效果往往与用户所处的外部环境相关。比如 时段、工作日/节假日、移动端的经纬度等。 特征处理 最后再看我们具体如何构建模型。 1. 模型选择 由于站外的站点数量巨大、广告位较多、广告的品类较多造成训练样本的特征数较大需要选择合适的模型来处理这里我们选用了LR人工特征的方式确保训练的性能。 2. 特征降维 点击率模型需要考虑用户维度的数据由于美团的用户量巨大如果直接用用户id作为特征会造成特征数急剧增大而且one-hot encoding后的样本会非常稀疏从而影响模型的性能和效果。所以我们这里采用了用户的行为和画像数据来表征一个用户从而降低用户维度的大小。 3. 负样本选择 对于站外广告有很多广告位比较靠近页面的下方没有被用户看到这样的广告作为负样本是不合理的。我们在负样本选择的时候需要考虑广告的位置信息由于我们作为DSP无法获取广告是否真实被用户看到的信息。这里通过适当减少点击率较低的展位负样本数量来减轻不合理的负样本的情况。对于二跳页广告只取点击的位置之前的负样本而未点击的则只取top20的广告作为负样本。4. 负样本采样 由于广告点击的正负样本分布极其不均站外广告的点击率普遍较低绝大多数样本是负样本为了保证模型对正样本的召回需要对负样本按照一定比例抽样。 5. 真实CTR校准 由于负样本抽样后会造成点击率偏高的假象需要将预测值还原成真实的值。调整的公式如下 \[q\frac{p}{\left(p\frac{1-p}{w} \right)} \tag{2}\] q: 调整后的实际点击率。 p: 负样本抽样下预估的点击率。 w: 负样本抽样的比例。 二跳页CTR预估 当用户点击了广告后会跳转到广告中间页因为站外流量转化非常不容易所以对于吸引进来的流量我们希望通过比较精细化的排序给用户投放尽可能感兴趣的广告。 由于进入二跳页的流量大概比站外流量少两个数量级我们可以使用比较复杂的模型同时因为使用比较多的用户/广告特征所以这里我们选择了效果比较好的FFM[6]模型详情可以参考之前的博客文章《深入FFM原理与实践》。 特征和样本处理方面的流程基本类似CTR预估模块中的样本处理流程。差别在于广告在展示列表中的位置对广告的点击概率和下单概率是有非常大影响的排名越靠前的广告越容易被点击和下单这就是position bias的含义。在抽取特征和训练模型的时候就需要很好去除这种position bias。 我们在两个地方做这种处理 * 在计算广告的历史CTR和历史CVR的时候首先要计算出每个位置的历史平均点击率ctr_p和历史平均下单率cvr_p然后再计算i广告的每次点击和下单的时候都根据这个item被展示的位置计算为ctr_0/ctr_p及cvr_0/ctr_p。 * 在产生训练样本的时候把展示位置作为特征放在样本里面并且在使用模型的时候把展示位置特征统一置为0。 上文提到广告是根据\(v*ctr^t\)进行排序并通过公式1进行报价。这里面的*v*就是点击价值点击价值是指用户发生一次点击之后会带来的转化价值。 广告业务的根本在于提高展示广告的eCPM[7]eCPM的公式可以写为\(v*ctr*1000\)准确的预估点击价值是为了准确预估当前流量对于每一个广告的eCPM。刘鹏在《计算广告》[8]中提到只要准确的估计出点击价值通过点击价值计算和CTR计算得到的eCPM进行报价就始终会有利润这是因为AdExchange是按照广义第二出价进行收费的。 在实际投放过程中出价公式可以随着业务目标的不同进行适当的调整比如我们的出价公式中包含了挤压因子*t*和*a **b*两个参数。出价越高带回来的流量越大可能带来质量参差不齐的流量一般在一段时间之内会引起CTR的降低这样会带来CPC点击成本的提高所以ROI会降低。反之出价比较低的情况下带来的流量越少经过比较细致的流量过滤CTR能长期保持在一个较高的水平点击成本CPC比较低ROI就会比较高。 美团DSP在点击价值预估上经历了两个阶段 * 第一阶段是站外广告的落地页是广告的详情页面时广告的点击价值预估比较简单只需要预估出站外流量到达广告详情页之后的CVR即可。正负样本的选择也比较简单采集转化样本为正样本采集浏览未转化样本作为负样本。我们也进行了适当的负样本采样和真实CVR校准这里采用的方法跟上一节类似不再赘述。 * 模型方面在控制特征复杂度的基础上我们选择了效果不错的二次模型FFM复杂度和性能都能够满足线上的性能。 * 特征方面我们使用了站外实时特征部分离线挖掘特征由于FFM预测复杂度是(k*n*n)*k*是隐向量长度*n*是特征的个数特征的选择上需要挑选贡献度比较大的特征。 第一阶段投放之后经过统计详情页的用户流失率非常高为了降低流失率我们开发了广告二跳页在二跳页里面用户在站外点击的广告排在第一位剩下的是根据我们的召回策略和排序策略决定的。根据公式1点击价值是由二跳页的*k*个广告共同决定的。但是在站外广告排序和报价的过程中我们无法获取中间页的召回结果所以在实际情况中是无法适用的。目前我们的策略是直接对当前用户和当前商品的特征建立一个回归模型使用用户在二跳页上成交的金额作为label进行训练模型分别尝试了GBDT和FM最终采用了效果稍好些的GBDT模型。离线评估 业内常用的量化指标是AUC就是ROC曲线下的面积。AUC数值越大模型的分别能力越强。 Facebook提出了NENormalized Entropy[9]来衡量模型NE越小模型越好。 \[NE\frac{-\frac{1}{N} \sum_{i1}^n \left(\frac{1y_i}{2}\log(p_i)\frac{1-y_i}{2}\log(1-p_i) \right)}{-(p*\log(p)(1-p)*\log(1-p) )} \tag{3}\] N训练的样本的数量。 yi第i个样本的lable点击为1 未点击为-1。 pi第i个样本预估的点击率。 P所有样本的实际点击率。 离线我们主要使用的是AUC和NE的评估方法。 在线AB测试 通过在线ABtest确保每次上线的效果都是正向的多次迭代后站外CTR提升30%广告二跳页CTR提升13%二跳页CVR提升10%。 在线监控 1. 在线AUC监控 在线预估的CTR和CVR建立小时级流程计算每个小时的在线AUC。发现AUC异常的情况会报警确保模型在线应用是正常的。 2. 在线预估均值监控 在线预估的值会计算出平均值确保均值在合理的范围之内。均值过高会导致报价偏高获取流量的成本增加。均值过低造成报价偏低获取的流量就偏少对于估值异常的情况能及时响应。 本文介绍了美团DSP在站外投放过程中的策略实践。很多细节都是在业务摸索过程中摸索出来的。后续有些工作还可以更细致深入下去 1. 流量筛选 流量筛选目前还是比较粗暴的根据网站历史的CTR等直接进行过滤后续会基于用户的站内外的行为对流量进行精细化的筛选提升有效流量提高转换。 2. 动态调整报价 在DSP的报价环节点击率预估模型会对每一个流量预估出一个CTR为了适应adx市场的需要会加上指数和系数项进行调整。但是通过这种报价方式获取的流量由于外部竞争环境的变化流量天然在不同时段的差异经常会出现CPC不稳定。该报价的系数对于所有的媒体都是一致的而一般的优质媒体都是有底价的且不同媒体的底价不一致造成该报价方式无法适用所有的媒体出现部分优质媒体无法获取足够的流量。我们的目标是在CPC一定的情况下在优质媒体、优质时段尽可能多的获取流量这里我们需要根据实时的反馈和期望稳定的CPC来动态调整线上的报价[10]。从而在竞价环境、时段、媒体变化时CPC保持稳定进一步保证我们的收益最大化同样的营销费用获取的流量最多。3. 位置召回 基于位置的召回策略中我们对用户的商圈属性没有作区分比较粗粒度的统一召回这样其实容易把用户当前时间/位置真正有兴趣的商品拍的比较靠后比较好的办法是通过精准的用户画像和用户消费时间/位置上下文挖掘根据用户竞价时的位置和时间分析出用户转化率高的商圈从而进行更加精准的投放。 在业务上美团DSP会逐步接入市场上主流的AdExchange和自有媒体的流量。技术上会持续探索机器学习、深度学习在DSP业务上的应用从而提升美团DSP的效果。 https://en.wikipedia.org/wiki/Demand-side_platformhttps://en.wikipedia.org/wiki/Ad_exchangehttps://developers.google.com/ad-exchange/rtb/cookie-guide?hlenhttps://en.wikipedia.org/wiki/Return_on_investmenthttp://www.xiutx.cn/archives/263https://www.csie.ntu.edu.tw/~cjlin/libffm/http://baike.baidu.com/view/1666309.htmhttp://book.douban.com/subject/26596778/http://www.herbrich.me/papers/adclicksfacebook.pdfhttps://en.wikipedia.org/wiki/PID_controller鸿杰美团平台与酒旅事业群用户增长策略负责人曾就职于阿里2015年加入美团点评。主要致力于通过机器学习提升美团点评平台的活跃用户数作为技术负责人主导了站外渠道投放、站内新客运营等项目的算法工作提升营销效率有效降低营销成本。 李乐美团点评美团平台与酒旅事业群用户增长组DSP业务基础召回和设备下载的负责人2014年7月从浙江大学硕士毕业后加入美团。负责过CPS搜索广告、新客运营、DSP基础召回、DSP设备下载等业务致力于推动全网设备的精准触达。 ** 因团队业务急剧发展诚招广告算法工程师级别不限欢迎邮件wuhongjie#meituan.com咨询。**