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:
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:
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 deuser_id
e seus perfis estáticositem_profile
: contém os valores deitem_id
e seus perfis estáticosuser_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
etest
.
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
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
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.
- Coleta de dados e análise de dados exploratória. Confira Executar sua primeira carga de trabalho de ETL no Azure Databricks.
- 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:
- Os notebooks do tipo aceleradores de solução da Databricks que personalizam a experiência do cliente com recomendações mostram exemplos de engenharia de recursos em um sistema de recomendação.
- Pré-processamento de dados para aprendizado de máquina e aprendizado profundo, para obter exemplos de engenharia de recursos com scikit-learn, MLlib e transferência de aprendizado.
- 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.