01
Opal 是爱奇艺大数据团队研发的一站式机器学习平台,旨在提升特征迭代、模型训练效率,帮助业务提高收益。整个平台覆盖了机器学习生命周期中特征生产、样本构建、模型探索、模型训练、模型部署等在内的多个关键环节。其中特征作为模型训练的基石,其重要性不言而喻,如何让用户借助平台的能力,提升其业务侧特征迭代效率,从而达到预期的目标,是作为平台方需要思考的关键问题之一。在 Opal 中,特征生产、存储、访问等共同组成了特征中心的核心功能。本文将重点介绍特征中心相关工作。关于 Opal 的更多介绍,详见:Opal 机器学习平台:爱奇艺数智一体化实践
02
简单来说,特征中心是用来生产、共享、管理机器学习模型特征的工具平台。算法工程师或数据分析人员可以在平台上方便的创建及分享特征,而平台侧协助解决特征生产和使用过程中碰到的各类问题,提高特征的迭代效率。
特征中心基本适用于所有需要特征的场景,典型的如推荐、广告、风控等场景。特征表注册在特征中心中,特征中心可以自动完成在线和离线表的构建,保证在线和离线的一致性,同时保证特征表只存一份的情况下,能够向多人共享特征,减少资源成本。另外特征中心还可以节省时间成本,原来需要复杂的 SQL 操作,比如导出训练表、数据导表等操作,现在在特征中心中都可以通过 Web UI 进行简单的拖拽式配置完成。
03
算法模型本质上是一个映射函数,输入数值型的向量,输出是基于某个目标对候选集的排序。在爱奇艺场景中,离线训练时,算法工程师需要先从原始日志抽取出特征,并基于此构建训练样本;在线服务时,要根据端侧用户的用户 ID 和 视频 ID 查询出对应的原始特征,并根据 DSL 配置将原始特征转换为训练特征,最后调用预测服务得到预测值。
一般来说,想提高模型效果只能从以下两方面着手:
-
模型侧优化: 这是一种以优化模型结构、调优模型超参数为主的系统调优策略,通过调整参数不断优化模型的效果指标,我们将对应的优化称为模型侧优化; -
数据侧优化:与模型侧优化相对应,这是一种以调整数据集质量为主的系统调优策略,通过改进数据质量来提升模型效果,在做数据侧优化时,可以认为模型是固定的。但实际业务中,人们往往很容易认为模型效果不好,是因为模型不好,但却忽略了数据集本身对模型效果的巨大影响。
-
如何应对海量的用户请求?爱奇艺拥有海量观影用户,对特征的访问又是极高频的操作,如何应对高 QPS 的请求是特征中心面临的挑战之一; -
如何满足对特征的实时化要求?在广告、推荐、风控场景下,为保证算法模型的输出效果,对特征的实时性要求水涨船高; -
如何提高特征的扩展性和灵活性?业务场景日益复杂,特征需求灵活多变。从基础特征到统计序列特征组的生产,从离线特征的简单统计到实时特征的窗口计算、交叉特征等,业务方需要特征中台能够支持逐渐衍生而来的新特征类型和需求; -
如何满足快速迭代的业务诉求?特征中台提供的面向业务的 DSL 需要足够场景,特征生产链路尽量让业务少写代码,底层的计算引擎、存储引擎对业务完全透明,彻底释放业务计算、存储选型、调优的负担,彻底实现实时基础特征的规模化生产,不断提升特征生产力。
-
特征输入:如何管理业务线的数据源,包括各类文本文件、Parquet 文件、Hive 表等; -
特征计算:如何表达特征计算逻辑,从原始日志中高效的抽取出需要的特征; -
特征存储:计算出来的特征存放在什么类型的系统中,这里涉及到存储成本和访问效率的权衡; -
特征转换:从原始特征到模型特征的转换,包含各类 DSL 的解析及转换。
04
-
特征生产:解决了如何从各种类型的大数据源中进行特征计算、得到的结果如何存储的问题,平台设计了一套高效的特征计算算子,配合拖拽式的 Web 页面,托管运维用户的特征生产任务,协助用户高效地管理其特征; -
特征使用:解决了如何实现特征的线上访问,特征中心通过引入特征视图的概念,实现从特征复用,自定义转换等功能,并提供 Opal Feat View SDK 实现特征的动态序列化,多机房自动感知,就近访问等功能,为业务方屏蔽底层的存储细节,让其专注于业务逻辑上。
05
离线特征组
特征元数据管理、特征生产 DAG 配置
SQL 语法解析及 Schema 推断
特征质量校验及预警
任务重跑及异常告警
实时特征组
实时特征生产 DAG 配置
滑动窗口算子示例
窗口特征合并及状态复用
特征视图
统一离在线特征组端侧访问
特征转换及特征衍生
-
函数名为平台预定义的关键字 -
参数可以是 特征变量 或各种类型的 字面值常量 -
数值集合常量,如: [1, 2, 4]
-
字符串集合常量,如: ['aaa', 'bbb']
-
特征变量,视图内任意合法的特征名称,由反引号标识,例如: `city`
-
数字常量,任意合法的数字,例如: 123
-
字符串常量,由单引号标识,例如: 'hello world'
-
集合常量,由中括号标识
Java 客户端接入,简化特征获取流程
运维监控大盘
06
07
-
特征共享:随着平台中管理的特征越来越多,不可避免的会出现特征重复计算问题,平台有必要实现特征的分享,避免用户重复生产; -
实时特征的质量校验:对于离线特征,平台已有相对完善的特征校验模块,可以保证产出特征的质量,对实时特征也需要有一个相应的质量监测服务; -
特征热度计算:根据特征被线上访问的情况,推算出每个特征的热度,该热度可以后续协助业务方进行特征的重要性评估。
本文分享自微信公众号 - 爱奇艺技术产品团队(iQIYI-TP)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。