机器学习特征系统在伴鱼的演进

图灵汇官网

引言

在伴鱼,我们致力于通过机器学习提升在线服务的用户体验。这一目标的实现,涵盖了多维场景的优化,如个性化内容推荐与精准课程匹配,具体实例包括在伴鱼绘本中,依据用户阅读习惯推荐感兴趣的内容,以及根据用户的购买历史,为用户推送可能感兴趣的课程。这一过程中,特征——作为机器学习模型的基石——扮演着至关重要的角色。

特征系统概述

为了确保机器学习模型能有效、可靠地访问并利用特征资源,伴鱼构建了一套全面的特征系统。该系统旨在解决从数据源到模型服务的高效特征提取与分发问题。当前系统已集成近100个特征,覆盖了多个业务线的需求,显著增强了模型的决策能力与个性化服务能力。

特征系统演进

特征系统V1

架构与组件:特征系统V1由特征管道、特征仓库与特征服务三大核心组件组成。其架构设计旨在实现数据的高效预处理与特征化,进而通过特征仓库提供低延迟的特征访问能力。具体而言:

  • 特征管道:分为流特征管道与批特征管道,前者采用Spark Structured Streaming处理流数据,后者则利用Spark实现批处理,两者共同运行于YARN集群。
  • 特征仓库:选用Redis作为存储组件,结合Hash数据结构,以满足模型服务对于低延迟特征访问的需求。
  • 特征服务:提供RPC接口,允许模型服务进行特征的低延迟查询。

然而,V1版本存在以下挑战:

  • 迭代效率低下:算法工程师难以直接参与特征管道的迭代,需依赖大数据团队进行开发与维护,导致流程复杂且效率不高。
  • 特征工程不足:特征管道在处理数据预处理方面较为简化,导致模型推理效率受限。

特征系统V2革新

针对V1版本的局限性,特征系统V2提出了以下改进策略:

  • 权力下放:将特征管道的控制权交还给算法工程师,提高迭代效率。
  • 强化特征工程:增强特征管道在数据预处理阶段的作用,以优化在线推理性能。

特征系统V2架构

V2版本在架构上进行了关键调整,引入了特征生成管道、特征源与特征注入管道三个组件,以替代原有的特征系统架构。特别之处在于,特征生成管道采用Flink作为处理引擎,与公司整体数据基础架构保持一致。具体实施如下:

  • 特征生成管道:负责从原始数据源提取特征,支持流与批处理模式,分别对应流特征生成管道与批特征生成管道。
  • 特征源:存储由特征生成管道产生的特征,同时作为算法工程师与AI平台工程师之间的桥梁。
  • 特征注入管道:从特征源读取特征,最终将数据写入特征仓库,通过特征服务对外提供数据访问。

结论与经验总结

特征系统V2通过架构升级与流程优化,显著提升了特征上线的效率与质量,同时也强化了特征工程的能力,进一步优化了模型推理的效率。这一演变过程中,我们提炼出几条关键经验:

  • 工具适配性:平台应提供算法工程师易于使用的工具,如Python与SQL,以提升工作效率。
  • 本地调试:提供便捷的本地调试环境,加速开发与迭代周期。
  • 质量把控:在鼓励自主使用的同时,通过自动化检查或代码审核机制确保代码质量。

通过持续优化与迭代,伴鱼的特征系统不仅提升了服务效率,也促进了技术生态的健康发展,为用户带来了更加个性化的服务体验。

本文来源: 互联网 文章作者: 张秋平
    下一篇

导读:作者 | Nei C. Thompson 等 译者 | 刘志勇 策划 | 赵钰莹 深度学习带动了人工智能发展的新历程。2013 年 4 月,《麻省理工学院技术评论》杂志将深度学习列为 2013