Merken Sie den Termin vor! Google I / O kehrt vom 18. bis 20. Mai zurück Registrieren Sie sich jetzt
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Empfehlung

Ansicht auf TensorFlow.org In Google Colab ausführen Quelle auf GitHub anzeigen

Personalisierte Empfehlungen werden häufig für eine Vielzahl von Anwendungsfällen auf Mobilgeräten verwendet, z. B. zum Abrufen von Medieninhalten, zum Vorschlagen von Einkaufsprodukten und zur nächsten App-Empfehlung. Wenn Sie personalisierte Empfehlungen in Ihrer Anwendung unter Wahrung der Privatsphäre der Benutzer bereitstellen möchten, empfehlen wir Ihnen, das folgende Beispiel und Toolkit zu untersuchen.

Loslegen

Wir bieten eine TensorFlow Lite-Beispielanwendung, die zeigt, wie relevante Elemente Benutzern auf Android empfohlen werden können.

Android Beispiel

Wenn Sie eine andere Plattform als Android verwenden oder bereits mit den TensorFlow Lite-APIs vertraut sind, können Sie unser Starterempfehlungsmodell herunterladen.

Startermodell herunterladen

Wir bieten auch ein Schulungsskript in Github an, um Ihr eigenes Modell auf konfigurierbare Weise zu trainieren.

Trainingscode

Verstehen Sie die Modellarchitektur

Wir nutzen eine Modellarchitektur mit zwei Codierern, mit Kontext-Codierer zum Codieren des sequentiellen Benutzerverlaufs und Label-Codierer zum Codieren des vorhergesagten Empfehlungskandidaten. Die Ähnlichkeit zwischen Kontext- und Beschriftungscodierungen wird verwendet, um die Wahrscheinlichkeit darzustellen, dass der vorhergesagte Kandidat die Anforderungen des Benutzers erfüllt.

Mit dieser Codebasis werden drei verschiedene Codierungstechniken für die sequentielle Benutzerhistorie bereitgestellt:

  • Bag-of-Words-Encoder (BOW): Mittelung der Einbettungen von Benutzeraktivitäten ohne Berücksichtigung der Kontextreihenfolge.
  • Convolutional Neural Network Encoder (CNN): Anwenden mehrerer Schichten von Convolutional Neural Networks zur Erzeugung einer Kontextcodierung.
  • Recurrent Neural Network Encoder (RNN): Anwenden eines Recurrent Neural Network zur Codierung der Kontextsequenz.

Um jede Benutzeraktivität zu modellieren, können wir die ID des Aktivitätselements (ID-basiert) oder mehrere Features des Elements (Feature-basiert) oder eine Kombination aus beiden verwenden. Das funktionsbasierte Modell, das mehrere Funktionen verwendet, um das Benutzerverhalten gemeinsam zu codieren. Mit dieser Codebasis können Sie entweder ID-basierte oder funktionsbasierte Modelle auf konfigurierbare Weise erstellen.

Nach dem Training wird ein TensorFlow Lite-Modell exportiert, das direkt Top-K-Vorhersagen unter den Empfehlungskandidaten liefern kann.

Verwenden Sie Ihre Trainingsdaten

Zusätzlich zum trainierten Modell bieten wir in GitHub ein Open-Source- Toolkit an , mit dem Sie Modelle mit Ihren eigenen Daten trainieren können. In diesem Tutorial erfahren Sie, wie Sie das Toolkit verwenden und geschulte Modelle in Ihren eigenen mobilen Anwendungen bereitstellen.

Befolgen Sie dieses Tutorial , um dieselbe Technik anzuwenden, die hier zum Trainieren eines Empfehlungsmodells unter Verwendung Ihrer eigenen Datensätze verwendet wird.

Beispiele

Als Beispiele haben wir Empfehlungsmodelle mit ID-basierten und funktionsbasierten Ansätzen trainiert. Das ID-basierte Modell verwendet nur die Film-IDs als Eingabe, und das funktionsbasierte Modell verwendet sowohl Film-IDs als auch Filmgenre-IDs als Eingaben. Hier finden Sie die folgenden Beispiele für Ein- und Ausgänge.

Eingänge

  • Kontextfilm-IDs:

    • Der König der Löwen (ID: 362)
    • Toy Story (ID: 1)
    • (und mehr)
  • Kontext-Filmgenre-IDs:

    • Animation (ID: 15)
    • Kinder (ID: 9)
    • Musical (ID: 13)
    • Animation (ID: 15)
    • Kinder (ID: 9)
    • Komödie (ID: 2)
    • (und mehr)

Ausgänge:

  • Empfohlene Film-IDs:
    • Toy Story 2 (ID: 3114)
    • (und mehr)

Leistungsbenchmarks

Leistungsbenchmarkzahlen werden mit dem hier beschriebenen Tool generiert.

Modellname Modellgröße Gerät Zentralprozessor
Empfehlung (Film-ID als Eingabe) 0,52 Mb Pixel 3 0,09 ms *
Pixel 4 0,05 ms *
Empfehlung (Film-ID und Filmgenre als Eingaben) 1,3 Mb Pixel 3 0,13 ms *
Pixel 4 0,06 ms *

* 4 Threads verwendet.

Verwenden Sie Ihre Trainingsdaten

Zusätzlich zum trainierten Modell bieten wir in GitHub ein Open-Source- Toolkit an , mit dem Sie Modelle mit Ihren eigenen Daten trainieren können. In diesem Tutorial erfahren Sie, wie Sie das Toolkit verwenden und geschulte Modelle in Ihren eigenen mobilen Anwendungen bereitstellen.

Befolgen Sie dieses Tutorial , um dieselbe Technik anzuwenden, die hier zum Trainieren eines Empfehlungsmodells unter Verwendung Ihrer eigenen Datensätze verwendet wird.

Tipps zur Modellanpassung mit Ihren Daten

Das in diese Demoanwendung integrierte vorab trainierte Modell wird mit dem MovieLens- Dataset trainiert. Möglicherweise möchten Sie die Modellkonfiguration basierend auf Ihren eigenen Daten ändern, z. B. der Vokabulargröße, dem Einbetten von Dims und der Länge des Eingabekontexts. Hier einige Tipps:

  • Länge des Eingabekontexts: Die beste Länge des Eingabekontexts variiert je nach Datensatz. Wir empfehlen, die Länge des Eingabekontexts basierend darauf auszuwählen, inwieweit Label-Ereignisse mit langfristigen Interessen im Vergleich zum kurzfristigen Kontext korrelieren.

  • Auswahl des Encodertyps: Wir empfehlen die Auswahl des Encodertyps basierend auf der Länge des Eingabekontexts. Der Bag-of-Word-Encoder eignet sich gut für kurze Eingangskontextlängen (z. B. <10). CNN- und RNN-Encoder bieten mehr Zusammenfassungsmöglichkeiten für lange Eingangskontextlängen.

  • Die Verwendung zugrunde liegender Funktionen zur Darstellung von Elementen oder Benutzeraktivitäten könnte die Modellleistung verbessern, neue Elemente besser aufnehmen, möglicherweise Einbettungsbereiche verkleinern, wodurch der Speicherverbrauch verringert und die Gerätefreundlichkeit verbessert wird.