Modele głębokich sieci neuronowych

Z poprzedniej sekcji dowiesz się, jak korzystać z uwierzytelniania matrycowego, aby poznać umieszczanie. Niektóre ograniczenia czynności matrycy:

  • Trudność użycia funkcji dodatkowych (czyli funkcji innych niż identyfikator zapytania lub identyfikator produktu). W związku z tym do modelu mogą być wysyłane zapytania tylko o użytkownika lub element w zestawie treningowym.
  • Trafność rekomendacji. Jak widać w pierwszym Colab, popularne produkty są zwykle zalecane dla wszystkich, szczególnie w przypadku używania produktu z kropkami jako wskaźnika podobieństwa. Lepiej lepiej przechwycić zainteresowania użytkowników.

Modele głębokich sieci neuronowych (DNN) mogą rozwiązać te problemy z czynnikiem matrycowym. Nazwa wyróżniająca może z łatwością uwzględniać funkcje zapytania i elementy produktu (ze względu na elastyczność warstwy wejściowej sieci), która może pomóc w określeniu zainteresowań użytkowników i zwiększeniu trafności rekomendacji.

Softmax DNN dla rekomendacji

Jedną z możliwych modeli DNN jest softmax, który traktuje problem jako wieloklasowy problem prognozowania, w którym:

  • Dane wejściowe to zapytanie użytkownika.
  • Danymi wyjściowymi jest wektor prawdopodobieństwa, którego rozmiar jest równy liczbie elementów w korpusie; reprezentuje prawdopodobieństwo interakcji z każdym elementem, na przykład prawdopodobieństwo kliknięcia lub obejrzenia filmu w YouTube.

Dane wejściowe

Dane wejściowe numeru DNN mogą obejmować:

  • gęste funkcje (np. czas oglądania i czas od ostatniego oglądania),
  • podstawowe funkcje (np. historia oglądania i kraj);

W przeciwieństwie do metody uwierzytelniania przez macierę możesz dodać cechy zależne, takie jak wiek lub kraj. Wektorowe dane wejściowe będą określane przez x.

Obraz przedstawiający warstwę wejściową w głębokiej sieci neuronowej softmax
Rysunek 1. Warstwa wejściowa, x.

Architektura modelu

Architektura modelu określa złożoność i ekspresję modelu. Dodając ukryte warstwy i funkcje aktywacji nielinearne (na przykład ReLU), model może rejestrować bardziej złożone relacje w danych. Zwiększenie liczby parametrów zwykle powoduje też, że model jest trudniejszy do trenowania i droższy. Dane wyjściowe ostatniej ukrytej warstwy oznaczymy jako \(\psi (x) \in \mathbb R^d\).

Obraz przedstawiający ukryte warstwy w głębokiej sieci neuronowej softmax
Rysunek 2. Dane wyjściowe ukrytych warstw \(\psi (x)\).

Dane wyjściowe Softmax: przewidywane prawdopodobieństwo

Model mapuje dane wyjściowe ostatniej warstwy ( \(\psi (x)\)) za pomocą warstwy miękkiej do rozkładu prawdopodobieństwa \(\hat p = h(\psi(x) V^T)\), gdzie:

  • \(h : \mathbb R^n \to \mathbb R^n\) to funkcja softmax podana przez \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
  • \(V \in \mathbb R^{n \times d}\) to macierz wag warstwy miękkiej.

Warstwa softmax mapuje wektor wirtualny wyników \(y \in \mathbb R^n\) (czasami nazywany jest logiką) rozkładem prawdopodobieństwa.

Obraz przedstawiający przewidywany rozkład prawdopodobieństwa w miękkiej neuronowej sieci neuronowej
Rysunek 3. Przewidywany rozkład prawdopodobieństwa: \(\hat p = h(\psi(x) V^T)\).

Funkcja utraty

Na koniec zdefiniuj funkcję utraty, która porównuje te elementy:

  • \(\hat p\), dane wyjściowe warstwy miękkiej (dystrybucja prawdopodobieństwa)
  • \(p\), czyli prawdziwa informacja dotycząca elementów, z którymi użytkownik wchodził w interakcje (np. w filmach w YouTube, które użytkownik klikał lub oglądał). Może to być znormalizowany rozkład wielopunktowy (wektor prawdopodobieństwa).

Możesz na przykład wykorzystać utratę entropiczną, ponieważ porównujesz dwa rozkłady prawdopodobieństwa.

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

Umieszczanie na SoftMax

Prawdopodobieństwo elementu \(j\) jest podane przez \(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), gdzie \(Z\) jest stałą normalną, która nie zależy od \(j\).

Innymi słowy, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\)logowanie prawdopodobieństwa elementu \(j\) jest (do stałej wartości) iloczynem punktowym dwuwymiarowych wektorów \(d\), który może być zinterpretowany jako umiejscowienie zapytania i elementu:

  • \(\psi(x) \in \mathbb R^d\) to dane wyjściowe ostatniej ukrytej warstwy. Nazywamy to umieszczeniem zapytania \(x\).
  • \(V_j \in \mathbb R^d\) to wektory wagowe łączące ostatnią ukrytą warstwę z danymi wyjściowymi j. Nazywamy to umieszczeniem elementu \(j\).
Obraz przedstawiający osadzenia w miękkiej neuronowej sieci neuronowej
Rysunek 5. Umieszczanie elementu \(j\), \(V_j \in \mathbb R^d\)

DNN i uwierzytelnianie matrycowe

Zarówno model softmax, jak i model współczynnika matrycy, system uczy się jednego wektora\(V_j\) na element \(j\). Nazywamy matrycą osadzania elementów \(V \in \mathbb R^{n \times d}\) w matrycy macierze teraz funkcję zestawów wag warstwy softmax.

Umieszczanie zapytań jest jednak inne. Zamiast uczyć się 1 umieszczania \(U_i\) na podstawie zapytania \(i\), system uczy się mapować funkcję z zapytań \(x\) na umieszczenie na stronie \(\psi(x) \in \mathbb R^d\). Można więc traktować ten model DNN jako uogólnienie równania matrycowego, w którym używa się do tego funkcji nielinearnej \(\psi(\cdot)\).

Czy możesz korzystać z funkcji produktu?

Czy możesz zastosować ten sam pomysł do elementu? To znaczy, że zamiast uczyć się jednego elementu na podstawie obiektu, czy model może poznać funkcję nielinearną, która mapuje cechy elementu na umieszczanie? Tak. Aby to zrobić, użyj sieci neuronowej z 2 wieżami, która składa się z 2 sieci neuronowych:

  • Jedna sieć neuronowa mapuje funkcje zapytań \(x_{\text{query}}\) na zapytania o umieszczenie na stronie \(\psi(x_{\text{query}}) \in \mathbb R^d\)
  • Jedna sieć neuronowa mapuje funkcje elementu \(x_{\text{item}}\) na umieszczenie elementu \(\phi(x_{\text{item}}) \in \mathbb R^d\)

Dane wyjściowe modelu można zdefiniować jako produkt z kropkami\(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Pamiętaj, że nie jest to już model softmax. Nowy model przewiduje jedną wartość na parę \((x_{\text{query}}, x_{\text{item}})\)zamiast wektora prawdopodobieństwa dla każdego zapytania \(x_{\text{query}}\).