Kollaboratives Filtern

Um einige Einschränkungen des inhaltsbasierten Filterns zu umgehen, kollaboratives Filtern nutzt Ähnlichkeiten zwischen Elemente, um Empfehlungen zu geben. Dadurch können Sie für Zufallsempfehlungen. also kollaboratives Filtern können Modelle Nutzenden A einen Artikel basierend auf den Interessen ähnliche Nutzende B. Außerdem können die Einbettungen automatisch ohne manuelles Engineering von Funktionen.

Beispiel für eine Filmempfehlung

Nehmen wir als Beispiel ein Filmempfehlungssystem, in dem die Trainingsdaten Feedback-Matrix mit:

  • Jede Zeile steht für einen Nutzer.
  • Jede Spalte steht für ein Element (einen Film).

Das Feedback zu Filmen kann in zwei Kategorien eingeteilt werden:

  • Explizit: Nutzer geben an, wie sehr ihnen ein bestimmter Film gefallen hat. durch eine numerische Bewertung.
  • Implizit: Wenn ein Nutzer einen Film ansieht, leitet das System ab, dass der interessiert sind.

Zur Vereinfachung gehen wir davon aus, dass die Feedback-Matrix binär ist. also einen Wert 1 bedeutet, dass Interesse an dem Film besteht.

Wenn ein Nutzer die Startseite besucht, sollten vom System Filme empfohlen werden. basierend auf beiden:

  • Ähnlichkeit mit Filmen, die der Nutzer in der Vergangenheit mag
  • Filme, die ähnlichen Nutzern gefallen haben

Zur Veranschaulichung sollen einige Funktionen für die Filme von Hand entwickelt werden. wie in der folgenden Tabelle beschrieben:

Film Bewertung Beschreibung
Der dunkle Ritter PG-13 Batman muss Gotham City vor der nuklearen Vernichtung retten in dieser Fortsetzung The Dark Knight, spielt in der Washington D.C. Comic-Universum.
Harry Potter und der Stein der Weisen PG Ein Waisenkind entdeckt, dass er ein Zauberer ist, und meldet sich für Hogwarts-Schule Hexenkunst und Zauberei, bei der er seinen ersten Kampf dem bösen Lord Voldemort.
Shrek PG Ein liebenswerter Oger und sein Esel-Begleiter machen sich auf den Weg um Prinzessin Fiona zu retten, wird von einem Drachen in ihrem Schloss festgehalten.
Die Triplets von Belleville PG-13 Wenn ein Fahrradprofi entführt wird, die Tour de France seine Großmutter und sein übergewichtiger Hund nach Übersee, um ihn zu retten. um Hilfe von drei älteren Jazzsängern.
Erinnerung R Ein Amnesiekranker will den Mord an seiner Frau aufklären indem er Hinweise auf seinen Körper tätowiert.

1D-Einbettung

Angenommen, wir weisen jedem Film einen Skalar in \([-1, 1]\) zu, der Gibt an, ob der Film für Kinder (negative Werte) oder Erwachsene (positive Werte) ist Angenommen, wir weisen jedem Nutzer in \([-1, 1]\) auch einen Skalar zu, der das Interesse des Nutzers an Kinderfilmen (ähnlich -1) oder an Erwachsenen Filme (genäher an +1) Das Produkt der Filmeinbettung und der Nutzer sollte die Einbettung für Filme, von denen wir erwarten, dass der Nutzer sie anspricht, höher sein (näher an 1). .

Bild mit mehreren Filmen und Nutzern, angeordnet in einem eindimensionalen Einbettungsbereich. Die Position jedes Films entlang dieser Achse beschreibt, ob es sich um einen Kinderfilm (links) oder einen Erwachsenenfilm (rechts) handelt. Die Position eines Nutzers beschreibt sein Interesse an Kindern oder Erwachsenenfilmen.

In der folgenden Abbildung kennzeichnet jedes Häkchen einen Film, der von einem bestimmten angesehen. Die dritte und vierte nutzende Person haben Präferenzen, die gut erklärt ist – der dritte Nutzer bevorzugt Filme für Kinder. und die vierte Person bevorzugt Filme für Erwachsene. Das erste und das zweite des Nutzers Einstellungen werden von dieser Funktion nicht gut erklärt.

Bild einer Feedbackmatrix, wobei eine Zeile einem Nutzer und eine Spalte einem Film entspricht. Jeder Nutzer und jeder Film wird einer eindimensionalen Einbettung zugeordnet (wie in der vorherigen Abbildung beschrieben), sodass sich das Produkt der beiden Einbettungen dem Ground-Truth-Wert in der Feedback-Matrix nähert.

2D-Einbettung

Eine Funktion reichte nicht aus, um die Präferenzen aller Nutzenden zu erklären. Überwinden fügen wir eine zweite Funktion hinzu: den Grad, in dem jeder Film Blockbuster oder Arthouse-Film. Mit einer zweiten Funktion können wir jeden Film mit der folgenden zweidimensionalen Einbettung:

Bild mit mehreren Filmen und Nutzern, angeordnet in einem zweidimensionalen Einbettungsbereich. Die Position jedes Films entlang der horizontalen Achse beschreibt, ob es sich um einen Kinderfilm (links) oder einen Erwachsenenfilm (rechts) handelt. Anhand der Position entlang der vertikalen Achse wird angegeben, ob es sich um einen Blockbuster (oben) oder um einen Arthouse-Film (unten) handelt. Die Position der Nutzer spiegelt ihre Interessen in den einzelnen Kategorien wider.

Wir platzieren unsere Nutzer wieder in derselben Einbettung, um ihnen Feedback-Matrix: Für jedes Paar (Nutzer/Artikel) soll die Zwischenprodukt der Nutzereinbettung und der Artikeleinbettung naheliegend auf 1, wenn sich der Nutzer den Film angesehen hat, andernfalls auf 0.

Bild derselben Feedbackmatrix. Dieses Mal wird jeder Nutzer und jeder Film einer zweidimensionalen Einbettung zugeordnet (wie in der vorherigen Abbildung beschrieben), sodass das Punktprodukt der beiden Einbettungen dem Ground-Truth-Wert in der Feedback-Matrix näher kommt.

In diesem Beispiel haben wir die Einbettungen von Hand entwickelt. In der Praxis werden die Einbettungen können automatisch erlernt werden, was die Leistungsfähigkeit des kollaborativen Filterns Modelle. In den nächsten beiden Abschnitten beschäftigen wir uns mit verschiedenen und wie Sie sie trainieren.

Der gemeinschaftliche Charakter dieses Ansatzes wird deutlich, wenn das Modell lernt, Einbettungen. Angenommen, die Einbettungsvektoren für die Filme sind fest. Gehen Sie dann so vor: kann das Modell einen Einbettungsvektor lernen, den die Nutzenden am besten ihre Präferenzen. Einbettungen von Nutzenden mit ähnlichen Präferenzen werden nah beieinander sein. Wenn die Einbettungen für die Nutzer unveränderlich sind, können wir Filmeinbettungen lernen, um die Feedbackmatrix am besten zu erklären. Folglich liegen die Einbettungen von Filmen, die ähnliche Nutzer mögen, nahe bei im Einbettungsbereich befinden.

Wissen testen

Das Modell empfiehlt Nutzern eine Shopping-App, weil sie vor Kurzem eine ähnliche App installiert haben. Für welche Art von Filterung ist das ein Beispiel?
Inhaltsbasiertes Filtern
Klasse! Beim inhaltsbasierten Filtern werden andere Nutzer nicht berücksichtigt.
Kollaboratives Filtern
Das kollaborative Filtern berücksichtigt andere Nutzende. Im ist uns nur ein Nutzer wichtig.