机器学习PAI easyrec怎么配置不做embedding层?[阿里云机器学习PAI]

机器学习PAI easyrec做RawFeature这种连续值特征输入时,怎么配置不做embedding层,直接将特征原值作为输入

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在easyrec中,可以通过配置Excel特征配置文件中的dense字段来实现不做embedding层,直接将特征原值作为输入的操作。具体做法是将dense字段设置为true,并且不设置embedding_dim和boundaries字段。这样配置后,连续值特征将作为输入而不进行embedding层的操作。,此回答整理自钉群“【EasyRec】推荐算法交流群”

  2. 对于这个问题,很抱歉,目前我并未找到明确的文档或指南说明如何在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中处理连续值特征的一般步骤。但是需要注意的是,这种方法可能会增加特性的维度,从而增加模型的复杂性。因此,具体如何处理连续值特征还需要根据你的应用场景和需求进行选择。建议尝试不同的方案并比较它们的效果。