Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

阿里巴巴WSDM Cup 2018获奖论文:一种基于 Stacking 集成模型的 KKBOX 用户流失

导语:在 2 月份举办的网页搜索与数据挖掘会议 WSDM 上,阿里巴巴获得了 WSDM Cup 2018 的第二名。本文对获奖论文进行了技术解读。

预测方法


1.  介绍

KKBOX 是亚洲一家音乐流媒体公司,其业务模式与 Spotify Apple Music 类似。对于音乐流媒体业务来说,付费会员非常重要,不仅直接影响订阅收入,还会间接影响广告收入。

本次比赛的目标是利用 KKBOX真实的用户行为数据,预测会员是否会流失。比赛中我们面临了很多挑战,如正负样本不均衡、脏数据等问题。我们采取了一些列措施来解决这些问题,比如建立数据清洗和交叉验证机制,使用Stacking Model 来提升准确率。

2.  问题定义

本次比赛的目标是预测当月会员到期的用户中哪些会流失。这里“流失”的定义是会员到期后30天内没有续费。

本次比赛的结果采用 Log Loss 进行评估,Log Loss 的计算公式如下:


公式中,N 表示测试样本数, 表示测试样本最终是否流失(1表示流失,0表示没有流失), 为模型预测用户是否会流失的概率(取值0-1)。

3.  方法

考虑到模型的数据量和开发效率,我们采用了阿里云的 DataWorks 作为开发平台。


脏数据问题例如年龄数值小于 0或者大于 100,注册时间和支付金额中的极端异常值。我们处理脏数据的方式包括根据分布将异常值转换为合理取值,删除无法解释且不包含重要信息的数据。

训练样本中, is_churn 是样本的 label,训练样本取自 20172月和 3月订阅到期的用户。训练数据的正负样本极不均衡,以 2月份订阅到期的训练样本为例,在总共 992931条数据中, is_churn = 1的样本只有 63471,占比 6.4%

传统的分类算法比如决策树和逻辑回归都是对正负样本比例有要求。我们使用欠采样的方式对训练样本进行了处理,分别尝试了 131518的正负样本配比,在最终模型中,我们根据交叉验证的结果选择了最优配比。

3.2 特征工程

特征工程阶段,我们从计算逻辑、时间窗、额外条件三个维度将数据进行组合。如下图,右边特征列表中 last_7_auto_tran_cnt 表示最近 7天(时间窗)自动完成的(额外条件)订单笔数(计算逻辑)。特征组合完成后,我们对特征还要一系列的处理,如 log 转换、 one-hot 编码。


 

  我们通过交叉验证来测试特征的有效性。在交叉验证中我们发现,最有效的特征包括: 1. 最近 60 90 天自动完成的订单笔数 2. 最近一笔交易是否被取消或自动完成 3. 账号注册的方式。最终,我们提取了 300 多个特征,并根据交叉验证的结果留下了 204 特征。

3.3 模型

我们使用了一个两阶段模型来预测最终的流失情况。如下图,在第一阶段,提取出的特征会输入逻辑回归、随机森林、 XGBoost 三个模型,而第一阶段模型的输出会被当做第二阶段的特征,最终组成一个 Stacking Model


如下图,我们采用了 5-fold stacking 策略。

在第一阶段,将训练数据均匀地分成 5份,使用“留一法”训练 5个逻辑回归模型,用这 5个模型分别去预测剩下的一份训练数据和测试数据,将 5份预测的训练数据合并,可以得到一份新的训练数据 NewTrainingData,将 5份预测的测试数据采用均值法合并,得到一份新的测试数据 NewTestData。用同样的方法再分别训练随机森林和 XGBoost,新的训练和测试数据上,就可以得到 3个模型的分数。

第二阶段,将上一阶段的 NewTraningData 作为训练数据, NewTestData 作为测试数据,重新训练一个 XGBoost 模型,得到最终的预测分数。这种方法可以避免过拟合,学习出特征之间组合的信息,还能提高预测的准确率。

 


3.4 模型评估

交叉验证不仅可以做特征筛选,在模型阶段,还给调参、 Stacking Model 策略的调整提供依据。下图可以看到我们每一步的优化带来的提升,最初的 LR 模型可以得到 0.2106的分数, XGBoost 和特征提取技术可以把分数提升到 0.1151,最终 Stacking Model 和调参让我们得到 0.0934的分数。

4.  结论

本文我们介绍了在参加 WSDM Cup 2018 中所做的实践,最终我们获得了第二名的成绩。对几个关键的优化技术在文中做了阐述,如数据预处理阶段的欠采样、特征提取方式、Stacking Model。通过分析和测试,我们发现这些方法都可以提升预测的准确率,后续我们还将测试更多的超参数,并引入深度学习进行优化。

论文原文地址:

https://wsdm-cup-2018.kkbox.events/pdf/7_A_Practical_Pipeline_with_Stacking_Models_for_KKBOXs_Churn_Prediction_Challenge.pdf

理论
1
暂无评论
暂无评论~