Recomendador da caixa de fósforos do comboio

Importante

O suporte para o Estúdio de ML (clássico) terminará a 31 de agosto de 2024. Recomendamos a transição para o Azure Machine Learning até essa data.

A partir de 1 de dezembro de 2021, não poderá criar novos recursos do Estúdio de ML (clássico). Até 31 de agosto de 2024, pode continuar a utilizar os recursos existentes do Estúdio de ML (clássico).

A documentação do Estúdio de ML (clássico) está a ser descontinuada e poderá não ser atualizada no futuro.

Treina um recomendador bayesiano usando o algoritmo Matchbox

Categoria: Machine Learning / Comboio

Nota

Aplica-se a: Machine Learning Studio (clássico) apenas

Módulos semelhantes de arrasto e queda estão disponíveis em Azure Machine Learning designer.

Visão geral do módulo

Este artigo descreve como usar o módulo Deendador Train Matchbox em Machine Learning Studio (clássico), para treinar um modelo de recomendação.

O algoritmo de recomendação em Machine Learning baseia-se no modelo Matchbox, desenvolvido pela Microsoft Research. Para descarregar um artigo que descreva o algoritmo em detalhe, clique neste link no site da Microsoft Research.

O módulo De Recomendador train Matchbox lê um conjunto de dados de triplos de classificação de artigos de utilizador e, opcionalmente, algumas funcionalidades de utilizador e item. Devolve um recomendador de Matchbox treinado. Em seguida, pode utilizar o modelo treinado para gerar recomendações, encontrar utilizadores relacionados ou encontrar itens relacionados, utilizando o módulo 'Recomendador's Score Matchbox .

Dica

Saiba tudo o que precisa de saber sobre a experiência de ponta a ponta de construir um sistema de recomendação neste tutorial da equipa de desenvolvimento .NET. Inclui o código de amostra e a discussão de como chamá Machine Learning de uma aplicação.

Motor de recomendação de construção para aplicações .NET utilizando Machine Learning

Mais sobre modelos de recomendação e o recomendador Matchbox

O principal objetivo de um sistema de recomendação é recomendar um ou mais itens aos utilizadores do sistema. Exemplos de um item podem ser um filme, restaurante, livro ou música. Um utilizador pode ser uma pessoa, um grupo de pessoas ou outra entidade com preferências de produto.

Existem duas abordagens principais para os sistemas de recomendação.

  • A primeira é a abordagem baseada em conteúdo , que faz uso de funcionalidades tanto para utilizadores como para itens. Os utilizadores podem ser descritos por propriedades como idade e sexo, e itens podem ser descritos por propriedades como autor e fabricante. Exemplos típicos de sistemas de recomendação baseados em conteúdo podem ser encontrados em sites de matchmaking sociais.
  • A segunda abordagem é a filtragem colaborativa, que utiliza apenas identificadores dos utilizadores e dos itens e obtém informações implícitas sobre estas entidades a partir de uma matriz (escassa) de classificações dadas pelos utilizadores aos itens. Podemos aprender sobre um utilizador a partir dos itens que avaliaram e de outros utilizadores que avaliaram os mesmos itens.

O recomendador matchbox combina estas abordagens, utilizando filtragem colaborativa com uma abordagem baseada em conteúdo. É, portanto, considerado um recomendador híbrido.

Como isto funciona: Quando um utilizador é relativamente novo no sistema, as previsões são melhoradas utilizando a informação da funcionalidade sobre o utilizador, abordando assim o conhecido problema de "arranque a frio". No entanto, uma vez recolhidas um número suficiente de classificações de um determinado utilizador, é possível fazer previsões totalmente personalizadas para eles com base nas suas classificações específicas e não apenas nas suas funcionalidades. Assim, há uma transição suave das recomendações baseadas em conteúdo para recomendações baseadas na filtragem colaborativa. Mesmo que as funcionalidades de utilizador ou item não estejam disponíveis, a Matchbox continuará a funcionar no seu modo de filtragem colaborativo.

Mais detalhes sobre o recomendador matchbox e o seu algoritmo probabilístico subjacente podem ser encontrados no documento de pesquisa relevante: Matchbox: Large Scale Bayesian Recomendações Recomendações. Além disso, o Machine Learning Blog tem um artigo intitulado Recomendações Everywhere que fornece uma introdução de alto nível a algoritmos de recomendação.

Como configurar o recomendador de caixa de fósforos do comboio

Preparar dados

Antes de tentar utilizar o módulo, é essencial que os seus dados estejam no formato esperado pelo modelo de recomendação. É necessário um conjunto de dados de formação de triplos de classificação de item de utilizador , mas também pode incluir funcionalidades do utilizador e funcionalidades de item (se disponível), em conjuntos de dados separados.

Para dividir os dados de origem em conjuntos de dados de treino e teste, utilize a opção Recommender Split no módulo Dados Divididos .

Conjunto de dados necessário das classificações de artigos de utilizador

É muito importante que os dados de entrada utilizados para a formação contenham o tipo certo de dados no formato correto:

  • A primeira coluna deve conter identificadores de utilizador.
  • A segunda coluna deve conter identificadores de item.
  • A terceira coluna contém a classificação para o par de artigos de utilizador. Os valores de classificação devem ser numéricos ou categóricos.

Durante o treino, os valores de classificação não podem ser todos iguais. Além disso, se numérico, a diferença entre os valores mínimos e máximos de classificação deve ser inferior a 100, e idealmente não superior a 20.

O conjunto de dados de classificações de restaurantes no Machine Learning Studio (clássico) (clique em Conjuntos de Dados Guardados e, em seguida, Amostras) demonstra o formato esperado:

userID placeID classificação
Sub-1077 135085 2
Sub-1077 135038 2

A partir desta amostra, você pode ver que um único utilizador classificou dois restaurantes separados.

Conjunto de dados de funcionalidades do utilizador (opcional)

O conjunto de dados das funcionalidades do utilizador deve conter identificadores para os utilizadores e utilizar os mesmos identificadores que foram fornecidos na primeira coluna do conjunto de dados de classificações de itens de utilizadores. As colunas restantes podem conter qualquer número de funcionalidades que descrevam os utilizadores.

Por exemplo, consulte o conjunto de dados do cliente do Restaurante no Machine Learning Studio (clássico). Um conjunto típico de funcionalidades do utilizador é assim:

userID ambiente Dress_preference transporte fumador
U1004 família informal A pé FALSE
U1005 amigos Sem preferência Proprietário de carro TRUE

O conjunto de dados de características do item (opcional)

O conjunto de dados das características do item deve conter identificadores de item na sua primeira coluna. As colunas restantes podem conter qualquer número de funcionalidades descritivas para os itens.

Por exemplo, consulte o conjunto de dados de recursos do Restaurante, fornecido no Machine Learning Studio (clássico) (clique em Conjuntos de Dados Guardados e, em seguida, Amostras). Um conjunto típico de características de item (neste caso, o item é um restaurante) pode ser assim:

placeID álcool Smoking_area preço Rambience
135106 Wine-Beer nenhum baixo família
132667 No_Alcohol_Served permitido médio casual

Preparar o modelo

  1. Adicione o módulo de recomendador Train Matchbox à sua experiência em Studio (clássico) e conecte-o aos dados de treino.

  2. Se tiver um conjunto de dados separado de funcionalidades do utilizador e/ou funcionalidades de produto, conecte-os ao módulo Deendeiro da Caixa de Comboios .

    • Conjunto de dados de funcionalidades do utilizador: Ligação o conjunto de dados que descreve os utilizadores à segunda entrada.

    • O item apresenta conjunto de dados: Ligação o conjunto de dados que descreve os itens para a terceira entrada.

  3. Para o número de lotes de treino, digite o número de lotes para dividir os dados durante o treino.

    Com base neste valor, o conjunto de dados de triplos de classificação de item do utilizador é dividido em múltiplas partes ou lotes durante o treino.

    Como o Provedor de Matchbox do comboio executa os lotes em paralelo, recomendamos que o número de lotes de treino seja definido para o número de núcleos disponíveis, se todos os dados de treino se encaixarem na memória. Caso contrário, o número de lotes de treino deve ser definido para o múltiplo mais baixo do número de núcleos disponíveis para os quais os dados de treino se encaixam na memória.

    Por predefinição, os dados de treino são divididos em quatro (4) lotes. Apenas o conjunto de dados dos triplos de classificação de item do utilizador é dividido. As funcionalidades do utilizador ou do item não são divididas porque as funcionalidades não precisam de ser divididas.

  4. Para o número de características, digite o número de traços latentes que devem ser aprendidos para cada utilizador e item.

    Quanto maior for o número de características, mais precisas serão as previsões; no entanto, o treino será mais lento. O número de características geralmente está no intervalo 2 - 20.

  5. Para o número de iterações de algoritmo de recomendação, indique quantas vezes o algoritmo deve processar os dados de entrada.

    O recomendador Matchbox é treinado usando um algoritmo de passagem de mensagens que pode iterar várias vezes sobre os dados de entrada. Quanto maior este número, mais precisas são as previsões; no entanto, o treino é mais lento. Normalmente, o número de iterações está no intervalo 1 - 10.

  6. Executar a experiência, ou selecione apenas o módulo recomendador train Matchbox e selecione Executar selecionado.

Exemplos

Por exemplo, como os modelos de recomendação são usados em Machine Learning, consulte estas experiências de amostra na Galeria Azure AI:

Notas técnicas

Esta secção contém detalhes de implementação, dicas e respostas a perguntas frequentes.

Dicas de utilização

  • Se uma coluna de funcionalidades tiver valores em falta, o modo dos valores não em falta será utilizado como substituto dos valores em falta.

  • Todas as funcionalidades do utilizador e do item são redimensionada para ter o comprimento da unidade, de modo que o seu valor absoluto máximo é 1. Não é aplicada nenhuma tradução aos valores de recurso, de modo a manter a sua sparsity.

Restrições

A atualização online (ou formação contínua) de um modelo de recomendação não é suportada atualmente em Machine Learning. Se pretender capturar as respostas do utilizador às recomendações e usá-las para melhorar o modelo, sugerimos a reconversão do modelo completo periodicamente. A formação incremental não é possível, mas pode aplicar uma janela deslizante aos dados de formação para garantir que o volume de dados é minimizado durante a utilização dos dados mais recentes.

Estimando o uso da memória do recomendador

Atualmente, o limite inferior da pegada de memória da Matchbox é 16 * N\(4\T + 2\R) bytes, onde N refere-se ao número de triplos de classificação de item de utilizador no conjunto de dados de treino, T ao número de traços latentes, e R à diferença entre a classificação mínima e máxima (no conjunto de dados de treino).

O tamanho de um modelo de recomendador de Matchbox serialized é aproximadamente 16 * T\(U\R + I + X + Y) bytes, onde U se refere ao número de utilizadores, I ao número de itens, X ao número de funcionalidades do utilizador, e Y ao número de funcionalidades do item.

Entradas esperadas

Nome Tipo Description
Conjunto de dados de formação de triplos de classificação de item de utilizador Tabela de Dados Classificações de itens por utilizadores, expressas como um triplo (Utilizador, Item, Classificação)
Conjunto de dados de formação das funcionalidades do utilizador Tabela de Dados Conjunto de dados que contém funcionalidades que descrevem os utilizadores (opcional)
Conjunto de dados de formação das funcionalidades do item Tabela de Dados Conjunto de dados contendo funcionalidades que descrevem itens (opcional)

Parâmetros do módulo

Nome Intervalo Tipo Predefinição Description
Número de características >=0 Número inteiro 10 Especificar o número de características a utilizar com o recomendador (opcional)
Número de iterações de algoritmo de recomendação >=1 Número inteiro 5 Especificar o número máximo de iterações a realizar durante a formação do modelo de recomendação (opcional)
Número de lotes de formação >=1 Número inteiro 4 Especificar o número de lotes de formação a utilizar com o recomendador (opcional)

Saídas

Nome Tipo Description
Recomendador de Matchbox treinado Interface ILearner Recomendador de Matchbox treinado

Exceções

Exceção Description
Erro 0022 A exceção ocorre se o número de colunas selecionadas no conjunto de dados de entrada não for igual ao número esperado.
Erro 0036 A exceção ocorre se vários vetores de recurso foram fornecidos para um determinado utilizador ou item.
Erro 0018 A exceção ocorre se o conjunto de dados de entrada não for válido.
Erro 0035 A exceção ocorre se não forem fornecidas funcionalidades para um determinado utilizador ou item.
Erro 0034 A exceção ocorre se existir mais de uma classificação para um determinado par de artigos de utilizador.
Erro 0053 A exceção ocorre no caso de não existirem funcionalidades ou itens do utilizador para recomendações da Matchbox.
Erro 0003 A exceção ocorre se uma ou mais entradas forem nulas ou vazias.

Para obter uma lista de erros específicos dos módulos Studio (clássicos), consulte Machine Learning Códigos de Erro.

Para obter uma lista de exceções da API, consulte Machine Learning CÓDIGOs de Erro da API REST.

Ver também

Modelo de validação cruzada
Avaliar Recomendador
Preparar
Pontuar Matchbox Recomendador