任金虎 李亚楠 王艳玲
摘 要:目前互联网软件的功能调整和改进方案主要以用户的行为习惯为依据进行调整。为了高效利用现有用户数据进行用户行为、用户倾向等分析与预测,本文通过对包括多种用户在线行为的数据进行分析。首先对用户倾向评估产生较大影响的属性值进行权值分析,将已有的特征值综合整合后生成全面的用户行为数据;再对行为数据中的同类行为进行细化分级,强化行为指向。通过使用模型融合的方法针对单模型进行优化和处理,进一步提高预测准确率。
关键词:模型融合 滑窗法 XGBoost BI-LSTM
如何建立新的运营处理模式、有效利用现有数据制定合适的营销机制、改进和调整软件的功能,达到吸引目标用户、保持用户粘度的目的,将是每个互联网企业在大数据时代的核心问题。而对“活跃用户”(将会在未来一段时间内登录软件的用户)的行为数据进行有效分析和预测是软件功能改进和企业服务质量提升的重要途径之一。
本文以短视频APP的用户数据为例进行分析与预测,以前30d的用户数据作为数据集,以后7d登录的用户id作为测试集,以XGBoost模型、LGB模型和BI-LSTM模型作为子模型进行模型融合建立综合预测模型,预测将会在未来7天内登录的“活跃用户”。在进行用户数据的分析过程中,由于行为分类较为复杂,需将行为因素分级考虑。一方面对于主动动作用户(主动发起点赞、转发、拉黑等动作的用户)自身,针对连续较长时间活动的用户进行筛选并增加其优先级。另一方面对于被动动作用户(被动接受上述动作的用户),针对不同分类的动作进行分类处理。
1 模型融合技术简介
模型融合( Model Ensemble )是一种通过构建并融合多个模型来完成学习任务,从而提高机器学习效率的方法。
图1是一种常见的模型融合结构。其主要包含两个阶段:构建若干单模型( Single Model)和模型融合。单模型通常是由基本的学习算法在训练集上学习得到的,它们可以是决策树、神經网络或者其他类型的学习算法。
在单模型多样性较大情况下,尝试模型融合极有可能取得显著的效果提升。因此,选择一些单模型特征与多个单模型融合在一起进行训练,融合模型的泛化能力在某些场景下效果会更好。但应注意,线上系统对预测或分类服务的响应速度通常要求较高,线上特征获取和模型预测会消耗一定时间,而多阶模型融合只能以串行的方式来运算。因此,在线上系统使用模型融合要谨慎。
2 单模型建立与处理
2.1 数据分析与处理
2.1.1 用户数据说明
主要数据集信息如下:
注册日志(user_register_log.txt):包括用户注册时的基础信息。
APP启动日志(app_launch_log.txt):包括前30天内用户登录的精确时间。
拍摄行为日志(video_create_log.txt):包括用户使用APP拍摄功能的日期等。
用户行为日志(user_activity_log.txtt):包括用户的点赞、转发等各种行为记录。
2.1.2 滑窗法划分数据集
使用滑窗法来构造样本格式,不仅能给数据赋予标签值,同时还可以划分多个训练测试集用以完善模型。针对数据量较小的情况,通过滑动窗口增加样本数量,可覆盖更多数据,提高模型学习效率。
2.1.3 特征提取
若仅用表中所给的数据作为目标值进行预测,结果准确率有限。因此需要在四个表中分别提取特征、添加目标值。在拍摄行为日志中,对其次数进行统计并将创建视频相隔的天数的均值,方差,峰度等提取作为新的七个特征;在启动日志和用户行为日志中,在page列里统计0 1 2 3 4的个数并且统计其占总个数的频次,以该方式提取100余个特征。
由于注册方式来源、登录拍摄与行为次数值极值相差过大或数据过于离散,此时采用归一化的方法对数据集进行处理更有利于分类和预测。
2.2 两个基于GBDT的模型实现——以XGBoost为例
在数据集中,不同的用户的行为是不一样的,在此选取其中的多个维度、多种特征,可通过 GBDT综合分析它们对用户活跃度结果产生的影响。其改进后的XGBoost模型可在相对短的时间内对大型数据源做出良好的效果;而LGB模型因其更快的训练效率、更低的内存使用、更高的准确率等优势,更适用于处理较大规模数据。在此以XGBoost模型的处理过程为例。
(1)XGBoost模型的参数调节与优化。
XGBoost在训练开始时进行一次预处理后,使用平均绝对误差对结果进行衡量,从而提高之后每次迭代的效率。在进行交叉验证得到第一个基准后,建立数量为100的树模型,得到比前者数据0.45更加可靠的新纪录 MAE = 0.445。树的最大深度(max_depth)和正则化参数(min_child_weight)对XGBoost性能影响最大,应优先进行调整。
在得到目前最好的结果后,降低学习速度,同时增加更多的估计量。对比后发现,学习率较低的效率提升更明显。
2.3 BI-LSTM模型实现
2.3.1 时序特征处理
对记录数进行可视化分析发现其频次变动的模式有很强的非线性趋势性,因此选择对输入序列分别进行加一取对数处理的方法,更有易于观察变化趋势而且能够有效防止过拟合。
2.3.2 参数调整
优化学习速率和动量因子。选取一组较小学习速率和动量因子的取值范围:从0.2到0.8,步长为0.2,以及0.9。调优Dropout正则化。采用取值范围为0.0-0.9(1.0无意义)的dropout percentages和范围为0-5的最大范数权值约束(maxnorm weight constraint)。
3 模型融合
对已有三个模型结果进行分析,具体分析包括了每个模型的精确率,召回率与F1值。
最后将XGB模型、LGB模型与BI-LSTM模型作为三个单模型进行模型融合,以三种模型的最终F1值作为参考,调整融合权重比:
XGB:LGB:BI-LSTM≈ 0.31:0.31:0.38
之后通过调整阈值得到最终预测模型,预测准确率保持在90%左右。
4 结语
本文采用的算法通过使用XGBoost处理普通特征、基于LGB和神经网络的算法优化和模型融合处理,精确预测得到未来一段时间内的“活跃用户”id,为互联网企业进行软件功能调整以及提出可靠的用户推送方案提供准确数据参考。
参考文献
[1] 韩家炜. 数据挖掘概念与技术[M].北京:机械工业出版社,2007.
[2] 美 Megan Squire.干净的数据—数据清洗入门与实践[M].北京:人民邮电出版社,2016.
[3] 梁军,柴玉梅,原慧斌,等.基于极性转移和LSTM递归网络的情感分析[J].中文信息学报,2015,29(5):152-159.
[4] 连克强.基于Boosting的集成树算法研究与分析[D].中国地质大学(北京),2018
[5] 王华勇,杨超,唐华.基于LightGBM改进的GBDT短期负荷预测研究[J].自动化仪表,2018,39(9):76-78,82.
[6] 周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(6):1229-1251.
[7] 林珠,邢延.数据挖掘中适用于分类的时序数据特征提取方法[J].计算机系统应用,2012,21(10):224-229.
[8] 王毅,谢娟,成颖.结合BI-LSTM和CNN混合架构的深度神经网络语言模型[J].情报学报,2018,37(2):194-205.