在之前的文章中我们介绍了使用因果推断中的去除混杂和反事实的相关理论来纠正推荐系统中的偏差问题。在这篇文章中主要和大家分享uplift model相关知识和方法。
例子
小夏的商铺在上次请了明星代言后,销量有所上升,但是他不清楚是不是每个人都对这个明星感冒,有的用户可能没看到广告也打算购买。如果小夏可以给部分用户推送明星代言广告,就可以节约一些成本了(机智的小伙伴可能已经发现了,这里就是一个反事实推断的过程,即如果不展示广告会是什么样呢?)。这里就可以用uplift model来建模。
基础知识
uplift model的作用是去探究因果效应(causal effect),即上述例子中展示与不展示广告的作用有多大。但是一般而言我们是只能得到一方面的数据集,即当前状态下要么是展示了广告,要么是没展示广告。
treatment(T):在对象上进行的干预,即do,展示与不展示广告
variable(X):出treatment之外自带的属性特征,如年龄、性别等,这些属性多半是不受干预影响的,即无论是否展示广告,用户的性别特征都不会改变
ITE:individual treatment effect,单个用户的效应, I T E = Y 1 ( x ) − Y 0 ( x ) ITE=Y_1(x)-Y_0(x) ITE=Y1(x)−Y0(x)
ATE:average treatment effect,整体的平均效应, A T E = E ( Y 1 ( x ) − Y 0 ( x ) ) ATE=E(Y_1(x)-Y_0(x)) ATE=E(Y1(x)−Y0(x))
S-Learner
通过现有模型(LR,GBDT,NN等)对干预和不干预的数据进行训练,在预测的时候分别对该用户被干预和不被干预时的P进行预测计算,相减后便是ITE