![]() | ![]() |
I consigli personalizzati sono ampiamente utilizzati per una varietà di casi d'uso sui dispositivi mobili, come il recupero di contenuti multimediali, i suggerimenti sui prodotti per lo shopping e i consigli sull'app successiva. Se sei interessato a fornire consigli personalizzati nella tua applicazione rispettando la privacy degli utenti, ti consigliamo di esplorare l'esempio e il toolkit seguenti.
Iniziare
Forniamo un'applicazione di esempio TensorFlow Lite che mostra come consigliare elementi pertinenti agli utenti su Android.
Se stai utilizzando una piattaforma diversa da Android o hai già familiarità con le API di TensorFlow Lite, puoi scaricare il nostro modello di raccomandazione per principianti.
Scarica il modello di avviamento
Forniamo anche script di addestramento in Github per addestrare il tuo modello in modo configurabile.
Comprendere l'architettura del modello
Sfruttiamo un'architettura del modello a doppio codificatore, con codificatore di contesto per codificare la cronologia utente sequenziale e codificatore di etichette per codificare il candidato raccomandato per la previsione. La somiglianza tra il contesto e le codifiche delle etichette viene utilizzata per rappresentare la probabilità che il candidato previsto soddisfi le esigenze dell'utente.
Con questa base di codice vengono fornite tre diverse tecniche di codifica sequenziale della cronologia degli utenti:
- Encoder Bag-of-words (BOW): media degli incorporamenti delle attività dell'utente senza considerare l'ordine del contesto.
- Codificatore di rete neurale convoluzionale (CNN): applicazione di più livelli di reti neurali convoluzionali per generare la codifica del contesto.
- Codificatore di rete neurale ricorrente (RNN): applicazione della rete neurale ricorrente per codificare la sequenza di contesto.
Per modellare ogni attività dell'utente, potremmo utilizzare l'ID dell'elemento dell'attività (basato sull'ID) o più funzionalità dell'elemento (basato sulla funzionalità) o una combinazione di entrambi. Il modello basato sulle funzionalità che utilizza più funzionalità per codificare collettivamente il comportamento degli utenti. Con questa base di codice, puoi creare modelli basati su ID o basati su funzionalità in modo configurabile.
Dopo la formazione, verrà esportato un modello TensorFlow Lite in grado di fornire direttamente previsioni top-K tra i candidati alla raccomandazione.
Usa i tuoi dati di allenamento
Oltre al modello addestrato, forniamo un toolkit open source in GitHub per addestrare i modelli con i tuoi dati. Puoi seguire questo tutorial per imparare a usare il toolkit e distribuire modelli addestrati nelle tue applicazioni mobili.
Segui questo tutorial per applicare la stessa tecnica utilizzata qui per addestrare un modello di raccomandazione utilizzando i tuoi set di dati.
Esempi
A titolo di esempio, abbiamo addestrato i modelli di raccomandazione con approcci basati sia su ID che su funzionalità. Il modello basato su ID accetta solo gli ID film come input e il modello basato su funzionalità accetta sia gli ID film che gli ID genere film come input. Si prega di trovare i seguenti esempi di input e output.
Ingressi
ID film contestuali:
- Il re leone (ID: 362)
- Toy Story (ID: 1)
- (e altro)
ID del genere del film contestuale:
- Animazione (ID: 15)
- Bambini (ID: 9)
- Musicale (ID: 13)
- Animazione (ID: 15)
- Bambini (ID: 9)
- Commedia (ID: 2)
- (e altro)
Uscite:
- ID film consigliati:
- Toy Story 2 (ID: 3114)
- (e altro)
Benchmark delle prestazioni
I numeri dei benchmark delle prestazioni vengono generati con lo strumento qui descritto .
Nome del modello | Dimensioni del modello | Dispositivo | processore |
---|---|---|---|
raccomandazione (ID film come input) | 0,52 Mb | Pixel 3 | 0,09 ms* |
Pixel 4 | 0,05 ms* | ||
raccomandazione (ID film e genere di film come input) | 1,3 Mb | Pixel 3 | 0,13 ms* |
Pixel 4 | 0,06 ms* |
* 4 fili usati.
Usa i tuoi dati di allenamento
Oltre al modello addestrato, forniamo un toolkit open source in GitHub per addestrare i modelli con i tuoi dati. Puoi seguire questo tutorial per imparare a usare il toolkit e distribuire modelli addestrati nelle tue applicazioni mobili.
Segui questo tutorial per applicare la stessa tecnica utilizzata qui per addestrare un modello di raccomandazione utilizzando i tuoi set di dati.
Suggerimenti per la personalizzazione del modello con i tuoi dati
Il modello preaddestrato integrato in questa applicazione demo è addestrato con il set di dati MovieLens , potresti voler modificare la configurazione del modello in base ai tuoi dati, come la dimensione del vocabolario, l'incorporamento di dim e la lunghezza del contesto di input. Ecco alcuni suggerimenti:
Lunghezza del contesto di input: la migliore lunghezza del contesto di input varia in base ai set di dati. Suggeriamo di selezionare la lunghezza del contesto di input in base a quanto gli eventi dell'etichetta sono correlati agli interessi a lungo termine rispetto al contesto a breve termine.
Selezione del tipo di encoder: suggeriamo di selezionare il tipo di encoder in base alla lunghezza del contesto di input. L'encoder Bag-of-words funziona bene per brevi contesti di input (ad es. <10), i codificatori CNN e RNN apportano una maggiore capacità di riepilogo per lunghi contesti di input.
L'utilizzo delle funzionalità sottostanti per rappresentare elementi o attività dell'utente potrebbe migliorare le prestazioni del modello, accogliere meglio elementi nuovi, possibilmente ridimensionare gli spazi di incorporamento, quindi ridurre il consumo di memoria e un maggiore utilizzo del dispositivo.