机器学习中的特征存储是什么?我需要一个吗?
本质上,特征存储是一个专用存储库,用于系统地存储和排列特征,主要用于数据科学家训练模型,并帮助已训练模型的应用程序进行预测。它是一个关键的聚合点,人们可以在此构建或修改从各种数据源提取的特征集合。此外,它还支持从这些特征组中创建和增强新的数据集,以满足处于训练阶段的模型或倾向于直接获取预先计算的特征进行预测分析的应用程序的需求。
什么是特征商店——你的机器学习厨房食品储藏室
要揭开复杂的机器学习概念的神秘面纱,还有什么比将它们比作食物这样普遍且熟悉的事物更好的方法呢?正如正确的食材及其准备对烹饪至关重要一样,类似的原则也适用于机器学习领域,尤其是在数据管理方面。为了让这个概念更贴切,让我们用厨房的比喻来解释机器学习工作流程中的关键组件之一:特征存储。
想象一下,你正在开展一个机器学习项目,在构建一个优秀的模型之前,你已经准备好了所有需要准备(处理)的要素(数据)。在这种情况下,特征存储就像你的厨房储藏室,里面存放着所有准备好的要素(机器学习特征),随时可用。
那么,这些机器学习特征是什么呢?它们是你精心挑选和转换的数据,随时可以输入到你的机器学习模型中。你可以把它们想象成你事先准备好的切碎的蔬菜、腌制好的肉类或香料。你希望这些准备好的食材在烹饪不同的菜肴(模型)时,品质始终如一、质量上乘,并且易于获取。
特色存储将所有准备好的食材集中存放。它确保无论何时你或你的队友烹饪(搭建模型),每个人都使用相同品质的食材。这样,就不会出现一个人用了不新鲜的大蒜,而另一个人用了新鲜的大蒜,导致口味(模型性能)出现差异的情况。
总而言之,机器学习中的特征存储就像厨房的数据储藏室。它可以帮助您保持准备好的食材(特征)的新鲜、一致且随时可用,从而使您的烹饪(模型构建)过程更加顺畅和可靠。
特征存储的用途
特征存储 (Feature Store) 已经存在一段时间了,起源于 Uber 的 Michelangelo 和 Airbnb 的 Zipline等概念,并且它们有不同的风格。有些是开源的,专注于以惯用的方式描述特征,而另一些则更“表格化”,面向固定的数据模式。
在本节中,我们将探讨特征存储的主要用途,但不会特别关注其构建方式。我们将在后面的部分深入探讨其技术方面。
在生产中使用 ML 时,特征存储至关重要,主要有三个原因:
- 特征可重用性: 通常,团队各自为政,开发使用相同特征的模型。然而,这些特征的定义和计算方式各不相同,导致重复工作,并增加了计算和存储成本。特征存储充当了标准化机器学习特征的中心。借助特征存储,一个机器学习团队可以使用另一个团队的特征。由于这些特征在组织内进行分类和共享,并在使用前进行预先计算,因此组织可以避免重复计算相同的特征,从而节省云费用。
- 标准化特征定义: 基于上一点,当团队为其模型定义特征集时,他们可能并不总是考虑记录这些特征的提取和计算方式。借助特征存储,数据源和特征转换遵循一致且易于理解的模式,从而促进跨团队的工作重用。
- 训练与应用之间的一致性: 特征工程不仅与数据科学家的笔记本相关;相当一部分机器学习特征用于实时模型。确保在训练与应用之间以相同的方式处理数据,对于实时预测的一致性至关重要。这种一致性被称为训练-应用偏差。
除了这些主要原因之外,值得注意的是,数据科学家通常无法直接访问数据管道,这更多地取决于数据工程方面。借助特征存储,来自笔记本的特征工程逻辑还可以为生产中的训练和推理特征集提供支持,从而使数据科学家能够自行操作其模型。
这并不意味着每个 DS 团队都可以访问所有数据源;事实上,许多 Feature Store 解决方案都包含治理和合规功能,允许特定团队访问特定数据和功能