一种消费金融场景下的用户购买行为大数据预测方法
技术领域
本发明属于机器学习、自然语言处理、大数据分析与处理技术领域,尤其基于多模型融合消费金融场景下用户购买预测。
背景技术
当前网络购物的兴起催生出了许多的生活服务类APP,在消费金融场景下其往往提供了手机商城、饭票影票、在线客服、基金理财、办卡开卡、额度管理、消费信贷、账单管理等全方位功能,同时实现了LBS查询服务和手机远程支付,全面满足并提升了持卡人对金融和日常生活需求的消费体验。
发卡银行在不断拓展业务与场景的同时,也希望通过数据积累与数据驱动,主动捕捉用户价值信息与消费需求,发挥数据价值,给用户提供更加精准的服务。以购物为例,相比于传统的实体店铺和传统电商平台,在消费金融场景下更能将用户线下的资产情况,以及线上的网络消费行为进行资料整合,来进行综合分析,以便为用户提供更好的服务体验,为金融机构以及平台商家提供更为精准的决策服务。
随着人工智能和大数据等技术不断渗透,依靠金融科技主动收集、分析、整理各类金融数据,为用户提供更优质的服务以及为平台商家提供决策支持,并且进行精准营销,成为解决消费金融场景下主动捕捉用户信息与消费需求,发挥数据价值的有效途径。
发明内容
本发明旨在解决以上现有技术的问题。提出了一种为商家广告精准投放,个性化优惠信息推荐提供有力的决策支持的消费金融场景下的用户购买行为大数据预测方法。本发明的技术方案如下:
一种消费金融场景下的用户购买行为大数据预测方法,其包括以下步骤:
101.对用户的APP操作行为日志数据进行包括对OCC_TIM字段进行切割在内的预处理操作;
102.根据对用户历史APP操作行为日志数据的分析,对训练集和测试集进行特征工程构建,所述对特征工程进行构建是指得到用户历史APP操作行为日志数据构建离散特征、基础统计特征、时序特征、词袋模型特征和词向量模型特征;
103.通过特征选择法对步骤101得到的特征进行降维;
104.建立2个机器学习模型,分别是.xgboost模型和lightgbm模型,.xgboost模型用于预测出结果1,lightgbm模型用于预测出结果2,并将两个机器学习模型基于模型相关性约束排名的融合操作;
105.通过融合操作建立的模型,根据用户个人属性及其历史APP操作行为日志数据对用户在未来一个周是否购买APP上的优惠券进行预测。
进一步的,所述步骤101对用户的APP操作行为日志数据进行预处理操作具体步骤为:
针对于训练集和测试集中的OCC_TIM字段,该字段表示用户行为发生的具体时间,需要事先将它切割为三列分别是:年、月、日。
进一步的,所述步骤102构建离散特征、基础统计特征、时序特征、词袋模型特征和词向量模型特征,具体包括:
1021.离散特征:对于EVT_LBL点击模块字段,对其进行拆分,分为一级模块、二级模块、三级模块,再分别对其离散,每一个模块拥有一列值,这些值是统计了用户对于该模块的点击量;对于TCH_TYP事件类型字段,也做同样的处理,以反映出用户喜好使用的设备类型;
1022.基础统计特征:用户总的点击次数、用户点击天数、用户每天平均点击量、用户各种行为类型次数对用户总次数的占比、用户在一周各天对用户总次数的占比、用户在各个小时对用户总次数的占比;
1023.时序特征:用户点击的时间间隔、用户最大连续点击天数、用户最后一次点击距离最后一天的间隔;对于最后一天的统计包括:总点击,各用户对各一级模块,各用户对二级模块,各用户对三级模块,用户在各小时,用户对各事件类型;对于最后二天的统计包括:总点击,各用户对各一级模块,各用户对二级模块,各用户对三级模块,用户在各小时,用户对各事件类型;在最后一天用户的各种行为类型的占比、在最后二天用户的各种行为类型的占比;前十天,中间十天,最后十天分别统计:用户总次数,用户对各一级模块,用户对各二级模块,用户对各三级模块,用户在各个小时的统计,用户对各个事件的统;分别统计4个区间的用户出现总次数、用户对各个事件的点击总次数,然后再用后一个区间的统计值减去前一个区间的统计值;
1024.词袋模型特征:每个用户在每个一级模块出现的次数、每个用户在每个二级模块出现的次数、每个用户在每个三级模块出现的次数;
1025.词向量模型特征:通过word2vec,得到所有模块的词向量,然后计算每个用户点击过模块的均值向量作为特征;统计一个事先指定窗口大小为5的word共现次数,以word周边的共现词的次数作为当前word的向量,得到一个共现矩阵,然后再对该共现矩阵使用SVD奇异值分解进行降维以及降低稀疏性,得到矩阵U,最后对U进行归一化得到一个稠密矩阵作为词向量特征。
进一步的,所述步骤103对构建特征完成的样本集进行特征选择,具体步骤为:首先计算出每一个特征的方差,然后将方差低于阈值0.5的特征删除;然后将剩余特征分别输入算法xgboost、lightgbm、catboost、GBDT、RF、SVM,输出每个特征的特征重要性,以这些输出的特征重要性为基础构建相关矩阵A,再利用PCA将矩阵A降至指定维度500,完成特征选择。
进一步的,所述步骤104建立2个机器学习模型,并进行模型融合操作具体步骤为:
1041.xgboost模型:主要设置以下参数'max_depth':3、'objective':'rank:pairwise'、'scale_pos_weight':0.7、'eta':0.02、'min_child_weight':18、'colsample_bytree':0.8、'subsample':0.8;
1042.lightgbm模型:主要设置以下参数'boosting_type':'gbdt'、'num_leaves':31、'learning_rate':0.01、'feature_fraction':0.8、'bagging_fraction':0.8;
1043.多模型融合:采用基于模型相关性约束的排名融合方法,首先通过两个模型输出的特征重要性,将这两组特征重要性看做两组向量,计算其皮尔逊相关系数h;然后在排名融合的机制中加入这一系数,用于约束模型权重对融合结果的影响,当h越大,即两个模型越相关时,权重系数的影响就会增大,当h越小,即两个模型越不相关,权重系数的影响就会减小,其遵循公式:
∑|0.5*(1-h)-(weighti*h)|/ranki公式(1)
其中weighti为第i个单模型根据验证表现得出的权重系数,它根据各个模型验证得分的比例来计算得到,ranki为样本在第i个模型中的预测值排名,即该样本的预测为正的概率值在整个数据集下的升序排名。
进一步的,所述步骤105通过建立的模型,根据用户个人属性及其历史APP操作行为日志数据对用户在未来一个周是否购买APP上的优惠券进行预测具体步骤为:
融合方式采用基于模型相关性约束的排名融合,其中rank
i为第i个模型的rank排序,weight
i为第i个模型AUC值所占权重,为了让每个将进行融合的模型都起到一定作用,而不受个别效果突出模型影响过大,首先对
的值取对数进行平滑,再将各模型求和得到的score用于计算AUC得分:
当score大于0.9的时候,说明该条测试数据对应的用户很大可能会在未来一周购买APP上的优惠券。
本发明的优点及有益效果如下:
本发明1025提出一种利用SVD奇异值分解对词语共现矩阵进行矩阵降维以及降低稀疏性,来得到词向量特征的方法,更好反映出用户习惯,提高模型效率。
本发明103提出一种链式特征过滤法来进行特征选择,利用了特征方差、不同模型输出特征重要性、PCA降维等方式来进行特征的精简,同时兼顾了“特征是否发散”,“特征与目标的相关性”这两个特征选择最关心的方面,使得模型具有更佳的泛化性能。
本发明1043提出的基于模型相关性约束的排名融合方法,利用了皮尔逊相关系数来反映两个不同模型之间的差异性,然后在排名融合的机制中加入这一系数,用于约束模型权重系数对融合结果的影响,避免了模型对权重系数的过度依赖,从而提高模型精度与稳定性。
附图说明
图1是本发明优选实施例提供的一种消费金融场景下的用户购买行为大数据预测方法的流程图。
图2为本发明优选实施例提供的一种消费金融场景下的用户购买行为大数据预测方法的基于词频统计的词向量特征提取方法的流程图。
图3为本发明优选实施例提供的一种消费金融场景下的用户购买行为大数据预测方法中链式特征过滤法流程图。
图4为本发明优选实施例提供的一种消费金融场景下的用户购买行为大数据预测方法中基于模型相关性约束的排名融合示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
参考图1,图1为本发明实施例一提供一种消费金融场景下的用户购买行为大数据预测方法的流程图,具体包括:
101.对用户的APP操作行为日志数据进行预处理操作,具体如下:针对于训练集和测试集中的OCC_TIM字段,该字段表示用户行为发生的具体时间,其格式为“2018-03-2216:31:44”,为了便于后续操作需要事先将它切割为三列分别是:年、月、日。由于时分秒信息没法发挥作用,所以这里直接进行舍弃。
102.对用户的APP操作行为日志数据进行特征工程操作,具体如下:根据对用户历史APP操作行为日志数据的分析,对训练集和测试集进行特征工程构建,所述对特征工程进行构建是指对用户历史APP操作行为日志数据构建离散特征、基础统计特征、时序特征、词袋模型特征和词向量模型特征。
1021.离散特征:对于EVT_LBL(点击模块)字段,因为其为点击模块名称,所以我们对其进行拆分,分为了一级模块、二级模块、三级模块,再分别对其离散,但并不是简单的one-hot(独热编码),每一个模块拥有一列值,这些值是统计了用户对于该模块的点击量,这样可以清晰的刻画出用户的点击行为习惯,对于TCH_TYP(事件类型)字段,由于数据也是离散型,所以我们也做了同样的处理,以反映出用户喜好使用的设备类型。
1022.基础统计特征:用户总的点击次数、用户点击天数、用户每天平均点击量、用户各种行为类型次数对用户总次数的占比、用户在一周各天对用户总次数的占比、用户在各个小时对用户总次数的占比。
1023.时序特征:用户点击的时间间隔、用户最大连续点击天数、用户最后一次点击距离最后一天的间隔;对于最后一天的统计(总点击,各用户对各一级模块,各用户对二级模块,各用户对三级模块,用户在各小时,用户对各事件类型);对于最后二天的统计(总点击,各用户对各一级模块,各用户对二级模块,各用户对三级模块,用户在各小时,用户对各事件类型);在最后一天用户的各种行为类型的占比、在最后二天用户的各种行为类型的占比;前十天,中间十天,最后十天分别统计(用户总次数,用户对各一级模块,用户对各二级模块,用户对各三级模块,用户在各个小时的统计,用户对各个事件的统计);分别统计4个区间(1-7,1-14,1-21,1-28)的用户出现总次数、用户对各个事件的点击总次数,然后再用后一个区间的统计值减去前一个区间的统计值。
1024.词袋模型特征:每个用户在每个一级模块出现的次数、每个用户在每个二级模块出现的次数、每个用户在每个三级模块出现的次数。
1025.词向量模型特征:首先是基于神经网络隐藏层输出得到词向量。通过word2vec,得到所有模块的词向量,然后计算每个用户点击过的模块的均值向量作为特征;其次是基于词频统计得到词向量。统计一个事先指定窗口大小为5的word共现次数,以word周边的共现词的次数作为当前word的向量,得到一个共现矩阵,然后再对该共现矩阵使用SVD(奇异值分解)进行降维以及降低稀疏性,得到矩阵U,最后对U进行归一化得到一个稠密矩阵作为词向量特征。其过程见图2。
103.对构建特征完成的样本集进行特征选择,具体如下:在102特征工程部分,构建了一系列离散特征、基础统计特征、时序特征、词袋模型特征和词向量模型特征,特征总数高达两千多维,高维特征一方面可能会导致维数灾难,另一方面很容易导致过拟合。从这一点出发,通过特征选择来降低特征维度。考虑到特征特征是否发散以及特征与目标的相关性,采用一种链式特征过滤法来进行特征选择,首先计算出每一个特征的方差,然后将方差低于阈值0.5的特征删除。然后将剩余特征分别输入算法xgboost、lightgbm、catboost、GBDT、RF、SVM,输出每个特征的特征重要性,以这些输出的特征重要性为基础构建相关矩阵A,再利用PCA将矩阵A降至指定维度500,即完成了特征选择。链式特征过滤法的具体流程见图3。
104.建立2个机器学习模型,并进行模型融合操作,具体如下:
1041.xgboost模型:主要设置以下参数'max_depth':3、'objective':'rank:pairwise'、'scale_pos_weight':0.7、'eta':0.02、'min_child_weight':18、'colsample_bytree':0.8、'subsample':0.8。
1042.lightgbm模型:主要设置以下参数'boosting_type':'gbdt'、'num_leaves':31、'learning_rate':0.01、'feature_fraction':0.8、'bagging_fraction':0.8。
1043.多模型融合:我们采用的方式是基于模型相关性约束的排名融合。具体说就是,先通过两个模型的算法输出的特征重要性,将这两组特征重要性看做两组向量,计算其皮尔逊相关系数h。然后在排名融合的机制中加入这一系数,用于约束模型权重对融合结果的影响。当h越大,即两个模型越相关时,权重系数的影响就会增大。当h越小,即两个模型越不相关,权重系数的影响就会减小。融合示例见图4。其遵循公式:
∑|0.5*(1-h)-(weighti*h)|/ranki公式(1)
其中weighti为第i个单模型根据验证表现得出的权重系数,它根据各个模型验证得分的比例来计算得到。ranki为样本在第i个模型中的预测值排名,即该样本的预测为正的概率值在整个数据集下的升序排名。
105.通过建立的模型,根据用户个人属性及其历史APP操作行为日志数据对用户在未来一个周是否购买APP上的优惠券进行预测,具体如下:根据权利要求6中所述的各模型,构建的框架主要实现两个模型的融合:融合方式采用基于模型相关性约束的排名融合,其中rank
i为第i个模型的rank排序,weight
i为第i个模型AUC值所占权重,为了让每个将进行融合的模型都起到一定作用,而不受个别效果突出模型影响过大,这里首先对
的值取对数进行平滑,再将各模型求和得到的score为最终AUC最终得分:
当score大于0.9的时候,说明该条测试数据对应的用户很大可能会在未来一周购买APP上的优惠券,为商家精准营销提供支持,也为提升用户体验提供帮助。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。