Im vorherigen Abschnitt wurde gezeigt, wie Sie mithilfe der Matrixfaktorisierung Einbettungen lernen. Einige Einschränkungen der Matrixfaktorisierung sind:
- Die Schwierigkeit bei der Verwendung von Nebenfunktionen (d. h. allen Funktionen, die über Abfrage-ID/Artikel-ID). Daher kann das Modell nur mit ein Nutzer oder ein Element aus dem Trainings-Dataset.
- Relevanz der Empfehlungen. Wie Sie im ersten Video gesehen haben, Colab beliebte Artikel in der Regel für alle empfohlen werden, insbesondere wenn sie Punktprodukt als Ähnlichkeitsmaß an. Es ist besser, spezifische die Interessen der Nutzer.
DNN-Modelle (Deep Neural Network) können diese Einschränkungen von Matrixstrukturen Faktorisierung. DNNs können einfach Abfrage- und Elementfunktionen integrieren (aufgrund der Flexibilität der Eingabeschicht des Netzwerks), die spezifischen Interessen der Nutzenden zu erfassen und die Relevanz der Empfehlungen.
Softmax-DNN für Empfehlung
Ein mögliches DNN-Modell ist Softmax, behandelt, was das Problem als ein Vorhersageproblem mit mehreren Klassen behandelt, bei dem:
- Die Eingabe ist die Nutzeranfrage.
- Die Ausgabe ist ein Wahrscheinlichkeitsvektor mit einer Größe, die der Anzahl der Elemente im Korpus, die die Wahrscheinlichkeit darstellen, mit der für jeden Artikel zum Beispiel die Wahrscheinlichkeit, dass Nutzer YouTube-Video.
Eingabe
Die Eingabe in ein DNN kann Folgendes umfassen:
- Dichte Funktionen (z. B. Wiedergabezeit und Zeit seit der letzten Wiedergabe)
- Dünnbesetzte Funktionen (z. B. Wiedergabeverlauf und Land)
Anders als beim Ansatz der Matrixfaktorisierung können Sie zusätzliche Features wie Alter oder Land. Wir kennzeichnen den Eingabevektor mit x.
Modellarchitektur
Die Modellarchitektur bestimmt die Komplexität und Ausdrucksmöglichkeiten des Modells. Durch das Hinzufügen versteckter Ebenen und nicht linearer Aktivierungsfunktionen (z. B. ReLU) kann das Modell komplexere Beziehungen in den Daten erfassen. Sie können jedoch Eine höhere Anzahl von Parametern erschwert in der Regel auch, und teurer ist. Wir bezeichnen die Ausgabe der letzten ausgeblendeten Ebene nach \(\psi (x) \in \mathbb R^d\).
Softmax-Ausgabe: Prognostizierte Wahrscheinlichkeitsverteilung
Das Modell ordnet die Ausgabe der letzten Ebene, \(\psi (x)\), über einen Softmax-Wert zu. zu einer Wahrscheinlichkeitsverteilung \(\hat p = h(\psi(x) V^T)\)hinzu, wobei:
- \(h : \mathbb R^n \to \mathbb R^n\) ist die Softmax-Funktion. bereitgestellt von \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
- \(V \in \mathbb R^{n \times d}\) ist die Matrix der Gewichtungen von Softmax-Layer verwenden.
Die Softmax-Ebene bildet einen Vektor von Werten ab. \(y \in \mathbb R^n\) (manchmal auch als Logits) mit einer Wahrscheinlichkeitsverteilung.
Verlustfunktion
Definieren Sie abschließend eine Verlustfunktion, die Folgendes vergleicht:
- \(\hat p\), die Ausgabe der Softmax-Schicht (Wahrscheinlichkeitsverteilung)
- \(p\), die Grundwahrheit, die die Elemente darstellt, die der Nutzer hat mit denen er interagiert hat (z. B. YouTube-Videos, die der Nutzer angeklickt oder angesehen hat). Dies kann als normalisierte Multi-Hot-Verteilung (eine Wahrscheinlichkeitsvektor).
Sie können beispielsweise den Kreuzentropieverlust verwenden, da Sie zwei Wahrscheinlichkeitsverteilungen.
Softmax-Einbettungen
Die Wahrscheinlichkeit für das Element \(j\) ist gegeben durch \(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), Dabei ist \(Z\) eine Normalisierungskonstante, die nicht von \(j\)abhängig ist.
Mit anderen Worten: \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\), Also ist die logarithmische Wahrscheinlichkeit eines Elements \(j\) (bis zu einer additiven Konstante) das Skalarprodukt zwei \(d\)dimensionaler Vektoren, das interpretiert werden kann als Abfrage- und Elementeinbettungen:
- \(\psi(x) \in \mathbb R^d\) ist die Ausgabe des letzten ausgeblendeten Layers. Wir nennen sie die Einbettung der Abfrage \(x\).
- \(V_j \in \mathbb R^d\) ist der Gewichtungsvektor, der die letzte ausgeblendete Ebene mit der Ausgabe j verbindet. Wir nennen dies die Einbettung von „item“ \(j\).
DNN und Matrixfaktorisierung
Sowohl im Softmax-Modell als auch im Matrixfaktorisierungsmodell lernt das System einen Einbettungsvektor \(V_j\) pro Artikel \(j\). Die sogenannte Element-Einbettungsmatrix \(V \in \mathbb R^{n \times d}\) in der Matrix Faktorisierung ist nun die Gewichtungsmatrix der Softmax-Schicht.
Die Abfrageeinbettungen sind jedoch unterschiedlich. Anstatt zu lernen, Eine Einbettung \(U_i\) pro Abfrage \(i\), lernt das System eine Zuordnung von der Abfragefunktion \(x\) in eine Einbettung \(\psi(x) \in \mathbb R^d\). Daher können Sie sich dieses DNN-Modell als Generalisierung der Matrixstruktur vorstellen Faktorisierung, bei der Sie die Abfrageseite durch eine nicht lineare Funktion \(\psi(\cdot)\).
Können Sie Artikelfunktionen verwenden?
Können Sie dieselbe Idee auf die Artikelseite anwenden? Anstatt also zu lernen, einer Einbettung pro Element kann das Modell eine nicht lineare Funktion lernen, einer Einbettung hinzufügen? Ja. Setzen Sie dazu einen neuronales Netzwerk, das aus zwei neuronalen Netzwerken besteht:
- Ein neuronales Netzwerk ordnet Abfragefeatures \(x_{\text{query}}\) zur Abfrageeinbettung \(\psi(x_{\text{query}}) \in \mathbb R^d\)
- Kartenelementfunktionen eines neuronalen Netzwerks \(x_{\text{item}}\) zu Element-Einbettung \(\phi(x_{\text{item}}) \in \mathbb R^d\)
Die Ausgabe des Modells kann als Skalarprodukt von \(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\) Beachten Sie, dass dies kein Softmax-Modell mehr ist. Das neue Modell sagt ein Wert pro Paar \((x_{\text{query}}, x_{\text{item}})\) statt eines Wahrscheinlichkeitsvektors für jede Abfrage \(x_{\text{query}}\).