Trenowanie szerokiego i głębokiego modułu polecającego

W tym artykule opisano sposób używania składnika Train Wide & Deep Recommender w projektancie usługi Azure Machine Edukacja do trenowania modelu rekomendacji. Ten składnik jest oparty na uczeniu szerokim i głębokim, który jest proponowany przez firmę Google.

Składnik Train Wide & Deep Recommender odczytuje zestaw danych potrójnych ocen elementów użytkownika i, opcjonalnie, niektóre funkcje użytkownika i elementu. Zwraca wytrenowany moduł rekomendacji Wide &Deep. Następnie możesz użyć wytrenowanego modelu do generowania przewidywań klasyfikacji lub zaleceń przy użyciu składnika Score Wide and Deep Recommender .

Więcej informacji o modelach rekomendacji i rekomendatorze szeroki i głęboki

Głównym celem systemu rekomendacji jest zalecenie co najmniej jednego elementu użytkownikom systemu. Przykładem elementu może być film, restauracja, książka lub piosenka. Użytkownik może być osobą, grupą osób lub inną jednostką z preferencjami elementów.

Istnieją dwa główne podejścia do systemów rekomendacji.

  • Po pierwsze jest oparte na zawartości podejście, które korzysta z funkcji zarówno dla użytkowników, jak i elementów. Użytkownicy mogą być opisywani przez właściwości, takie jak wiek i płeć, a elementy mogą być opisywane przez właściwości, takie jak autor i producent. Typowe przykłady systemów rekomendacji opartych na zawartości można znaleźć w witrynach do dopasowywania społecznościowego.
  • Drugie podejście to filtrowanie współpracy, które używa tylko identyfikatorów użytkowników i elementów oraz uzyskuje niejawne informacje o tych jednostkach z macierzy ocen (rozrzednych) podanych przez użytkowników do elementów. Możemy dowiedzieć się więcej o użytkowniku z elementów, które ocenili, oraz od innych użytkowników, którzy ocenili te same elementy.

Szeroki i głęboki moduł polecający łączy te podejścia przy użyciu wspólnego filtrowania przy użyciu podejścia opartego na zawartości. W związku z tym jest uważany za hybrydowy moduł polecający.

Jak to działa: gdy użytkownik jest stosunkowo nowy w systemie, przewidywania są ulepszane dzięki wykorzystaniu informacji o funkcji o użytkowniku, w związku z czym dotyczą dobrze znanego problemu "zimnego startu". Jednak po zebraniu wystarczającej liczby ocen od określonego użytkownika można utworzyć dla nich w pełni spersonalizowane przewidywania na podstawie określonych ocen, a nie tylko na ich funkcjach. W związku z tym istnieje płynne przejście od rekomendacji opartych na zawartości do zaleceń opartych na współpracy. Nawet jeśli funkcje użytkownika lub elementu nie są dostępne, moduł polecający szeroki i głęboki nadal będzie działać w trybie wspólnego filtrowania.

Więcej szczegółów na temat szerokiego i głębokiego modułu polecającego oraz podstawowego algorytmu probabilistycznego można znaleźć w odpowiednim dokumencie badawczym: Wide & Deep Edukacja for Recommender Systems.

Jak skonfigurować moduł trenowania szerokiego i głębokiego polecania

Przygotowywanie danych

Przed podjęciem próby użycia składnika upewnij się, że dane są w oczekiwanym formacie modelu rekomendacji. Wymagany jest zestaw danych szkoleniowych potrójnych ocen elementów użytkownika, ale można również uwzględnić funkcje użytkownika i funkcje elementów (jeśli są dostępne) w oddzielnych zestawach danych.

Wymagany zestaw danych klasyfikacji elementów użytkownika

Dane wejściowe używane do trenowania muszą zawierać odpowiedni typ danych w poprawnym formacie:

  • Pierwsza kolumna musi zawierać identyfikatory użytkowników.
  • Druga kolumna musi zawierać identyfikatory elementów.
  • Trzecia kolumna zawiera klasyfikację pary user-item. Wartości klasyfikacji muszą być typem liczbowym.

Na przykład typowy zestaw klasyfikacji elementów użytkownika może wyglądać następująco:

Identyfikator użytkownika Identyfikator filmu Rating
1 68646 10
223 31381 10

Zestaw danych funkcji użytkownika (opcjonalnie)

Zestaw danych funkcji użytkownika musi zawierać identyfikatory dla użytkowników i używać tych samych identyfikatorów, które zostały podane w pierwszej kolumnie zestawu danych users-items-ratings. Pozostałe kolumny mogą zawierać dowolną liczbę funkcji opisujących użytkowników.

Na przykład typowy zestaw funkcji użytkownika może wyglądać następująco:

Identyfikator użytkownika Wiek Płeć Zainteresowania Lokalizacja
1 25 mężczyzna Dramat Europa
223 40 kobieta Romans Azja

Zestaw danych funkcji elementów (opcjonalnie)

Zestaw danych funkcji elementu musi zawierać identyfikatory elementów w pierwszej kolumnie. Pozostałe kolumny mogą zawierać dowolną liczbę cech opisowych dla elementów.

Na przykład typowy zestaw funkcji elementów może wyglądać następująco:

Identyfikator filmu Tytuł Oryginalny język Gatunków Year
68646 Ojciec chrzestny angielski Dramat 1972
31381 Gone with the Wind angielski Historia 1939

Szkolenie modelu

  1. Dodaj składnik Train Wide and Deep Recommender do eksperymentu w projektancie i połącz go z zestawem danych trenowania.

  2. Jeśli masz oddzielny zestaw danych funkcji użytkownika i/lub funkcji elementów, połącz je ze składnikiem Train Wide and Deep Recommender .

    • Zestaw danych funkcji użytkownika: Połączenie zestaw danych, który opisuje użytkowników do drugiego danych wejściowych.
    • Zestaw danych funkcji elementów: Połączenie zestaw danych opisujący elementy trzeciej wprowadzania danych.
  3. Epoka: wskazuje, ile razy algorytm powinien przetwarzać całe dane szkoleniowe.

    Im większa liczba ta, tym bardziej odpowiednia jest szkolenia; jednak trenowanie kosztuje więcej czasu i może spowodować nadmierne dopasowanie.

  4. Rozmiar partii: wpisz liczbę przykładów szkoleniowych używanych w jednym kroku trenowania.

    Ten hiperparametr może wpływać na szybkość trenowania. Większy rozmiar partii prowadzi do mniejszego kosztu czasu epoki, ale może zwiększyć czas zbieżności. Jeśli wsadowa jest zbyt duża, aby zmieścić procesor GPU/procesor CPU, może zostać zgłoszony błąd pamięci.

  5. Optymalizator szerokiej części: wybierz jeden optymalizator, aby zastosować gradienty do szerokiej części modelu.

  6. Szeroki współczynnik uczenia optymalizatora: wprowadź liczbę z zakresu od 0,0 do 2,0, która definiuje szybkość uczenia szerokiego optymalizatora części.

    Ten hiperparametr określa rozmiar kroku w każdym kroku trenowania podczas przechodzenia w kierunku minimalnej funkcji utraty. Duży współczynnik uczenia może spowodować przeskok nauki na minimę, podczas gdy zbyt mały współczynnik uczenia może spowodować problem zbieżności.

  7. Wymiar funkcji krzyżowej: wpisz wymiar, wprowadzając odpowiednie identyfikatory użytkownika i funkcje identyfikatora elementu.

    Narzędzie do obsługi szerokiej i głębokiej domyślnie wykonuje transformację między produktami za pośrednictwem funkcji identyfikatora użytkownika i identyfikatora elementu. Wynik krzyżowy zostanie skrócony zgodnie z tą liczbą, aby zapewnić wymiar.

  8. Optymalizator głębokiej części: wybierz jeden optymalizator, aby zastosować gradienty do głębokiej części modelu.

  9. Szybkość uczenia głębokiego optymalizatora: wprowadź liczbę z zakresu od 0,0 do 2,0, która definiuje szybkość uczenia się optymalizatora części głębokiej.

  10. Wymiar osadzania użytkownika: wpisz liczbę całkowitą, aby określić wymiar osadzania identyfikatora użytkownika.

    Narzędzie zalecające szerokie i głębokie tworzy osadzanie identyfikatora użytkownika udostępnionego i osadzania identyfikatora elementu zarówno dla szerokiej części, jak i głębokiej.

  11. Wymiar osadzania elementu: wpisz liczbę całkowitą, aby określić wymiar osadzania identyfikatora elementu.

  12. Wymiar osadzania funkcji kategorii: wprowadź liczbę całkowitą, aby określić wymiary osadzania funkcji kategorii.

    W głębokim składniku modułu polecającego szeroki i głęboki wektor osadzania jest nauczony dla każdej funkcji kategorii. Te wektory osadzania mają ten sam wymiar.

  13. Ukryte jednostki: wpisz liczbę ukrytych węzłów składnika głębokiego. Liczba węzłów w każdej warstwie jest oddzielona przecinkami. Na przykład według typu "1000,500,100" należy określić składnik głęboki ma trzy warstwy, a pierwsza warstwa do ostatniego ma odpowiednio 1000 węzłów, 500 węzłów i 100 węzłów.

  14. Funkcja aktywacji: wybierz jedną funkcję aktywacji zastosowaną do każdej warstwy. Wartość domyślna to ReLU.

  15. Dropout: wprowadź liczbę z zakresu od 0.0 do 1.0, aby określić prawdopodobieństwo, że dane wyjściowe zostaną porzucone w każdej warstwie podczas trenowania.

    Dropout to metoda uregulowania, która zapobiega nadmiernemu dopasowaniu sieci neuronowych. Jedną z typowych decyzji dla tej wartości jest rozpoczęcie od 0,5, co wydaje się być zbliżone do optymalnego dla szerokiego zakresu sieci i zadań.

  16. Normalizacja wsadowa: wybierz tę opcję, aby użyć normalizacji wsadowej po każdej ukrytej warstwie w składniku głębokim.

    Normalizacja wsadowa to technika walki z wewnętrznym problemem zmiany zmiany podczas trenowania sieci. Ogólnie rzecz biorąc, może pomóc zwiększyć szybkość, wydajność i stabilność sieci.

  17. Uruchom potok.

Uwagi techniczne

Wide & Deep wspólnie trenuje szerokie modele liniowe i głębokie sieci neuronowe, aby połączyć mocne strony zapamiętywania i uogólniania. Szeroki składnik akceptuje zestaw nieprzetworzonych funkcji i przekształceń funkcji w celu zapamiętywania interakcji z funkcjami. A dzięki mniej inżynierii cech składnik głęboki uogólnia kombinacje funkcji za pomocą funkcji o niskiej gęstości osadzanych.

W implementacji modułu rekomendacji Wide &Deep składnik używa domyślnej struktury modelu. Szeroki składnik pobiera osadzanie użytkowników, osadzanie elementów oraz transformację między produktami identyfikatorów użytkowników i identyfikatorów elementów jako danych wejściowych. W przypadku głębokiej części modelu wektor osadzania jest nauczony dla każdej funkcji podzielonej na kategorie. Wraz z innymi wektorami cech liczbowych te wektory są następnie przekazywane do sieci neuronowej głębokiego przekazywania dalej. Szeroka i głęboka część są łączone przez sumowanie ich końcowych szans dziennika danych wyjściowych jako przewidywania, która ostatecznie idzie do jednej wspólnej funkcji straty na wspólne szkolenie.

Następne kroki

Zobacz zestaw składników dostępnych w usłudze Azure Machine Edukacja.