华为预测服务的构建原理及模型训练方法
预测服务基于华为分析服务(Analytics Kit)上报的用户行为数据和属性,结合机器学习技术,实现特定目标人群的精准预测。针对预测生成的细分受众群体,开展和优化相关运营举措,如通过A/B测试评估运营活动效果、远程配置特定受众群体的专属套餐等,可有效帮助产品提高用户留存,增加转化。
使用预测服务前,需要先集成华为分析服务的SDK,这样系统才可以顺利开展流失、付费、复购以及自定义预测任务。在详情界面可以查看相关预测人群的高中低概率对应人群数量,及其相应的属性分布(比如详情页的高概率流失人群,表示该人群在未来7日内有较高概率流失,您可以通过相关卡片,观察其行为特点并制定针对性运营计划)。
预测任务和预测详情界面如下所示:
*数据为模拟
预测模型构建流程
在构建预测模型的时候,首先是确定我们要预测什么,即确立预测的统计口径,然后根据统计口径围绕用户特点寻找对应相关的特征,通过清洗和采样得到数据集。我们把数据集二八分得到训练集和验证集,在线下进行不断实验找到最优特征和参数,最后根据相关数据在线上调度训练预测任务。
具体流程图如下所示:
特征、模型选择和调优
特征探索
项目初期,我们分析数据,从属性、行为、需求三方面入手,寻找与业务有可能相关的变量,构建特征表,比如用户近7天的活跃天数、使用时长等行为数据。
在确定特征之后,下一步就是在实验中进行模型的选择和调优了,业界常用的树形模型有xgboost、随机森林、GBDT等,把我们的数据集用这几种模型进行训练,发现在随机森林上效果较好,其采用bagging策略提高模型拟合能力和泛化能力。
除了模型参数,也要考虑采样比,尤其是对于付费预测这种正负样本悬殊的情况(大约1:100),综合考虑Accuracy和Recall, 付费训练时将正负样本比例采样至1.5:1, 以提高模型付费用户召回率。
超参与特征确立
训练出了合适的模型,但并非所有特征都是有用的,无用特征除了可能会影响模型效果,也会减慢训练速度。在初期版本中,通过实验确定合适的超参和特征,特征按照特征重要性排序选择权重较大的,在线上版本中配置对应的超参和特征。
在版本上线之后还需要不断观察数据、分析数据、补充特征,我们在后续版本中主要新增了事件特征与趋势特征,补充后总计400+特征。
自动超参搜索
在挖掘出更多的特征之后,如果都是全量特征训练可能效果未必会好,而且也会非常耗时。同时,可能每个App训练时可能最优的超参和特征并不相同,最好是每个App分开训练且使用自己最优的超参和特征。
为了解决这些问题,我们增加了自动的超参搜索,可以在配置好的参数空间里搜索,找到并保存合适的训练参数。搜索完之后的最优超参保存在如下结构的hive表中。
当前的整体流程以及外部依赖如下所示:
未来方向
在未来提高模型效果上,我们也有很多思考,预研的方向大致如下:
- 神经网络
当前的特征规模不断扩大(400+),而用户行为的规律又十分复杂,除了使用原有的树形模型,也在尝试利用神经网络强大的表达能力,结合行为特征训练出更准确的预测模型。
- 联邦学习
对于各App、各租户数据不可互通的问题,可以通过横向联邦学习联合各个App、各个租户间的模型,在数据不互通的前提下协同训练。
- 时序特征
不同App的用户每周上报数百个事件(涵盖1000+种类),访问近百个页面,通过这些时序数据可以构造出不同用户的长短期行为特征,提高不同场景预测的准确率。用户访问页面的行为有较高的时序特点,可以加工成时间序列特征,有较高的研究价值。
- 特征挖掘和加工
对目前的特征集扩充、补充,一方面挖掘更多的相关特征比如平均使用间隔、设备属性、安装渠道、国家省市等特征。另一方面基于现有特征通过离散化、归一化、开方、平方、笛卡尔积、多重笛卡尔积等等方法构造更多新特征。
>>了解更多华为预测服务详情
>>访问华为开发者联盟官网,了解更多相关内容
>>获取开发指导文档
>>华为移动服务开源仓库地址:GitHub、Gitee
点击右上角头像右方的关注,第一时间了解华为移动服务最新技术

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
我,第一次做项目经理,干赔了
我第一次做项目经理,那是十多年前的事情了,当时给国家开发银行做一个财务风险分析的系统,这个项目: 金额:200 万 周期:起初定的 8 个月做完 人员:10 个人左右。除了我之外还有,需求分析师 2 人;测试 1 人;Java 5 人(那时候还没有前后端分离这个词,前后端一起搞);BI 工程师 1 人。 项目启动之后,我们项目组去国开行驻场,行里给我们腾出来一间办公室,办公室不大,我们十来个人坐进去之后,满满当当的。 我们周围的办公室,也都被其他同行占据了,比如神州数码、用友、中软……本来 IT 行业圈子就不大,这下大家离得就更近了。 离得近了,最方便的就是挖人。A 公司看 B 公司给国开行做了一个系统不错,单子金额也挺可观,A 公司动心了,也想搞一套系统卖给其他银行。从零开始做一套系统,对 A 公司来说难度和成本都不小,现在爽了,有捷径了:B 公司的人就在自己的眼皮底下,时间长了,物色一个合适的人直接挖过来…… 有点跑题,继续说我带项目的事。 这是我第一次带项目,第一次做项目经理。以前参加项目,我最多也就是项目的技术负责人,把技术相关的搞定就行了,主要负责搭建环境、数据库表设计、选择...
- 下一篇
Kooder 1.0 Beta1 发布,支持 Gitea 代码搜索
Kooder 1.0 Beta1 发布了了了了,该版本最值得关注的是增加对 Gitea 的支持。同时还修复一些一些小 bug,详细列表请看这里。 Kooder 是一个开源的代码搜索工具,目标是为包括 Gitee/GitLab/Gitea 在内的代码托管系统提供 自动的源码、仓库和 Issue 的搜索服务。 搜索界面效果 想知道有没有人在代码里骂你,试试 Kooder ,哈哈!
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7安装Docker,走上虚拟化容器引擎之路
- 2048小游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8编译安装MySQL8.0.19
- Linux系统CentOS6、CentOS7手动修改IP地址