更新时间:2023-05-24 GMT+08:00
分享

提交组合作业

功能介绍

该接口用于提交组合作业进行离线计算,并完成对应策略的候选集生成。

URI

POST /v1/{project_id}/training

参数说明请参见表1-URI参数说明
表1 URI参数说明

名称

是否必选

类型

说明

project_id

String

项目编号,用于资源隔离。获取方法请参见获取项目ID

请求消息

请求参数请参见表2-请求参数说明
表2 请求参数说明

参数名称

是否必选

参数类型

说明

workspace_id

String

工作空间ID,默认为0

job_name

String

训练作业名称,只能由数字,字母,下划线,中划线组成,最大长度为20字符

job_description

String

训练作业描述,最大长度为256字符

offline_platform

List

请参见表3,离线计算平台信息。

data_source

List

请参见表5数据源。

storage

List

请参见表8,信息存储。

algorithm_setting

JSON

请参见表10,算法配置。

filter_rules

JSON

请参见表12,过滤配置列表。

表3 offline_platform参数说明

参数名称

是否必选

参数类型

说明

platform

String

平台名称,支持DLI。

platform_parameter

JSON

请参见表4,平台参数。

computing_resource

String

指定DLI运行任务的资源规格。

config_load_path

String

配置加载路径。

表4 platform_parameter 参数说明

参数名称

是否必选

参数类型

说明

cluster_name

String

集群名称,最大长度64。

表5 data_source参数说明

参数名称

是否必选

参数类型

说明

offline

List

请参见表6,离线数据源。

表6 offline参数说明

参数名称

是否必选

参数类型

说明

table_type_id

String

推荐通用数据模板

  • 用户属性表USER_META
  • 物品属性表ITEM_META
  • 用户操作行为表USER_BEHAVIOR
  • 通用格式GENERAL_FORMAT

数据格式请参见推荐系统离线数据源

data_source_url

String

数据源路径,最大长度1000字符

data_format

String

数据格式,可选值:csv、parquet、json、orc。

data_param

JSON

请参见表7,数据格式是csv的时候必选,其他可选。

start_time

String

通用格式数据源开始时间。例如,“2018-01-01”。

end_time

String

通用格式数据源结束时间。例如,“2018-02-01”。

表7 data_param参数说明

参数名称

是否必选

参数类型

说明

header

String

是否显示表头,有表头"true"或无表头"false"。

delimiter

String

分隔符,最大长度10字符

quote

String

引用字符,最大长度10字符

escape

String

转义字符,最大长度10字符

表8 storage参数说明

参数名称

是否必选

参数类型

说明

platform

String

平台名称,现支持CloudTable。

platform_parameter

JSON

请参见表9,数据存储参数。

表9 platform_parameter 参数说明

参数名称

是否必选

参数类型

说明

cluster_id

String

集群ID。

table_name

String

表名称,最大长度64字符

cluster_name

String

集群名称。

data_version

String

数据版本号。V1或者V2。

region_info

JSON

预分区信息。如果选择数据版本为V2时,才需要设置预分区信息。V1则默认不进行预分区。请参见表17,预分区信息。

表10 algorithm_setting参数说明

参数名称

是否必选

参数类型

说明

start_time

Long

训练数据开始时间,以毫秒为单位的时间戳。

end_time

Long

训练数据结束时间,以毫秒为单位的时间戳。

strategy

List

请参见表11,策略集合。

表11 strategy参数说明

参数名称

是否必选

参数类型

说明

strategy_type

String

策略类型(可选值)

  • 召回策略:recall
  • 排序策略:sorting

name

String

策略别名,最大长度60字符

algorithm_type

String

算法类型。

parameter

JSON

算法参数,JSON格式。

说明:

提交模板作业接口,根据选择策略的不同,参数也有不同。

  • 召回策略

    parameter中包含的参数,请参见策略参数说明中召回策略(recall)各策略参数说明。

  • 排序策略

    parameter中包含的参数有以下几部分:

    • spec_id :参数类型Long,训练作业选择的资源规格ID。
    • run_path:参数类型String,训练结果保存根路径,训练完成后,会将模型和日志文件保存在该路径下。
    • training_data_path:参数类型String,训练数据的obs路径。
    • test_data_path:参数类型String,测试数据的obs路径。
    • 策略参数说明中排序策略(sorting)各策略参数说明。
表12 filter_rules参数说明

参数名称

是否必选

参数类型

说明

behavior_rules

List

请参见表13,用户行为过滤配置。

blacklist

String

黑名单过滤配置。

whitelist

String

白名单过滤配置。

etl_uuid

String

特征工程-用户物品特征抽取生成的uuid,用于属性过滤配置。

表13 behavior_rules参数说明

参数名称

是否必选

参数类型

说明

behavior_type

String

行为类型 。

  • view:物品曝光
  • click:用户点击物品
  • collect:用户收藏了某个物品
  • uncollect:用户取消收藏某个物品
  • search_click:用户点击搜索结果中的物品
  • comment:用户对物品的评论
  • share: 分享
  • like:点赞
  • dislike:点衰
  • grade:评分
  • consume:消费
  • use:观看视频/听音乐/阅读

interval

Integer

代表过去几天的天数,取值[1,10000]。

frequency

Integer

代表频率次数,取值[1,10000]。

响应消息

响应参数请参见表14-响应参数说明
表14 响应参数说明

参数名称

是否必选

参数类型

描述信息

is_success

Boolean

是否成功。

strategies

List

请参见表15,返回策略结果集。

job_id

String

作业ID。

filter_uuid

String

过滤规则生成的uuid。

表15 strategies参数说明

参数名称

是否必选

参数类型

描述信息

strategy_type

String

策略类型(可选值)

  • 召回策略:recall
  • 排序策略:sorting

name

String

策略别名。

algorithm_type

String

算法类型 。

parameter

JSON

请参见策略参数说明,算法参数。

candidate_set

List

请参见表16,候选结果集。

表16 candidate_set参数说明

参数名称

是否必选

参数类型

说明

uuid

String

候选集ID。

description

String

候选集描述。

表17 region_info参数说明

参数名称

是否必选

参数类型

说明

region_num

Integer

预分区个数。默认推荐预分区8个。

index_region_num

Integer

索引表预分区个数。只有特种工程中,初始用户画像-物品画像-标准宽表生成算子需要使用索引表预分区个数,其他离线算子因为不生成索引表不需要此参数。

示例

  • 请求示例
    {
      "job_name": "yyn-test",
      "job_description": "yyn-test",
      "data_source": [
        {
          "offline": [
            {
              "table_type_id": "USER_META",
              "data_format": "csv",
              "data_param": {
                "header": "false",
                "delimiter": ",",
                "quote": "\"",
                "escape": "\\"
              },
              "data_source_url": "<数据源存储的OBS路径>"
            }
            {
              "table_type_id": "ITEM_META",
              "data_format": "csv",
              "data_param": {
                "header": "false",
                "delimiter": ",",
                "quote": "\"",
                "escape": "\\"
              },
              "data_source_url": "<数据源存储的OBS路径>"
            },
            {
              "table_type_id": "USER_BEHAVIOR",
              "data_format": "csv",
              "data_param": {
                "header": "false",
                "delimiter": ",",
                "quote": "\"",
                "escape": "\\"
              },
              "data_source_url": "<数据源存储的OBS路径>"
            }
          ]
        }
      ],
      "offline_platform": [
        {
          "platform": "DLI",
          "platform_parameter": {
            "cluster_name": "res_one"
          },
          "config_load_path": "<配置加载路径>"
        }
      ],
      "storage": [
        {
          "platform": "CloudTable",
          "platform_parameter": {
            "cluster_id": "cca518b4-a9fb-4dbf-80bb-d6838cbdcc87",
            "cluster_name": "cloudtable-ccb1-sec",
            "table_name": "yyn-555"
          }
        }
      ],
      "algorithm_setting": {
        "strategy": [
          {
            "name": "默认推荐-特定行为热度",
            "algorithm_type": "SpecificBehavior",
            "strategy_type": "recall",
            "parameter": {
              "data_source_config": {
                "retain_days": 30,
                "behavior_type": "collect",
                "start_time": 1543593600000,
                "end_time": 1543939200000
              },
              "algorithm_config": {},
              "candidate_set_config": {
                "is_recommended_by_category": false
              }
            }
          },
          {
            "name": "基于物品的协同过滤推荐",
            "algorithm_type": "ItemCF",
            "strategy_type": "recall",
            "parameter": {
              "data_source_config": {
                "retain_days": 30,
                "behavior_weights": [
                  {
                    "behavior_type": "view",
                    "weight": 1
                  }
                ]
              },
              "algorithm_config": {
                "similar_metric": "cosine"
              },
              "candidate_set_config": {
                "max_recommended_num": 1000
              }
            }
          },
          {
            "name": "业务规则-基于历史行为记忆生成候选集",
            "algorithm_type": "HistoryBehaviorMemory",
            "strategy_type": "recall",
            "parameter": {
              "data_source_config": {
                "retain_days": 30
              },
              "algorithm_config": {
                "history_behavior_memories": [
                  {
                    "behavior_type": "view",
                    "least_intension": 1
                  }
                ]
              },
              "candidate_set_config": {}
            }
          },
          {
            "name": "域感知因子分解机",
            "strategy_type": "sorting",
            "algorithm_type": "FFM",
            "parameter": {
              "algorithm_parameters": {
                "max_iterations": 50,
                "early_stop_iterations": 5,
                "fields_feature_size_path": "<数据存储的OBS路径>",
                "algorithm_specify_parameters": {
                  "latent_vector_length": 10
                },
                "regular_parameters": {
                  "l2_regularization": 0,
                  "regular_loss_compute_mode": "full"
                },
                "initial_parameters": {
                  "initial_method": "normal",
                  "mean_value": 0,
                  "standard_deviation": 0.001
                },
                "optimize_parameters": {
                  "type": "grad",
                  "learning_rate": 0.001
                }
              },
              "algorithm_type": "FFM",
              "spec_id": 1,
              "run_path": "<训练结果保存根路径>",
              "training_data_path": "<训练数据的obs路径>",
              "test_data_path": "<测试数据的obs路径>"
            }
          }
        ],
        "start_time": 1543593600000,
        "end_time": 1543939200000
      },
      "filter_rules": {
        "behavior_rules": [
          {
            "behavior_type": "collect",
            "interval": 7,
            "frequency": 5
          }
        ],
        "blacklist": "<黑名单存储路径>",
        "whitelist": "<白名单存储路径>"
      }
    }
  • 成功响应示例
    {
        "is_success": true,
        "strategies": [
            {
                "name": "默认推荐-特定行为热度",
                "strategy_type": "recall",
                "algorithm_type": "SpecificBehavior",
                "parameter": {
                    "data_source_config": {
                        "retain_days": 30,
                        "behavior_type": "collect",
                        "start_time": 1543593600000,
                        "end_time": 1543939200000
                    },
                    "algorithm_config": {},
                    "candidate_set_config": {
                        "is_recommended_by_category": false
                    }
                },
                "candidate_set": [
                    {
                        "uuid": "bb45ef1d31a7488584724f58d468d9ae",
                        "description": "[默认推荐-特定行为热度]特定行为热度推荐算法生成的候选集"
                    }
                ],
                "strategy_id": 0
            },
            {
                "name": "基于物品的协同过滤推荐",
                "strategy_type": "recall",
                "algorithm_type": "ItemCF",
                "parameter": {
                    "data_source_config": {
                        "retain_days": 30,
                        "behavior_weights": [
                            {
                                "behavior_type": "view",
                                "weight": 1
                            }
                        ]
                    },
                    "algorithm_config": {
                        "similar_metric": "cosine"
                    },
                    "candidate_set_config": {
                        "max_recommended_num": 1000
                    }
                },
                "candidate_set": [
                    {
                        "uuid": "958d09223b2e4175b2740f8f782cc5fc",
                        "description": "[基于物品的协同过滤推荐]ItemCF算法生成的用户-物品列表候选集"
                    }
                ],
                "strategy_id": 1
            },
            {
                "name": "业务规则-基于历史行为记忆生成候选集",
                "strategy_type": "recall",
                "algorithm_type": "HistoryBehaviorMemory",
                "parameter": {
                    "data_source_config": {
                        "retain_days": 30
                    },
                    "algorithm_config": {
                        "history_behavior_memories": [
                            {
                                "behavior_type": "view",
                                "least_intension": 1
                            }
                        ]
                    },
                    "candidate_set_config": {}
                },
                "candidate_set": [
                    {
                        "uuid": "1b5301f0c7804e28b66eb46c92249ed2",
                        "description": "[业务规则-基于历史行为记忆生成候选集]CustomRule生成的用户-物品列表候选集"
                    }
                ],
                "strategy_id": 2
            },
            {
                "name": "域感知因子分解机",
                "strategy_type": "sorting",
                "algorithm_type": "FFM",
                "parameter": {
                    "algorithm_parameters": {
                        "row_features_size": "6",
                        "algorithm_specify_parameters": {
                            "latent_vector_length": 10
                        },
                        "initial_parameters": {
                            "initial_method": "normal",
                            "mean_value": -0.001,
                            "standard_deviation": 0.001
                        },
                        "optimize_parameters": {
                            "type": "grad",
                            "learning_rate": 0.1,
                            "log_loss_reduce_method": "mean"
                        },
                        "regular_parameters": {
                            "l2_loss_weight_lambda": 0.001
                        },
                        "loss_mode": {
                            "l2_loss_mode": "full"
                        },
                        "fields_feature_size_path": "<数据存储路径>"
                    },
                    "algorithm_type": "FFM",
                    "spec_id": 1,
                    "name": "域感知因子分解机",
                    "run_path": "<训练结果保存根路径>",
                    "training_data_path": "<训练数据的obs路径>",
                    "test_data_path": "<测试数据的obs路径>"
                },
                "candidate_set": [
                    {
                        "uuid": "4aa9f06d24254fedbe462bfbfb879e63",
                        "description": "[域感知因子分解机]"
                    }
                ],
                "strategy_id": 0
            }
        ],
        "filter_uuid": "857578fafa4746dd873722d661725154",
        "job_id": "f171a66489904462bad0a89d9b7483de"
    }
  • 失败响应示例
    {
        "is_success": false,
        "error_code": "res.2013",
        "error_msg": "There dataSource is empty or less than five."
    }

状态码

状态码请参见状态码

相关文档