Recomendação

Veja no TensorFlow.org Executar no Google Colab Ver fonte no GitHub

As recomendações personalizadas são amplamente usadas para uma variedade de casos de uso em dispositivos móveis, como recuperação de conteúdo de mídia, sugestão de produto de compras e recomendação de próximo aplicativo. Se você estiver interessado em fornecer recomendações personalizadas em seu aplicativo respeitando a privacidade do usuário, recomendamos explorar o exemplo e o kit de ferramentas a seguir.

iniciar

Fornecemos um aplicativo de amostra do TensorFlow Lite que demonstra como recomendar itens relevantes para usuários no Android.

Exemplo Android

Se você estiver usando uma plataforma diferente do Android ou já estiver familiarizado com as APIs do TensorFlow Lite, faça o download do nosso modelo de recomendação inicial.

Baixe o modelo inicial

Também fornecemos script de treinamento no Github para treinar seu próprio modelo de forma configurável.

Código de treinamento

Entenda a arquitetura do modelo

Aproveitamos uma arquitetura de modelo de codificador duplo, com codificador de contexto para codificar o histórico sequencial do usuário e codificador de rótulo para codificar o candidato à recomendação previsto. A semelhança entre as codificações de contexto e rótulo é usada para representar a probabilidade de que o candidato previsto atenda às necessidades do usuário.

Três diferentes técnicas de codificação de histórico de usuário sequencial são fornecidas com esta base de código:

  • Codificador Bag-of-words (BOW): calcula a média dos embeddings das atividades do usuário sem considerar a ordem do contexto.
  • Codificador de rede neural convolucional (CNN): aplicando várias camadas de redes neurais convolucionais para gerar codificação de contexto.
  • Codificador de rede neural recorrente (RNN): aplicação de rede neural recorrente para codificar a sequência de contexto.

Para modelar cada atividade do usuário, podemos usar o ID do item de atividade (com base em ID) ou vários recursos do item (com base em recursos) ou uma combinação de ambos. O modelo baseado em recursos que utiliza vários recursos para codificar coletivamente o comportamento dos usuários. Com essa base de código, você pode criar modelos baseados em ID ou em recursos de maneira configurável.

Após o treinamento, um modelo do TensorFlow Lite será exportado, o que pode fornecer diretamente previsões top-K entre os candidatos à recomendação.

Use seus dados de treinamento

Além do modelo treinado, fornecemos um kit de ferramentas de código aberto no GitHub para treinar modelos com seus próprios dados. Você pode seguir este tutorial para aprender a usar o kit de ferramentas e implementar modelos treinados em seus próprios aplicativos remotos.

Siga este tutorial para aplicar a mesma técnica usada aqui para treinar um modelo de recomendação usando seus próprios conjuntos de dados.

Exemplos

Como exemplos, treinamos modelos de recomendação com abordagens baseadas em ID e em recursos. O modelo baseado em ID usa apenas os IDs de filme como entrada, e o modelo baseado em recurso usa IDs de filme e IDs de gênero de filme como entradas. Por favor, encontre os seguintes exemplos de entradas e saídas.

Entradas

  • IDs de filmes de contexto:

    • O Rei Leão (ID: 362)
    • Toy Story (ID: 1)
    • (e mais)
  • IDs de gênero de filme de contexto:

    • Animação (ID: 15)
    • Infantil (ID: 9)
    • Musical (ID: 13)
    • Animação (ID: 15)
    • Infantil (ID: 9)
    • Comédia (ID: 2)
    • (e mais)

Saídas:

  • IDs de filmes recomendados:
    • Toy Story 2 (ID: 3114)
    • (e mais)

Referências de desempenho

Os números de referência de desempenho são gerados com a ferramenta descrita aqui .

Nome do modelo Tamanho do modelo Dispositivo CPU
recomendação (ID do filme como entrada) 0,52 MB Pixel 3 0,09 ms*
Pixel 4 0,05 ms*
recomendação (ID do filme e gênero do filme como entradas) 1,3 MB Pixel 3 0,13 ms*
Pixel 4 0,06 ms*

* 4 fios usados.

Use seus dados de treinamento

Além do modelo treinado, fornecemos um kit de ferramentas de código aberto no GitHub para treinar modelos com seus próprios dados. Você pode seguir este tutorial para aprender a usar o kit de ferramentas e implementar modelos treinados em seus próprios aplicativos remotos.

Siga este tutorial para aplicar a mesma técnica usada aqui para treinar um modelo de recomendação usando seus próprios conjuntos de dados.

Dicas para personalizar o modelo com seus dados

O modelo pré-treinado integrado neste aplicativo de demonstração é treinado com o conjunto de dados MovieLens , você pode querer modificar a configuração do modelo com base em seus próprios dados, como tamanho de vocabulário, dims de incorporação e comprimento do contexto de entrada. Aqui estão algumas dicas:

  • Comprimento do contexto de entrada: O melhor comprimento do contexto de entrada varia com os conjuntos de dados. Sugerimos selecionar o comprimento do contexto de entrada com base em quantos eventos de rótulo estão correlacionados com interesses de longo prazo versus contexto de curto prazo.

  • Seleção do tipo de codificador: sugerimos selecionar o tipo de codificador com base no comprimento do contexto de entrada. O codificador Bag-of-words funciona bem para comprimento de contexto de entrada curto (por exemplo, <10), codificadores CNN e RNN trazem mais capacidade de sumarização para comprimento de contexto de entrada longo.

  • O uso de recursos subjacentes para representar itens ou atividades do usuário pode melhorar o desempenho do modelo, acomodar melhor itens novos, possivelmente reduzir espaços de incorporação de escala, portanto, reduzir o consumo de memória e ser mais amigável no dispositivo.