Feature Selection Methods for Uplift Modeling

最近uber的一篇关于uplift模型中特征选择的文章。虽然说最近uber的境遇不太好,但是这篇文章的几个作者的工作还是一如既往的扎实,对当前我个人的工作有一定的指导。

本文中作者指出,uplift模型中的特征筛选跟传统ML中的特征筛选并不一样,表现可能会有比较大的差异,因为传统特征筛选的方式更加关注于对于最后结果的影响,但是uplift是没有ground true的,同时对最后结果有显著影响的特征,不一定对所预测的lift会有影响,所以之前特征筛选的方式表现并不好。

做好特征筛选,会有如下好处:

  1. 训练中更快的计算速度
  2. 更准确的预测,避免过拟合
  3. 维护pipeline的成本更低
  4. 模型更具有解释性

文章中提出两大类别的特征选择算法:filter方法和embedded方法。

对于filter方法,有:

  • F filter,基于outcome variable做线性回归,特征包括是否有treatment、基础特征以及他们的交叉,特征的重要性定义为交叉特征的F统计量
  • LR filter,类似“似然比检验”
  • 基于分布散度的检验,将所有样本根据某个特征分K个桶(超参数),特征重要性定义为这些桶的处理效应的某种散度标准。比如说有C个类别,\(P_k=(p_{k1},\cdots,p_{kC})\)\(Q_k=(q_{k1}\cdots q_{kC})\)分别为第k个组的实验组和对照组比例,重要性定义为\(\Delta=\sum^K_{k=1}\frac{N_k}{N}D(P_k:Q_k)\),其中\(N_k\)表示第k个桶的,分布的散度\(D\)可以用一下几种:
    • KL,\(KL(P_k:Q_k)=\sum_{i=1}^np_{ki}\log \frac{p_{ki}}{q_{ki}}\)
    • ED,\(ED(P_k:Q_k)=\sum_{i=1}^n(p_{ki}-q_{ki})^2\)
    • Chi,\(Chi(P_k:Q_k)=\sum_{i=1}^n\frac{(p_{ki}-q_{ki})^2}{q_{ki}}\)

对于embedded方法,是构建uplift模型中的副产品,可以来自于meta-learner和uplift trees中。比如说T-learner,特征重要性可以定义为其embedded importance score的和;对于uplift trees,特征重要分可以定义为树的分割点对于最后loss function的累计贡献,对于每次分割,计算分布散度的增益,\(\Delta=\sum_{k=\text{left,right}}D(P_k:Q_k)-D(P,Q)\)

主要方法就上面提及到的,文章后面还有基于人造数据和真实数据的评估,在此不做展开。