Treinar recomendador Matchbox

Treinar um recomendador Bayesiano usando o algoritmo Matchbox

Categoria: Machine Learning/treinar

Observação

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

Esse conteúdo pertence apenas ao estúdio (clássico). Módulos de arrastar e soltar semelhantes foram adicionados ao designer de Azure Machine Learning. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo treinar recomendador Matchbox no Azure Machine Learning Studio (clássico) para treinar um modelo de recomendação.

O algoritmo de recomendação no Azure Machine Learning é baseado no modelo Matchbox , desenvolvido pela Microsoft Research. Para baixar um documento que descreve o algoritmo em detalhes, clique neste link no site do Microsoft Research.

O módulo Treinar Recomendador Matchbox lê um conjunto de dados de triplos de classificação de usuário-item e, opcionalmente, alguns recursos de usuário e item. Retorna um recomendador Matchbox treinado. Você pode usar o modelo treinado para gerar recomendações, localizar usuários relacionados ou localizar itens relacionados, usando o módulo Score Matchbox recomendador .

Dica

Saiba tudo o que você precisa saber sobre a experiência de ponta a ponta de criar um sistema de recomendação neste tutorial da equipe de desenvolvimento do .NET. Inclui o código de exemplo e a discussão de como chamar Azure Machine Learning de um aplicativo.

Criando o mecanismo de recomendação para aplicativos .NET usando Azure Machine Learning

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

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

Há duas abordagens principais para sistemas recomendadores.

  • A primeira é a abordagem com base em conteúdo, que usa recursos para usuários e itens. Os usuários 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 nos sites de compatibilidade social.
  • A segunda abordagem é filtragem de colaboração, que usa apenas identificadores dos usuários e itens e obtém informações implícitas sobre essas entidades de uma matriz (esparsa) de classificações fornecidas pelos usuários para os itens. Podemos aprender sobre um usuário por meio dos itens que ele classificou e de outros usuários que classificaram os mesmos itens.

O recomendador Matchbox combina essas abordagens, usando a filtragem colaborativa com uma abordagem baseada em conteúdo. Portanto, ele é considerado um recomendador híbrido.

Como isso funciona: quando um usuário é relativamente novo no sistema, as previsões são aprimoradas com o uso das informações de recurso sobre o usuário, abordando assim o problema "início frio" bem conhecido. No entanto, após ter coletado um número suficiente de classificações de um determinado usuário, é possível fazer previsões totalmente personalizadas para eles com base em suas classificações específicas e não em seus recursos apenas. Portanto, há uma transição suave das recomendações com base em conteúdo para recomendações baseadas na filtragem de colaboração. Mesmo que os recursos de itens ou de usuários não estejam disponíveis, o Matchbox ainda funciona no modo de filtragem de colaboração.

Mais detalhes sobre o recomendador Matchbox e seu algoritmo probabilística subjacente podem ser encontrados no documento de pesquisa relevante: Matchbox: recomendações de alta escala Bayesiana recomendações. Além disso, o Blog Machine Learning tem um artigo intitulado recomendações em todos os lugares que fornece uma introdução de alto nível aos algoritmos de recomendação.

Como configurar o Recomendador Matchbox de treinamento

Preparar dados

Antes de tentar usar o módulo, é essencial que os dados estejam no formato esperado pelo modelo de recomendação. Um conjunto de dados de treinamento de percurso de classificação de usuário-item é necessário, mas você também pode incluir recursos de usuário e recursos de item (se disponíveis), em conjuntos de dados separados.

Para dividir dados de origem nos conjuntos de dados de treinamento e de teste, use a opção de divisão de recomendador no módulo dividir data .

Conjunto de usuários necessário de classificações de usuário-item

É muito importante que os dados de entrada usados para treinamento contenham o tipo certo de dados no formato correto:

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

Durante o treinamento, os valores de classificação não podem ser iguais. Além disso, se for numérico, a diferença entre os valores mínimo e máximo de classificação deve ser menor que 100 e, idealmente, não maior que 20.

O conjunto de valores de classificações de restaurantes em Azure Machine Learning Studio (clássico) (clique em DataSets salvos e, em seguida, Samples) demonstra o formato esperado:

userID posicionaid classificação
U1077 135085 2
U1077 135038 2

Neste exemplo, você pode ver que um único usuário classificou dois restaurantes separados.

Conjunto de usuários de recursos do usuário (opcional)

O conjunto de os recursos de usuário deve conter identificadores para usuários e usar os mesmos identificadores que foram fornecidos na primeira coluna do conjunto de e usuários-itens-classificações. As colunas restantes podem conter qualquer número de recursos que descrevam os usuários.

Para obter um exemplo, consulte o conjunto de um cliente do restaurante em Azure Machine Learning Studio (clássico). Um conjunto típico de recursos de usuário tem esta aparência:

userID ambience Dress_preference transporte fumaça
U1004 família informal No pé FALSE
U1005 friends Sem preferência Proprietário do carro TRUE

Conjunto de itens de recursos de item (opcional)

O conjunto de dados de recursos de item deve conter identificadores de item na primeira coluna. As colunas restantes podem conter qualquer número de recursos descritivos para os itens.

Para obter um exemplo, consulte o conjunto de dados de recursos de recurso restaurante, fornecido em Azure Machine Learning Studio (clássico) (clique em DataSets salvos e, em seguida, Samples). Um conjunto típico de recursos de item (nesse caso, o item é um restaurante) pode ter a seguinte aparência:

posicionaid álcool Smoking_area price Rambience
135106 Wine-Beer nenhum low família
132667 No_Alcohol_Served permitido média casual

Treinar o modelo

  1. Adicione o módulo treinar recomendador Matchbox ao seu experimento no estúdio (clássico) e conecte-o aos dados de treinamento.

  2. Se você tiver um conjunto de usuários separado de recursos de usuário e/ou recursos de item, conecte-os ao módulo treinar recomendador Matchbox .

    • Conjunto de dados de recursos do usuário: Conecte o conjunto que descreve os usuários à segunda entrada.

    • Conjunto de dados de recursos de item: Conecte o conjunto que descreve os itens à terceira entrada.

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

    Com base nesse valor, o conjunto de processamento de percursos de classificação de usuário-item é dividido em várias partes ou lotes durante o treinamento.

    Como o Training Matchbox recomendador executa lotes em paralelo, recomendamos que o número de lotes de treinamento seja definido como o número de núcleos disponíveis, se os dados de treinamento inteiros couberem na memória. Caso contrário, o número de lotes de treinamento deve ser definido como o múltiplo mais baixo do número de núcleos disponíveis para os quais os dados de treinamento se encaixam na memória.

    Por padrão, os dados de treinamento são divididos em quatro (4) lotes. Somente o conjunto de os processamentos de classificação de usuário-item é dividido. Os recursos de usuário ou item não são divididos porque os recursos não precisam ser divididos.

  4. Para número de características, digite o número de características latentes que devem ser aprendidas para cada usuário e item.

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

  5. Para o número de iterações do 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 nos dados de entrada. Quanto maior esse número, mais precisas as previsões; no entanto, o treinamento é mais lento. Geralmente, o número de iterações é no intervalo de 1 a 10.

  6. Execute o experimento ou selecione apenas o módulo treinar recomendador Matchbox e selecione executar selecionado.

Exemplos

Para obter exemplos de como os modelos de recomendação são usados no Azure Machine Learning, consulte estes experimentos de exemplo no Galeria de ia do Azure:

  • Exemplode recomendação de filme: demonstra como treinar, avaliar e pontuar usando um modelo de recomendação.

Observações técnicas

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

Dicas de uso

  • Se uma coluna de recurso tiver valores ausentes, o modo dos valores não ausentes será usado como substituição para os valores ausentes.

  • Todos os recursos de usuário e item são redimensionados para ter comprimento de unidade, para que seu valor absoluto máximo seja 1. Nenhuma conversão é aplicada aos valores de recursos, para manter seu dispersão.

Restrições

A atualização online (ou treinamento contínuo) de um modelo de recomendação não tem suporte no momento no Azure Machine Learning. Se você quiser capturar as respostas do usuário para recomendações e usá-las para melhorar o modelo, sugerimos treinar novamente o modelo completo periodicamente. O treinamento incremental não é possível, mas você pode aplicar uma janela deslizante aos dados de treinamento para garantir que o volume de dados seja minimizado ao usar os dados mais recentes.

Estimando o uso de memória de recomendação

Atualmente, o limite inferior do volume de memória do Matchbox é 16 * N\(4\T + 2\R) bytes, em que N se refere ao número de percursos de classificação de item de usuário no conjunto de espaço de o treinamento, T para o número de características latentes e R para a diferença entre a classificação mínima e máxima (no conjunto de custos de treinamento).

O tamanho de um modelo de recomendador Matchbox serializado é 16 * T\(U\R + I + X + Y) de aproximadamente bytes, em que U se refere ao número de usuários, I ao número de itens, X ao número de recursos de usuário e Y ao número de recursos de item.

Entradas esperadas

Nome Tipo Descrição
Conjunto de dados de treinamento de triplos de classificação de usuário-item Tabela de Dados Classificações de itens por usuários, expressos como um triplo (usuário, item, classificação)
Conjunto de dados de treinamento de recursos do usuário Tabela de Dados Conjunto de conteúdo que contém recursos que descrevem os usuários (opcional)
Conjunto de dados de treinamento de recursos do item Tabela de Dados Conjunto de conteúdo que contém recursos que descrevem itens (opcional)

Parâmetros do módulo

Name Intervalo Type Padrão Descrição
Número de características >= 0 Integer 10 Especificar o número de características a serem usadas com o recomendador (opcional)
Número de iterações de algoritmo de recomendação >= 1 Integer 5 Especifique o número máximo de iterações a serem executadas ao treinar o modelo de recomendação (opcional)
Número de lotes de treinamento >= 1 Integer 4 Especificar o número de lotes de treinamento a serem usados com o recomendador (opcional)

Saídas

Nome Tipo Descrição
Recomendador de Matchbox treinado Interface ILearner Recomendador de Matchbox treinado

Exceções

Exceção Descrição
Erro 0022 Ocorrerá uma exceção se o número de colunas selecionadas no conjunto de dados de entrada não for igual ao número esperado.
Erro 0036 Ocorrerá uma exceção se vários vetores do recurso forem fornecidos para um determinado usuário ou item.
Erro 0018 Ocorrerá uma exceção se o conjunto de dados de entrada não for válido.
Erro 0035 Ocorrerá uma exceção se nenhum recurso for fornecido por um determinado usuário ou item.
Erro 0034 Ocorrerá uma exceção se houver mais de uma classificação para um determinado par usuário-item.
Erro 0053 Ocorrerá uma exceção no caso de não haver nenhum recurso ou item de usuário para recomendações de Matchbox.
Erro 0003 Ocorrerá uma exceção se uma ou mais das entradas for nula ou estiver vazia.

Para obter uma lista de erros específicos para módulos do Studio (clássicos), consulte Machine Learning códigos de erro.

Para obter uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.

Consulte também

Modelo de validação cruzada
Avaliar Recomendador
Trem
Classificar recomendador Matchbox