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.
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.
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.