Todos los productos
Search
Centro de documentos

OpenSearch:Modelos de ordenamiento personalizados

Última actualización: Sep 04, 2026

Este documento describe cómo usar la función de modelos de ordenamiento personalizados en OpenSearch Industry Algorithm Edition.

Procedimiento

  1. En Feature Management, cree las funciones de campo obligatorias. Este ejemplo usa la tabla system_item. Si las funciones que necesita no se encuentran en esta tabla, primero registre la tabla externa de MaxCompute que las contiene. Para el campo title, cree funciones para su valor sin procesar (custom_title), una función de búsqueda tras la tokenización (custom_title_match) y un recuento de tokens después de la tokenización (custom_title_len). Agregue otras funciones según sus requisitos empresariales. Las funciones descritas en esta sección son ejemplos para construir un modelo de tasa de clics (CTR).

De manera similar, para el campo description, cree custom_description, custom_desc_match y custom_desc_len; para el campo brand_name, cree custom_tags y custom_tags_match; para el campo category_name, cree custom_category.

  1. Combine las funciones integradas de la tabla system_internal con las funciones de campo que creó en el paso anterior. Este proceso se denomina ingeniería de funciones.

Para registrar funciones en lote para un modelo CTR típico, use la operación de API CreateFunctionResource:

En su solicitud, establezca el parámetro ResourceType en feature_generator y configure el parámetro Data con el siguiente objeto JSON. Nota: Asegúrese de haber creado todas las funciones de entrada con el prefijo custom_ tal como se describe en el paso 1.

[
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_raw_q_ultra"
        },
        {
          "type": "item",
          "name": "system_item_id"
        }
      ]
    },
    "generator": "combo",
    "output": "comb_q_nid"
  },
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_user_id"
        },
        {
          "type": "item",
          "name": "system_item_id"
        }
      ]
    },
    "generator": "combo",
    "output": "comb_uid_nid"
  },
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_user_id"
        },
        {
          "type": "item",
          "name": "custom_tags"
        }
      ]
    },
    "generator": "combo",
    "output": "comb_uid_tags"
  },
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_raw_q_ultra"
        },
        {
          "type": "item",
          "name": "custom_tags"
        }
      ]
    },
    "generator": "combo",
    "output": "comb_q_tags"
  },
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_exp_time"
        }
      ]
    },
    "generator": "id",
    "output": "exp_time"
  },
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_terms2"
        }
      ]
    },
    "generator": "id",
    "output": "terms2"
  },
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_raw_q_ultra"
        }
      ]
    },
    "generator": "id",
    "output": "raw_q_ultra"
  },
  {
    "input": {
      "features": [
        {
          "type": "user",
          "name": "system_user_id"
        }
      ]
    },
    "generator": "id",
    "output": "user_id"
  },
  {
    "input": {
      "features": [
        {
          "type": "item",
          "name": "system_item_id"
        }
      ]
    },
    "generator": "id",
    "output": "item_id"
  },
  {
    "input": {
      "features": [
        {
          "type": "item",
          "name": "custom_description"
        }
      ]
    },
        "generator": "id",
        "output": "description"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "custom_desc_len"
                }
            ]
        },
        "generator": "id",
        "output": "desc_len"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "custom_title"
                }
            ]
        },
        "generator": "id",
        "output": "title"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "custom_title_len"
                }
            ]
        },
        "generator": "id",
        "output": "title_len"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "custom_category"
                }
            ]
        },
        "generator": "id",
        "output": "category"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "custom_tags"
                }
            ]
        },
        "generator": "id",
        "output": "tags"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_ctr_30"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_ctr_30"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_ctr_7"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_ctr_7"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_ctr_1"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_ctr_1"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_pv_30"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_pv_30"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_pv_7"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_pv_7"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_pv_1"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_pv_1"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_ipv_30"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_ipv_30"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_ipv_7"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_ipv_7"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_all_nid_ipv_1"
                }
            ]
        },
        "generator": "id",
        "output": "all_nid_ipv_1"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "custom_title_match"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_terms2"
                }
            ]
        },
        "generator": "lookup",
        "output": "term_title_match"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "custom_desc_match"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_terms2"
                }
            ]
        },
        "generator": "lookup",
        "output": "term_desc_match"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "custom_tags_match"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_terms2"
                }
            ]
        },
        "generator": "lookup",
        "output": "term_tags_match"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "system_qterm_match_decay"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_terms2"
                }
            ]
        },
        "generator": "lookup",
        "output": "term_os_kw_match"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_query_cnt"
                }
            ]
        },
        "generator": "id",
        "output": "opensearch_query_cnt"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_qterm_cnt"
                }
            ]
        },
        "generator": "id",
        "output": "opensearch_qterm_cnt"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "system_query_ctr_decay"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_raw_q_ultra"
                }
            ]
        },
        "generator": "lookup",
        "output": "os_q_ctr_decay"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "system_qterm_ctr_decay"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_terms2"
                }
            ]
        },
        "generator": "lookup",
        "output": "os_term_ctr_decay"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "system_query_ctr_decay"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_raw_q_ultra"
                }
            ]
        },
        "generator": "lookup",
        "output": "os_q_ctr_decay_nokey"
    },
    {
        "input": {
            "features": [
                {
                    "role": "map",
                    "type": "item",
                    "name": "system_qterm_ctr_decay"
                },
                {
                    "role": "key",
                    "type": "user",
                    "name": "system_terms2"
                }
            ]
        },
        "generator": "lookup",
        "output": "os_term_ctr_decay_nokey"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_query_seq_decay"
                }
            ]
        },
        "generator": "id",
        "output": "os_q_seq_decay"
    },
    {
        "input": {
            "features": [
                {
                    "type": "item",
                    "name": "system_qterm_seq_decay"
                }
            ]
        },
        "generator": "id",
        "output": "os_term_seq_decay"
    },
    {
        "input": {
            "features": [
                {
                    "role": "query",
                    "type": "user",
                    "name": "system_terms2"
                },
                {
                    "role": "title",
                    "type": "item",
                    "name": "system_qterm_seq_decay"
                }
            ],
            "method": "query_common_ratio"
        },
        "generator": "overlap",
        "output": "os_qterm_q_common_ratio"
    },
    {
        "input": {
            "features": [
                {
                    "role": "query",
                    "type": "user",
                    "name": "system_terms2"
                },
                {
                    "role": "title",
                    "type": "item",
                    "name": "system_qterm_seq_decay"
                }
            ],
            "method": "title_common_ratio"
        },
        "generator": "overlap",
        "output": "os_qterm_title_common_ratio"
    },
    {
        "input": {
            "features": [
                {
                    "role": "query",
                    "type": "user",
                    "name": "system_terms2"
                },
                {
                    "role": "title",
                    "type": "item",
                    "name": "custom_title"
                }
            ],
            "method": "query_common_ratio"
        },
        "generator": "overlap",
        "output": "title_q_common_ratio"
    },
    {
        "input": {
            "features": [
                {
                    "role": "query",
                    "type": "user",
                    "name": "system_terms2"
                },
                {
                    "role": "title",
                    "type": "item",
                    "name": "custom_title"
                }
            ],
            "method": "title_common_ratio"
        },
        "generator": "overlap",
        "output": "title_title_common_ratio"
    },
    {
        "input": {
            "features": [
                {
                    "role": "query",
                    "type": "user",
                    "name": "system_terms2"
                },
                {
                    "role": "title",
                    "type": "item",
                    "name": "custom_description"
                }
            ],
            "method": "query_common_ratio"
        },
        "generator": "overlap",
        "output": "desc_q_common_ratio"
    },
    {
        "input": {
            "features": [
                {
                    "role": "query",
                    "type": "user",
                    "name": "system_terms2"
                },
                {
                    "role": "title",
                    "type": "item",
                    "name": "custom_description"
                }
            ],
            "method": "title_common_ratio"
        },
        "generator": "overlap",
        "output": "desc_title_common_ratio"
    },
    {
        "input": {
            "features": [
                {
                    "type": "user",
                    "name": "system_term_seq_length"
                }
            ],
            "dimension": 1
        },
        "generator": "raw",
        "output": "term_seq_length"
    }
]

Una vez creadas las funciones, puede editarlas en la página Feature Management.

Especifique cómo usar estas funciones en el código del modelo.

Con base en Quick Start, modifique la lista de funciones por usar. Typically, you specify these features in embedding_columns.

En la página de configuración del modelo de ordenamiento personalizado, especifique un nombre para la descripción del modelo, como model1. En el archivo Python, defina la variable self.embedding_columns y pase los campos de salida de su configuración de funciones, tales como comb_q_nid, comb_uid_nid y comb_uid_tags, como una lista de funciones de embedding al modelo.

  1. Especifique la descripción de funciones y la descripción de modelo que usará en su modelo de ordenamiento personalizado.

En el panel de navegación, elija modelo de ordenamiento personalizado. En la página de creación de modelos, configure los siguientes parámetros: seleccione la aplicación objetivo, introduzca un nombre de modelo (por ejemplo, rank_model; debe tener entre 1 y 30 caracteres, comenzar con una letra y puede contener mayúsculas, minúsculas, dígitos y guiones bajos), establezca el tipo de modelo en modelo de ordenamiento personalizado, habilite el entrenamiento programado si es necesario, y seleccione la descripción de funciones (por ejemplo, fg1) y la descripción de modelo (por ejemplo, model1) que creó previamente.

  1. Después de que el modelo se entrene correctamente, podrá usarlo en Cava de la misma forma que un modelo CTR. Para obtener más información, consulte custom sorting model. Antes de desplegar el modelo, valide su rendimiento mediante la ejecución de una A/B test.