Ich habe auf wikipedia Empfehlungssysteme gelesen, und der Abschnitt "Algorithmen" scheint darauf hinzuweisen, dass es sich bei K um den nächsten Nachbarn handelt und auf kollaborativen Filtern basierende benutzerbasierte Algorithmen sind zwei verschiedene Dinge. Ist das richtig? Sind sie nach meinem Verständnis nicht beide gleich? Wenn nicht, was sind die Unterschiede zwischen ihnen? Danke.
Nicht genau. Sie sind ähnlich (sie teilen die gleichen Ideen), aber es gibt mehrere große Unterschiede zwischen ihnen. In der Tat beschreibt Artikel auf Wikipedia nur 2 am deutlichsten Möglichkeiten zur Einführung von Empfehlungssystemen, aber es gibt viel mehr von ihnen, die Idee von diesen beiden Arten verwenden.
Also hier ist, wie ich Wikipedia Artikel verstanden habe.
Zunächst ist KNN nicht das Hauptmerkmal des ersten Ansatzes. Es ist nur ein Algorithmus, um die nächstgelegenen Objekte in der gesamten Sammlung zu finden, so dass es auch in der kollaborativen Filterung verwendet werden kann. Die wichtigste Idee liegt in einem Begriff "Ähnlichkeit". Um dem betreffenden Benutzer etwas zu empfehlen, finden Sie Personen aus seiner Umgebung, die ein ähnliches Profil haben. Zum Beispiel möchten Sie eine Empfehlung für Benutzer John auf Facebook machen. Du schaust auf sein Fb-Profil und dann auf Profile seiner Freunde. Sie finden 10 Personen mit ähnlichen Profilen und überprüfen, was sie mögen. Wenn 8 von 10 Leuten mit ähnlichen Profilen wie einem neuen Film, wird wahrscheinlich John es auch mögen.
Also, es gibt zwei wichtige Punkte hier:
Der Wikipedia-Artikel behandelt nicht die Frage, wie Ähnlichkeitsmaße zu finden sind, aber es gibt viele Möglichkeiten, einschließlich der Suche nach gebräuchlichen Begriffen im Profiltext, der Suche nach besten Freunden (Anzahl der Nachrichten zwischen ihnen, Verbindungsdiagrammanalyse usw.) und viele andere.
Im zweiten Ansatz müssen Sie die Nachbarschaft nicht analysieren und ähnliche Profile finden, aber Sie müssen die Benutzerauswahl treffen. Lassen Sie uns ein Beispiel mit Facebook-Benutzer John erinnern. Stellen Sie sich vor, dass wir alle "Likes" aller Fb-Nutzer bekommen können, einschließlich der von John. Mit ihnen können Sie eine sehr große Korrelationsmatrix erstellen, wobei Zeilen Benutzer-IDs sind und Spalten alle möglichen Elemente sind, die sie "mögen" können. Wenn ein Element tatsächlich "gemocht" wurde, wird die Zelle für den aktuellen Benutzer und das aktuelle Element auf 1 gesetzt, andernfalls ist es 0.
Mit einer solchen Matrix (gebaut oder abstrakt) können Sie Assoziationsabbau finden die stärksten Assoziationen. Zum Beispiel mochten 10000 Menschen, die "Fluch der Karibik 2" mochten, auch "Fluch der Karibik 3", aber nur 500 von ihnen mochten "Säge". Wir können also annehmen, dass die Assoziation zwischen zwei Episoden von "Pirates" viel stärker ist. Beachten Sie, dass wir weder Nutzer noch Filme selbst analysiert haben (wir haben Filmnamen, Plots, Schauspieler oder ähnliches nicht berücksichtigt - nur "Likes"). Dies ist der Hauptvorteil der kollaborativen Filterung über Methoden, die auf Ähnlichkeit basieren.
Schließlich, um dem User John einen Film zu empfehlen, iteriert man einfach über seine "Likes" und findet andere Gegenstände, die am stärksten mit dem aktuellen assoziiert sind.
Wichtige Punkte sind also:
Beide Ansätze haben ihre Stärken und Schwächen. Der erste Ansatz basiert auf einer Art von Verbindungen zwischen Menschen (z. B. Freunde auf Facebook) und kann kaum für Dienste wie Amazon verwendet werden. Gleichzeitig basiert der zweite Ansatz auf den durchschnittlichen Präferenzen aller Benutzer und ist daher keine gute Option für Systeme mit sehr unterschiedlichen Bevorzugungen.
Ich werde eine Darstellung von zwei Methoden geben:
Der Unterschied zwischen den beiden Methoden ist ziemlich genau der gleiche wie für einen Ratschlag im Vergleich zu Freunde fragen :
Außerdem sehen Sie im ersten Fall K neighborgh (das ist eine fixe Zahl) und im zweiten Fall schauen Sie sich Ihren gesamten Datensatz an.
In einigen Fällen kann on besseren Rat geben als der andere:
Beispiel:
Wenn ich einen Fernseher kaufen möchte und ich meinen Freund frage, der in einem großen Haus lebt, wird er mir einen großen Bildschirm empfehlen. Aber mein Nachbar, der in der Wohnung neben mir wohnt, wird mir einen kleinen Ratschlag geben, weil der Große nicht in seine Wohnung passt. (ähnlich wie meiner). Also ist mein Nachbarrat in diesem Fall besser.
Wenn ich einen Film kaufen möchte, wird mein bester Freund mir einen besseren Rat geben als mein Nachbar.
Tags und Links algorithm