更新时间:2024-04-17 GMT+08:00
分享

特征工程

特征工程可对推荐系统的离线数据进行处理,它包含两个功能:

  1. 从离线数据中提取用户、物品画像和RES内部通用格式数据;
  2. 把RES内部通用格式数据处理成训练排序模型所需的训练数据、测试数据等。

与功能对应,特征工程的两个任务分别是:

图1 特征工程

创建特征工程

创建特征工程操作步骤如下:

  1. “离线作业”下,单击“特征工程”页签,单击上方“创建”,进入“创建特征工程”页面。
  2. “创建特征工程”页面,填写特征工程“名称”“场景”“描述”
    • 特征工程名称:请以“ETL-”开始,只能由字母、数字、中划线和下划线组成,并且长度小于64个字符。
    • “场景”信息可选择您在全局配置页面创建的场景。
  3. 设置计算引擎信息,指定“服务名”“集群名称”“任务配置地址”“资源规格”等信息。
  4. 单击“添加特征工程”,根据业务需要在下拉框中选择一个合适的策略。初始用户画像-物品画像-标准宽表生成排序样本预处理策略参数说明请单击策略名称进行查看。
  5. (可选)在目标策略右侧,单击“删除”,可以删除该策略。
  6. 具体策略的参数说明可单击上方策略名称进行查看,策略设置完成后,单击“确定”。作业一般需要运行一段时间,根据您的数据量和资源不同,将耗时几分钟到几十分钟不等。

    您可以前往特征工程列表,查看作业的基本情况。在作业列表中,刚创建的作业“状态”“计算中”,当作业“状态”变为“计算成功”时,表示作业运行结束,可以将经过处理的数据应用于离线作业。当作业“状态”变为“计算失败”时,您可以单击作业的名称,进入详情页面,通过查看日志等手段处理问题。

初始用户画像-物品画像-标准宽表生成

初始用户画像-物品画像-标准宽表生成,是将初始格式数据(离线数据)处理成用户画像、物品画像以及内部通用格式数据。

表1 初始用户画像-物品画像-标准宽表生成参数说明

参数名称

说明

数据源

数据在OBS的存放路径。包括用户属性表、物品属性表、用户操作行为表。

全局特征信息文件

用户在使用特征工程之前,需要提供一份全局的特征信息文件,后续的特征工程、在线模块都会用到该文件。

文件数据信息请参见全局特征信息文件

当上传的数据中的特征有变化时,用户需要同步更新该文件。该文件为JSON格式,包含特征名、特征大类、特征值类型。

保留已有宽表

对结果保存路径中已有宽表数据的保留方式:

  • 否,不保留任何已有的数据。
  • 是,保留全部已有的数据。
  • 覆盖,将相同日期下的数据覆盖掉,保留不同日期下的数据。

结果保存路径

行为-用户-物品(通用格式)的保存路径。

说明:

使用初始用户画像-物品画像-标准宽表生成的数据时,其路径具体到文件夹即可。

结果存储平台

存储类型有用户画像表和物品画像表两种。

  • 用户画像表:用户自定义CloudTable集群名称和表名,用于存储生成的用户数据。
  • 物品画像表:用户自定义CloudTable集群名称和表名,用于存储生成的物品数据。
  • 设置数据版本:您可以单击设置数据版本。RES的数据版本有两种,“V1”版本即数据按照原有格式存储,未做过分区处理。“V2”版本则会依照用户的分区设置做分区处理,当分区合理时,数据将均匀分布在各个节点,有效利用Cloudtable的高并发特性,提升读写效率。其中“预分区数量”“索引分区数量”可以根据数据量进行设置,如果读写性能达不到要求,可以增加Cloudtable的RS单元数量提升性能。

排序样本预处理

将内部通用格式数据处理成排序策略所要求的特定格式数据,同时进行离散化,数据编码等特征工程处理。

表2 排序样本预处理输入参数说明

参数名称

说明

全局特征信息文件

用户在使用特征工程之前,需要提供一份全局的特征信息文件,后续的特征工程、排序算法、在线模块都会用到该文件。

文件数据信息请参见全局特征信息文件

当上传的数据中的特征有变化时,用户需要同步更新该文件。该文件为JSON格式,包含特征名、特征大类、特征值类型。

通用格式数据源根路径

通用格式生成所在的根目录,即用户提交初始初始用户画像-物品画像-标准宽表生成基于行为数据的用户画像更新时所提供的结果保存路径。

行为起止日期

用户行为数据时间范围,可只有起始时间、结束时间或为空。

待提取用户特征

从全局特征信息文件中提取输入的用户特征进行排序模型训练。

说明:

离散的区间个数不能超过100个,请您根据业务需求合理分配参数值。

单击“”,增加用户特征。当“特征值类型”“单值数值型”时,可选的参数信息如下:

  • “等距离散”:根据业务需求限定数值“最小值”“最大值”“距离”。例如,根据age进行等距离散,设置年龄最小值为1,最大值为100,离散距离为10。等距离散会按照age将1-10岁,11-20岁等作为一个区间进行离散。
  • “等频离散”:根据业务需求限定数值“最小值”“最大值”“频率”。例如,根据weight进行等频离散,设置weight最小值为5,最大值为200,离散频率为200。等频离散会按照weight值的大小进行排序之后,以200个数值为一个区间进行离散。
  • “用户自定义离散”:根据业务需求限定数值“最小值”“最大值”“区间名称”。例如,根据age进行离散,设置年龄最小值为1,最大值为3,区间名称为“幼儿”;单击”添加区间,最小值为4,最大值为12,区间名称为“少儿”,则按照用户自定义的区间进行离散。
  • “不离散”:(默认)不做归一化,不对数据做处理。归一化,根据业务需求限定数值“最小值”“最大值”。例如,根据weight进行归一化,设置weight最小值为50,最大值为200。如果给定的数值x在该区间范围内则采用以下计算公式处理:“x_new = (x - 50) / (200-50)”,不在区间内的则按异常值处理,如x=80时,x_new = 0.2。

待提取物品特征

从全局特征信息文件中提取输入的物品特征进行排序模型训练。

说明:

离散的区间个数不能超过100个,请您根据业务需求合理分配参数值。

单击“”,增加物品特征。当“特征值类型”“单值数值型”时,可选的参数信息如下:

  • “等距离散”:根据业务需求限定数值“最小值”“最大值”“距离”。例如,根据order_price进行等距离散,设置价格最小值为1,最大值为100,离散距离为10。那么等距离散会按照价格将1-10元,11-20元等为一个区间进行离散。
  • “等频离散”:根据业务需求限定数值“最小值”“最大值”“频率”。例如,根据weight进行等频离散,设置weight最小值为5,最大值为200,离散频率为200。那么等频离散会按照weight值的大小进行排序之后,以200个数值为一个区间进行离散。
  • “用户自定义离散”:根据业务需求限定数值“最小值”“最大值”“区间名称”。例如,根据order_price进行离散,设置价格最小值为1,最大值为156,区间名称为“低价区”;单击“”添加区间,最小值为157,最大值为500,区间名称为“中高价位区”,那么会按照用户自定义的区间进行离散。
  • “不离散”:(默认)不做归一化,不对数据做处理。归一化,根据业务需求限定数值“最小值”“最大值”。例如,根据weight进行归一化,设置weight最小值为50,最大值为200。如果给定的数值x在该区间范围内则采用以下计算公式处理:“x_new = (x - 50) / (200-50)”,不在区间内的则按异常值处理,如x=80时,x_new = 0.2。

正反馈行为类型

用户自定义。行为类型来源于通用格式数据源中“behavior”字段中“actiontype”的值。单击“”,增加正反馈行为类型。您可以通过来自定义权重。

负反馈行为类型

用户自定义。行为类型来源于通用格式数据源中“behavior”字段中“actiontype”的值。单击“”,增加负反馈行为类型。您可以通过来自定义权重。

算子类型

排序数据处理算子类型。每一种排序算法都需要进行特定的数据处理,需要根据使用的排序算法来选择排序数据处理类型。LR、FM、FFM、DEEPFM、PIN这五种算法的数据处理互相通用。

训练集测试集划分方式

按时间或者比例来划分训练集测试集。

“TIME”
  • 训练数据时间:训练数据起始时间和终止时间,该起始时间和终止时间不得超过行为数据的时间范围。
  • 测试数据时间:测试数据起始时间和终止时间,该起始时间和终止时间不得超过行为数据的时间范围。
“RATE”
  • 训练数据占比:生成的结果中,训练集占整个训练集和测试集的比例,默认0.7。
  • 测试数据占比:生成的结果中,训练集占整个训练集和测试集的比例,默认0.3。

结果保存路径

单击选择所有输出数据在OBS的保存根路径,会在这个根路径下自动创建feature_map、features_info_online_use、fields_feature_size、test_data、train_data五个文件夹,分别保存特征映射、在线所需特征信息、域特征数量、测试集、训练集这五个文件。

相关文档