机器学习PAI easyrec做RawFeature这种连续值特征输入时,怎么配置不做embedding层,直接将特征原值作为输入
在使用EasyRec进行RawFeature连续值特征输入时,可以通过设置feature_columns
参数来配置不做embedding层,直接将特征原值作为输入。具体步骤如下:
RawFeature
类型的特征列,例如:from easyrec.core.api import Feature, FeatureType, RawFeature
raw_feature = RawFeature(name='age', dtype=np.float32)
其中,name
为特征名称,dtype
为特征类型。
feature_columns
中添加该特征列,并指定其类型为RawFeature
:feature_columns = [raw_feature]
feature_columns
传递给模型即可:model = Model(feature_columns)
通过以上步骤,就可以实现在使用EasyRec进行RawFeature连续值特征输入时,不做embedding层,直接将特征原值作为输入的配置。
在easyrec中,可以通过配置Excel特征配置文件中的dense字段来实现不做embedding层,直接将特征原值作为输入的操作。具体做法是将dense字段设置为true,并且不设置embedding_dim和boundaries字段。这样配置后,连续值特征将作为输入而不进行embedding层的操作。,此回答整理自钉群“【EasyRec】推荐算法交流群”
对于这个问题,很抱歉,目前我并未找到明确的文档或指南说明如何在EasyRec中直接使用连续值特征的原始值而不需要进行嵌入。大部分推荐系统的实现都需要将连续值特征进行某种形式的转换以使其更易于模型理解。常见的一种方式是将连续值特征离散化为整数类型,例如通过等频或等宽分箱的方式。
然而,在EasyRec中,如果你想将连续值特征转换为整数值特性,你需要在 feature_config.json
文件中添加相应的配置,并且需要在项目的 "raw_features" 列表中包含这些特性。
具体来说,假设有一个连续值特征叫做 age
,你可以创建一个 discretizer
组件对其进行离散化,如下所示:
{
"name": "discretizer",
"type": "Discretizer",
"params": {
"continuous_columns": ["age"],
"bin_num": [5] # 将年龄特征分为5个区间
}
}
然后,在 feature_config.json
文件中,你需要将 age
特性添加到 raw_features
列表中,如下所示:
{
"sparse_features": [],
"dense_features": ["user_id", "item_id"],
"sparse_embedding_dims": {"user_id": 16, "item_id": 16},
"dense_dim": 16,
"raw_features": ["age"]
}
以上就是在EasyRec中处理连续值特征的一般步骤。但是需要注意的是,这种方法可能会增加特性的维度,从而增加模型的复杂性。因此,具体如何处理连续值特征还需要根据你的应用场景和需求进行选择。建议尝试不同的方案并比较它们的效果。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。