O Dia da Comunidade de ML é dia 9 de novembro! Junte-nos para atualização de TensorFlow, JAX, e mais Saiba mais

Recomendação

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

Recomendações personalizadas são amplamente utilizadas 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 compra e próxima recomendação de 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 TensorFlow Lite que demonstra como recomendar itens relevantes aos usuários do Android.

Exemplo de Android

Se você estiver usando uma plataforma diferente do Android ou já estiver familiarizado com as APIs do TensorFlow Lite, pode baixar 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

Compreenda a arquitetura do modelo

Aproveitamos uma arquitetura de modelo de codificador duplo, com codificador de contexto para codificar o histórico do usuário sequencial e codificador de rótulo para codificar o candidato de recomendação prevista. A similaridade entre o contexto e as codificações de 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 de saco de palavras (BOW): calculando a média dos embeddings das atividades do usuário sem considerar a ordem do contexto.
  • Codificador de rede neural convolucional (CNN): aplicação de 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, poderíamos 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 esta base de código, você pode criar modelos baseados em ID ou em recursos de uma forma configurável.

Após o treinamento, um modelo TensorFlow Lite será exportado, o que pode fornecer diretamente as predições principais 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 como usar o kit de ferramentas e implementar modelos treinados em seus próprios aplicativos móveis.

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 leva apenas os IDs do filme como entrada, e o modelo baseado em recursos leva os IDs do filme e os IDs do gênero do filme como entradas. Encontre os seguintes exemplos de entradas e saídas.

Entradas

  • IDs de filme 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)
    • Crianças (ID: 9)
    • Musical (ID: 13)
    • Animação (ID: 15)
    • Crianças (ID: 9)
    • Comédia (ID: 2)
    • (e mais)

Saídas:

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

Benchmarks 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 como usar o kit de ferramentas e implementar modelos treinados em seus próprios aplicativos móveis.

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 personalização de modelos 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 do vocabulário , dimmer 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 de saco de palavras funciona bem para comprimento de contexto de entrada curto (por exemplo, <10), os 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 os itens novos e, possivelmente, reduzir a escala de espaços de incorporação, portanto, reduzir o consumo de memória e mais amigável no dispositivo.