特征存储区概念

以下部分介绍了 Vertex Feature Store 数据模型,以及用于描述 Feature Store 资源和组件的术语。

Feature Store 数据模型

Feature Store 使用时间序列数据模型来存储特征的一系列值。此模型使 Feature Store 能够在特征值随时间变化时保留它们。Feature Store 按以下顺序分层整理资源:Featurestore -> EntityType -> Feature。您必须先定义并创建这些资源,然后才能将数据提取到 Feature Store。

例如,假设您使用以下来自 BigQuery 表的示例源数据。此源数据与影片及其特征有关。

显示源数据如何映射到 Feature Store 数据模型

在将数据注入到 Feature Store 之前,您需要创建一个特征存储区,该特征存储区是其他所有资源的顶层容器。在特征存储区中,创建实体类型以分组和包含相关特征。然后,您可以创建特征以映射到源数据中的特征。实体类型和特征的名称可以反映列标题名称,但这不是必需的。

在此示例中,movie_id 列标题可以映射到实体类型 moviesaverage_ratingtitlegenresmovies 实体类型的特征。每一列中的值映射到实体类型的特定实例或特征(称为实体和特征值)。

时间戳列表明特征值的生成时间。在特征存储区中,时间戳是特征值的特性,而不是单独的资源类型。如果所有特征值都是同时生成的,则可以不需要时间戳列。您可以在注入请求中指定时间戳。

特征存储区

特征存储区是实体类型、特征和特征值的顶层容器。通常,组织创建一个共享特征存储区,以在组织的所有团队中注入、投放和共享特征。但在某些情况下,您可以选择在同一个项目中创建多个特征存储区来隔离环境。例如,您可能有不同的用于实验、测试和生产的特征存储区。

实体类型

实体类型是一组语义上相关的特征。您可以根据与用例相关的概念定义自己的实体类型。例如,影片服务可能具有实体类型 moviesusers,可对与影片或客户对应的相关特征进行分组。

实体

实体是实体类型的特定实例。例如,movie_01movie_02movies 实体类型的实体。请注意,在特征存储区中,每个实体必须具有唯一 ID,并且必须是 STRING 类型。

特征

特征是实体类型的可衡量属性或特性。例如,movies 实体类型具有 average_ratingtitle 等特征,用于跟踪影片的各种属性。特征与实体类型相关联。在一个给定的实体类型中,特征必须互不相同,但特征不需要是全局唯一的。例如,如果您为两个不同的实体类型使用 title,Feature Store 会将 title 解释为两个不同的特征。读取特征值时,您需要在请求中提供特征及其实体类型。

创建特征时,您需要指定其值类型,例如 BOOL_ARRAYDOUBLEDOUBLE_ARRAYSTRING。这决定了您可以为特定特征注入的值类型。如需详细了解受支持的值类型,请参阅 API 参考文档中的 valueType

特征值

Feature Store 会在特定时间点捕获特征值。换言之,给定实体和特征可以具有多个值。例如,movie_01 实体可以具有多个 average_rating 特征值。该值在某个时间可以是 4.4,而在稍后某个时间可以是 4.8。Feature Store 会将元组标识符与每个特征值(entity_idfeature_idtimestamp)相关联,以供 Feature Store 在投放时用来查询值。

尽管时间是连续的,但 Feature Store 存储离散值。当您在时间 t 请求特征值时,返回的值是时间 t 之前的最新存储值。例如,如果 Feature Store 存储了一辆汽车在时间 100110 的位置信息,则 100110 之间任何时刻(包括 105)的请求始终使用 100 位置。如果您需要更高的分辨率,则可以推断值之间的位置或提高数据的采样率。

特征注入

特征注入是将特征工程作业计算的特征值导入特征存储区的过程。在注入数据之前,您必须在特征存储区中定义相应的实体类型和特征。Feature Store 提供批量注入功能,您可以将值批量注入特征存储区。例如,计算出的源数据可能位于 BigQuery 或 Cloud Storage 等位置。然后,您可以将这些来源的数据注入到特征存储区,以便从中央特征存储区以统一格式提供特征值。

如需了解详情,请参阅批量注入特征值

特征投放

特征投放是导出存储特征值以用于训练或推断的过程。特征存储区提供了两种投放特征的方法:批量和在线。批量投放用于高吞吐量工作,并投放大量数据以供离线处理(例如模型训练或批量预测)。在线投放用于小批量检索数据,以进行实时处理(如进行在线预测)。

如需了解详情,请参阅在线批量投放。

实体视图

从特征存储区检索值时,服务会返回一个实体视图,其中包含您请求的特征值。您可以将实体视图看作特征存储区从在线或批量投放请求返回的特征和值:

  • 对于在线投放请求,您可以获取特定实体类型的全部或部分特征。
  • 对于批量传送请求,您可以获取一个或多个实体类型的全部或部分特征。例如,如果特征分布在多个实体类型上,则您可以在单个请求中同时检索这些特征,以提供给机器学习或批量预测请求。

数据保留

Feature Store 会在数据保留时间限制内保留特征值。此限制基于与特征值关联的时间戳,而不是值的导入时间。时间戳超过限制的值将由 Feature Store 安排删除。

后续步骤