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

阿里妈妈,是一个想让天下没有难做的营销的大数据平台,它拥有阿里巴巴集团的核心商业数据。在这里,每天有超过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% 以上的提升。

典型应用如下:

基于 MLR 的定向广告 CTR 预估算法

基于 MLR 算法的非线性学习能力,阿里妈妈的定向广告 CTR 预估采用了大规模原始ID 特征 + MLR 算法的架构。具体为刻画一次广告展现为特征向量,它由三部分独立构成:

  • 用户部分特征(包括 userid、profile 信息、用户在淘宝平台上的历史行为特征(浏览/购买过的宝贝/店铺/类目上的 id 和频次等)
  • 广告部分特征(包括 adid、campainid、广告对应的卖家店铺 id、类目 id 等)
  • 场景部分特征(包括时间、位置、资源位等)

这些特征之间无传统的交叉组合,维度在 2 亿左右。然后,他们将数据直接喂给 MLR 算法,并且应用了结构化先验、pretrain+ 增量训练、线性偏置等高级技巧,让模型从数据中自动去总结和拟合规律。相比于传统的 LR+ 特征工程思路,这种解法更为高效和优雅,模型精度更高,在实际生产中的可迭代更强。

基于 MLR 的定向广告 Learning to Match 算法

Match 算法是定向广告中的一个重要环节,它的核心使命是基于用户的人口属性、历史行为等信息来猜测用户可能感兴趣的广告集合。传统的 Match 算法更多采用的是规则匹配、协同过滤等方法,方法的扩展性不强。

在阿里妈妈定向广告系统中,工程师研发了基于 MLR 的 learning to match 算法框架。简单来说,用模型的方法基于用户的行为历史来学习用户个性化的兴趣,从而召回高相关性的候选广告集。

同样地,基于 MLR 算法的非线性能力,他们可以很容易地将不同的特征源、标签体系融合到框架中,不需要过多地关注和设计特征的交叉组合,使得框架的灵活性大大增强。

四、总结和面临的挑战

阿里妈妈算法技术团队自主创新的 MLR 模型和算法,在业务的大范围推广和应用中取得了比较好的效果,另外在大数据智能方面,因为省去特征工程,具备了从数据接入到应用的全自动功能。

但是未来面临的挑战也很多,比如:

  • 初值问题、非凸问题的局部极值。虽然 MLR 比 LR 好,但不知道和全局最优相比还有多远;
  • 在初值的 Pre-train 方面需要改进和优化模型函数等;
  • 目前规模化能力方面也需要能够吞吐更多特征和数据,比如采用更快的收敛算法等等;
  • 整体的 MLR 算法的抽象能力也需进一步得到强化。

时间: 2024-10-29 04:29:52

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

亿级日PV的魅族云同步的核心协议与架构实践(转)

云同步的业务场景 这是魅族云同步的演进,第一张是M8.M9,然后到后面的是MX系统,M9再往后发展,我们的界面可以看到基本上是没有什么变化的,但本质发生了很大的变化,我们经过了一些协议优化,发展到今天的魅族云同步. 这是云服务对应的网页端,界面非常简洁,可以看到正中间我们有4个模块,提供一些传统数据的讨论,不得不提一下这边的查手机,我们通过它帮一些客户找到了他的手机,它的功能是很强大的,可以定位位置,还可以进行一些拍照. 我们的业务发展了这么多年,一个是手机端,一个是网页端,都说搞技术的是非常寂

观《亿级流量网站架构核心技术》一书有感

本文的架子参考张开套的<亿级流量网站架构核心技术>这本书分为四个部分:指导原则,高可用,高并发,实践案例.这篇文章说一说前三个部分,大部分内容都是我自己的思考,书只作为参考. 指导原则 高可用 事前 副本技术 隔离技术 配额技术 探知技术 预案 事发 监控和报警 事中 降级 回滚 failXXX系列 事后 高并发 提高处理速度 缓存 异步 增加处理人手 多线程 扩容 指导原则 书中所列举的,里有一些可能并不是原则,而是技巧.我理解的原则如下: 高并发原则: 无状态设计:因为有状态可能涉及锁操作

关于亿级流量网站架构一书缓存机制的探讨

在京东的亿级流量网站架构一书,175页介绍缓存有这样一段话 仅就这段代码来看,在高并发情况下,实际上并不能阻止大量线程调用loadSync函数 当然这个书里的代码是作者的简写,这里探讨只是针对书中这段代码,实际生成代码应该有考虑这个问题,另外loadSync函数的逻辑看不到,也可能有考虑到到这个问题. 这中情况应该使用双锁,另外firstCreateNewEntry也应该是定义为volatile类型.还有如果是分布式缓存,针对远程客户端的回源请求应该要设置一个时限,比如30秒内只受理一个回源请求

《亿级流量电商详情页系统实战:缓存架构+高可用服务架构+微服务架构》

视频教程:http://www.roncoo.com/course/view/af7d501667fe4a19a60e9467e6d2b3d9 升级说明: 该课程原本是123节课时,已于2017年7月份全部更新完毕.在原有123节课时的基础上,再免费新增70到80节左右的内容(注:课程大纲可能会做进一步优化,具体以最终更新为准),课程名将变更为<亿级流量电商详情页系统实战(第二版):缓存架构+高可用服务架构+微服务架构>简称第二版.本次免费新增内容将会从9月中旬开始更新,一直到10月底更新完毕

亿级流量电商详情页系统的大型高并发与高可用缓存架构实战

对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里很多朋友对缓存技术的了解与掌握,仅仅停留在掌握redis/memcached等缓存技术的基础使用,最多了解一些集群相关的知识,大部分人都可以对缓存技术掌握到这个程度.然而,仅仅对缓存相关的技术掌握到这种程度,无论是对于开发复杂的高并发系统,或者是在往Java高级工程师.Java资深工程师.Java架构师这些高阶的职位发展的过程中,都是完全不够用的.技术成长出现瓶颈,在自己

腾讯数十亿广告的秘密武器:利用大数据实时精准推荐

在过去几年,你在腾讯做了什么来推动大数据的应用? 过去三年,我一直在坚持一件事:推动大数据的实时应用.现在从国外数据中心的数据,一秒钟可以达到深圳数据中心,这就是腾讯具备的数据能力.有了这个能力,就可以做很多商业化行为的模式. 目前腾讯收集的数据已经超过了1万亿条, 计算机规模已经超过了8千8百台.这么庞大的数据如果能实时处理,就能发挥出巨大的商业价值.这个商业价值就是精准推荐. 每年腾讯几十亿的广告,其基础来自于数据的精准推荐.实时数据推荐还可以用于视频的推荐,腾讯音乐推荐,新闻客户端的推荐,

万亿级人民币大写精准转换

近期因工程需要实现人民币大写转换,本来想这已经是一个古老的话题了,互联网上应当有成熟的答案,但是没想到,下载了十来个范例,没有一个令人满意.有些点击数万次的范例,确糟糕的难以想象.一个看似简单的问题,其实并不简单,因此,不得不花两天时间,对这个小小的问题作了深入的研究,设计了数个算法,最后只保留了一个方法. 实现类cn.jadepool.util.CastRMB,支持亿万元级人民币大写的精准转换.源代码已经打包在jadepool-1-2-GBK.zip资源文件中,可以通过以下链接http://d

亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构第二版视频教程

14套java精品高级架构课,缓存架构,深入Jvm虚拟机,全文检索Elasticsearch,Dubbo分布式Restful 服务,并发原理编程,SpringBoot,SpringCloud,RocketMQ中间件,Mysql分布式集群,服务架构,运 维架构视频教程 14套精品课程介绍: 1.14套精 品是最新整理的课程,都是当下最火的技术,最火的课程,也是全网课程的精品: 2.14套资 源包含:全套完整高清视频.完整源码.配套文档: 3.知识也 是需要投资的,有投入才会有产出(保证投入产出比是

Netty Redis 亿级流量 高并发 实战 (长文 修正版)

目录 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -30[ 博客园 总入口 ] 写在前面 1.1. 快速的能力提升,巨大的应用价值 1.1.1. 飞速提升能力,并且满足实际开发要求 1.1.2. 越来越多.大量的应用场景 1.2. 高并发架构中的6大集群 1.2.1. 支撑亿级流量的IM整体架构 1.2.2. IM通讯协议介绍 1.2.3. 长连接和短连接 1.2.4. 技术选型 1.3. 基于Redis 设计分布式Session 1.3.1. SessionLocal本地会话