Todos os produtos
Search
Central de documentação

Platform For AI:Personalização de algoritmos de recomendação do PAI-Rec

Última atualização: Sep 07, 2026

Use um conjunto de dados público para começar a usar o PAI-Rec rapidamente. Configure recursos essenciais para um algoritmo de recomendação personalizado, como engenharia de features, recall e classificação refinada. Em seguida, gere e implante o código no workflow correspondente no DataWorks.

Pré-requisitos

Antes de começar, conclua as etapas a seguir:

  • Ative o PAI. Para mais detalhes, consulte Activate PAI and create a default workspace.

  • Crie uma Virtual Private Cloud (VPC) e um vSwitch. Para mais detalhes, consulte Create a VPC with an IPv4 CIDR block.

  • Ative o PAI-FeatureStore. Para mais detalhes, veja a seção Prerequisites em Create a data source. Não é necessário ativar o Hologres. Como fonte de dados, selecione FeatureDB. Para mais detalhes, consulte Create an online data source: FeatureDB.

  • Ative o MaxCompute e crie um projeto do MaxCompute chamado project_mc. Para mais detalhes, consulte Activate MaxCompute e Create a MaxCompute project.

  • Crie um bucket do Object Storage Service (OSS). Para mais detalhes, consulte Create a bucket.

  • Activate DataWorks:

    • Crie um workspace do DataWorks. Para mais detalhes, consulte Create a workspace.

    • Adquira um grupo de recursos Serverless para o DataWorks. Para mais detalhes, consulte Use a Serverless resource group. Esse grupo de recursos sincroniza dados para o PAI-FeatureStore e executa comandos eascmd para criar e atualizar o service do PAI-EAS.

    • Configure as fontes de dados do DataWorks:

  • Crie um projeto do FeatureStore e entidades de features. Pule esta etapa se estiver usando um grupo de recursos Serverless. Caso utilize um grupo de recursos dedicado para o DataWorks, instale o SDK Python do FeatureStore no grupo de recursos. Para mais detalhes, consulte Step 2: Create and register a FeatureStore e Install the FeatureStore Python SDK.

  • Ative o Realtime Compute for Apache Flink. Para mais detalhes, consulte Activate Realtime Compute for Apache Flink. Nota: Defina o storage type como OSS bucket, e não como Fully Managed Storage. Certifique-se de que o bucket do OSS para o Flink seja o mesmo configurado no PAI-Rec. O Flink registra dados de comportamento do usuário em tempo real e calcula features de usuário em tempo real.

  • Se você optar posteriormente por usar o EasyRec (framework TensorFlow), o treinamento será executado no MaxCompute por padrão.

  • Se você optar posteriormente por usar o TorchEasyRec (framework PyTorch), o treinamento será executado no PAI-DLC por padrão. Para baixar dados do MaxCompute no PAI-DLC, é necessário ativar o Data Transmission Service (consulte Purchase and use a dedicated resource group for Data Transmission Service).

  • 1. Crie uma instância do PAI-Rec

    1. Faça login na página inicial do PAI-Rec e clique em Buy Now.

    2. Na página de compra da instância do PAI-Rec, configure os parâmetros a seguir e clique em Buy Now.

      Parâmetro

      Descrição

      Region and availability zone

      A região onde seu service será implantado.

      Service Type

      Para esta solução, selecione Standard Edition e ative o recurso Recommendation Solution Customization.

    3. Faça login no console do PAI-Rec. No canto superior esquerdo da barra de menu superior, selecione uma região.

    4. No painel de navegação à esquerda, escolha Instance list. Clique no nome da instância para acessar a página de detalhes da instância.

    5. Na seção Procedure, clique em Cloud Service Configuration. Você será direcionado para a página System Configuration > Cloud Service Configuration. Clique em Edit, configure os parâmetros abaixo e clique em Exit.

      Configuração de recursos

      Parâmetro

      Descrição

      Modelagem

      Machine Learning Platform for AI Workspace

      Insira seu workspace padrão do PAI.

      DataWorks Workspace

      Insira o workspace do DataWorks gerado automaticamente.

      MaxCompute Workspace

      Insira seu projeto do MaxCompute.

      OSS Bucket

      Selecione seu bucket do OSS.

      Engine

      Real-time Recall Engine

      Em Whether to use PAI-FeatureStore, selecione Yes.

      Real-time Feature Query

      Em Whether to use PAI-FeatureStore, selecione Yes.

    6. No painel de navegação à esquerda, escolha System Configuration > Permissions. Na aba Services, verifique se cada product da cloud está autorizado corretamente.

    2. Clone o conjunto de dados público

    1. Sincronize tabelas

    Esta solução aceita dados de entrada de duas formas:

    1. Clonar dados de uma janela de tempo fixa do projeto pai_online_project. Este método não suporta agendamento rotineiro.

    2. Usar um script Python para gerar dados. É possível executar uma tarefa no DataWorks para gerar esses dados por um período específico.

    Para agendar a geração diária de dados e o treinamento de modelos, utilize o segundo método. Implante o código Python especificado para gerar os dados. Para mais informações, consulte a aba Generate data using code.

    Janela de tempo fixa

    O PAI-Rec fornece três tabelas comuns para algoritmos de recomendação no projeto publicamente acessível pai_online_project:

    • tabela de usuários: pai_online_project.rec_sln_demo_user_table

    • tabela de itens: pai_online_project.rec_sln_demo_item_table

    • tabela de comportamentos: pai_online_project.rec_sln_demo_behavior_table

    Os dados são gerados aleatoriamente para fins de demonstração, portanto métricas como AUC resultantes do treinamento serão baixas. Execute comandos SQL no DataWorks para sincronizar os dados das tabelas do projeto pai_online_project para o seu projeto do DataWorks, por exemplo, DataWorks_a. Siga estas etapas:

    1. Faça login no console do DataWorks. Na barra de menu superior, selecione uma região.

    2. No painel de navegação à esquerda, clique em Data Development and O&M > Data Development.

    3. Selecione o workspace do DataWorks criado e clique em Go To Data Development.

    4. Passe o mouse sobre Create e escolha Create Node > MaxCompute > ODPS SQL. Configure os parâmetros conforme descrito na tabela a seguir e clique em Confirm.

      Configuração de recursos

      Parâmetro

      Descrição

      Engine instance

      Selecione a fonte de dados do MaxCompute vinculada.

      Node type

      Selecione ODPS SQL.

      Path

      Escolha um caminho de armazenamento para o nó. Por exemplo, Business Flow/Workflow/MaxCompute.

      Name

      Insira um nome, por exemplo, Data.

    5. No editor do novo nó, cole e execute o código a seguir para sincronizar as tabelas de usuários, itens e comportamentos do projeto pai_online_project para o seu projeto do MaxCompute, por exemplo, project_mc. O código requer uma janela de dados de 100 dias. Para definir essa janela com término no dia anterior, vá para a seção Scheduling Parameters, clique em Add Parameter e adicione dois parâmetros: bizdate com o valor $[yyyymmdd-1] e bizdate_100 com o valor $[yyyymmdd-100].

    CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_v1(
     user_id BIGINT COMMENT 'Unique user ID',
     gender STRING COMMENT 'Gender',
     age BIGINT COMMENT 'Age',
     city STRING COMMENT 'City',
     item_cnt BIGINT COMMENT 'Number of created items',
     follow_cnt BIGINT COMMENT 'Number of follows',
     follower_cnt BIGINT COMMENT 'Number of followers',
     register_time BIGINT COMMENT 'Registration time',
     tags STRING COMMENT 'User tags'
    ) PARTITIONED BY (ds STRING) STORED AS ALIORC;
    INSERT OVERWRITE TABLE rec_sln_demo_user_table_v1 PARTITION(ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_user_table
    WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
    CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_v1(
     item_id BIGINT COMMENT 'Item ID',
     duration DOUBLE COMMENT 'Video duration',
     title STRING COMMENT 'Title',
     category STRING COMMENT 'Primary tag',
     author BIGINT COMMENT 'Author',
     click_count BIGINT COMMENT 'Total clicks',
     praise_count BIGINT COMMENT 'Total likes',
     pub_time BIGINT COMMENT 'Publication time'
    ) PARTITIONED BY (ds STRING) STORED AS ALIORC;
    INSERT OVERWRITE TABLE rec_sln_demo_item_table_v1 PARTITION(ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_item_table
    WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
    CREATE TABLE IF NOT EXISTS rec_sln_demo_behavior_table_v1(
     request_id STRING COMMENT 'Instrumentation ID/Request ID',
     user_id STRING COMMENT 'Unique user ID',
     exp_id STRING COMMENT 'Experiment ID',
     page STRING COMMENT 'Page',
     net_type STRING COMMENT 'Network type',
     event_time BIGINT COMMENT 'Behavior time',
     item_id STRING COMMENT 'Item ID',
     event STRING COMMENT 'Behavior type',
     playtime DOUBLE COMMENT 'Playback/Read duration'
    ) PARTITIONED BY (ds STRING) STORED AS ALIORC;
    INSERT OVERWRITE TABLE rec_sln_demo_behavior_table_v1 PARTITION(ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_behavior_table
    WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";

    Geração de código

    O agendamento periódico de tarefas não é suportado para dados de janela de tempo fixa. Para executar tarefas agendadas, implante um script Python para gerar os dados. Siga estas etapas:

    1. No console do DataWorks, crie um nó PyODPS 3. Para mais informações, consulte Create and manage MaxCompute nodes.

    2. Baixe o arquivo create_data.py e cole seu conteúdo no nó PyODPS 3.

    3. Clique em Configure Scheduling à direita, configure os parâmetros a seguir e clique em Salve image e Envie image no canto superior direito.

      • Configure os parâmetros de agendamento:

        • Defina o parâmetro $user_table_name como rec_sln_demo_user_table.

          Defina o parâmetro $item_table_name como rec_sln_demo_item_table.

          Defina o parâmetro $behavior_table_name como rec_sln_demo_behavior_table.

          Além dos parâmetros de nome de tabela, adicione um parâmetro para a data de negócio.

          Este parâmetro chama-se bizdate.

          Defina seu valor como $[yyyymmdd-1].

      • Configure uma dependência de agendamento.

    4. Acesse o Operation Center e escolha Auto Triggered Task O&M > Recurring Job.

    5. Na coluna Actions da tarefa alvo, escolha Backfill Data > Current and Descendant Nodes Retroactively.

    6. No painel Backfill Data, defina uma data de negócio e clique em Submit and Go.

      O intervalo de tempo ideal para backfill de dados é de 60 dias. Recomendamos definir a data de negócio como Task scheduled date - 60 para garantir a integridade dos dados.

    2. Configure nós de dependência

    Para garantir a geração e implantação adequada do código, adicione três nós de código SQL ao seu projeto do DataWorks. Defina as dependências de agendamento desses nós como o nó raiz do workspace e publique os nós.

    1. Passe o mouse sobre Create e escolha Create Node > General-purpose > Virtual Node. Crie três nós virtuais com a seguinte configuração de recursos e clique em Confirm.

      Configuração de recursos

      Parâmetro

      Descrição

      Exemplo

      Node type

      Selecione o tipo de nó.

      Virtual Node

      Path

      O caminho de armazenamento para o nó.

      Workflow/Workflow/General

      Name

      Um nome exclusivo para o nó.

      • rec_sln_demo_user_table_v1

      • rec_sln_demo_item_table_v1

      • rec_sln_demo_behavior_table_v1

    2. Para cada nó virtual, defina seu conteúdo como select 1;. Em seguida, clique em Configure Scheduling à direita e configure as seguintes definições:

      • Na seção Time property, defina Rerun property como Rerun When Succeeded Or Failed.

      • Na seção Scheduling dependencies > Upstream dependencies, insira o nome do seu workspace do DataWorks, selecione o nó com o sufixo _root e clique em Add.

        Aplique essas configurações a todos os três nós virtuais.

    3. Clique no ícone image ao lado de cada nó virtual para enviá-lo.

    3. Registre dados

    Para configurar engenharia de features, recall e algoritmos de ordenação na solução de recomendação personalizada, primeiro registre as três tabelas sincronizadas ao seu projeto do DataWorks.

    1. Faça login no console do PAI-Rec. Na barra de menu superior, selecione uma região.

    2. No painel de navegação à esquerda, escolha Instance List. Clique no nome da instância para abrir a página de detalhes da instância.

    3. No painel de navegação à esquerda, escolha Recommendation Solution Customization > Data Registration. Na aba MaxCompute Table, clique em Create Data Table. Adicione uma tabela de usuários, uma tabela de itens e uma tabela de comportamentos conforme descrito na tabela a seguir e clique em Import.

      Parâmetro

      Descrição

      Exemplo

      Projeto MaxCompute

      Selecione seu projeto do MaxCompute.

      project_mc

      Tabela MaxCompute

      Selecione as tabelas de dados sincronizadas ao seu workspace do DataWorks.

      • tabela de usuários: rec_sln_demo_user_table_v1

      • tabela de itens: rec_sln_demo_item_table_v1

      • tabela de comportamentos: rec_sln_demo_behavior_table_v1

      nome da tabela de dados

      Insira um nome personalizado.

      • tabela de usuários

      • tabela de itens

      • tabela de comportamentos

    4. Crie cenário de recomendação

    Antes de configurar uma tarefa de recomendação, crie um cenário de recomendação. Para uma explicação sobre cenários de recomendação e IDs de tráfego, consulte Basic Concepts.

    No painel de navegação à esquerda, clique em Recommendation Scenario. Clique em Create Scenario, configure o novo cenário de acordo com a tabela a seguir e clique em Determine.

    Configuração de recursos

    Parâmetro

    Descrição

    Exemplo

    Nome do cenário

    Insira um nome personalizado.

    HomePage

    Descrição do cenário

    Insira uma descrição detalhada.

    None

    5. Configure uma solução de algoritmo

    Para configurar completamente um cenário real, utilize as seguintes configurações de recall e classificação refinada:

    • recall global hot: Seleciona os top-k itens mais populares dos dados de log.

    • recall global hot fallback: Usa o Redis como fallback para evitar respostas vazias da API de recomendação.

    • recall grouped hot: Recupera itens por grupos (ex.: cidade, gênero) para fornecer recomendações mais precisas de itens populares.

    • recall etrec u2i: Utiliza o algoritmo de filtragem colaborativa etrec.

    • recall Swing u2i (opcional): Utiliza o algoritmo Swing.

    • recall cold-start (opcional): Lida com cenários de cold-start usando o algoritmo DropoutNet.

    • classificação refinada: Usa MultiTower para classificação de objetivo único e DBMTL para classificação multiobjetivo.

    Ative algoritmos como recall vetorial ou recall PDN somente após o recall inicial cobrir a maioria dos seus candidatos. O recall vetorial requer um engine de recall vetorial. O FeatureDB não suporta recall vetorial, portanto este exemplo não o configura.

    Para simplificar o processo, este exemplo usa apenas o recall global hot e a estratégia de recall u2i de RECommender (eTREC, an implementation of collaborative filtering) para recall, além da classificação refinada para ordenação.

    1. No painel de navegação à esquerda, escolha Recommendation Solution Customization > Solution Configurations. Selecione o cenário criado, clique em Create Recommendation Solution, forneça a seguinte configuração de recursos e clique em Save and Go to Algorithm Solution Configuration.

      Mantenha os valores padrão para parâmetros não especificados. Para mais informações, consulte Data table configuration.

      Configuração de recursos

      Parâmetro

      Descrição

      Solution Name

      Insira um nome personalizado.

      Scenario Name

      Selecione o cenário de recomendação criado.

      Offline Data Source

      Selecione o projeto do MaxCompute associado ao cenário de recomendação.

      DataWorks Workspace

      Selecione o workspace do DataWorks associado ao cenário de recomendação.

      Workflow Name

      O nome do workflow que o DataWorks cria quando você implanta o script da solução. É possível inserir um nome personalizado, como Flow.

      Configuração StorageAPI

      Para regiões na China continental, como Pequim e Xangai, selecione "StorageAPI", que é um Data Transmission Service com pagamento conforme o uso.

      Para regiões fora da China continental, como China (Hong Kong), Singapore e Frankfurt, você deve primeiro purchase and use a dedicated resource group for Data Transmission Service. Se uma opção de pagamento conforme o uso não estiver disponível, adquira uma assinatura do Data Transmission Service. Em seguida, atualize a página e selecione o nome da sua assinatura do Data Transmission Service. Adicione um parâmetro à tarefa de treinamento TorchEasyRec do PAI-DLC no DataWorks, por exemplo: -odps_data_quota_name ot_xxxx_p#ot_yyyy.

      slim_mode

      Se a edição do DataWorks adquirida tiver um limite de tamanho para pacotes de código importados pelo Migration Assistant, use este recurso e envie manualmente os pacotes de código que excederem o limite. Para esta solução, selecione No.

      OSS Bucket

      Selecione o OSS Bucket associado ao cenário de recomendação.

      Project

      Selecione o projeto do FeatureStore criado. Para a fonte de dados online, selecione FeatureDB.

      User Entity

      Selecione a entidade de usuário para o projeto do FeatureStore, chamada 'user'.

      Item Entity

      Selecione a entidade de item para o projeto do FeatureStore, chamada 'item'.

    2. No nó Configure Table, clique em Add ao lado da tabela de dados alvo. Configure as partições, eventos, features e timestamps para a behavior log table, user table e item table conforme detalhado nas seções a seguir. Clique em Next.

      Mantenha os valores padrão para quaisquer parâmetros não descritos. Para mais informações, consulte Data Table Configuration.

      Tabela de log de comportamento

      Configure as definições da tabela de log de comportamento para corresponder aos seus dados. Se sua tabela possuir dimensões de dados mais ricas além dos campos principais mostrados aqui, classifique-as por usuário e item para simplificar a engenharia de features.

      Parâmetro

      Descrição

      Exemplo

      Behavior Table Name

      Selecione a tabela de comportamento registrada.

      rec_sln_demo_behavior_table_v1

      Time Partition

      O campo de partição da tabela de comportamento.

      ds

      yyyymmdd

      Informações de comportamento

      Request ID

      O ID que identifica cada solicitação de recomendação no log. Geralmente é um UUID gerado pela aplicação. Este campo é opcional.

      request_id

      Behavior Event

      O campo no log que registra o evento de comportamento.

      event

      Behavior Event Enumeration Values

      Os valores enumerados para o evento de comportamento, como impressão, clique, adição ao carrinho ou compra.

      expr, click, praise

      Behavior Value

      O valor que indica a profundidade de um comportamento, como preço da transação ou duração de visualização.

      playtime

      Behavior Timestamp

      O horário do evento, como timestamp Unix em segundos.

      event_time

      Timestamp Format

      Especifica o formato do timestamp de comportamento.

      unixtime

      Behavior Scenario

      O campo que especifica o cenário do evento, como home page, página de busca ou página de detalhes do produto.

      page

      Scenario Enumeration Values

      Os cenários a serem usados para processamento de dados. Isso permite engenharia de features específica por cenário.

      home, detail

      Informações do usuário

      User ID

      O campo de ID do usuário na tabela de comportamento.

      user_id

      User Categorical Features

      Features categóricas do usuário da tabela de comportamento, como tipo de rede, plataforma operacional ou gênero.

      net_type

      Informações do item

      Item ID

      O campo de ID do item na tabela de comportamento.

      item_id

      Tabela de usuários

      Parâmetro

      Descrição

      Exemplo

      User Table Name

      Selecione a tabela de usuários registrada.

      rec_sln_demo_user_table_v1

      Time Partition

      O campo de partição de tempo da tabela de usuários.

      ds

      yyyymmdd

      Informações do usuário

      User ID

      O campo de ID do usuário na tabela de usuários.

      user_id

      Registration Timestamp

      O horário em que o usuário se registrou.

      register_time

      Timestamp Format

      Especifica o formato do timestamp de registro.

      unixtime

      Categorical Features

      Campos categóricos da tabela de usuários, como gênero, faixa etária ou cidade.

      gender, city

      Numerical Features

      Campos numéricos da tabela de usuários, como número de itens criados ou pontos.

      age, item_cnt, follow_cnt, follower_cnt

      Tag Feature

      O nome do campo para a feature de tag.

      tags

      Tabela de itens

      Parâmetro

      Descrição

      Exemplo

      Item Table Name

      Selecione a tabela de itens registrada.

      rec_sln_demo_item_table_v1

      Time Partition

      O campo de partição de tempo da tabela de itens.

      ds

      yyyymmdd

      Informações do item

      Item ID

      O campo de ID do item na tabela de itens.

      item_id

      Author ID

      O autor do item.

      author

      Listing Timestamp

      O campo para o timestamp de publicação do item.

      pub_time

      Timestamp Format

      Especifica o formato do timestamp de publicação.

      unixtime

      Categorical Features

      Campos categóricos da tabela de itens, como categoria.

      category

      Numerical Features

      Campos numéricos da tabela de itens, como preço, vendas totais ou número de curtidas.

      click_count, praise_count

    3. No nó Configure Feature, configure os parâmetros conforme descrito na tabela a seguir, clique em Generate Feature, defina uma versão de feature e clique em Next.

      Após clicar em Generate Feature, o sistema deriva várias features estatísticas para usuários e itens. Esta solução usa as features derivadas padrão, mas você pode editá-las com base nos requisitos do seu negócio. Para mais informações, consulte Feature Configuration.

      Configuração de recursos

      Parâmetro

      Descrição

      Exemplo

      Statistical Period

      Use este parâmetro para geração de features em lote. Para evitar gerar features excessivas, defina o período estatístico como 3, 7 e 15 dias. Essa configuração calcula estatísticas para usuários e itens nos períodos especificados.

      Se houver poucos eventos de comportamento do usuário, tente 21 dias.

      3,7,15

      Behavior

      Selecione os eventos de comportamento configurados. A ordem recomendada é expr (impressão), click e praise.

      expr, click, praise

    4. No nó Retrieval Configuration, clique em Add ao lado da categoria alvo, configure os parâmetros, clique em Confirm e clique em Next.

      Para iniciar rapidamente, configure o global hot recall e o etrec u2i recall. Os outros métodos são fornecidos para referência.

      Configuração de recursos

      Global hot recall

      O global hot recall gera uma classificação de itens populares com base em estatísticas de eventos de clique, onde top_n representa o número de itens na classificação. Para modificar a fórmula de pontuação de popularidade ou o evento de acesso, gere o código relevante e implante-o no DataWorks.

      A fórmula de pontuação é click_uv*click_uv/(expr+adj_factor)*exp(-item_publish_days/fresh_decay_denom), onde:

      • click_uv: Para a mesma taxa de cliques (CTR), um número maior de cliques indica maior popularidade.

      • click_uv/(expr+adj_factor): O CTR suavizado, onde click_uv é o número de usuários únicos que clicaram e expr é o número de impressões. O fator de ajuste adj_factor é adicionado para evitar que o denominador seja zero e para ajustar o CTR quando o número de impressões é baixo. Quando há poucas impressões, o CTR se aproxima de 1. Adicionar adj_factor afasta o CTR de 1, tornando-o mais próximo do CTR real.

      • exp(-item_publish_days/fresh_decay_denom): Este termo penaliza itens mais antigos. item_publish_days é o número de dias desde que o item foi publicado.

      No editor de configuração, defina parâmetros como Recall Model Name (por exemplo, global_hot), recall time window (por exemplo, 15 dias), recall count (por exemplo, 500), Exposure Behavior Event, Click Behavior Event, a chave Hot Score Formula, recall engine (por exemplo, FeatureStore) e Version.

      Etrec u2i recall

      O etrec é um algoritmo de filtragem colaborativa baseado em item. Para detalhes, consulte Collaborative filtering etrec.

      Na caixa de diálogo Edit Configuration, defina o Recall Model Name (por exemplo, etrec) e o recall engine (por exemplo, Hologres). Na seção U2I Behavior Weight, adicione eventos e seus pesos correspondentes, como peso 0 para expr, 1 para click e 3 para praise.

      Parâmetro

      Descrição

      Training days

      O número de dias de logs de comportamento usados para treinamento. O padrão é 30. Ajuste esse valor com base no volume de logs.

      Recall count

      O número de recomendações de usuário para item a serem geradas offline.

      U2I trigger

      Itens com os quais o usuário interagiu (por exemplo, clicando, favoritando ou comprando). Isso geralmente exclui itens que o usuário apenas visualizou (impressões).

      Behavior time window

      O número de dias de dados de comportamento a serem coletados. O padrão é 15, o que inclui dados dos últimos 15 dias.

      Behavior time attenuation coefficient

      Um valor entre 0 e 1. Um valor maior indica que comportamentos passados decaem mais rapidamente e, portanto, têm menos peso na construção do trigger_item.

      Trigger selection count

      O número de IDs de itens por usuário a serem usados para o produto cartesiano com os dados I2I gerados pelo etrec. Recomenda-se um valor entre 10 e 50. Um valor grande pode gerar um número excessivo de candidatos de recall.

      U2i behavior weight

      Para eventos de exposição, não defina um peso ou defina-o como 0. Recomendamos não definir eventos de exposição, pulando assim os dados de exposição do usuário.

      I2I model settings

      Configurações de parâmetros do etrec. Para detalhes, consulte Collaborative filtering etrec. Recomendamos não definir um valor alto para o número de itens relacionados. Após ativar o modelo I2I, configure os seguintes parâmetros: defina similarity calculation strategy (sim_type) como wbcosine (opções: asymcosine, jaccard); defina related item selection count (top_n) como 500; defina maximum behaviors per user (max_bhv) como 500; defina minimum behaviors per user (min_bhv) como 2; defina calculation strategy (operator) como add (opções: mul, min, max); defina similarity calculation weight coefficient (weight) como 1; e defina decay coefficient (alpha) como 0.5. Após concluir a configuração, clique em Confirm.

      Grouped hot recall

      É possível configurar classificações com base em atributos como cidade e gênero para fornecer um recall personalizado inicial. No exemplo a seguir, uma combinação de gênero e o ID de bucket de uma feature numérica é usada para agrupamento.

      Na página Edit Configuration, defina recall type como grouped hot recall, Recall Model Name como group_hot, recall time window como 15 e recall count como 500. Defina exposure behavior event como expr e click behavior event como click. Ative a chave Hot Score Formula Settings, depois defina hot score exponent adjustment factor como 100, hot score freshness decay como true e hot score freshness decay factor como 180. Na seção User Group Trigger, clique em Add para adicionar features: gender (sem limites de bucket) e follow_cnt (com limites de bucket de 1,5,10,20). Na seção Behavior Group Trigger, adicione a feature net_type (sem limites de bucket). Defina recall engine como Hologres e Version como 1, e clique em Confirm.

      Swing u2i recall

      O Swing é um método para calcular relevância de itens que mede a similaridade entre itens com base no padrão User-Item-User. Na caixa de diálogo Edit Configuration, configure os seguintes parâmetros: defina recall type como swing u2i recall, Recall Model Name como swing, training days como 30 e recall count como 500. Defina recall engine como Hologres, desative U2I trigger, defina behavior time window como 15, decay coefficient como 0.2 e trigger selection count como 10. Na seção U2I Behavior Weight, clique em Add para adicionar pesos de comportamento: defina o peso para expr como 0, click como 1 e praise como 3.

      Os parâmetros para o modelo Swing I2I incluem: related item selection count (top_n, exemplo: 500), maximum clicks per user (max_click_per_user, exemplo: 600), maximum users per item (max_user_per_item, exemplo: 700), maximum time span (max_time_span, exemplo: 1), adjustment coefficients (alpha1=5, alpha2=1, beta=0.3), item weight calculation method (norm_method, opção: COUNT) e Version (version). Ao terminar, clique em Confirm.

      Vector recall

      Dois métodos de recall vetorial são fornecidos, DSSM e MIND. Para mais informações, consulte o seguinte:

      • Recall Target Name: Normalmente indica se um item foi clicado. Defina como is_click.

      • Recall Target Selection: Defina como max(if(event='click', 1, 0)).

        Consulte o seguinte código:

        select max(if(event='click',1,0)) is_click ,...
        from ${behavior_table}
        where between dt=${bizdate_start} and dt=${bizdate_end}
        group by req_id,user_id,item

        Onde:

        • ${behavior_table}: A tabela de comportamento.

        • ${bizdate_start}: A data inicial da janela de tempo de comportamento.

        • event: O campo de evento na tabela ${behavior_table}. Selecione um valor com base no seu esquema específico.

        • is_click: O nome do alvo.

        As fórmulas para cálculo de dimensão são as seguintes:

        EMB_SQRT4_STEP8: (8 + Pow(count, 0.25)) / 8) * 8
        EMB_SQRT4_STEP4: (4 + Pow(count, 0.25)) / 4) * 4
        EMB_LN_STEP8:    (8 + Log(count + 1)) / 8) * 8
        EMB_LN_STEP4:    (4 + Log(count + 1)) / 4) * 4

        Aqui, count é o número de valores de enumeração da feature. Use a função Log quando uma feature tiver um grande número de valores únicos.

      No painel Edit Configuration, defina Recall Model Name como dssm e Model Type como dssm. Desative a negative sampling strategy. Ative recall target settings e defina target type como CLASSIFICATION. Defina training days como 30 e embed_dim strategy como EMB_SQRT4_STEP4. Defina recall engine como Hologres. Para incremental training, selecione true e defina os dias de treinamento incremental como 1. Para Asynchronous Training e online inference mode, selecione false. Defina interest count como 1 e ative Sample Weight.

      Defina sample weight name (name) como sample_weight e sample weight expression (selection) como ln(sum(playtime) + 1). Scene data filtering (scene_values) serve para inserir condições de filtragem de dados de cena. Separe múltiplos valores com vírgulas. Defina Version (version) como 1.

      Cold-start recall

      Este é um modelo de recall de torre dupla semelhante ao DSSM, dividido em uma torre de usuário e uma torre de item. O DropoutNet é um modelo de recall adequado para usuários e itens principais, de cauda longa e até mesmo totalmente novos.

      Na página Create Configuration, defina os seguintes parâmetros: defina recall type como cold-start recall e Model Type (model_type) como dropoutnet. Ative Recall Target Settings (label) e configure o nome do alvo de recall como is_click, a seleção do alvo de recall como max(if(event='click', 1, 0)) e o tipo de alvo como CLASSIFICATION. Defina training days (train_days) como 30 e embed_dim strategy como EMB_SQRT4_STEP4. Defina recall engine como Hologres. Defina incremental training como true e os dias de treinamento incremental como 1. Defina Asynchronous Training e online inference mode como false. Defina Version como 1 e clique em Confirm.

      Global hot fallback

      O recall global hot fallback é semelhante ao global hot recall. Seu principal objetivo é fornecer um fallback com um conjunto de candidatos suficiente caso o engine principal de global hot recall falhe. Portanto, sua saída é armazenada no Redis. Essa saída contém apenas uma única linha de dados. Na página Edit Configuration, defina recall type como global hot fallback recall. Defina fallback model name (model_name) como global_hot_supplement, recall time window (day_interval) como 15 e fallback recall count (supplement_top_n) como 500. Defina exposure behavior event (exposure_event) como expr e click behavior event (click_event) como click. Desative a chave Hot Score Formula Settings (hot_score). Defina redis data source name (redis_datasource) como redis e Version (version) como 1.

      Collaborative metric i2i recall

      O modelo collaborative metric learning i2i recall usa dados de cliques de sessão para calcular a similaridade item a item. Configure os parâmetros do modelo: defina o nome do modelo de recall como CoMetricLearningI2I. Após ativar Recall Target Settings, defina o nome do alvo de recall como is_click, a seleção do alvo de recall como max(if(event='click', 1, 0)) e o tipo de alvo como CLASSIFICATION. Para as configurações restantes, defina training days como 30, embed_dim strategy como EMB_SQRT4_STEP4, recall engine como Hologres, incremental training como false, incremental training days como 1, Asynchronous Training como false e version como 1. Após concluir a configuração, clique em Confirm.

    5. No nó Configure Sorting Method, clique em Add ao lado de Fine-grained Ranking, configure os parâmetros conforme descrito abaixo, clique em Confirm e clique em Next.

      Configuração de recursos

      A plataforma fornece vários modelos de classificação. Para mais informações, consulte ranking model. O exemplo a seguir usa o modelo de classificação multiobjetivo DBMTL.

      Na página de configuração de parâmetros de classificação, defina ranking type como Fine-grained Ranking, insira dbmtl para fine-grained ranking model name (model_name), insira playtime para filter field (exclude_field), defina training days (train_days) como 30, selecione dbmtl para model type selection (model_type), selecione false para incremental training (is_incremental), defina incremental training days (incremental_train_days) como 1, selecione false para asynchronous training (is_async) e defina version (version) como 1.

      Clique em Create ao lado de Refined Ranking Target Settings (labels) para adicionar os dois rótulos a seguir:

      • Alvo 1: Defina target name como is_click, target expression como max(if(event='click',1,0)) e selecione classification para target type.

      • Alvo 2 (Nota: O 'l' em 'ln' é um L minúsculo): Defina target name como ln_playtime, target expression como ln(sum(playtime)+1), target dependency como is_click, selecione regression para target type e clique em OK.

    6. No nó Generate Script, clique em Generate Deployment Script.

      Importante

      Após a geração do script de implantação, o sistema fornece um endereço do OSS contendo todos os arquivos de implantação. Salve este endereço para executar o script de implantação manualmente mais tarde.

    7. Assim que o script for gerado, clique em Determine na caixa de diálogo para acessar a página Recommendation Solution Customization > Deployment History.

      Se a geração do script falhar, verifique os logs de execução para identificar e corrigir o erro e regenere o script.

    6. Implante a recomendação

    Uma vez gerado o script, implante-o no DataWorks de uma das duas maneiras abaixo.

    Método 1: Implantação integrada

    1. Clique em Go to Deploy à direita da solução alvo. Na página Deployment Records, filtre registros por scenario e Deployment Status. Encontre a solução de recomendação alvo, como pai_rec_testdemo_v1, e confirme se seu Deployment Status é Ready.

    2. Na página Deployment Preview, na seção Diff File, selecione os arquivos a serem implantados. Para uma implantação inicial, clique em Select All e clique em Deploy to DataWorks.

      A página retorna para a página Deployment History. Nesta página, o Deployment Status para a solução de recomendação pai_rec_testdemo_v1 no cenário HomePage é exibido como Running.

    3. Aguarde um momento e clique em image para atualizar a lista e verificar o status da implantação.

      • Se a implantação falhar, clique em View Log na coluna Actions. Analise e resolva o erro específico e regenere e implante o script.

      • Quando o Deployment Status mudar para Successful, acesse o DataStudio no workspace do DataWorks configurado para esta solução para visualizar o código implantado. Para mais informações, consulte Data Development: developer. No painel de navegação à esquerda do DataStudio, expanda Business Flow > Workflow > MaxCompute > Data Development para visualizar as pastas de nós implantados, incluindo feature, feature_v726, rank_v1, recall_v1 (com sub-nós etrec_u2i_recall e global_hot_recall) e test.

    4. Visualize o processo de backfill de dados da tarefa.

      1. Na página Recommendation Solution Customization > Deployment History, clique em Details na coluna Actions para a solução implantada com sucesso.

      2. Na página Deployment Preview, clique em View Task Data Backfill Process para revisar o processo e suas instruções.

      3. Garanta que as partições da tabela de usuários, tabela de itens e tabela de comportamento de usuários contenham dados dos últimos n dias, onde n é a soma da janela de tempo de treinamento e a janela de tempo máxima de features. Se estiver usando os dados de demonstração deste tópico, sincronize as partições de dados mais recentes. Se estiver gerando dados com um script Python, realize um backfill de dados no Operation Center do DataWorks para gerar as partições mais recentes.

      4. Clique em Create Data Refill Task no canto superior esquerdo e clique em Start Task by Order sob Data Refill Task List. Garanta que todas as tarefas sejam executadas com sucesso. Se uma tarefa falhar, clique em Details para visualizar as informações de log, analise e resolva o erro e reexecute a tarefa. Após uma reexecução bem-sucedida, clique em Continue Run no canto superior esquerdo da página até que todas as tarefas tenham sucesso. O DAG do processo de backfill de dados mostra o pipeline completo de engenharia de features: no topo estão as três tabelas de origem de dados (pairec_demo.rec_sln_demo_item_table_v1, pairec_demo.rec_sln_demo_behavior_table_v1 e pairec_demo.rec_sln_demo_user_table_v1), que passam sequencialmente por pré-processamento, construção de tabela wide (como behavior_table_v1_wide), estatísticas agregadas (como item_id_30d_agg e user_id_30d_agg) e extração de features estáticas para gerar tabelas de features completas (como item_table_v1_all_feat e user_table_v1_all_feat). Finalmente, um nó create_sync_onlinestore do tipo PyODPS3 sincroniza os dados para o feature store online. Cada cartão de nó inclui informações como datas de início e fim e a ordem do backfill de dados. O botão Create Backfill Task no canto superior esquerdo inicia esse processo de backfill de dados.

    Método 2: Migration Assistant

    Implante o script manualmente usando o Migration Assistant no console do DataWorks. Para outras operações, consulte Create and view a DataWorks import task.

    • Import Name: Defina conforme o prompt do console.

    • Upload Method: Selecione OSS File, insira o OSS Link e clique em Verify.

      O arquivo de implantação está armazenado no endereço do OSS gerado em Step 5, por exemplo, oss://examplebucket/algoconfig/plan/1723717372/package.zip. Faça login no console do OSS e siga as etapas abaixo para obter a URL do arquivo. No painel de navegação à esquerda do console do OSS, clique em Bucket List. Acesse o bucket alvo e clique em File List. Encontre e clique no arquivo alvo, como package.zip. No painel de detalhes que aparece à direita, ative a chave HTTPS e clique em Copy File URL para obter uma URL assinada. Use esta URL como OSS Link.

    7. Congele nós

    Após a conclusão do backfill, congele as tarefas no Operation Center (os três nós na etapa 2.2) para evitar que sejam executadas diariamente.

    No Operation Center do DataWorks, acesse Auto Triggered Task O&M > Recurring Job. Pesquise pelo nó (por exemplo, rec_sln_demo_user_table_v1), selecione o nó (Workspace.node name) e escolha Suspend (Freeze).