Modele głębokich sieci neuronowych

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.

Obraz wyróżniający warstwę wejściową w głębokiej sieci neuronowej softmax
Rysunek 1. Warstwa wejściowa 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 ψ(x)Rd.

Obraz wyróżniający ukryte warstwy w głębokiej sieci neuronowej softmax
Rys. 2. Dane wyjściowe ukrytych warstw, ψ(x).

Dane wyjściowe Softmax: przewidywany rozkład prawdopodobieństwa

Model mapuje dane wyjściowe ostatniej warstwy ( ψ(x)), za pomocą funkcji softmax do rozkładu prawdopodobieństwa p^=h(ψ(x)VT), gdzie:

  • h:RnRn to funkcja softmax, podane przez: h(y)i=eyijeyj
  • VRn×d to macierz wag warstwa softmax.

Warstwa softmax mapuje wektor wyników yRn (Czasem nazwa logits) do rozkładu prawdopodobieństwa.

Obraz przedstawiający przewidywany rozkład prawdopodobieństwa w głębokiej sieci neuronowej softmax
Rysunek 3. Prognozowany rozkład prawdopodobieństwa: p^=h(ψ(x)VT).

Funkcja utraty

Na koniec zdefiniuj funkcję straty, która porównuje te wartości:

  • p^: dane wyjściowe warstwy softmax (rozkład prawdopodobieństwa)
  • p, 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.

Obraz przedstawiający funkcję utraty w głębokiej sieci neuronowej softmax
Rysunek 4. Funkcja straty.

Osadzanie Softmax

Prawdopodobieństwo elementu j jest określone przez p^j=exp(ψ(x),Vj)Z, gdzie Z jest stałą normalizacją, która nie zależy od j.

Innymi słowy, log(p^j)=ψ(x),Vjlog(Z), więc log prawdopodobieństwa elementu j wynosi (do stałej sumy) iloczyn skalarny dwu dwymiarowych wektorów, które można interpretować jako wektory dystrybucyjne zapytań i elementów:

  • ψ(x)Rd to dane wyjściowe ostatniej ukrytej warstwy. Nazywamy to umieszczeniem zapytania x.
  • VjRd to wektor wag łączący ostatnią ukrytą warstwę z danymi wyjściowymi j. Nazywamy to umieszczaniem elementu j.
Obraz przedstawiający wektory dystrybucyjne w głębokiej sieci neuronowej softmax
Rysunek 5. Umieszczanie elementu j, VjRd

DNN i rozkładanie macierzy

Zarówno w modelu softmax, jak i matrycznym modelu rozkładu na czynniki system uczy się jednego wektora dystrybucyjnego Vj za element j. macierz wektora dystrybucyjnego elementu VRn×d w macierzy rozłożenie na czynniki jest teraz macierzą wag warstwy softmax.

Wektory dystrybucyjne zapytań są jednak inne. Zamiast uczyć się po jednym Ui umieszczaniu na zapytanie i, system uczy się mapowania z funkcji zapytań x do wektora dystrybucyjnego ψ(x)Rd. 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 xquery aby wysłać zapytanie do umieszczenia ψ(xquery)Rd
  • Jedna sieć neuronowa mapuje cechy elementu xitem do umieszczenia elementu ϕ(xitem)Rd

Dane wyjściowe modelu można zdefiniować jako iloczyn skalarny ψ(xquery),ϕ(xitem) Pamiętaj, że nie jest to już model softmax. Nowy model przewiduje, jedna wartość na parę (xquery,xitem) zamiast wektora prawdopodobieństwa dla każdego zapytania. xquery