Dziękujemy za zapoznanie się z Google I/O. Zobacz wszystkie sesje na żądanie Oglądaj na żądanie

Rekomendacje

Zobacz na TensorFlow.org Uruchom w Google Colab Wyświetl źródło na GitHub

Spersonalizowane rekomendacje są szeroko stosowane w różnych przypadkach użycia na urządzeniach mobilnych, takich jak pobieranie treści multimedialnych, sugerowanie produktów zakupowych i rekomendacja następnej aplikacji. Jeśli jesteś zainteresowany dostarczaniem spersonalizowanych rekomendacji w swojej aplikacji przy jednoczesnym poszanowaniu prywatności użytkownika, zalecamy zapoznanie się z poniższym przykładem i zestawem narzędzi.

Zaczynaj

Udostępniamy przykładową aplikację TensorFlow Lite, która pokazuje, jak polecać odpowiednie elementy użytkownikom systemu Android.

Przykład na Androida

Jeśli korzystasz z platformy innej niż Android lub znasz już interfejsy API TensorFlow Lite, możesz pobrać nasz początkowy model rekomendacji.

Pobierz model startowy

Udostępniamy również skrypt szkoleniowy w Github, aby trenować własny model w konfigurowalny sposób.

Kod szkolenia

Zrozum architekturę modelu

Wykorzystujemy architekturę modelu z dwoma koderami, z koderem kontekstowym do kodowania sekwencyjnej historii użytkownika i koderem etykiet do kodowania przewidywanego kandydata na rekomendację. Podobieństwo między kodowaniem kontekstowym i etykietowym służy do reprezentowania prawdopodobieństwa, że ​​przewidywany kandydat spełnia potrzeby użytkownika.

Ta baza kodu zapewnia trzy różne techniki sekwencyjnego kodowania historii użytkownika:

  • Koder Bag-of-words (BOW): uśrednianie osadzonych działań użytkownika bez uwzględniania kolejności kontekstu.
  • Enkoder splotowych sieci neuronowych (CNN): zastosowanie wielu warstw splotowych sieci neuronowych do generowania kodowania kontekstowego.
  • Rekurencyjny koder sieci neuronowej (RNN): zastosowanie rekurencyjnej sieci neuronowej do kodowania sekwencji kontekstu.

Aby modelować aktywność każdego użytkownika, możemy użyć identyfikatora elementu aktywności (na podstawie identyfikatora) lub wielu funkcji elementu (na podstawie funkcji) lub kombinacji obu. Model oparty na funkcjach wykorzystujący wiele funkcji do wspólnego kodowania zachowań użytkowników. Dzięki tej bazie kodu można w konfigurowalny sposób tworzyć modele oparte na identyfikatorach lub funkcjach.

Po przeszkoleniu zostanie wyeksportowany model TensorFlow Lite, który może bezpośrednio dostarczyć najlepszych prognoz wśród kandydatów do rekomendacji.

Wykorzystaj swoje dane treningowe

Oprócz trenowanego modelu udostępniamy zestaw narzędzi typu open source w usłudze GitHub do trenowania modeli z własnymi danymi. Możesz skorzystać z tego samouczka, aby dowiedzieć się, jak korzystać z zestawu narzędzi i wdrażać przeszkolone modele we własnych aplikacjach mobilnych.

Postępuj zgodnie z tym samouczkiem , aby zastosować tę samą technikę, którą zastosowano tutaj, do trenowania modelu rekomendacji przy użyciu własnych zestawów danych.

Przykłady

Jako przykłady przeszkoliliśmy modele rekomendacji z podejściem opartym na identyfikatorach i funkcjach. Model oparty na identyfikatorach przyjmuje jako dane wejściowe tylko identyfikatory filmów, a model oparty na funkcjach przyjmuje jako dane wejściowe zarówno identyfikatory filmów, jak i identyfikatory gatunku filmu. Poniżej znajdują się przykłady wejść i wyjść.

Wejścia

  • Identyfikatory filmów kontekstowych:

    • Król Lew (ID: 362)
    • Toy Story (ID: 1)
    • (i więcej)
  • Kontekstowe identyfikatory gatunku filmu:

    • Animacja (ID: 15)
    • Dziecięce (ID: 9)
    • Musical (ID: 13)
    • Animacja (ID: 15)
    • Dziecięce (ID: 9)
    • Komedia (ID: 2)
    • (i więcej)

Wyjścia:

  • Zalecane identyfikatory filmów:
    • Toy Story 2 (ID: 3114)
    • (i więcej)

Testy wydajności

Wyniki testów wydajności są generowane za pomocą opisanego tutaj narzędzia.

Nazwa modelu Rozmiar modelu Urządzenie procesor
rekomendacja (identyfikator filmu jako dane wejściowe) 0,52 Mb Piksel 3 0,09ms*
Piksel 4 0,05ms*
rekomendacja (identyfikator filmu i gatunek filmu jako dane wejściowe) 1,3 Mb Piksel 3 0.13ms*
Piksel 4 0,06ms*

* 4 wątki użyte.

Wykorzystaj swoje dane treningowe

Oprócz trenowanego modelu udostępniamy zestaw narzędzi typu open source w usłudze GitHub do trenowania modeli z własnymi danymi. Możesz skorzystać z tego samouczka, aby dowiedzieć się, jak korzystać z zestawu narzędzi i wdrażać przeszkolone modele we własnych aplikacjach mobilnych.

Postępuj zgodnie z tym samouczkiem , aby zastosować tę samą technikę, którą zastosowano tutaj, do trenowania modelu rekomendacji przy użyciu własnych zestawów danych.

Wskazówki dotyczące dostosowywania modelu za pomocą danych

Wstępnie wytrenowany model zintegrowany z tą aplikacją demonstracyjną jest szkolony za pomocą zestawu danych MovieLens , możesz chcieć zmodyfikować konfigurację modelu w oparciu o własne dane, takie jak rozmiar słownictwa, wymary osadzania i długość kontekstu wejściowego. Oto kilka wskazówek:

  • Długość kontekstu wejściowego: najlepsza długość kontekstu wejściowego zależy od zestawów danych. Sugerujemy wybór długości kontekstu wejściowego na podstawie tego, jak bardzo zdarzenia etykiet są skorelowane z zainteresowaniami długoterminowymi w porównaniu z kontekstem krótkoterminowym.

  • Wybór typu enkodera: sugerujemy wybór typu enkodera na podstawie długości kontekstu wejściowego. Enkoder Bag-of-words działa dobrze dla krótkiej długości kontekstu wejściowego (np. <10), kodery CNN i RNN zapewniają większą zdolność podsumowania dla długiej długości kontekstu wejściowego.

  • Używanie podstawowych funkcji do reprezentowania elementów lub działań użytkownika może poprawić wydajność modelu, lepiej pomieścić nowe elementy, być może zmniejszyć skalowanie przestrzeni osadzania, a tym samym zmniejszyć zużycie pamięci i być bardziej przyjazne dla urządzenia.