Trening softmax

Na poprzedniej stronie omówiliśmy, jak włączyć warstwę softmax w aplikacji głębokiej sieć neuronowa na potrzeby systemu rekomendacji. Na tej stronie przyjrzymy się bliżej do danych treningowych tego systemu.

Dane treningowe

Dane treningowe softmax składają się z funkcji zapytania \(x\) oraz elementów, z którymi użytkownik wszedł w interakcję (reprezentowanych jako rozkład prawdopodobieństwa \(p\)). Są one oznaczone na niebiesko w na tej ilustracji. Zmiennymi modelu są wagi w różnych warstwach. Są one oznaczone jako pomarańczowe: tę funkcję. Model jest zwykle trenowany z użyciem dowolnego wariantu funkcji gradient stochastyczny.

Obraz przedstawiający trenowanie głębokiej sieci neuronowej softmax

Próbkowanie ujemne

Ponieważ funkcja straty porównuje dwa wektory prawdopodobieństwa \(p, \hat p(x) \in \mathbb R^n\) (danych podstawowych danych wyjściowych modelu), obliczając odpowiednio gradient utraty (w przypadku pojedynczego zapytania \(x\)) można zbyt kosztowne, jeśli rozmiar korpusu \(n\) jest zbyt duży.

Można skonfigurować system do obliczania gradientów tylko dla elementów dodatnich. (elementy aktywne w wektorze danych podstawowych). Jeśli jednak system tylko na parach dodatnich, model może ulegać zwijaniu, które opisujemy poniżej.

Składanie
Obraz przedstawiający złożoną na pół płaszczyznę z 3 różnymi grupami kwadratów reprezentującymi zapytania oraz okręgami reprezentującymi elementy. Każda grupa ma inny kolor, a zapytania wchodzą w interakcję tylko z elementami należącymi do tej samej grupy. Na poniższym rysunku załóżmy, że każdy kolor reprezentuje inny kolor kategorii zapytań i elementów. Każde zapytanie (reprezentowane w formacie kwadratowym) wchodzi w interakcję z elementami (reprezentowanymi jako koło) tego samego koloru. Na przykład potraktuj każdą kategorię jako inny język w YouTube. Typowy użytkownik wchodzi najczęściej w interakcje z filmami w jednym języku.

Model może nauczyć się umieszczać wektory dystrybucyjne zapytań/elementów danego obiektu (prawidłowe odzwierciedlenie podobieństwa w tym drugim zakresie) koloru), ale obiekty osadzone w różnych kolorach mogą trafiać do tego samego regionu. przez przypadek. Ten zjawisko znane jako zawijania może prowadzić do fałszywych rekomendacji: w czasie wysyłania zapytania model może niepoprawnie przewidzieć wysoki wynik dla elementu z inną grupę.

Przykłady negatywne to takie, które zostały oznaczone jako „nieodpowiednie”. na dane zapytanie. Wyświetlanie negatywnych przykładów modeli podczas trenowania uczy modelu, który wektory dystrybucyjne różnych grup powinny być od siebie odsunięte.

Zamiast używać wszystkich elementów do obliczania gradientu (który może być zbyt duży drogich) lub używanie tylko elementów pozytywnych (dzięki czemu model jest podatny na (zwijane), można użyć próbkowania ujemnego. Mówiąc dokładniej, obliczasz przybliżony gradient z użyciem tych elementów:

  • wszystkich elementów niewykluczających (tych, które pojawiają się w etykiecie kierowania);
  • Próbka produktów wykluczonych (\(j\) w \({1, …, n}\))

Istnieją różne strategie próbkowania wyników negatywnych:

  • Możesz pobierać próbkę równomiernie.
  • Możesz podać większe prawdopodobieństwo elementom j o większym prawdopodobieństwie wynik: \(\psi(x) . V_j\). Intuicyjnie pokazujemy tu które mają największy wpływ na gradient); Te przykłady są często tzw. twarde wykluczające słowa kluczowe.

Rozkład na podstawie macierzy i softmax

Modele DNN eliminują wiele ograniczeń rozkładu macierzy, ale zwykle są trenowanie i wykonywanie zapytań jest bardziej kosztowne. W tabeli poniżej znajdziesz podsumowanie niektórych z tych ważnych różnic między tymi dwoma modelami.

Rozkładanie macierzy Softmax – DNN
Funkcje zapytań Trudno je dodać. Można uwzględniać.
Uruchomienie zimnego startu Nie radzi sobie z łatwością słów zapytań ani elementów. Niektóre dane heurystyczne mogą być stosowane (na przykład do nowe zapytanie czy średnie wektory dystrybucyjne podobnych zapytań). Łatwo obsługuje nowe zapytania.
Składanie Łatwo zmniejszać składanie przez skorygowanie nieodnotowanej wagi w WALS. Podatność na złożenie. Konieczność użycia takich jak próbkowanie ujemne czy grawitacja.
Skalowalność trenowania Łatwa skalowalność do bardzo dużych korpusów (być może setek milionów lub więcej elementów), ale tylko wtedy, gdy macierz wejściowa jest rozproszona. Trudne do skalowania do bardzo dużego korpusy. Można zastosować niektóre techniki, takie jak haszowanie, próbkowanie negatywne itd.
Skalowalność obsługi Wektory dystrybucyjne U i V są statyczne, a zbiór kandydatów może być wstępnie obliczony i przechowywany. Wektory dystrybucyjne produktów V są statyczne i można je przechowywać.

Umieszczanie zapytań zwykle musi być obliczona w czasie wykonywania zapytania, przez co model jest droższy serwować.

W skrócie:

  • W przypadku dużych korpusów lepszym wyborem jest zwykle rozkład macierzy. Jest łatwiejszy do skalowania, mniej podatne na zwijanie, a zapytania są tańsze.
  • Modele DNN mogą lepiej rejestrować spersonalizowane preferencje, ale jest trudniejsze do trenowania i droższe. Modele DNN są preferowane na podstawie rozkładu na czynniki pierwsze, ponieważ modele DNN mogą używać więcej funkcji, aby lepiej uchwycić trafność. Poza tym zwykle dopuszczamy składanie modeli DNN, ponieważ chodzi przede wszystkim o w rankingu wyników ze wstępnie przefiltrowanym zestawem kandydatów, które zostały uznane za istotne.