点击率预估的几个经典模型简介

2024-02-02 14:32

本文主要是介绍点击率预估的几个经典模型简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



点击率预估的几个经典模型简介

2016-02-22 00:32
点击率预估的几个经典模型简介

点击率预估是大数据技术应用的最经典问题之一,在计算广告,推荐系统,金融征信等等很多领域拥有广泛的应用。本文不打算对这个话题做个全面叙述,一方面这过于庞大,另一方面也已经有很多文章和演讲材料相当不错。本文只打算对已有的一些文字作个补充,从贴近实际的角度列举一些经过商业检验的点击率模型。

最经典的模型当然是逻辑回归,这是绝大多数商业公司的选择,简单的逻辑回归有实现容易,训练快速等优点。自从逻辑回归出现后,针对它的改进主要围绕两方面:如何正则化;如何最优化。正则化是机器学习的重要技术,它的主要目的是让防止模型过拟合,目前比较常用的正则化有L1和L2。通常L2在减少预测错误上表现更好,这是因为当两个特征相关时,L1会只选择一个,而让另外一个系数为0,因此可以产生稀疏解;而L2则会同时保留2个特征然后另它们的权重系数收缩。因此在数据维度有限时,L2会既有防止过拟合的优点,还不会导致模型预测损失。然而对于大规模机器学习框架,L1的稀疏解会更有吸引力,加入L1正则化的损失函数在优化后,绝大多数特征的权重都是0。这个特性可以大大减少点击率预估时的内存占用,并提高预测的速度。关于最优化,因为逻辑回归的损失函数是一个可以求导的凸函数,所以通常可以采用梯度下降或者拟牛顿进行最优化。不论是梯度下降,还是拟牛顿,都是频率派的最优化手段,贝叶斯学派也有自己的手段,这就是微软的AdPredictor提出的Bayesian Probit Regression[3]。AdPredictor有一些比较好的特性:它只需要一次迭代就可以收敛到最优解,而不是像梯度法或者拟牛顿法那样需要反复迭代;它不仅能预测出一个样本是正样本的概率,而且还可以给出对于这个概率预测值的置信度,因此很多在线广告公司都采用AdPredictor作为其点击率预估的方法。由于AdPredictor假设特征权重的先验分布遵循高斯分布,因此它相当于是L2正则化,这在许多大规模场景下难以接受,因此Google在13年发表的FTRL-Proximal提供了既是L1正则化,又具备AdPredictor优点的方案,FTRL-Proximal公式较多,读者可以从[7]获得更完整的叙述。

另一方面,回到模型本身,采用简单的线性模型会导致其他一些问题,比如高维场景下,究竟应当如何选择特征,大部分公司以来人工特征工程,随着过程深入,这种方式的收益会逐步达到上限。此外,简单线性模型无法捕捉特征之间的关联,这对于提升长尾用户行为的点击率尤其关键。有一些公司在这些方面也做了不少工作。首先比较重要的是Facebook的工作[4],它的主要贡献在于通过利用非线性模型GBDT来进行特征选择,GBDT的输出作为线性模型逻辑回归的输入,通过这样的级联产生了明显的提升。这种手段应当可以作为新一代点击率预估系统的标准配置。

关于特征关联发现,先来看看排名第一的重定向广告公司Criteo的工作,在其点击率方案中[5]直接利用x_u*M*x_a来修正sigmoid函数,其中M为一个矩阵,x_u和x_a分别代表用户和广告特征,因此矩阵的大小取决于用户和广告特征的基数。通常,这两个数字都会很大,因此矩阵就会变得非常很大和稀疏,Criteo主要是借助于特征Hashing来减少矩阵尺寸,但这会导致冲突情况下无法判断是哪些特征组合信号强的问题。

再来看看Linkedin的LASER系统,由于LASER的作者源自Yahoo内容优化和推荐引擎团队,因此我们可以认为LASER跟Yahoo的工作如出一辙。

点击率预估的几个经典模型简介

LASER点击率预估系统建模跟Criteo类似,都很简单直接,但是引入了上下文信息和更多特征。Y_ijt表示用户i对于广告j在上下文t下是否会点击。相比传统的逻辑回归只用简单的单一种类特征,LASER同时引入了用户特征x_i,广告特征c_j,以及上下文特征z_t,并且还要考虑这些特征之间的相互关联信息。这种建模的思路是解决冷启动问题的有效方式,因为这意味着即便没有很多的用户行为数据,也可以根据特征之间的关联信息作出不算太离谱的预测,当然,如果能够有用户行为数据,则可以锦上添花,为此,LASER把传统逻辑回归的Logit对数差异函数s_ijt分成图中所示的三个组成部分:第一个部分表达了概率密度跟所有一阶特征的关系;第二部分表达了概率密度跟所有特征之间关联程度的关系,包括用户特征和广告特征之间,广告特征和上下文特征之间,以及用户特征和上下文特征之间三种关联,因此称为二阶特征。整个模型如果光有这部分数据,也能够做出比较靠谱的预测,因此把这两部份加起来称作冷启动。相比之下,第三部分称作为热启动,用来表示用户当前对于冷启动选择出的Top K广告的偏好转移,为便于快速实时计算,这部分只包含广告和上下文的一阶特征。

可以看到,冷启动部分是LASER的主要工作,为训练这部分模型,LASER采用了交替方向乘子ADMM算法和L2正则化。ADMM是一种求解优化问题的计算框架,适用于求解分布式凸优化问题,ADMM 通过将大的全局问题分解为多个较小、较容易求解的局部子问题,并通过协调子问题的解而得到大的全局问题的解。在高精度要求下,ADMM 的收敛很慢;但在中等精度要求下,ADMM 的收敛速度可以接受(几十次迭代),因此ADMM非常适合大规模机器学习使用。在LASER里,又采用了一些额外优化,比如在不同分区同时进行计算,然后拿各分区的均值作为ADMM初始化参数,并且动态调节各分区计算的步长,这样在实际中把ADMM的迭代次数可以降到更低(如十多次迭代),因此一方面提升了训练性能,另一方面,也让整个冷启动部分的训练可以在一些不适合机器学习的框架如Hadoop上运行良好。在Spark还不稳定的2013年,这样做的价值是显而易见的。在稀疏方面,LASER没有考虑太多,因此大规模特征,比如百万维以上,是不能采用的。

再来看看阿里的[2]CGL,意思是Coupled Group Lasso,就是在损失函数中分别用Group Lasso去正则化用户特征和广告特征。在文章前边我们提到逻辑回归正则化主要有L1和L2,其中L1也可叫Lasso,L2也可叫Ridge,除了L1和L2之外,还有一些其他的手段,比如结合L1和L2优点的Elastic Net,而Group Lasso是对Lasso的推广,通过预先定义分组,以组为单位进行变量选择。为了建模特征之间的关联,CGL把普通逻辑回归的sigmoid函数修改为如下:

点击率预估的几个经典模型简介

其中x_u和x_a分别代表用户和广告特征,因此x_u*M*x_a就可以表征特征之间的关联,而把矩阵M分解W*V'后就可以转化成图中的形式。采用这种方法改写的原因是避免引入过于庞大的M矩阵,因此模型的参数可以少很多。

在解决特征组合的手段中,除了上面提到的针对逻辑回归的工作之外,还有FM(Factorization Machine),FM的建模跟LASER其实有一些类似,看下边公式就知道了,都是把线性关系和特征笛卡尔积共同列出做统一优化,因此也具备特征关联发现功能。

点击率预估的几个经典模型简介

在以FM为核心的几个方案赢得一些点击率预估大赛之后,FM已经为更多的公司所接受,从竞赛和学术方案走向商业成熟。

前边列举的主要是机器学习手段,而我们知道深度学习系统也能够给点击率预估带来很大收益,百度是这方面的先行者之一,由于相关资料少我们就不单独列举了。由于LASER是笔者团队曾经实现的系统,因此篇幅有些不合时宜得多。关于如何设计一个现代的点击率系统,请诸位参考德川同学撰写的“关于点击率模型,你知道这三点就够了”一文,德川同学采用的GBDT+FM,是经过商业检验的优秀方案,也是非基于深度学习的点击率预估系统的最佳实践之一。

参考文献:

[1] LASER: A Scalable Response Prediction Platform For Online Advertising, Deepak Agarwal, WSDM 2014

[2] Coupled group lasso for web-scale ctr prediction in display advertising, Yan, Ling and Li, Wu-jun and Xue, Gui-Rong and Han, Dingyi, ICML 2014

[3] Web-scale bayesian click-through rate prediction for sponsored search advertising in microsoft's bing search engine, Graepel, Thore and Candela, Joaquin Q and Borchert, Thomas and Herbrich, Ralf, ICML 2010

[4] Practical lessons from predicting clicks on ads at facebook, He, Xinran and Pan, ADKDD 2014

[5] Simple and scalable response prediction for display advertising, Chapelle, Olivier, ACM Transactions on Intelligent Systems and Technology 2014

[6] Click-through prediction for advertising in twitter timeline, Li, Cheng and Lu, Yue and Mei, Qiaozhu, SIGKDD 2015

[7] 冯扬, 在线最优化求解

这篇关于点击率预估的几个经典模型简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670999

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依