首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深度多目标学习模型

概述

本文主要介绍一个保险公司数据挖掘场景的建模,本场景为一个二分类预测问题,需要对新出现的样本进行实时预测。该场景具有训练集和预测集时间跨度大、特征预测能力弱、训练集和预测集分布差异大等难点。针对这些难点主要采用目标逼近分析、GBDT/Xgboost获取组合特征、特征筛选、多目标多梯度优化等方式提升模型效果。考虑到金融数据安全敏感性,本文中的数据挖掘场景为脱敏后的场景,属于某类客户转化率问题。

问题描述与分析

每个样本可以有3个标签,分别为一月转化、三月转化和一年转化,其中一年转化为主标签,是模型的主要优化目标。

一月转化:在样本出现当月,如果样本满足某种规则,则一月转化标签为正,否则为负,其中一月转化的样本比例70%左右。

三月转化:在样本出现3个月后,如果样本满足某种规则,则三月转化标签标记为正,否则为负,其中三月转化的样本比例58%左右。

一年转化:在样本出现一年后,如果样本满足某种规则,则一年转化标签标记为正,否则为负,其中一年转化标签为正的样本比例30%左右。

为方便描述起见,一月转化简称一转,三月转化简称三转,一年转化简称年转。

这3个标签满足如下关系:如果某个样本年转标签为正,则其三转标签和一转标签都为正。如果某个样本三转标签为正,则其一转标签为正。关系示意图如图1:一转正样本包含三转正样本,三转正样本包含年转正样本。

模型评价标准

模型对某个样本集的预测性能评估采用如下评价标准:模型先对样本集中所有样本打分,然后把样本按照打分降序排列,选取排名top 70%的样本构成集合S,设其样本数为n,精准率=S中实际正样本数/n,覆盖率= S中实际正样本数/样本集中所有样本数。模型以集合S的精准率作为性能评价标准,精准率越高(同时覆盖率也越高),性能越好,即排入top70%的正样本越多,模型效果越好。模型目标是把所有年转正样本都排入top70%,如图2中左图所示。

建模难点

1. 训练集和预测集时间跨度大。如图3所示,以2016年3月到6月样本训练模型,该模型用于预测2017年7月样本,直到2018年8月才能获取预测集的年转标签,那时才能对模型跨时间效果作出评估。训练、预测集时间跨度大会导致训练集和预测集分布差异大,违背了机器学习算法有效训练的前提(iid即训练集和预测集独立同分布),减弱模型的泛化能力;另一方面,这会使得跨时间效果验证困难、模型验证时间代价大,一个严格的跨时间验证需要26个月的跨度。

2.特征预测能力弱。本场景中单特征的预测能力都比较弱,用简单的模型难有较好效果。

3.行为数据波动较大。由于业务推动,app埋点更新,app新功能上线等因素,会使得用户行为表现随时间有较大波动性,会导致训练集和预测集分布有较大差异。

针对如上3个难点,我们分别在建模策略和算法上做了如下设计。

模型

图4 三转目标模型跨时间验证示意图

我们在样本出现一年后才能拿到样本的年转标签,假如我们现在要预测2019年1月的样本,我们只能用2018年前的数据训练模型,训练集和预测集时间跨度很大。根据三个标签之间的关系,我们对任务目标进行了近似逼近分析,利用不同时期不同标签的特点,演化出组合近似标签,用来模拟真实的标签变化,从而减轻跨越长时间预测问题中的困难。演化后的组合近似标签,可以缩小训练集和预测集之间的分布差异,而且模型可以更容易进行跨时间验证。

为什么可以进行目标演化,并用近似标签建立模型?因为三个标签存在完全包含与被包含关系。且三者关系呈现近似线性变化。因此合理的引入这样的包含关系,或者说阶梯型关系,并且利用多目标阶梯性优化,可以近似逼近真实的业务期望。举例说明:三转标签为正的样本占总体样本的58%左右,而且三转标签为正的样本覆盖100%的年转标签为正的样本,如果把所有三转为正的样本排入top 70%,实际也达成了我们的目标——把年转正样本排入top70%。采用三转目标建模后,即把原来目标转化为把所有的三转正样本排入top70%,如图2中右图。

算法

算法采用如下流程:

xgboost+GBDT生成组合特征,分别用xgboost和gbdt自动生成组合特征

组合特征筛选。筛掉波动大的组合特征,保留平稳的组合特征

把筛选后的组合特征输入多目标DNN训练。DNN相比于LR模型,可以自定义多目标

特征组合

树模型具有非线性拟合能力,同时也可以自动生成组合特征。我们借鉴facebook提出的gbdt+lr的思路,gbdt用于生成组合特征,然后把生成的特征输入lr作进一步拟合。考虑到模型性能依赖于特征的预测性和多样性,我们在gbdt组合特征基础上额外添加xgboost组合特征,GBDT生成的组合特征预测能力强,但是特征多样性较差。xgboost组合特征多样性较好,正好弥补了GBDT的缺陷。

特征筛选

用xgboost和gbdt自动生成的组合特征具有很好的多样性,但是在我们的场景中,基础特征随时间波动性较大,特征经过组合后得到的新特征也具有较大波动性,如果直接用组合特征输入lr或者DNN训练模型,得到模型的跨时间效果较差。我们分别从饱和度和重要性两个方面对树模型的叶子节点进行后剪枝。饱和度即在叶子节点上取值为1的样本占比,重要性即在组合特征上取1的样本中正负样本比和总体样本正负样本比的差异性,差异越大重要性越强。筛掉饱和度或者重要性随月份变化大的组合特征,留下比较平稳的特征。

特征筛选规则:1)饱和度大于某个阈值;2)重要度大于某个阈值;3)饱和度波动性小于某个阈值;4)重要性波动性小于某个阈值。

其中sat为组合特征饱和度,a为集合中样本数,s为满足组合特征的样本数,imp为组合特征的相对重要性,p为满足组合特征的正样本数,m为总体样本中正样本占比。imp大于零表明特征与目标正相关,否则负相关;imp绝对值越大,组合特征的预测能力越强。

多目标网络

多任务学习是通过合并几个任务的样例(可以视为对参数施加的软约束)来提高泛华的一种方式,近似于拉格朗日优化算法或KKT条件,也可以认为是一种带条件的正则化。当几个任务之间存在某些统计关系的时候,多任务学习可以提高模型泛华能力。我们这个场景是很适合使用多目标建模的,如前文提到,三个目标之间存在很强的线性相关性。例如,在三转目标模型中加入一转目标可以增强模型在三转与一转中泛化能力。另一方面,一转目标的样本可以使用更接近预测集的样本,从而使得训练集和预测集的时间跨度一定程度缩小。

下面以预测2017年7月样本的场景为例说明多目标网络的训练方式。该实例中,我们暂且引入两个目标,即一转和三转目标,便于分析与阐述。其中三转目标模型训练集为2017年1月到3月样本,预测集为2017年7月样本,训练集和预测集时间跨度为3个月。截止到2017年7月,2017年4、5、6月的一转标签可以获取,可以把4、5、6月样本的一转标签作为目标进行学习。双目标网络示意图如图5,目标函数为

其中x_thr、x_fir分别表示三转样本和一转样本;y_thr和y_fir 分布表示三转标签和一转标签;C为超参数,表示一转样本的损失权重,设置为小于1的常数;Loss函数是交叉熵损失函数。

图5.双目标网络示意图

实验结果示例

图6.实验效果对比图

我们以2017年7-9月样本作为预测集,分别建立图6中的4个模型,保证训练集和验证集auc差距较小,即模型在训练集不过拟合。从上图效果可以看出,年转模型虽然训练集auc高,但是因为时间跨度大的原因,预测集效果最差;三转模型用近期数据建模,相对年转模型在预测集上效果提升明显,但是预测集auc和训练集差距较大,过拟合比较明显;把经过筛选后的组合特征再用于三转模型,因为减少了一些重要且不平稳特征,训练集auc下降,但减弱了过拟合,预测集效果较三转模型提升;在筛选特征后的三转模型基础上,添加一转目标建立双目标模型,模型泛化能力进一步提升,预测集效果最好。综上,特征筛选+双目标模型在预测集上稳定性最好,取得了较好的预测性能。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190222B0B27300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com