首页 > 其他分享 >Uplift Model介绍

Uplift Model介绍

时间:2023-06-25 11:55:42浏览次数:42  
标签:模型 样本 建模 介绍 Uplift Model uplift

背景

CTR、CVR模型建模的是预估看过广告之后的点击率和转化率,称为响应模型(response model),建模的是相关性,但是缺点是没法区分这个点击转化中有多少是广告带来

Uplift Model是估计用户因为广告而购买的概率,这是一个因果推断的问题,建模的是营销带来的增量

Reponse model: P(Y = 1 ∣ X) ,看过广告之后购买的概率
Uplift model: P(Y = 1 ∣ X , T) ,因为广告而购买的概率,其中T表示某种干预策略(如是否推送广告)

 

Uplift Model建模

Uplift Model的建模目标是:P(Y | X, T = 1) - P(Y | X, T = 0),即建模营销带来的增量

Uplift Model建模有以下几个难点:

1. 获取到的训练数据是不完整的,对于个体来说,我们不可能同时观测到在有干预和没有干预两种情况下的表现,也就是因果推断中经常提到的反事实的问题。我们应当如何去建模呢?可以换一种思路,从人群的角度来对平均因果效应做统计,假设我们有两群同质用户,均来自一线城市/年龄段为25-35/女性,我们可以对其中一组用户进行广告投放,另外一组不进行任何干预,之后统计这两群人在转化率上的差值,这个差值可以被近似认为是具备同样特征的人可能的平均因果效应。所以Uplift Model本质是从训练样本中学习条件的平均因果效应,同时因为模型是具有一定的泛化能力,可以对没有见过的样本也进行预测

2. Uplift建模对样本的要求是比较高的,需要服从CIA ( Conditional Independence Assumption ) 条件独立假设,要求X与T是相互独立的。什么样的样本有这样的特征,又如何获取呢?最简单的方式就是随机化实验A/B Test,因为通过A/B Test拆分流量得到的这两组样本在特征的分布上面是一致的,也就是X和T是相互独立的。因此随机化实验是Uplift Model建模过程中非常重要的基础设施,可以为Uplift Model提供无偏的样本

 

差分响应模型(Two-Model Approach)

包含了两个响应模型,其中一个模型G用来估计用户在有干预情况下的响应,另外一个模型G'是用来学习用户在没有干预情况下的响应,之后将两个模型的输出做差,就得到我们想要的uplift。这种建模方法的优点是比较简单容易理解,同时它可以套用我们常见的机器学习模型,如LR,GBDT,NN等,所以该模型的落地成本是比较低的,但是该模型最大的缺点是精度有限,这一方面是因为我们独立的构建了两个模型,这两个模型在打分上面的误差容易产生累积效应,第二是我们建模的目标其实是response而不是uplift,因此对uplift的识别能力比较有限。

 

差分响应模型升级版(One-Model Approach)

进一步地,还有一个基于One Model的差分响应模型,它和上一个模型最大差别点在于,它在模型层面做了打通,同时底层的样本也是共享的,之所以能实现这种模型层面的打通,是因为我们在样本的维度上做了一个扩展,除了user feature之外,还引入了与treatment相关的变量T ( T如果是0,1的取值可以建模single treatment,T也可以扩展为0到N,建模multiple treatment,比如不同红包的面额,或者不同广告的素材 ),One Model版本和Two Model版本相比最大的优点是训练样本的共享可以使模型学习的更加充分,同时通过模型的学习也可以有效的避免双模型打分误差累积的问题,另外一个优点是从模型的层面可以支持multiple treatment的建模,具有比较强的实用性。同时和Two Model版本类似,它的缺点依然是其在本质上还是在对response建模,因此对uplift的建模还是比较间接,有一定提升的空间。

 

Modeling Uplift Directly

 

所以后续也有相关研究提出了第三种建模方法,通过对现有的模型内部进行深层次的改造来直接刻画uplift,其中研究较多的是基于树模型的uplift建模,下面主要介绍它的思想,在传统的决策树构建中,最重要的环节是分裂特征的选择,我们常用的指标是信息增益或者信息增益比,其背后的含义还是希望通过特征分裂之后下游节点的正负样本的分布能够更加的悬殊,也就代表类的纯度变得更高。类似的,这种思想也可以引入到Uplift Model的建模过程中,虽然我们并没有用户个体的uplift直接的label,但是我们可以通过treatment组和control组转化率的差异来刻画这个uplift,以图中左下角的图为例,我们有T和C两组样本,绿色的样本代表正样本,红色的代表负样本,可以看到在分裂之前T和C两组正负样本的比例比较接近,但是经过一轮特征分裂之后,T和C组内正负样本的比例发生了较大的变化,左子树中T组全是正样本,C组全是负样本,右子树正好相反,C组的正样本居多,意味着左子树的uplift比右子树的uplift更高,即该特征能够很好的把uplift更高和更低的两群人做一个区分。如何从数学上度量这种概率分布的差异的方式呢?一些文章提出了可行的方法,比如基于KL散度,欧式距离,卡方距离的等等。这种模型的优点是可以直接对uplift进行建模,因此它的精度理论上是更高的,但是在应用层面我们需要做大量的改造和优化,除了前面介绍的分裂规则之外,我们还需要改造它的loss函数,后续的剪枝等一系列的过程,所以它的实现成本是比较高的。

 

Uplift Model建模评估

 

标签:模型,样本,建模,介绍,Uplift,Model,uplift
From: https://www.cnblogs.com/xumaomao/p/17502568.html

相关文章

  • Maven的maven-resources-plugin插件介绍
    Maven的maven-resources-plugin插件是一个用于处理资源文件的插件。它在Maven构建过程中负责复制项目中的资源文件到生成的目标目录,使得这些资源文件可以被应用程序访问和使用。该插件具有以下特点和功能:复制资源文件:maven-resources-plugin插件会将项目中的资源文件(如......
  • 【数据结构】树的介绍
    前言......
  • linux memblock 介绍
    memblock作用内核初始化阶段是用引导内存分配器memblock进行管理,因为内核里面有很多内存结构体,不可能在静态编译阶段就静态初始化所有的这些内存结构体。另外,在系统启动过程中,系统启动后的物理内存分配器本身也需要初始化,如伙伴分配器,那么伙伴分配器如何获取内存来初始化自己......
  • spring aop里的三种不同类型的自动代理介绍
    springaop里的三种不同类型的自动代理介绍MetadataautoproxyingBeanNameAutoProxyCreatorDefaultAdvisorAutoProxyCreator Metadataautoproxying介绍在SpringAOP中,Metadataautoproxying(元数据自动代理)是一种基于元数据配置的自动代理创建方式,它是我们最常用的一种自......
  • 云掌柜多商户点餐小程序功能介绍
    详情内容:云掌柜多商户点餐小程序源码,基于uniapp前端+laravel框架开发,全部源码无加密,可二次开发。类似肯德基,麦当劳,喜茶等小程序多店铺模式,支持子商户模式,云掌柜点餐小程序是一款功能强大、灵活多样的点餐平台、适用于各类餐饮行业,帮助商家提升服务质量和效率,增加收入,支持私有化......
  • mysqldump 介绍
    使用mysqldump命令来备份MySQL数据库。mysqldump命令是MySQL自带的备份工具,可以将MySQL数据库备份成SQL文件。mysqldump是MySQL用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATETABLE、INSERT等。mysqldump的运行机制......
  • 跨域攻击的方法介绍
    跨域攻击的方法介绍目录跨域攻击的方法介绍一、内网中的域林二、跨域攻击方法三、获取域信息四、利用域信任密钥跨域五、利用krbtgt哈希值跨域一、内网中的域林很多大型企业都拥有自己的内网,一般通过域林进行共享资源。根据不同职能区分的部门,从逻辑上以主域和子域进行区分,以方......
  • Nodejs介绍与安装
    Nodejs介绍与安装介绍Nodejs是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境Nodejs采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模Nodejs大部分基本模块都用JavaScript编写。......
  • Servlet方法介绍
     publicvoidinit(ServletConfigconfig)throwsServletException{this.config=config;System.out.println("init...");}publicServletConfiggetServletConfig(){returnconfig;} ......
  • Java注解介绍
    1.元注解Java定义了4个标准得meta-annotation,用于对注解作说明@Target:描述注解的使用范围,即注解可以用在什么地方(如类,方法、成员变量等)@Retention:表示注解的生命周期(SOURCE<CLASS<RUNTIME)(一般选择RUNTIME)@Document:说明注解是否被包含在javadoc中@Inherited:说......