链载Ai

标题: 火花思维:基于离线标签知识库和实时数仓实现轻量级算法服务的技术方案 [打印本页]

作者: 链载Ai    时间: 3 小时前
标题: 火花思维:基于离线标签知识库和实时数仓实现轻量级算法服务的技术方案

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;color: rgb(0, 0, 0);font-size: 14px;text-align: justify;visibility: visible;line-height: 2em;">导读本文介绍了火花思维:基于离线标签知识库和实时数仓实现轻量级算法服务的技术方案。

主要内容包括以下几个部分:


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;visibility: visible;">1.背景

2.技术框架

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;">3.关键技术节点

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;">4.实现案例

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 1.5px;line-height: 2em;">5.总结与展望

分享嘉宾|茆中尧 火花思维

出品社区|DataFun


01

背景


火花思维(下称:火花)是一家专注于青少年思维训练及综合素质提升的互联网教育企业,产品包含逻辑思维、中文素养、火花编程等。累计学员已超 70 万,遍布全球 100 多个国家和地区。其主要采用直播、真人互动 AI 的方式进行授课,通过将老师的启发引导和动画、游戏、趣味教具等多种方式立体结合,将能力、思维、训练三者互相连接、层层递进,在互动实践中培养孩子的观察思考、逻辑思维以及自主解决问题等核心基础能力。


随着火花的业务发展,尤其在双减后,基于精细化运营诉求,对用户分层、分群等算法服务的需求越来越多;而与此同时,因降本增效的现实压力,相应算法服务的开发周期逐渐变长、模型线上发布的成本挑战也越来越大;这就导致需求和供给间 gap 逐渐增加。


为解决这一问题,我们设计了一套基于火花自研数据开发平台(Athena 数据工厂https://mp.weixin.qq.com/s/RJZTdEKCgB2SB3f6dBchXg)的轻量级算法服务技术方案,以满足以下要求:


02


技术框架


核心思想:该方案采用“离线预计算+实时特征组合匹配”的双模块设计,离线模块调用模型预测穷举特征组合哈希表,建立离线知识库,并同步至 Doris 中;实时模块采用 Flink+Doris 链路,获取用户线上标签;通过表查询方式,匹配用户预测结果返回生产库。



如上图所示,整个技术框架分为两部分:离线和实时模块;离线模块主要实现:模型训练和“离线预计算”工程化部署;对于大企业的分析、运营部门或者中小企业来说,因权限或资源问题,很难有一个稳定、可靠的模型线上部署和调用环境,而采用训练好的模型离线预测穷举特征组合,将模型输出结果以二维表形式存储实现工程化部署,便可作为一种高性价比的替代方案。


而在实时模块,通过Flink接入生产库数据,Doris 计算获取用户实时标签并对同步到 Doris 中的哈希表进行查询,以实现对目标用户的预测,并最终通过 Flink 回写生产库,或者 Doris 的 API 接口完成整套实时算法服务链路的闭环。


全套技术方案采用 Hive SQL、Python、Flink、Doris 成熟技术栈,且标签知识库是在“离线预计算”好后,再同步 Doris,为整个技术方案带来了以下优势:


当然,该技术方案在带来了这些优势的同时,也不可避免的产生了一些局限性,其中最大的问题便是:哈希表过大将带来读写的技术困难和成本增加,削弱该方案的使用价值;而过小将限制特征和标签数量,影响模型表现;所以,如何在控制哈希表大小的情况下,保证模型效果便成了整个方案中的关键点。


03


关键技术节点


为了能在有效压缩哈希表规模的前提下,提高模型表现,以分类任务为例,我们做了以下工作:①特征离散化、②标签筛选、③逐层“打印”哈希表、④采用历史“字典”代替哈希“字典”。


特征离散化:以有限的哈希表作为模型部署载体,必然要求所有特征都是分类变量,而对于连续数值型特征就要采用分箱等方法对其进行离散处理,这一步我们可以通过本地实验,选好合适的分箱方法(等频/等宽/聚类/决策树等),提炼相应的分箱阈值,将该处理同时封装到离线 Hive SQL 和实时 Doris 中(保证离线、实时两环节特征处理逻辑一致),以实现特征离散化。


标签筛选:从机器学习的角度来说,不是所有特征和标签都蕴含有价值信息,对于低价值特征我们已在本地实验时,通过 RFE、SHAP 值等方法进行剔除;而对于样本量过少或信息价值较低的标签,可将其归入对应特征的‘其他’标签,从而减少标签数量压缩哈希表体积;但随着业务变动,标签样本量和所携带信息价值可能会在短期内出现波动,所以我们设计了一套自动化流程,以实现标签筛选的自适应。



哈希表方案的核心矛盾是表大小和模型性能无法同时取到最优,故需要通过标签“剪枝”去对抗这个矛盾,通过合并价值较低的标签,在信息损失有限的情况下,压缩哈希表大小,所以具体采用什么自动化标签筛选方案视具体的业务场景来定。


逐层“打印”哈希表:经过上述步骤后,虽有效压缩了标签数量,但当特征超过一定量后(> 6),哈希表大小仍处于一个无法接受的量级(> 30^6);所以,我们设计了一套类似 stacking 思路的逐层“打印”哈希表方案:将一个模型拆分成若干子模型,将一个大哈希表拆分成若干子表,每一层子模型大概采用 5-6 个特征进行训练,训练完成后对相应子哈希表进行预测,同时对训练集进行预测,并与下一层特征构建新的训练集,进入下一层模型训练,如此循环,直到所有特征训练完毕;该方案的本质是:将每一层(5-6 个特征)的信息降维成多个离散的标签(10-100 个),传递给下一层进一步训练,在信息损失有限的情况下,完成了整个模型的工程化部署。



采用历史“字典”代替哈希“字典”:离线标签知识库相当于一个“字典”,提前打印好我们所需特征组合的预测值(y),同步到实时环境后,实时查询这个字典,以获取预测结果。而采用穷举哈希字典的部署方式,一定会存在某些特征组合未来永远不会被查询到,造成较大的资源浪费;所以,对于某些业务场景,我们可采用穷举过去出现过的特征组合,构建历史“字典”的方式代替哈希“字典”;


04


实现案例


火花基于该技术方案,在新签获客侧搭建了数套算法服务(如下图),取得了较好结果:



分析师团队通过构建标签集市层和宽表层,搭建了新签获客侧用户画像体系,沉淀了在分析探查等日常工作中积累的各生产环节用户特征,尤其生产加工了一批重业务逻辑的标签,为后续模型提供了约 100+个有价值的特征,并在设计上着重考虑了其泛用性和复用性,减少了后续训练集开发的难度和成本;


在用户画像体系的基础上,通过上述技术方案,分析师联同数仓为业务方提供了多个轻量级算法服务,包括:reshuffle(试听课出席用户与试听课老师匹配策略)中用户分层和试听课老师评分算法服务和公海推荐系统(历史未成交用户电销外呼排序)等,上述算法服务模型表现较好,分类模型线上 AUC 能保持在 0.7-0.8 左右;


经过 AB-test 检验,上述算法服务共为公司带来年化近千万 GMV 收益;而在成本方面,模型开发&部署成本约:20 万,全年服务器成本约:40 万(32 万实时成本 + 8 万离线成本),全年总成本在 60 万左右,ROI 远高于 10,为公司以较低的成本带来了可观的收益;另外:整个系统多个算法服务全年 BUG 次数在 5 次以内,可靠性表现较好,维护成本较低。


05


总结与展望


整体来说,该方案通过“离线预计算”的工程部署方式,避免了实时推理的计算压力,降低了部署门槛,使得整个方案具备:低门槛、低负载和低成本优势;而采用成熟技术栈,降低了开发门槛;并通过离线和实时解耦的方式,在提高了迭代敏捷性的情况下还保证了系统的鲁棒性;另外:通过周期性任务调度实现了“定期重新训练”,保证了模型长期的有效性和准确性;且还有较好的复用性和扩展性;


同时,该方案发挥了分析师在日常分析探查等工作中积累的业务理解优势,充分挖掘了过往积累的用户画像资产的业务价值,且模型“降维打印”的方式从另一个角度来看,也是一种另类的“可视化”方案,能为业务方展示各类标签组合在模型中的排序位次,提高了模型可解释性,降低了理解成本,帮助模型更好的落地应用;


需注意的是,该方案在特征承载量上存在明确上限,以火花的经验来看,哈希“字典”能承载的特征量在 20-30 个左右,历史“字典”可使用的特征数量约 40 多个,虽能获得较好的模型表现,但其潜力有限,无法承载更多的特征,限制了模型效果上限;所以其使用场景有一定局限性,对于大型企业来说,能够支持分析师为中短期运营策略提供敏捷的算法服务,而对于中小企业来说,该方案提供了一种实现算法功能的可行性技术框架






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5