W poprzedniej sekcji pokazaliśmy, jak za pomocą rozkładu macierzystego wektorów dystrybucyjnych. Niektóre ograniczenia rozkładu macierzystego na czynniki są następujące:
- Trudność w korzystaniu z funkcji pobocznych (czyli funkcji spoza domeny identyfikator zapytania lub identyfikator produktu). W związku z tym zapytania do modelu można wysyłać tylko przy użyciu użytkownika lub elementu w zbiorze treningowym.
- Trafność rekomendacji. Tak jak w pierwszym z nich Colab Popularne produkty są zwykle polecane wszystkim, zwłaszcza gdy używasz iloczyn skalarny jako miara podobieństwa. Lepiej rejestrować konkretne zainteresowań użytkowników.
Modele głębokiej sieci neuronowej (DNN) mogą poradzić sobie z tymi ograniczeniami macierzy na czynniki pierwsze. Sieci DNN mogą łatwo uwzględniać funkcje zapytań i elementy (ze względu na elastyczność warstwy wejściowej sieci), co może pomóc Uwzględniają konkretne zainteresowania użytkownika i zwiększają trafność o zaleceniach.
Softmax DNN na potrzeby rekomendacji
Jednym z możliwych modeli DNN jest softmax, który traktuje problem jako wieloklasowy problem prognostyczny, w którym:
- Dane wejściowe to zapytanie użytkownika.
- Wynikiem jest wektor prawdopodobieństwa o rozmiarze równym liczbie elementy w korpusie, reprezentujące prawdopodobieństwo interakcji z nim każdy element; np. prawdopodobieństwo kliknięcia lub obejrzenia Film w YouTube.
Dane wejściowe
Dane wejściowe nazwy DNN mogą obejmować:
- szczegółowe funkcje (np. czas oglądania i czas od ostatniego oglądania).
- rozproszone funkcje (na przykład historia oglądania i kraj),
W odróżnieniu od metody podziału na czynniki w postaci macierzy możesz dodać funkcje uboczne, takie jak wieku lub kraju. Wektor wejściowy zostanie oznaczony przez x.
Architektura modelu
Architektura modelu określa jego złożoność i ekspresję. Dodając ukryte warstwy i nieliniowe funkcje aktywacji (np. ReLU), model może wychwytywać w danych bardziej złożone relacje. Pamiętaj jednak: Zwiększenie liczby parametrów zwykle utrudnia też modelowi i droższe rozwiązanie. Będziemy opisywać dane wyjściowe z ostatniego ukrytego o .
Dane wyjściowe Softmax: przewidywany rozkład prawdopodobieństwa
Model mapuje dane wyjściowe ostatniej warstwy ( ), za pomocą funkcji softmax do rozkładu prawdopodobieństwa , gdzie:
- to funkcja softmax, podane przez:
- to macierz wag warstwa softmax.
Warstwa softmax mapuje wektor wyników (Czasem nazwa logits) do rozkładu prawdopodobieństwa.
Funkcja utraty
Na koniec zdefiniuj funkcję straty, która porównuje te wartości:
- : dane wyjściowe warstwy softmax (rozkład prawdopodobieństwa)
- , dane podstawowe (ground truth), które reprezentują elementy posiadane przez użytkownika z którymi wchodził w interakcję (np. filmy w YouTube, które użytkownik kliknął lub obejrzał). Można to przedstawić znormalizowanym rozkładem kilku par gorących ( wektor prawdopodobieństwa).
Możesz np. użyć straty entropii krzyżowej, ponieważ porównujesz dwóch rozkładów prawdopodobieństwa.
Osadzanie Softmax
Prawdopodobieństwo elementu jest określone przez , gdzie jest stałą normalizacją, która nie zależy od .
Innymi słowy, , więc log prawdopodobieństwa elementu wynosi (do stałej sumy) iloczyn skalarny dwu wymiarowych wektorów, które można interpretować jako wektory dystrybucyjne zapytań i elementów:
- to dane wyjściowe ostatniej ukrytej warstwy. Nazywamy to umieszczeniem zapytania .
- to wektor wag łączący ostatnią ukrytą warstwę z danymi wyjściowymi j. Nazywamy to umieszczaniem elementu .
DNN i rozkładanie macierzy
Zarówno w modelu softmax, jak i matrycznym modelu rozkładu na czynniki system uczy się jednego wektora dystrybucyjnego za element . macierz wektora dystrybucyjnego elementu w macierzy rozłożenie na czynniki jest teraz macierzą wag warstwy softmax.
Wektory dystrybucyjne zapytań są jednak inne. Zamiast uczyć się po jednym umieszczaniu na zapytanie , system uczy się mapowania z funkcji zapytań do wektora dystrybucyjnego . Można więc traktować ten model DNN jako uogólnienie macierzy w postaci rozkładu na czynniki, w którym strona zapytania jest zastępowana funkcja .
Czy można korzystać z funkcji produktu?
Czy możesz zastosować ten sam pomysł do produktu? Zamiast uczyć się jednego wektora dystrybucyjnego na element, czy model może nauczyć się funkcji nieliniowej, która mapuje funkcji elementu w umieszczaniu? Tak. Aby to zrobić, użyj 2 wieży Sieć neuronowa, która składa się z 2 sieci neuronowych:
- Funkcje zapytań dotyczące mapy jednej sieci neuronowej aby wysłać zapytanie do umieszczenia
- Jedna sieć neuronowa mapuje cechy elementu do umieszczenia elementu
Dane wyjściowe modelu można zdefiniować jako iloczyn skalarny Pamiętaj, że nie jest to już model softmax. Nowy model przewiduje, jedna wartość na parę zamiast wektora prawdopodobieństwa dla każdego zapytania.