Share via


Criar um modelo amplo e profundo em um sistema de recomendação

Usando exemplos de notebooks, este artigo orienta você ao longo da criação de um sistema de recomendação com um modelo amplo e profundo. A criação de um pipeline de machine learning de um sistema de recomendação amplo e profundo envolve os estágios mostrados no diagrama abaixo:

Workflow for a wide-and-deep recommender

Essa solução de referência aborda os estágios mostrados em azul:

  • Treinamento e avaliação de modelo
  • Exportação de modelos e gerenciamento de versões
  • Inferência de modelo em lote
  • Serviços de modelo online

Para obter informações sobre as etapas não abordadas, confira Estágios do projeto não abordados.

O que é um modelo amplo e profundo?

Como uma opção eficaz para um sistema de recomendação, um modelo amplo e profundo combina um modelo linear com as funcionalidades de um modelo de aprendizado profundo. O modelo linear analisa dados históricos relacionados às escolhas do cliente, enquanto os recursos de aprendizado profundo generalizam para ampliar as opções de recomendações relevantes.

Para saber mais, confira este artigo acadêmico: Wide & Deep Learning for Recommender Systems.

Destaques das ferramentas do Databricks

O notebook abrange várias ferramentas fornecidas no Azure Databricks que simplificam a criação de um pipeline de machine learning:

  1. SparkDatasetConverter
  2. Registro de modelo de MLflow
  3. Serviço de modelo de MLflow

Notebook que descreve o conjunto de dados do usuário

Os dados usados nesse notebook consistem das seguintes tabelas Delta:

  • user_profile: contém os valores de user_id e seus perfis estáticos
  • item_profile: contém os valores de item_id e seus perfis estáticos
  • user_item_interaction: contém eventos em que um usuário interage com um item. Essa tabela é dividida aleatoriamente em três tabelas Delta para criar e avaliar o modelo: train, validation e test.

Esse formato de dados é comum para problemas de recomendação. Alguns exemplos são:

  • Para recomendações de anúncios, os itens são anúncios e as interações usuário-item são registros de usuários que clicam nos anúncios.
  • Para recomendações de compras online, os itens são produtos e as interações usuário-item são registros de revisão de usuários ou histórico de pedidos.

Ao adaptar esse notebook ao seu conjunto de dados, você só precisa salvar seus dados nas tabelas Delta e fornecer os locais e nomes de tabela. O código para carregar dados pode ser reutilizado em grande parte.

Consulte o notebook de geração de conjunto de dados para obter detalhes.

Gerar e salvar o notebook de conjunto de dados

Obter notebook

Exemplo de notebook: modelo amplo e profundo

Um modelo amplo e profundo combina um modelo linear amplo com uma rede neural profunda para se encarregar da memorização e generalização necessárias para boas recomendações.

Esse modelo é apenas um exemplo entre muitos modelos de aprendizado profundo para o problema de recomendação ou para qualquer pipeline de aprendizado de máquina em geral. O foco aqui é mostrar como criar o fluxo de trabalho. Você pode alternar entre modelos diferentes para seu próprio caso de uso e ajustar o modelo para obter melhores métricas de avaliação.

Criar e servir um modelo amplo e profundo em um notebook de sistema de recomendação

Obter notebook

Estágios do projeto não abordados

Para manter o notebook focado em mostrar como implementar um sistema de recomendação, os seguintes estágios não são cobertos. Esses estágios são mostrados como blocos cinzas no diagrama do fluxo de trabalho.

  1. Coleta de dados e análise de dados exploratória. Confira Executar sua primeira carga de trabalho de ETL no Azure Databricks.
  2. Engenharia de recursos. A engenharia de recursos é parte importante de um sistema de recomendação, e muitas informações estão disponíveis neste tópico. Esse notebook pressupõe que você tenha um conjunto de dados coletado auxiliar que contém interações usuário-item. Para obter detalhes sobre o conjunto de dados usado nesse notebook, confira Notebook que descreve o conjunto de dados do usuário. Para obter mais informações sobre a engenharia de recursos, consulte os seguintes recursos:
  3. Ajuste de modelo. O ajuste de modelo envolve a revisão do código do pipeline existente, incluindo engenharia de recursos, estrutura de modelo, hiperparâmetros de modelo ou até mesmo a atualização do estágio de coleta de dados, para melhorar o desempenho do modelo. Para obter mais informações sobre as ferramentas para ajuste de modelo no Azure Databricks, consulte Ajuste de hiperparâmetro.