Score Wide and Deep Recommender

Este artigo descreve como usar o componente Score Wide e Deep Recommender no designer do Azure Machine Learning para criar previsões com base em um modelo de recomendação treinado, com base no Wide & Deep learning do Google.

O recomendado Wide e Deep pode gerar dois tipos diferentes de previsões:

Ao criar este último tipo de previsões, você pode operar no modo de produção ou no modo de avaliação.

  • O modo de produção considera todos os usuários ou itens e normalmente é usado em um serviço Web. Você pode criar pontuações para novos usuários, não apenas para usuários vistos durante o treinamento.

  • O modo de avaliação opera em um conjunto reduzido de usuários ou itens que podem ser avaliados, e normalmente é usado durante a experimentação.

Mais detalhes sobre o Wide and Deep recommender e sua teoria subjacente podem ser encontrados no artigo de pesquisa relevante: Wide & Deep Learning for Recommender Systems.

Como configurar o Score Wide e o Deep Recommender

Este componente suporta diferentes tipos de recomendações, cada uma com requisitos diferentes. Clique no link para o tipo de dados que você tem e o tipo de recomendação que você deseja criar.

Prever classificações

Quando você prevê classificações, o modelo calcula como um determinado usuário reagirá a um determinado item, dados de treinamento. Portanto, os dados de entrada para pontuação devem fornecer um usuário e o item para classificar.

  1. Adicione um modelo de recomendação Wide & Deep treinado ao seu experimento e conecte-o ao modelo de recomendação Trained Wide e Deep. Você deve criar o modelo usando Train Wide e Deep Recommender.

  2. Tipo de previsão de recomendação: Selecione Previsão de classificação. Não são necessários outros parâmetros.

  3. Adicione os dados para os quais você deseja fazer previsões e conecte-os ao Dataset para pontuar.

    Para prever classificações, o conjunto de dados de entrada deve conter pares de itens de usuário.

    O conjunto de dados pode conter uma terceira coluna opcional de classificações para o par usuário-item na primeira e na segunda colunas, mas a terceira coluna será ignorada durante a previsão.

  4. (Opcional). Se você tiver um conjunto de dados de recursos do usuário, conecte-o aos recursos do usuário.

    O conjunto de dados de recursos do usuário deve conter o identificador do usuário na primeira coluna. As restantes colunas devem conter valores que caracterizem os utilizadores, tais como o seu género, preferências, localização, etc.

    Os recursos dos usuários que classificaram itens no conjunto de dados de treinamento são ignorados pelo Score Wide e pelo Deep Recommender, porque já foram aprendidos durante o treinamento. Portanto, filtre seu conjunto de dados com antecedência para incluir apenas usuários de inicialização a frio ou usuários que não classificaram nenhum item.

    Aviso

    Se o modelo foi treinado sem usar recursos do usuário, você não pode introduzir recursos do usuário durante a pontuação.

  5. Se você tiver um conjunto de dados de recursos de item, poderá conectá-lo aos recursos de item.

    O conjunto de dados de recursos de item deve conter um identificador de item na primeira coluna. As colunas restantes devem conter valores que caracterizem os itens.

    Os recursos dos itens classificados no conjunto de dados de treinamento são ignorados pelo Score Wide e pelo Deep Recommender , pois já foram aprendidos durante o treinamento. Portanto, restrinja seu conjunto de dados de pontuação a itens de inicialização a frio ou itens que não foram classificados por nenhum usuário.

    Aviso

    Se o modelo foi treinado sem usar recursos de item, você não pode introduzir recursos de item durante a pontuação.

  6. Execute a experimentação.

Resultados para previsões de classificação

O conjunto de dados de saída contém três colunas, contendo o usuário, o item e a classificação prevista para cada usuário e item de entrada.

Além disso, as seguintes alterações são aplicadas durante a pontuação:

  • Para um usuário numérico ou coluna de recurso de item, os valores ausentes são automaticamente substituídos pela média de seus valores de conjunto de treinamento não ausentes. Para o recurso categórico, os valores ausentes são substituídos pelo mesmo valor categórico, diferente de quaisquer valores possíveis desse recurso.
  • Nenhuma tradução é aplicada aos valores dos recursos, para manter sua paridade.

Recomendar itens

Para recomendar itens para usuários, forneça uma lista de usuários e itens como entrada. A partir desses dados, o modelo usa seu conhecimento sobre itens existentes e usuários para gerar uma lista de itens com provável apelo para cada usuário. Você pode personalizar o número de recomendações retornadas e definir um limite para o número de recomendações anteriores necessárias para gerar uma recomendação.

  1. Adicione um modelo de recomendação Wide e Deep treinado ao seu experimento e conecte-o ao modelo de recomendação Trained Wide e Deep. Você deve criar o modelo usando Train Wide e Deep Recommender.

  2. Para recomendar itens para uma determinada lista de usuários, defina Tipo de previsão de recomendação como Recomendação de item.

  3. Seleção de item recomendada: Indique se você está usando o componente de pontuação na produção ou para avaliação do modelo, escolhendo um destes valores:

    • De Itens classificados (para avaliação do modelo): selecione esta opção se estiver desenvolvendo ou testando um modelo. Esta opção permite o modo de avaliação e o componente faz recomendações apenas a partir dos itens no conjunto de dados de entrada que foram classificados.
    • Em Todos os Itens: Selecione esta opção se estiver configurando um experimento para usar em um serviço Web ou produção. Esta opção permite o modo de produção, e o componente faz recomendações de todos os itens vistos durante o treinamento.
    • De Itens sem classificação (para sugerir novos itens aos usuários): selecione esta opção se desejar que o componente faça recomendações apenas a partir dos itens do conjunto de dados de treinamento que não foram classificados.
  4. Adicione o conjunto de dados para o qual você deseja fazer previsões e conecte-o ao Conjunto de dados para pontuar.

    • Se você escolher a opção De Todos os Itens, o conjunto de dados de entrada deve consistir em uma única coluna, contendo os identificadores de usuários para os quais fazer recomendações.

      O conjunto de dados pode incluir duas colunas extras de identificadores de item e classificações, mas essas duas colunas são ignoradas.

    • Se você escolher a opção De itens classificados (para avaliação do modelo), o conjunto de dados de entrada deve consistir em pares de itens de usuário. A primeira coluna deve conter o identificador do utilizador . A segunda coluna deve conter os identificadores de item correspondentes.

      O conjunto de dados pode incluir uma terceira coluna de classificações de item de usuário, mas essa coluna é ignorada.

    • Para De itens não classificados (para sugerir novos itens aos usuários), o conjunto de dados de entrada deve consistir em pares de itens de usuário. A primeira coluna deve conter o identificador do utilizador. A segunda coluna deve conter os identificadores de item correspondentes.

      O conjunto de dados pode incluir uma terceira coluna de classificações de item de usuário, mas essa coluna é ignorada.

  5. (Opcional). Se você tiver um conjunto de dados de recursos do usuário, conecte-o aos recursos do usuário.

    A primeira coluna no conjunto de dados de recursos do usuário deve conter o identificador do usuário. As restantes colunas devem conter valores que caracterizem o utilizador, tais como o seu género, preferências, localização, etc.

    Os recursos dos usuários que classificaram itens são ignorados pelo Score Wide e pelo Deep Recommender, porque esses recursos já foram aprendidos durante o treinamento. Portanto, você pode filtrar seu conjunto de dados com antecedência para incluir apenas usuários de inicialização a frio ou usuários que não classificaram nenhum item.

    Aviso

    Se o modelo foi treinado sem usar recursos do usuário, você não pode usar recursos de aplicação durante a pontuação.

  6. (Opcional) Se você tiver um conjunto de dados de recursos de item, poderá conectá-lo aos recursos de item.

    A primeira coluna do conjunto de dados de recursos do item deve conter o identificador do item. As colunas restantes devem conter valores que caracterizem os itens.

    Os recursos dos itens classificados são ignorados pelo Score Wide e pelo Deep Recommender, porque esses recursos já foram aprendidos durante o treinamento. Portanto, você pode restringir seu conjunto de dados de pontuação a itens de inicialização a frio ou itens que não foram classificados por nenhum usuário.

    Aviso

    Se o modelo foi treinado sem usar recursos de item, não use recursos de item ao pontuar.

  7. Número máximo de itens a recomendar a um utilizador: escreva o número de itens a devolver para cada utilizador. Por padrão, 5 itens são recomendados.

  8. Tamanho mínimo do pool de recomendações por usuário: digite um valor que indique quantas recomendações anteriores são necessárias. Por padrão, esse parâmetro é definido como 2, o que significa que o item deve ter sido recomendado por pelo menos dois outros usuários.

    Esta opção deve ser usada apenas se você estiver pontuando no modo de avaliação. A opção não estará disponível se você selecionar De Todos os Itens ou De Itens Sem Classificação (para sugerir novos itens aos usuários).

  9. Para De itens não classificados (para sugerir novos itens aos usuários), use a terceira porta de entrada, chamada Dados de treinamento, para remover itens que já foram classificados dos resultados da previsão.

    Para aplicar esse filtro, conecte o conjunto de dados de treinamento original à porta de entrada.

  10. Execute a experimentação.

Resultados da recomendação de itens

O conjunto de dados de pontuação retornado pelo Score Wide e pelo Deep Recommender lista os itens recomendados para cada usuário.

  • A primeira coluna contém os identificadores de usuário.
  • Um número de colunas adicionais é gerado, dependendo do valor definido para Número máximo de itens a recomendar a um usuário. Cada coluna contém um item recomendado (por identificador). As recomendações são ordenadas por afinidade usuário-item, com o item com maior afinidade colocado na coluna, Item 1.

Notas técnicas

Esta seção contém respostas para algumas perguntas comuns sobre como usar o recomendado Wide & Deep para criar previsões.

Utilizadores de arranque a frio e recomendações

Normalmente, para criar recomendações, o componente Score Wide e Deep Recommender requer as mesmas entradas que você usou ao treinar o modelo, incluindo um ID de usuário. Isso porque o algoritmo precisa saber se aprendeu algo sobre esse usuário durante o treinamento.

No entanto, para novos usuários, você pode não ter um ID de usuário, apenas alguns recursos do usuário, como idade, sexo e assim por diante.

Você ainda pode criar recomendações para usuários que são novos em seu sistema, manipulando-os como usuários de inicialização a frio. Para esses usuários, o algoritmo de recomendação não usa histórico passado ou classificações anteriores, apenas recursos do usuário.

Para fins de previsão, um usuário de inicialização a frio é definido como um usuário com um ID que não foi usado para treinamento. Para garantir que os IDs não correspondam aos IDs usados no treinamento, você pode criar novos identificadores. Por exemplo, você pode gerar IDs aleatórios dentro de um intervalo especificado ou alocar uma série de IDs com antecedência para usuários de inicialização a frio.

No entanto, se você não tiver nenhum dado de filtragem colaborativa, como um vetor de recursos do usuário, é melhor usar um aluno de classificação ou regressão.

Uso de produção do recomendador Wide and Deep

Se você experimentou o recomendado Wide e Deep e, em seguida, moveu o modelo para produção, esteja ciente destas diferenças principais ao usar o recomendado no modo de avaliação e no modo de produção:

  • A avaliação, por definição, requer previsões que podem ser verificadas contra a verdade do terreno em um conjunto de testes. Portanto, quando você avalia o recomendador, ele deve prever apenas os itens que foram classificados no conjunto de testes. Isso necessariamente restringe os valores possíveis que são previstos.

    No entanto, quando você operacionaliza o modelo, normalmente altera o modo de previsão para fazer recomendações com base em todos os itens possíveis, a fim de obter as melhores previsões. Para muitas dessas previsões, não há verdade de base correspondente, de modo que a precisão da recomendação não pode ser verificada da mesma forma que durante a experimentação.

  • Se você não fornecer um ID de usuário na produção e fornecer apenas um vetor de recurso, poderá obter como resposta uma lista de todas as recomendações para todos os usuários possíveis. Certifique-se de fornecer um ID de usuário.

    Para limitar o número de recomendações retornadas, você também pode especificar o número máximo de itens retornados por usuário.

Próximos passos

Consulte o conjunto de componentes disponíveis do Azure Machine Learning.