Softmax-Training

Auf der vorherigen Seite wurde erläutert, wie Sie einen Softmax-Layer in eine Deep-Learning- für ein Empfehlungssystem. Auf dieser Seite wird die Trainingsdaten für dieses System.

Trainingsdaten

Die Softmax-Trainingsdaten bestehen aus den Abfragefeatures \(x\) und Ein Vektor von Elementen, mit denen der Nutzer interagiert hat (dargestellt als Wahrscheinlichkeitsverteilung \(p\)). Diese sind blau markiert in wie in der folgenden Abbildung dargestellt. Die Variablen des Modells sind die Gewichtungen, in den verschiedenen Schichten. Diese sind im Folgenden als orange gekennzeichnet. dargestellt wird. Das Modell wird in der Regel mit einer beliebigen Variante von Gradientenabstieg.

Bild, das das Training eines neuronalen Deep-Learning-Netzwerks von Softmax zeigt

Negative Stichproben

Da die Verlustfunktion zwei Wahrscheinlichkeitsvektoren vergleicht, \(p, \hat p(x) \in \mathbb R^n\) (die Grundwahrheit und bzw. die Ausgabe des Modells) Der Gradient des Verlusts (für eine einzelne Abfrage \(x\)) kann unerschwinglich, wenn der Korpus \(n\) zu groß ist.

Sie könnten ein System einrichten, das Gradienten nur für die positiven Elemente berechnet (Elemente, die im Ground-Truth-Vektor aktiv sind). Wenn das System nur mit positiven Paaren trainiert, kann das Modell falten, wie unten beschrieben.

Falzen
Bild eines Flugzeugs, das in der Mitte zusammengefaltet wurde, mit drei verschiedenen Gruppen von Quadraten, die Abfragen darstellen, und Kreisen, die Objekte darstellen. Jede Gruppe hat eine andere Farbe und Abfragen interagieren nur mit Elementen aus derselben Gruppe. Nehmen wir in der folgenden Abbildung an, dass jede Farbe einen anderen Kategorie von Abfragen und Elementen. Nur jede Suchanfrage (als Quadrat dargestellt) interagiert meist mit den Elementen (dargestellt als Kreis) derselben Farbe. Beispielsweise können Sie sich jede Kategorie auf YouTube als unterschiedliche Sprachen ansehen. Ein typischer Nutzer interagiert meist mit Videos in einer bestimmten Sprache.

Das Modell lernt möglicherweise, wie die Abfrage-/Elementeinbettungen in Relation zueinander zu setzen (die Ähnlichkeit innerhalb dieses Elements wird korrekt erfasst) Farbe). Einbettungen unterschiedlicher Farben können jedoch in dieselbe Region geleitet werden. des Einbettungsbereichs zufällig ausgewählt. Dieses bekannte Phänomen wie Falten, kann zu falschen Empfehlungen führen: Bei der Abfrage kann das Modell fälschlicherweise eine hohe Punktzahl für ein Element in einer anderen Gruppe.

Negative Beispiele sind Elemente, die als „irrelevant“ gekennzeichnet sind. auf eine bestimmte Abfrage anwenden. Wenn Sie während des Trainings negative Beispiele für das Modell zeigen, lernt das Modell, Einbettungen verschiedener Gruppen sollten voneinander weggeschoben werden.

Anstatt alle Elemente zur Berechnung des Farbverlaufs zu verwenden (was auch teuer) oder nur positive Elemente zu verwenden (was das Modell anfällig für Faltung), können Sie negative Stichproben verwenden. Genauer gesagt, berechnen Sie des ungefähren Farbverlaufs. Dabei werden die folgenden Elemente verwendet:

  • Alle positiven Elemente (die im Ziellabel enthalten sind)
  • Eine Stichprobe mit auszuschließenden Elementen (\(j\) in \({1, …, n}\))

Es gibt verschiedene Strategien für die Stichprobenerhebung für ausschließende Keywords:

  • Sie können eine einheitliche Stichprobe verwenden.
  • Du kannst die Wahrscheinlichkeit für Elemente j mit Faktor \(\psi(x) . V_j\). Das sind intuitiv Beispiele, die am meisten zum Farbverlauf beitragen); sind diese Beispiele oft sogenannte "harte Negative".

Vergleich der Matrixfaktorisierung und Softmax

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

Matrix Factorization Softmax-DNN
Abfragefunktionen Die Aufnahme ist nicht einfach. Kann eingeschlossen werden.
Kaltstart Bewältigung von Begriffen, die nicht im Vokabular Abfragen oder Elemente. Einige Heuristiken können verwendet werden (z. B. für eine neue Abfrage, Durchschnittseinbettungen ähnlicher Suchanfragen). Neue Anfragen lassen sich ganz einfach verarbeiten.
Falzen Das Aufklappen kann leicht reduziert werden indem wir die unbeobachtete Gewichtung in WALS anpassen. Anfällig für faltbares Smartphone. Verwendung erforderlich negative Probenahme oder die Schwerkraft.
Skalierbarkeit des Trainings Einfach skalierbar bis sehr groß Korpora (vielleicht mehrere Hundert Millionen Elemente oder mehr), aber nur, wenn der ist die Eingabematrix dünnbesetzt. Schwere Skalierung auf sehr große Größen Korpora. Einige Techniken, wie z. B. das Hashing, negative Stichprobenerhebung usw.
Skalierbarkeit der Bereitstellung Die Einbettungen U, V sind statisch, und eine Reihe von Kandidaten kann im Voraus berechnet und gespeichert werden. Elementeinbettungen V sind statisch und gespeichert werden können.

Die Abfrageeinbettung muss zum Zeitpunkt der Abfrage berechnet werden, wodurch das Modell bereitstellen.

Zusammenfassung:

  • Die Matrixfaktorisierung ist normalerweise die bessere Wahl für große Korpora. Sie ist einfacher zu skalieren, kostengünstiger in der Abfrage und weniger anfällig für Faltung.
  • DNN-Modelle können personalisierte Präferenzen besser erfassen, sind aber schwieriger zu trainieren und teurer Abfragen zu erstellen. DNN-Modelle sind zu bevorzugen. Matrixfaktorisierung für die Bewertung, da DNN-Modelle mehr Funktionen, um die Relevanz besser zu erfassen. Außerdem ist es normalerweise DNN-Modelle können zusammengefügt werden, da Ihnen eine Reihe von vorgefilterten Kandidaten einsortiert, die vermutlich als relevant eingestuft werden.