Tworzenie szerokiego i głębokiego modelu w systemie rekomendacji

Korzystając z przykładowych notesów, ten artykuł przeprowadzi Cię przez proces tworzenia systemu rekomendacji za pomocą szerokiego i głębokiego modelu. Tworzenie potoku uczenia maszynowego systemu szerokiego i głębokiego modułu rekomendacji obejmuje etapy pokazane na tym diagramie:

Workflow for a wide-and-deep recommender

To rozwiązanie referencyjne obejmuje etapy wyświetlane na niebiesko:

  • Trenowanie i ocena modelu
  • Eksportowanie modeli i zarządzanie wersjami
  • Wnioskowanie modelu wsadowego
  • Obsługa modeli online

Aby uzyskać informacje na temat kroków, które nie zostały omówione, zobacz Etapy projektu, które nie zostały omówione.

Co to jest szeroki i głęboki model?

Skuteczny wybór dla systemu rekomendacji, szeroki i głęboki model łączy model liniowy z możliwościami modelu uczenia głębokiego. Model liniowy analizuje dane historyczne związane z wyborami klientów, a możliwości uczenia głębokiego uogólniają, aby rozszerzyć opcje odpowiednich zaleceń.

Aby dowiedzieć się więcej, zobacz ten dokument akademicki: Wide & Deep Edukacja for Recommender Systems.

Najważniejsze informacje o narzędziach usługi Databricks

Notes obejmuje kilka narzędzi dostępnych w usłudze Azure Databricks, które upraszczają tworzenie potoku uczenia maszynowego:

  1. SparkDatasetConverter
  2. Rejestr modeli MLflow
  3. Obsługa modelu MLflow

Notes opisujący zestaw danych użytkownika

Zestaw danych używany w tym notesie składa się z następujących tabel delty:

  • user_profile: zawiera user_id wartości i ich profile statyczne
  • item_profile: zawiera item_id wartości i ich profile statyczne
  • user_item_interaction: zawiera zdarzenia, w których użytkownik wchodzi w interakcję z elementem. Ta tabela jest losowo podzielona na trzy tabele delty, aby skompilować i ocenić model: train, validationi test.

Ten format danych jest typowy w przypadku problemów z rekomendacjami. Niektóre przykłady:

  • W przypadku osób polecających reklamy elementy to reklamy, a interakcje między elementami użytkownika to rekordy użytkowników klikających reklamy.
  • W przypadku osób polecających zakupy online produkty są produktami, a interakcje między elementami użytkownika to rekordy użytkowników przeglądających lub historii zamówień.

Po dostosowaniu tego notesu do zestawu danych wystarczy zapisać dane w tabelach delty i podać nazwy tabel i lokalizacje. Kod służący do ładowania danych może być najczęściej używany.

Aby uzyskać szczegółowe informacje, zobacz notes generowania zestawu danych.

Generowanie i zapisywanie notesu zestawu danych

Pobierz notes

Przykład notesu: model szeroki i głęboki

Model szeroki i głęboki łączy szeroki model liniowy z głęboką siecią neuronową w celu obsługi zapamiętywania i uogólniania wymaganych do dobrych zaleceń.

Ten model jest tylko jednym z przykładów wielu modeli uczenia głębokiego dla problemu z zaleceniami lub dla wszystkich potoków uczenia maszynowego w ogóle. W tym miejscu przedstawiono sposób kompilowania przepływu pracy. Możesz zamienić w różnych modelach dla własnego przypadku użycia i dostosować model w celu uzyskania lepszych metryk oceny.

Tworzenie i obsługa szerokiego i głębokiego modelu w notesie systemu rekomendacji

Pobierz notes

Nieuwzroczeni etapy projektu

Aby notes był skoncentrowany na tym, jak zaimplementować system rekomendacji, następujące etapy nie są omówione. Te etapy są wyświetlane jako szare bloki na diagramie przepływu pracy.

  1. Zbieranie danych i eksploracyjna analiza danych. Zobacz Uruchamianie pierwszego obciążenia ETL w usłudze Azure Databricks.
  2. Inżynieria cech. Inżynieria cech jest ważną częścią systemu rekomendacji, a wiele informacji jest dostępnych w tym temacie. W tym notesie założono, że masz wyselekcjonowy zestaw danych zawierający interakcje między elementami użytkownika. Aby uzyskać szczegółowe informacje o zestawie danych używanym w tym notesie, zobacz Notes opisujący zestaw danych użytkownika. Aby uzyskać więcej informacji na temat inżynierii cech, zobacz następujące zasoby:
  3. Dostrajanie modelu. Dostrajanie modelu obejmuje zmianę kodu istniejącego potoku, w tym inżynierię cech, strukturę modelu, hiperparametry modelu, a nawet aktualizowanie etapu zbierania danych w celu poprawy wydajności modelu. Aby uzyskać więcej informacji na temat narzędzi do dostrajania modelu w usłudze Azure Databricks, zobacz Dostrajanie hiperparametrów.