专栏名称: 数盟
数盟(数据科学家联盟)隶属于北京数盟科技有限公司,数盟致力于成为培养与发现“数据科学家”的黄埔军校。 数盟服务包括:线下活动、大数据培训。 官网:http://dataunion.org,合作:[email protected]
目录
相关文章推荐
数据派THU  ·  成功率可达100%,药物开发公司Cellar ... ·  3 天前  
数据派THU  ·  AAAI2025|只根据题目和摘要就能预测论 ... ·  3 天前  
CDA数据分析师  ·  【干货】画用户画像与找相亲对象一样简单 ·  2 天前  
大数据文摘  ·  谢谢Deepseek,o3-mini发布即免 ... ·  6 天前  
51好读  ›  专栏  ›  数盟

亿级推广流量仍能精准推荐?解读核心算法的应用实践

数盟  · 公众号  · 大数据  · 2017-07-18 22:06

正文

阿里妈妈,是一个想让天下没有难做的营销的大数据平台,它拥有阿里巴巴集团的核心商业数据。在这里,每天有超过50亿的推广流量完成超过3亿件商品的推广展现,覆盖高达98%的网民,实现数字媒体(PC端+无线端+互联网电视端)的一站式触达。


在这些鲜亮的数据背后,是什么样的核心算法在起作用?它如何保证商家的产品得到最有效的推荐? 本文将给大家详解阿里妈妈 CTR 预估核心算法 MLR 的研发背景和应用实践。


一、关键词小知识

点击通过率 CTR (Click-Through-Rate),指网络广告(图片广告/文字广告/关键词广告/排名广告/视频广告等)的点击到达率,即该广告的实际点击次数除以广告的展现量。

点击率预估 (Click-Through Rate Prediction)是互联网主流应用(广告、推荐、搜索等)的核心算法问题。

CTR 预估是互联网计算广告中的关键技术环节,预估准确性直接影响商家的广告收入。广告领域的 CTR 预估面临的是超高维离散特征空间中模式发现的挑战,即如何拟合现有数据的规律,同时又具备推广性。


二、CTR预估算法

传统CTR预估算法和非线性模型存在的不足

业界传统的 CTR 预估解法是 广义线性模型 LR (logistic regression,逻辑斯特回归)+人工特征工程。LR 使用了 Logit 变换将函数值映射到0~1区间,映射后的函数值就是 CTR 的预估值。LR 这种线性模型很容易并行化,处理上亿条训练样本不是问题。


这种解法的不足是 线性模型的学习能力有限,需要引入大量的领域知识来人工设计特征以及特征之间的交叉组合来间接补充算法的非线性学习能力,非常消耗人力和机器资源,迁移性不够友好。


另外,业界也有一些效果不错的非线性模型不断被提出来,并被工程实践且取得不错效果,但这些模型都或多或少存在一些 不足

  • Kernel 方法,因为 复杂度太高 而不易实现。

  • Tree based 方法,由 Facebook 团队在2014年首先提出,有效地解决了 LR 模型的特征组合问题,但缺点仍然是 对历史行为的记忆,缺乏推广性

  • FM(factorization machine)模型,能自动学习高阶属性的权值,不用通过人工的方式选取特征来做交叉,但FM模型 只能拟合特定的非线性模式 ,如最常用的 2 阶 FM 只能拟合特征之间的线性关系和二次关系。

  • 深度神经网络非线性拟合能力足够强,但面对广告这样的大规模工业级稀疏数据, 适合数据规律的、具备推广性的网络结构业界依然在探索中 ,尤其是要做到端到端规模化上线,这里面的技术挑战依然很大。


那么,挑战来了, 如何设计算法从大规模数据中挖掘出具有推广性的非线性模式?


阿里妈妈自主研发的MLR算法

基于上述的算法的不足和商户的实际需要,2011-2012年期间,阿里妈妈资深专家盖坤(花名靖世)突破主流大规模线性模型的思路,提出了 MLR (mixed logistic regression, 混合逻辑斯特回归)算法,给广告领域 CTR 预估算法带来了新升级。


MLR 算法基于数据自动发掘可推广的模式,直接在原始空间学习特征之间的非线性关系,相比于人工来说提升了效率和精度。


MLR 可以看做是对 LR 的一个自然推广,它 采用分而治之的思路,用分片线性的模式来拟合高维空间的非线性分类面 ,其 形式化表达如下


这里超参数分片数 m 可以较好地平衡模型的拟合与推广能力。当 m=1 时,MLR 就退化为普通的 LR,m 越大,模型的拟合能力越强,但是模型参数规模随 m 线性增长,相应所需的训练样本也随之增长。


因此,实际应用中 m 需要根据实际情况进行选择,一般 m 设定为12。下图中,MLR 模型用 4 个分片完美地拟合出数据中的菱形分类面。



MLR 算法适合于工业级的大规模稀疏数据场景问题, 优势体现在两个方面:

  1. 端到端的非线性学习 :从模型端自动挖掘数据中蕴藏的非线性模式,省去了大量的人工特征设计,可以端到端地完成训练,使得在不同场景中的迁移和应用变得轻松。

  2. 稀疏性 :MLR 在建模时引入了和范数正则,使得最终训练出来的模型具有较高的稀疏度, 模型的学习和在线预测性能更好。


MLR算法高级特性

在具体的实践应用中,阿里妈妈精准定向团队进一步发展了 MLR 算法的多种高级特性,主要包括:

结构先验 。基于领域知识先验,灵活地设定空间划分与线性拟合使用的不同特征结构。它有助于帮助模型缩小解空间的探索范围,收敛更容易。


例如精准定向广告中验证有效的先验为:以 user 特征空间划分、以 ad 特征为线性拟合。它符合人们的常规认知:不同人群具有聚类特性,同一类人群对广告有类似的偏好,例如高消费人群喜欢点击高客单价的广告。


线性偏置 。这个特性提供了一个较好的方法解决 CTR 预估问题中的 bias 特征,如位置、资源位等。实际应用中,工程师通过对位置 bias 信息的建模,获得了 4% 的 RPM提升效果。


模型级联 。MLR 支持与 LR 模型的级联式联合训练,这有点类似于 wide&deep learning。一些强 feature 配置成级联模式有助于提高模型的收敛性。


典型的应用方法是: 以统计反馈类特征构建第一层模型,它的输出(如下图中的 FBCtr)级联到第二级大规模稀疏 ID 特征体系中去,能够获得更好的提升效果。


增量训练 。MLR 通过结构先验进行 pretrain,然后再增量进行全空间参数寻优训练,会获得进一步的效果提升。同时增量训练模式下,模型达到收敛的步数更小,收敛更为稳定。在阿里妈妈的实际应用中,增量训练带来的 RPM 增益达到了 3%。


大规模分布式实现

MLR 算法面向的是工业级的数据 ,例如亿级特征,百亿级样本。因此,工程师设计了一套分布式架构,以支持模型的高效并行训练。


下图是架构示意图 ,它跟传统的 parameter server 架构略有区别,主要不同点在于每一个分布式节点上同时部署了 worker 和 server 两种角色,而不是将 server 单独剥离出去部署。这样做是 为了充分利用每个节点的 CPU 和内存,从而保证最大化机器的资源利用率。


此外,针对个性化广告场景中数据的结构化特性,他们提出并实现了 common feature 的 trick,可以 幅度压缩样本存储、加速模型训练


下图 所见,在展示广告中,一个用户在一天之内会看到多条广告展现,而一天之内这个用户的大量的静态特征(如年龄、性别、昨天以前的历史行为)是相同的,通过 common feature 压缩,阿里妈妈对这些样本只需要存储一次用户的静态特征,其余样本通过索引与其关联;在训练过程中,这部分特征也只需要计算一次。在实践中,他们应用 common feature trick 使得相比之前,使用近 1/3 的资源消耗获得了 12 倍的加速。


三、业务应用实践

从2013年起,MLR 算法在阿里妈妈及阿里集团多个 BU 的主要场景(包括阿里妈妈精准定向广告、淘宝客、神马商业广告、淘宝主搜等等)被大规模地应用和尝试,尤其是在阿里妈妈的精准定向广告场景,算法模型创新带来了业务上的重大突破, 主要场景下的 CTR 和 RPM 均获得 20% 以上的提升。








请到「今天看啥」查看全文