Softmax-Training

Auf der vorherigen Seite wurde erläutert, wie Sie eine Softmax-Ebene in ein tiefes neuronales Netzwerk für ein Empfehlungssystem einbinden. Auf dieser Seite werden die Trainingsdaten für dieses System näher betrachtet.

Trainingsdaten

Die Softmax-Trainingsdaten bestehen aus den Abfragefeatures \(x\) und einem Vektor von Elementen, mit denen der Nutzer interagiert hat (dargestellt als Wahrscheinlichkeitsverteilung \(p\)). Diese sind in der folgenden Abbildung blau markiert. Die Variablen des Modells sind die Gewichtungen in den verschiedenen Ebenen. Diese sind in der folgenden Abbildung als orange gekennzeichnet. Das Modell wird normalerweise mit einer beliebigen Variante des stochastischen Gradientenabstiegs trainiert.

Bild zum Training eines Softmax-neuronalen Deep-Learning-Netzwerks

Negative Stichproben

Da die Verlustfunktion zwei Wahrscheinlichkeitsvektoren\(p, \hat p(x) \in \mathbb R^n\) (Ground Truth bzw. Ausgabe des Modells) vergleicht, kann es schwierig sein, den Gradienten der Verluste (für eine einzelne Abfrage \(x\)) zu berechnen, wenn der Korpus zu groß ist. \(n\)

Sie könnten ein System so einrichten, dass Gradienten nur für die positiven Elemente (Elemente, die im Ground-Truth-Vektor aktiv sind) berechnet werden. Wenn das System jedoch nur mit positiven Paaren trainiert wird, kann es zu einem Falten des Modells kommen, wie unten erläutert.

Falzen
Bild eines Flugzeugs, das zur Hälfte gefaltet ist. Es sind drei verschiedene Quadrategruppen zu sehen, die Suchanfragen darstellen, und Kreise, die Elemente darstellen. Jede Gruppe hat eine andere Farbe und Abfragen interagieren nur mit Elementen aus derselben Gruppe. In der folgenden Abbildung wird davon ausgegangen, dass jede Farbe eine andere Kategorie von Abfragen und Elementen darstellt. Alle als Quadrat dargestellten Abfragen interagieren hauptsächlich mit den Elementen (kreisförmig dargestellt) derselben Farbe. Sieh dir beispielsweise jede Kategorie als eigene Sprache auf YouTube an. Ein typischer Nutzer interagiert hauptsächlich mit Videos in einer bestimmten Sprache.

Das Modell lernt möglicherweise, wie die Abfrage-/Elementeinbettungen einer bestimmten Farbe relativ zueinander platziert werden. Dabei werden auch Ähnlichkeiten innerhalb dieser Farbe korrekt erfasst. Einbettungen unterschiedlicher Farben können jedoch versehentlich in derselben Region des Einbettungsbereichs landen. Dieses Phänomen, das als Faltung bezeichnet wird, kann zu falschen Empfehlungen führen: Bei der Abfrage kann das Modell fälschlicherweise einen hohen Wert für ein Element aus einer anderen Gruppe vorhersagen.

Auszuschließende Beispiele sind Elemente, die für eine bestimmte Suchanfrage als „irrelevant“ gekennzeichnet sind. Wenn Sie während des Trainings negative Beispiele für das Modell anzeigen lassen, lernt das Modell, dass Einbettungen verschiedener Gruppen voneinander weg verschoben werden sollten.

Anstatt alle Elemente zum Berechnen des Farbverlaufs zu verwenden (der zu teuer sein kann) oder nur positive Elemente zu verwenden (was dazu führt, dass das Modell anfällig für Faltungen ist), können Sie negative Stichproben verwenden. Genauer gesagt berechnen Sie einen ungefähren Farbverlauf mit den folgenden Elementen:

  • Alle einzuschließenden Elemente (die im Ziellabel)
  • Beispiele für auszuschließende Elemente (\(j\) in \({1, …, n}\))

Es gibt verschiedene Strategien für negative Ergebnisse:

  • Sie können einheitliche Stichproben verwenden.
  • Sie können Elementen j mit einer höheren Wahrscheinlichkeit \(\psi(x) . V_j\)eine höhere Wahrscheinlichkeit geben. Diese Beispiele tragen am meisten zum Gradienten bei. Diese werden oft als harte negative Elemente bezeichnet.

Auf Matrixfaktorisierung vs. Softmax

DNN-Modelle lösen viele Einschränkungen der Matrixfaktorisierung, sind aber in der Regel teurer für Training und Abfrage. In der folgenden Tabelle sind einige wichtige Unterschiede zwischen den beiden Modellen zusammengefasst.

Matrix Factorization Softmax DNN
Abfragefunktionen Nicht einfach einzufügen. Kann enthalten sein.
Kaltstart Kann nicht einfach auf Anfragen oder Elemente ohne Vokabular reagieren. Einige Heuristiken können verwendet werden (z. B. für eine neue Abfrage, durchschnittliche Einbettungen ähnlicher Abfragen). Einfache Verarbeitung neuer Abfragen
Falzen Das Falten lässt sich leicht reduzieren, indem Sie das unbeobachtete Gewicht in WALS anpassen. Anfällig für Faltung. Muss Techniken wie negative Stichproben oder Schwerkraft verwenden.
Skalierbarkeit des Trainings Einfach skalierbar auf sehr große Korpora (vielleicht mehrere hundert Millionen Elemente oder mehr), jedoch nur, wenn die Eingabematrix dünnbesetzt ist. Es ist schwieriger, auf sehr große Korpora zu skalieren. Einige Verfahren wie Hashing, negative Stichproben können verwendet werden.
Skalierbarkeit der Bereitstellung Die Einbettungen U und V sind statisch und eine Reihe von Kandidaten kann im Voraus berechnet und gespeichert werden. Elementeinbettungen V sind statisch und können gespeichert werden.

Die Abfrageeinbettung muss in der Regel zum Zeitpunkt der Abfrage berechnet werden, wodurch die Bereitstellung des Modells teurer ist.

Zusammenfassung:

  • Die Matrixfaktorisierung ist in der Regel die bessere Wahl für große Korpora. Es ist einfacher zu skalieren, kostengünstiger zu abfragen und weniger anfällig für Faltung.
  • DNN-Modelle können besser personalisierte Präferenzen erfassen, sind jedoch schwieriger zu trainieren und teurer zu abfragen. DNN-Modelle sind der Matrixfaktorisierung für die Bewertung vorzuziehen, da DNN-Modelle mehr Features verwenden können, um die Relevanz besser zu erfassen. Außerdem ist es in der Regel akzeptabel, wenn DNN-Modelle gefaltet werden, da es Ihnen hauptsächlich wichtig ist, eine vorgefilterte Gruppe von Kandidaten zu bestimmen, die als relevant eingestuft werden.