当前位置:   article > 正文

营销增益模型(upflit)原理与应用_upflit模型

upflit模型


1.前言

营销增益模型是一种非常实用的数据科学技术,可以帮助商家提高营销效率和收益

1.1 营销增益模型的简单介绍

营销增益模型(Uplift Model)是一种用于预测营销干预对用户行为或状态的因果效应的模型。它可以帮助商家识别那些对营销活动最敏感的用户群体,从而实现精准营销,避免浪费资源和干扰用户

1.2 为什么要学习增益模型

传统的营销模型通常只关注用户的响应率(Response Rate),即用户在接受营销干预后是否会产生预期的行为(如购买、点击等)。然而,这种方法忽略了用户在没有营销干预时的自然行为(如自发购买、自然流失等),从而无法区分出真正受到营销影响的用户和本来就会产生行为的用户。假设这样的一个场景:某电商平台想要通过发放优惠券来提高用户的购买率,他可能会选择那些购买率最高的用户进行投放。然而,这样做可能会导致以下问题:

  • 一部分用户本来就有很高的购买意愿,即使没有优惠券也会购买,因此给他们发放优惠券是没有必要的,甚至会降低商家的利润;
  • 另一部分用户可能对优惠券不感兴趣,或者对营销活动有反感,因此给他们发放优惠券是无效的,甚至会影响他们的购买意愿;
  • 只有少数用户是真正受到优惠券影响而产生购买行为的,他们才是商家真正想要触达的目标人群。
    image.png

因此,传统的营销模型可能会误导商家做出错误的决策,浪费资源和机会,降低营销效果。
而增益模型则可以解决这个问题,它不仅考虑了用户在接受营销干预后的行为,还考虑了用户在没有接受营销干预时的行为,从而计算出营销干预带来的增量效果(Incremental Effect),即用户因为营销而产生行为的概率。
通过增益模型,商家可以找出那些对营销活动最敏感的用户群体,即只有在接受营销干预后才会产生行为的用户。这样,商家可以针对这些用户进行精准投放,提高转化率和收益,同时减少资源浪费和用户干扰。

1.3 能在实际工作中发挥什么作用

在实际工作中,增益模型可以发挥很多作用,例如:

  • 广告投放:增益模型可以帮助商家识别那些只有在看到广告后才会点击或购买的用户,从而提高广告效果和投放效率;
  • 交叉销售:增益模型可以帮助商家识别那些只有在收到推荐或优惠券后才会购买其他产品的用户,从而提高交叉销售的成功率和收益;
  • 用户留存:增益模型可以帮助商家识别那些只有在收到激励或提醒后才会继续使用产品或服务的用户,从而提高用户留存率和忠诚度;
  • 用户体验测试:增益模型可以帮助商家评估产品或服务的改进是否对用户的行为或满意度有正向的影响,从而提高用户体验和口碑。

2.增益模型原理与评价

2.1 增益模型的定义和符号

增益模型的目标是预测个体水平的因果效应,即个体接受营销干预后的行为与不接受营销干预时的行为之间的差异。我们可以用以下符号来表示这个差异:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示第外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传个个体的因果效应,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示第外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传个个体在接受营销干预后的行为(如购买、点击等),外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示第外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传个个体在不接受营销干预时的行为。这里,我们假设外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传都是二元变量,取值为0或1。
由于我们无法直接计算每个个体的因果效应,我们只能通过统计方法来估计它。一种常用的方法是计算条件平均因果效应(Conditional Average Treatment Effect,CATE),即给定一组特征(如年龄、性别、地区等)下,不同个体之间因果效应的平均值。我们可以用以下公式来表示CATE
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其中,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示一组特征,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示第外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传个个体的特征,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示期望值。这个公式的意思是,在给定一组特征外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传的条件下,不同个体之间因果效应的平均值等于他们在接受营销干预后的行为与不接受营销干预时的行为之差的期望值。

2.2 增益模型的建模方法

增益模型的建模方法主要有以下几种:

  • 单模型法(Single Model Method):这种方法只使用一个模型来直接预测因果效应外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传,即

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其中,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传是一个回归函数,可以是线性回归、逻辑回归、决策树、神经网络等任何机器学习算法。这种方法的优点是简单易实现,缺点是可能存在偏差和方差较大的问题。

  • 双模型法(Two Model Method):这种方法使用两个模型分别预测用户在接受和不接受营销干预后的行为概率,即

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其中,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传都是分类函数,可以是逻辑回归、支持向量机、随机森林等任何机器学习算法。然后,用两个模型的预测结果相减得到因果效应的估计值,即

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这种方法的优点是可以利用已有的分类算法,缺点是需要两个模型同时训练和预测,且可能存在误差累积的问题。

  • 分类法(Classification Method):这种方法将用户根据他们在接受和不接受营销干预后的行为分为四类:
    • 确定性用户(Sure Thing):无论是否接受营销干预,都会产生相同的行为,即外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    • 受益用户(Persuadable):只有在接受营销干预后才会产生预期的行为,即外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    • 损失用户(Do Not Disturb):只有在不接受营销干预时才会产生预期的行为,即外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    • 失效用户(Lost Cause):无论是否接受营销干预,都不会产生预期的行为,即外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传然后,使用一个多分类模型来预测每个用户属于哪一类,即

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其中,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示第外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传类用户(外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传),外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示概率值,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传是一个多分类函数,可以是多项式逻辑回归、多类支持向量机、多输出决策树等任何机器学习算法。最后,用受益用户的概率减去损失用户的概率得到因果效应的估计值,即
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
这种方法的优点是可以直接识别出目标用户群体,缺点是需要较大的样本量和较高的数据质量

增益模型python实现思路参考

  • 首先,使用XGB模型(XGBClassifier)来训练数据集。XGB模型是一种基于梯度提升树(gradient boosting tree)的机器学习算法,它可以用于分类或回归问题。
  • 然后,使用训练好的模型来预测测试集的结果。预测结果是一个二维数组,每一行代表一个样本,每一列代表一个类别的概率。这里有四个类别,分别是:
    • CN:没有接受处理,也没有发生目标行为;
    • CR:没有接受处理,但发生了目标行为;
    • TN:接受了处理,但没有发生目标行为;
    • TR:接受了处理,并发生了目标行为。
  • 接着,根据预测结果计算每个样本的提升分数(uplift score),它表示处理对目标行为的影响程度。提升分数的计算公式是:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

from sklearn.model_selection import train_test_split
import xgboost as xgb

# 数据集划分,按照7:3比例划分数据集
X = df_model.drop(['target', 'target_class'], axis=1)
y = df_model.target_class
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42, stratify=df_model['treatment'])

# 使用XGB模型训练数据集
result = pd.DataFrame(X_test).copy()
uplift_model = xgb.XGBClassifier().fit(X_train.drop('treatment', axis=1), y_train)

uplift_proba = uplift_model.predict_proba(X_test.drop('treatment', axis=1))
result['proba_CN'] = uplift_proba[:, 0]
result['proba_CR'] = uplift_proba[:, 1]
result['proba_TN'] = uplift_proba[:, 2]
result['proba_TR'] = uplift_proba[:, 3]

#计算增益分数
result['uplift_score'] = result.eval('、
    proba_CN/(proba_CN+proba_CR)+ proba_TR/(proba_TN+proba_TR)- proba_TN/(proba_TN+proba_TR)- proba_CR/(proba_CN+proba_CR)') 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2.3营销增益模型的评价

营销增益模型的评价指标,关于预测准确与否评价主要为:

  • 平均绝对误差(Mean Absolute Error,MAE):这是一种用于衡量回归模型预测精度的指标,它表示预测值和真实值之差的绝对值的平均值,即外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传其中,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示样本数量,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示第外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传个个体的因果效应的预测值,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传表示第外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传个个体的因果效应的真实值。MAE越小,表示模型的预测精度越高。
  • 均方误差(Mean Squared Error,MSE):这也是一种用于衡量回归模型预测精度的指标,它表示预测值和真实值之差的平方的平均值,即外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传其中,符号的含义同上。MSE越小,表示模型的预测精度越高。

以计算MAE为例,python实现参考:

# 导入numpy库
import numpy as np

# 定义一个函数来计算MAE
def mean_absolute_error(y_true, y_pred):
    # 将输入转换为numpy数组
    y_true = np.array(y_true)
    y_pred = np.array(y_pred)
    # 计算绝对误差
    abs_error = np.abs(y_true - y_pred)
    # 计算平均值
    mae = np.mean(abs_error)
    # 返回结果
    return mae

############################
y_true = [0.1, 0.2, 0.6, 0.9] # 真实值
y_pred = [0.1, 0.25, 0.7, 0.9] # 预测值
mae = mean_absolute_error(y_true, y_pred) # 调用函数
print(mae) # 打印结果
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

关于模型的预测的增益效果评价指标主要为:

  • Qini曲线是一种用于展示增益模型效果的图形,它的横轴是实验组的比例,纵轴是实验组和对照组的收益差异。Qini曲线越高,表示增益模型效果越好。
  • Qini系数(Qini Coefficient):就是Qini曲线与对角线之间的面积与最优曲线与对角线之间的面积的比值。 Qini系数的取值范围是0到1,越接近1表示增益模型效果越好,越接近0表示增益模型效果越差。

增益曲线python实现思路参考

# 导入matplotlib库
import matplotlib.pyplot as plt
import pandas as pd 
import numpy as np 
# 定义一个函数来绘制增益曲线
def uplift_curve(y_true, y_pred):
    # 将输入转换为pandas数据框
    df = pd.DataFrame({'y_true': y_true, 'y_pred': y_pred})
    # 按照预测值降序排序
    df = df.sort_values(by='y_pred', ascending=False)
    # 计算累积人数和累积转化人数
    df['cumulative_size'] = np.arange(start=1, stop=df.shape[0] + 1)
    df['cumulative_size'] = df['cumulative_size'] / df.shape[0]
    df['cumulative_target'] = np.cumsum(df['y_true'])
    df['cumulative_target'] = df['cumulative_target'] / df['y_true'].sum()
    # 绘制增益曲线
    plt.figure(figsize=(10, 10))
    plt.plot([0, 1], [0, 1], label='Random Model')
    plt.plot(df['cumulative_size'], df['cumulative_target'], label='Uplift Model')
    plt.xlabel('Proportion of customers targeted')
    plt.ylabel('Cumulative gain')
    plt.title('Uplift Curve')
    plt.legend()
    plt.show()

############################
y_true = [0, 1, 0, 1, 0, 1, 0, 1] # 真实值,表示是否购买,1为是,0为否
y_pred = [0.1, 0.8, 0.2, 0.7, 0.3, 0.6, 0.4, 0.5] # 预测值,表示营销增益得分,越高越好
uplift_curve(y_true, y_pred) # 调用函数
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

Qini系数python实现思路参考:

# 导入pandas库
import pandas as pd

# 定义一个函数来计算Qini系数
def qini_coefficient(y_true, y_pred):
    # 将输入转换为pandas数据框
    df = pd.DataFrame({'y_true': y_true, 'y_pred': y_pred})
    # 按照预测值降序排序
    df = df.sort_values(by='y_pred', ascending=False)
    # 计算累积人数和累积转化人数
    df['cumulative_size'] = np.arange(start=1, stop=df.shape[0] + 1)
    df['cumulative_size'] = df['cumulative_size'] / len(df)
    df['cumulative_target'] = np.cumsum(df['y_true'])
    df['cumulative_target'] = df['cumulative_target'] / df['y_true'].sum()
    # 计算随机模型和最优模型的累积转化人数
    random_target =  df['cumulative_size'] * df['y_true'].mean()
    qini_area = (df['cumulative_target'] - random_target).sum() / df.shape[0]
    # 计算最优曲线下的面积
    perfect_area = (1 - random_target).sum() / df.shape[0]
    # 计算Qini系数
    qini_coef = qini_area / perfect_area
    # 返回结果
    return qini_coef

############################
y_true = [0, 1, 0, 1, 0, 1, 0, 1] # 真实值,表示是否购买,1为是,0为否
y_pred = [0.1, 0.8, 0.2, 0.7, 0.3, 0.6, 0.4, 0.5] # 预测值,表示营销增益得分,越高越好
qini_coef = qini_coefficient(y_true, y_pred) # 调用函数
print(qini_coef) # 打印结果
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

2.4 归纳-营销增益模型应用流程

实际工作中营销增益模型的应用步骤大致如下:

  • 数据收集:根据业务目标和场景,收集相关的数据,包括用户特征、行为、偏好等,以及营销干预的类型、时间、频率等,以及用户在接受或不接受干预后的行为或状态等。
  • 数据清洗:对收集到的数据进行质量检查,处理缺失值、异常值、重复值等问题,进行数据转换、规范化、编码等操作,使数据符合建模要求。
  • 数据划分:根据数据量和特点,选择合适的数据划分方法,将数据集划分为训练集、验证集和测试集,保证数据分布的一致性和稳定性。
  • 模型选择:根据业务目标和场景,选择合适的增益模型方法,如单模型法、双模型法或分类法等,以及相应的机器学习算法,如线性回归、逻辑回归、决策树、神经网络等。
  • 模型训练:使用训练集来训练选择的增益模型,并使用验证集来调整模型参数,如学习率、正则化系数、树深度等,以提高模型性能。
  • 模型评估:使用测试集来评估训练好的增益模型,并使用相应的评估指标,如MAE、MSE、Qini系数或增益曲线等,以衡量模型的预测精度和效果。
  • 模型应用:将训练好并评估过的增益模型应用到实际业务中,根据模型预测结果,识别出目标用户群体,并针对他们进行精准营销干预,同时监控并分析营销效果,并根据反馈不断优化模型。

3.行业成功案例-以**Uplift **增益模型在腾讯视频增长业务的应用为例

这里拆解业界腾讯公开因果分析应用资料,通过2个成功增益应用场景案例加深读者对Uplift 实际业务应用的理解

3.1提播放-基于用户广告投放增益定向拉活:

  • 业务背景|需求:提供一个投放后,有增量且转化好的视频广告投放策略;
  • 解决过程**:是否投放广告作为因(Treatment),用户是否点击播放**为果(Outcome),计算干预用户前后有转化增量的收益,最终抽取增益效果为前30%用户群进行广告投放
    图来自datafun《因果推断在腾讯视频增长业务的应用》
  • 项目结果:相比通投(全部投放广告),播放转化率的相对差异提升0.028pp(百分点)

3.2防流失-基于广告投放用户留存增益的内部流量位运营

  • 业务背景|需求:腾讯视频精选页 中的广告位是增长营销团队对用户重要触点,但也对用户使用产生了干扰,导致用户流失(留存降低)
    图来自datafun《因果推断在腾讯视频增长业务的应用》
  • 解决过程:通过Uplift 建模,将是否被资源位触达作为因(treatment),用户平台app留存作为果(outcome),提取相关472个特征进行数据建模,计算资源位对用户留存的影响增益,经建模发现:处于后30%分位数的用户,为负向影响用户。去掉月活uplift后5%分位的用户后,就可以实现对次留的无显著影响【这里的建模目标:用户干扰尽可能小的情况提高广告为的曝光量,是一个多目标优化问题
    图来自datafun《因果推断在腾讯视频增长业务的应用》
  • 结果:相比通投,平台次留的相对差异改善0.11pp,实验组对平台次留的影响已经不显著

4、总结

本文介绍了营销增益模型的基本概念、原理、评价方法和应用流程,增长业务中的成功应用案例,希望能够帮助读者理解营销增益模型的底层逻辑以及如何应用其帮助企业优化营销策略,提高营销投入产出比。文章不足之处希望可以多多指正,同时希望未来通过归因分析方法解决更多的业务问题,为企业创造价值。
参考资料:
datafun《因果推断在腾讯视频增长业务的应用》
利用Uplift模型识别营销敏感用户提升转化率
【Uplift】评估方法篇

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/147448
推荐阅读
相关标签
  

闽ICP备14008679号