Trenowanie modeli polecania
Ten artykuł zawiera dwa przykłady modeli rekomendacji opartych na uczeniu głębokim w usłudze Azure Databricks. W porównaniu z tradycyjnymi modelami rekomendacji modele uczenia głębokiego mogą osiągać wyniki o wyższej jakości i skalować do większych ilości danych. W miarę rozwoju tych modeli usługa Databricks zapewnia platformę do efektywnego trenowania modeli rekomendacji na dużą skalę, które mogą obsługiwać setki milionów użytkowników.
Ogólny system rekomendacji można wyświetlić jako lejek ze etapami przedstawionymi na diagramie.
Niektóre modele, takie jak model z dwoma wieżami, działają lepiej jako modele pobierania. Te modele są mniejsze i mogą skutecznie działać na milionach punktów danych. Inne modele, takie jak DLRM lub DeepFM, działają lepiej jako modele ponownego korbowania. Modele te mogą przyjmować więcej danych, są większe i mogą udostępniać szczegółowe zalecenia.
Wymagania
Databricks Runtime 14.3 LTS ML
Narzędzia
Przykłady w tym artykule ilustrują następujące narzędzia:
- TorchDistributor: TorchDistributor to struktura, która umożliwia uruchamianie trenowania modelu PyTorch na dużą skalę w usłudze Databricks. Używa platformy Spark do orkiestracji i umożliwia skalowanie do tylu procesorów GPU, ile jest dostępnych w klastrze.
- Mosaic StreamingDataset: StreamingDataset zwiększa wydajność i skalowalność trenowania na dużych zestawach danych w usłudze Databricks przy użyciu funkcji, takich jak pobieranie wstępne i przeplatanie.
- MLflow: platforma Mlflow umożliwia śledzenie parametrów, metryk i punktów kontrolnych modelu.
- TorchRec: Nowoczesne systemy rekomendacji używają osadzania tabel odnośników do obsługi milionów użytkowników i elementów w celu generowania rekomendacji wysokiej jakości. Większe rozmiary osadzania zwiększają wydajność modelu, ale wymagają znacznej ilości pamięci procesora GPU i konfiguracji z wieloma procesorami GPU. TorchRec udostępnia platformę do skalowania modeli rekomendacji i tabel odnośników w wielu procesorach GPU, dzięki czemu idealnie nadaje się do dużych osadzeń.
Przykład: rekomendacje dotyczące filmów przy użyciu architektury modelu z dwoma wieżami
Model dwu-wieżowy jest przeznaczony do obsługi zadań personalizacji na dużą skalę przez oddzielne przetwarzanie danych użytkowników i elementów przed ich połączeniem. Jest w stanie efektywnie generować setki lub tysiące przyzwoitych zaleceń dotyczących jakości. Model zazwyczaj oczekuje trzech danych wejściowych: funkcja user_id, funkcja product_id i etykieta binarna określająca, czy <użytkownik, interakcja produktu> była pozytywna (użytkownik kupił produkt) czy negatywna (użytkownik dał produktowi jedną ocenę gwiazdki). Dane wyjściowe modelu są osadzane zarówno dla użytkowników, jak i elementów, które są zwykle łączone (często przy użyciu produktu kropkowego lub podobieństwa cosinusu) w celu przewidywania interakcji między elementami użytkownika.
Ponieważ model z dwiema wieżami zapewnia osadzanie zarówno dla użytkowników, jak i produktów, można umieścić te osadzanie w bazie danych wektorowej, takiej jak Magazyn wektorów usługi Databricks, i wykonywać operacje podobne do wyszukiwania podobieństwa dla użytkowników i elementów. Można na przykład umieścić wszystkie elementy w magazynie wektorów, a dla każdego użytkownika wykonać zapytanie dotyczące magazynu wektorów, aby znaleźć setki pierwszych elementów, których osadzanie jest podobne do elementów użytkownika.
Poniższy przykładowy notes implementuje trenowanie modelu z dwiema wieżami przy użyciu zestawu danych "Nauka z zestawów elementów", aby przewidzieć prawdopodobieństwo, że użytkownik oceni określony film wysoko. Używa zestawu Danych Mozaika StreamingDataset do ładowania rozproszonych danych, TorchDistributor do trenowania modelu rozproszonego i mlflow do śledzenia i rejestrowania modeli.
Notes modelu z dwoma wieżami
Ten notes jest również dostępny w witrynie Marketplace usługi Databricks: notes modelu z dwiema wieżami
Uwaga
- Dane wejściowe dla modelu z dwiema wieżami są najczęściej cechami kategorialnymi user_id i product_id. Model można zmodyfikować tak, aby obsługiwał wiele wektorów funkcji dla użytkowników i produktów.
- Dane wyjściowe modelu z dwiema wieżami są zwykle wartościami binarnymi wskazującymi, czy użytkownik będzie miał pozytywną lub negatywną interakcję z produktem. Model można modyfikować dla innych aplikacji, takich jak regresja, klasyfikacja wieloklasowa i prawdopodobieństwo wielu akcji użytkownika (na przykład odrzucanie lub kupowanie). Złożone dane wyjściowe powinny być starannie implementowane, ponieważ konkurencyjne cele mogą obniżyć jakość osadzania generowanych przez model.
Przykład: trenowanie architektury DLRM przy użyciu syntetycznego zestawu danych
DLRM to najnowocześniejsze architektury sieci neuronowej zaprojektowane specjalnie do personalizacji i systemów rekomendacji. Łączy on dane wejściowe kategorii i liczbowe w celu efektywnego modelowania interakcji elementów użytkownika i przewidywania preferencji użytkownika. DlRM zwykle oczekuje danych wejściowych, które obejmują zarówno rozrzedłe funkcje (takie jak identyfikator użytkownika, identyfikator elementu, lokalizacja geograficzna lub kategoria produktu) i gęste funkcje (takie jak wiek użytkownika lub cena elementu). Dane wyjściowe usługi DLRM są zazwyczaj przewidywaniem zaangażowania użytkowników, takimi jak stawki kliknięć lub prawdopodobieństwo zakupu.
DlRMs oferują wysoce dostosowywalną strukturę, która może obsługiwać dane na dużą skalę, dzięki czemu nadaje się do złożonych zadań rekomendacji w różnych domenach. Ponieważ jest to większy model niż architektura dwóch wież, ten model jest często używany na etapie ponownego korbowania.
Poniższy przykładowy notes tworzy model DLRM w celu przewidywania etykiet binarnych przy użyciu funkcji gęstych (liczbowych) i cech rozrzednionych (kategorialnych). Używa syntetycznego zestawu danych do trenowania modelu, zestawu danych Mosaic StreamingDataset na potrzeby ładowania rozproszonych danych, TorchDistributor na potrzeby trenowania modelu rozproszonego i uczenia maszynowego na potrzeby śledzenia i rejestrowania modeli.
Notes DLRM
Ten notes jest również dostępny w notesie Databricks Marketplace: DLRM.
Porównanie modeli dwu-wieżowych i DLRM
W tabeli przedstawiono wskazówki dotyczące wybierania modelu rekomendacji do użycia.
Typ modelu | Rozmiar zestawu danych wymagany do trenowania | Rozmiar modelu | Obsługiwane typy danych wejściowych | Obsługiwane typy danych wyjściowych | Przypadki użycia |
---|---|---|---|---|---|
Wieża dwuwężowa | Mniejszy | Mniejszy | Zazwyczaj dwie funkcje (user_id, product_id) | Głównie klasyfikacja binarna i generowanie osadzania | Generowanie setek lub tysięcy możliwych zaleceń |
DLRM | Większy | Większy | Różne cechy kategorii i gęste (user_id, płeć, geographic_location, product_id, product_category, ...) | Klasyfikacja wieloklasowa, regresja, inne | Szczegółowe pobieranie (zalecane dziesiątki bardzo istotnych elementów) |
Podsumowując, model dwóch wież najlepiej używać do generowania tysięcy zaleceń o dobrej jakości bardzo wydajnie. Przykładem mogą być rekomendacje dotyczące filmów od dostawcy. Model DLRM najlepiej używać do generowania bardzo konkretnych zaleceń na podstawie większej ilości danych. Przykładem może być sprzedawca detaliczny, który chce przedstawić klientowi mniejszą liczbę produktów, które najprawdopodobniej kupią.