Die Kandidatengenerierung ist die erste Phase der Empfehlung. Bei einer Abfrage eine Reihe relevanter Kandidaten generiert. In der folgenden Tabelle sehen Sie zwei gängige Ansätze für die Kandidatengenerierung:
Typ | Definition | Beispiel |
---|---|---|
Inhaltsbasiertes Filtern | Verwendet Ähnlichkeit zwischen Elementen, um Elemente zu empfehlen, die dem ähneln, was der Nutzer mag. | Wenn sich Nutzer A zwei süße Katzenvideos ansieht, kann das System diesem Nutzer süße Tiervideos empfehlen. |
Kollaboratives Filtern | Verwendet Ähnlichkeiten zwischen Abfragen und Elementen gleichzeitig, um Empfehlungen zu geben. | Wenn Nutzer A Nutzer B ähnlich ist und Nutzer B Video 1 mag, dann: kann das System Video 1 für Nutzer A empfehlen, auch wenn Nutzer A hat ähnliche Videos wie Video 1 gesehen. |
Einbettungsbereich
Sowohl beim inhaltsbasierten als auch beim kollaborativen Filtern werden die einzelnen Elemente und Abfragen zugeordnet. (oder Kontext) zu einem Einbettungsvektor in einem gemeinsamen Einbettungsraum hinzufügen \(E = \mathbb R^d\)In der Regel ist der Einbettungsraum niedrigdimensional. (d. h. \(d\) ist viel kleiner als die Größe des Korpus) und erfasst eine latente Struktur des Elements oder Abfragesatzes. Ähnliche Produkte wie YouTube Videos, die normalerweise vom selben Nutzer angesehen werden, erscheinen nahe beieinander im und eingebetteter Raum. Der Begriff der Nähe durch ein Ähnlichkeitsmaß definiert.
Ähnlichkeitsmaße
Ein Ähnlichkeitsmaß ist eine Funktion, \(s : E \times E \to \mathbb R\) die nimmt zwei Einbettungen und gibt einen skalaren Wert zurück, der ihre Ähnlichkeit misst. Die Einbettungen können folgendermaßen für die Kandidatengenerierung verwendet werden: \(q \in E\), sucht das System nach Elementeinbettungen \(x \in E\) die nahe an \(q\)liegen, also Einbettungen mit hoher Ähnlichkeit \(s(q, x)\)angeben.
Um den Grad der Ähnlichkeit zu bestimmen, stützen sich die meisten Empfehlungssysteme auf mindestens eines der folgenden Elemente:
- Kosinus
- Punktprodukt
- Euklidischer Abstand
Kosinus
Dies ist einfach der Kosinus des Winkels zwischen den beiden Vektoren, \(s(q, x) = \cos(q, x)\)
Skalarprodukt
Das Skalarprodukt zweier Vektoren ist \(s(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i\) Sie ergibt sich auch aus \(s(q, x) = \|x\| \|q\| \cos(q, x)\) (dem Kosinus des Winkel multipliziert mit dem Produkt der Normen). Wenn also die Einbettungen dann fallen Punktprodukt und Kosinus zusammen.
Euklidischer Abstand
Das ist die übliche Strecke in Euklidisch. Leerzeichen, \(s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}\). Ein kleinerer Abstand bedeutet eine höhere Ähnlichkeit. Wenn die Einbettungen normalisiert werden, stimmt der quadratische euklidische Abstand mit dem Punktprodukt überein (und Kosinus) bis zu einer Konstanten, Fall \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\).
Ähnlichkeitsmaße vergleichen
Betrachten Sie das Beispiel in der Abbildung rechts. Der schwarze Vektor veranschaulicht, der Abfrageeinbettung. Die anderen drei Einbettungsvektoren (Element A, Element B, Element C) Kandidatenelemente stehen. Je nach dem verwendeten Ähnlichkeitsmaß kann das Ranking der Elemente unterschiedlich sein.
Versuchen Sie anhand des Bildes, das Ranking der Artikel anhand aller drei Ähnlichkeitsmaß: Kosinus, Punktprodukt und euklidische Distanz.
Welches Ähnlichkeitsmaß?
Im Vergleich zum Kosinus ist die Ähnlichkeit des Punktprodukts empfindlich auf die Norm der Einbettung. Das heißt, je größer die Norm einer Einbettung, desto höher die Ähnlichkeit (bei Elementen mit spitzem Winkel) und desto wahrscheinlicher wird der Artikel empfohlen. Dies kann sich auf Empfehlungen wie folgt:
Elemente, die sehr häufig im Trainings-Dataset vorkommen (z. B. beliebte YouTube-Videos) weisen oft Einbettungen mit großen Normen auf. Wenn die Erfassung von Beliebtheitsinformationen erwünscht ist, sollten Sie ein Punktprodukt bevorzugen. Wenn Sie jedoch nicht vorsichtig sind, Elemente in den Empfehlungen dominieren. In der Praxis andere Varianten von Ähnlichkeitsmessungen verwenden können, die weniger Betonung auf die Norm des Artikels. Definieren Sie beispielsweise \(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) für \(\alpha \in (0, 1)\)
Elemente, die sehr selten erscheinen, werden während der . Wenn sie folglich mit einer hohen Norm initialisiert werden, werden eher seltene Artikel statt relevanterer Artikel empfohlen. Um dies zu vermeiden sei bei der Initialisierung der Einbettung vorsichtig und verwende geeignete Regularisierung. Dieses Problem wird in der ersten Übung detailliert beschrieben.