Alles, was Sie über Collaborative Filtering wissen müssen
- Nehmen Sie an einer Demo-Klasse teil
- Arten der kollaborativen Filterung
- Speicherbasierter oder Algorithmus für die nächste Nachbarschaft
- Modellbasierte kollaborative Filterung
- Hybride kollaborative Filterung
- Beispiel für kollaboratives Filtern
- Dataset
- Erstellen des kollaborativen Filteralgorithmus
- Speicherbasierter kollaborativer Filteralgorithmus
- Berechnung der Bewertung
- Einschränkungen der kollaborativen Filterung
- Anwendungen von Empfehlungssystemen für kollaborative Filter
Nehmen Sie an einer Demo-Klasse teil
(Geben Sie Ihre Kontaktdaten an, der Download-Link wird Ihnen in wenigen Sekunden per E-Mail zugesandt)
Bevor wir uns mit Kernkonzepten wie kollaborativen Filterempfehlungssystemen und kollaborativen Filteralgorithmen befassen, sollten wir Empfehlungssysteme verstehen.
Ein Empfehlungssystem zielt darauf ab, die Vorlieben eines Benutzers vorherzusagen, um einen Artikel zu empfehlen, der ein Produkt wie Kleidung oder Filme, Dienstleistungen usw. sein kann. Empfehlungssysteme sind heute aufgrund des Überschusses an Optionen in jedem Bereich sehr wichtig geworden und helfen Unternehmen, ihre Produkte oder Dienstleistungen besser für mehr Bewegung zu platzieren.
Es gibt zwei Möglichkeiten, ein Empfehlungssystem aufzubauen: Eine ist inhaltsbasiert und die andere ist kollaboratives Filtern. In diesem Artikel werden wir uns die kollaborative Filterung sowie Beispiele für die kollaborative Filterung genauer ansehen.
35% von Amazon.com der Umsatz wird durch seine Recommendation Engine generiert.
Es gibt zwei Arten oder Sinne, in denen Collaborative Filtering Empfehlungssysteme ausführt, und das ist eine enge und eine allgemeinere.
Im engeren Sinne funktioniert das kollaborative Filtern, indem die Präferenzen eines Benutzers vorhergesagt werden, indem die Präferenzen vieler anderer ähnlicher Benutzer gesammelt und untersucht werden.
Laden Sie den detaillierten Lehrplan herunter und erhalten Sie kostenlosen Zugang zur Orientierungssitzung
Zeit: 10:30 AM – 11:30 AM (IST/GMT +5:30)
Wenn beispielsweise Benutzer A und Benutzer B beide dieselbe Waschmaschine bevorzugen, könnten die anderen Präferenzen von Benutzer B etwas sein, an dem Benutzer A interessiert sein wird, da ihr Geschmack und ihre Bedürfnisse ähnlich sind. Dies geschieht natürlich unter Berücksichtigung vieler verschiedener Benutzer und zahlreicher Vorlieben und Reaktionen, daher der Begriff kollaboratives Filtern.
Collaborative Filtering Source – Recommender System
Im allgemeineren Sinne ist Collaborative Filtering der Prozess der Vorhersage der Präferenz eines Benutzers, indem seine Aktivität untersucht wird, um Muster abzuleiten.
Zum Beispiel kann ein Empfehlungssystem durch die Untersuchung von Vorlieben, Abneigungen, Sprüngen und Ansichten vorhersagen, was ein Benutzer mag und was er nicht mag.
Der Unterschied zwischen kollaborativer Filterung und inhaltsbasierter Filterung besteht darin, dass erstere keine Artikelinformationen benötigt, sondern auf Benutzereinstellungen basiert.
Arten der kollaborativen Filterung
Speicherbasierter oder Algorithmus für die nächste Nachbarschaft
Empfehlungssystem Source – Towards Data Science
Diese Methode verwendet ein Bewertungssystem, um die Präferenzen eines Benutzers vorherzusagen, indem die Präferenzen eines ähnlichen Benutzers oder des Nachbarn berücksichtigt werden. Hier gibt es zwei Möglichkeiten, Präferenzen zu berechnen: benutzerbasierte kollaborative Filterung und elementbasierte kollaborative Filterung.
Betrachten wir zunächst die benutzerbasierte kollaborative Filterung. Angenommen, wir haben eine Matrix von Bewertungen n x m für Benutzer uᵢ, i = 1, …n und Element pⱼ, j = 1, …m. Angenommen, wir müssen die Bewertung von Element r predict vorhersagen, einem Element j, das Benutzer i nicht angesehen / bewertet hat. Wie diese Methode funktioniert, besteht darin, die Präferenzen von Benutzer i zu berechnen und sie mit anderen Benutzern abzugleichen, die besten X ähnlichen Benutzer auszuwählen, ihre Bewertungen für den Artikel Rᵢⱼ zu nehmen und den gewichteten Durchschnitt zu finden, um die mögliche Bewertung / Präferenz von Benutzer i vorherzusagen des Artikels.
In Anbetracht der Tatsache, dass einige Benutzer dazu neigen, zu nachsichtig zu sein und hohe Bewertungen für Artikel abzugeben, die ihnen nicht wirklich gefallen, während einige Benutzer dazu neigen, zu streng zu sein und selbst für Artikel, die sie mögen, niedrige Bewertungen abzugeben, korrigiert diese Methode der kollaborativen Filterung die Formel, um die Verzerrung zu beseitigen. Um dies zu korrigieren, subtrahieren wir bei der Berechnung des gewichteten Durchschnitts die durchschnittliche Bewertung aller Elemente jedes Benutzers und fügen sie dann für den Zielbenutzer zurück:
Ähnlichkeit kann auf 2 Arten berechnet werden: Pearson-Korrelation und Kosinusähnlichkeit.
Zusammenfassend besteht die Idee darin, Benutzer zu finden, die unserem Zielbenutzer in Bezug auf die Präferenz am ähnlichsten sind, ihre Bewertungen für einen Artikel abzuwägen und dies als potenzielle Bewertung für unseren Zielbenutzer für den ausgewählten Artikel vorherzusagen.
Bei der artikelbasierten kollaborativen Filterung vergleichen wir zwei Elemente und gehen davon aus, dass sie ähnlich sind, wenn ein Benutzer den beiden Elementen ähnliche Bewertungen gibt. Wir sagen dann die Bewertung dieses Benutzers für einen Artikel voraus, indem wir den gewichteten Durchschnitt der Bewertungen für die meisten X ähnlichen Artikel dieses Benutzers berechnen. Sehen Sie das Bild unten als Beispiel.
Artikelbasierte Filterung Quelle – Medium
Modellbasierte kollaborative Filterung
Bei dieser Methode der kollaborativen Filterung von Empfehlungssystemen werden verschiedene Data Mining– und Machine Learning-Algorithmen verwendet, um ein Modell zur Vorhersage der Bewertung eines nicht bewerteten Artikels durch einen Benutzer zu entwickeln. Einige Beispiele für diese Modelle sind Bayes-Netzwerke, Clustering-Modelle, Singularwertzerlegung, probabilistische latente semantische Analyse, multiplikativer Faktor, latente Dirichlet-Allokation und Markov-entscheidungsprozessbasierte Modelle.
Hybride kollaborative Filterung
Diese Methode kombiniert die speicherbasierten und modellbasierten kollaborativen Filtersysteme, um Einschränkungen wie Sparsity und Informationsverlust zu beseitigen. Diese Methode ist jedoch komplexer zu bauen.
Laden Sie den detaillierten Lehrplan herunter und erhalten Sie kostenlosen Zugang zur Orientierungssitzung
Zeit: 10:30 AM – 11:30 AM (IST/GMT +5:30)
Beispiel für kollaboratives Filtern
Um ein gutes Verständnis für Empfehlungssysteme für kollaboratives Filtern zu erhalten, nehmen wir ein Beispiel für kollaboratives Filtern in Echtzeit und erstellen einen kollaborativen Filteralgorithmus in Python. Der erste Schritt besteht darin, den Datensatz zu definieren. Wenn Sie ein Anfänger in Python sind, lesen Sie diesen Wissensartikel:
Dataset
Für dieses kollaborative Filterbeispiel müssen wir zuerst Daten sammeln, die eine Reihe von Elementen und Benutzern enthalten, die auf diese Elemente reagiert haben. Diese Reaktion kann explizit sein, wie eine Bewertung oder ein Like oder Dislike, oder sie kann implizit sein, wie das Anzeigen eines Artikels, das Hinzufügen zu einer Wunschliste oder das Lesen eines Artikels.
Diese Datensätze werden normalerweise als Matrix dargestellt, die aus einer Reihe von Benutzern, Elementen und den Reaktionen dieser Benutzer auf diese Elemente besteht. Hier ein Beispiel:
Eine Matrix mit fünf Benutzern und fünf Elementen Source – Real Python
Diese Matrix repräsentiert fünf Benutzer u1-u5, die fünf Elemente i1-i5 zwischen den Bewertungen 1-5 bewertet haben (auch keine Bewertungen). In den meisten Fällen haben diese Matrizen mehr leere als volle Zellen, da es für viele Benutzer sehr unwahrscheinlich ist, viele der Elemente in der Liste zu bewerten. Dies wird als spärliche Matrix bezeichnet.
Sie können diese Liste hochwertiger Datenquellen für Ihre kollaborativen Filteralgorithmus-Projekte verwenden. Ein guter Anfang ist der MovieLens 100k-Datensatz, der 100.000 Bewertungen für 1682 Filme von 943 Benutzern enthält, wobei jeder Benutzer mindestens 20 Filme bewertet hat.
Während der Datensatz viele nützliche Felder enthält, konzentrieren wir uns insbesondere auf:
u.item: the list of moviesu.data: the list of ratings given by users
Die Datei u.data enthält eine separate Liste mit Bewertungen und Benutzer-ID, Artikel-ID, Bewertung und Zeitstempel. Hier ein Beispiel:
Die ersten 5 Zeilen von MovieLens 100k Datenquelle – Real Python
Die gesamte Datei enthält Daten für 100.000 solcher Bewertungen.
Erstellen des kollaborativen Filteralgorithmus
Die Idee hinter der Ausführung dieses Projekts ist zu 1. Identifizieren Sie Benutzer mit ähnlichen Vorlieben und dann 2. Sagen Sie eine Bewertung für einen Film von einem Benutzer voraus, wer hat es noch nicht bewertet. Wir werden auch die Genauigkeit unserer Ergebnisse berücksichtigen müssen.
1 und 2 werden mit unterschiedlichen Algorithmen erreicht. Ein wichtiger Punkt ist, dass wir uns nicht um das Alter, die Demografie usw. der Stichprobenbenutzer kümmern. oder das Genre der Filme usw. Uns geht es lediglich um implizite und / oder explizite Bewertungen dieser Filme durch diese Benutzer.
Um die Genauigkeit unseres Ergebnisses zu messen, können wir Optionen wie Root Mean Square Error oder Mean Absolute Error .
Speicherbasierter kollaborativer Filteralgorithmus
Bei dieser Methode versuchen wir, die Bewertung R vorherzusagen, die ein Benutzer U möglicherweise einem Element (dem Film) I geben würde.
Der erste Schritt besteht darin, Benutzer zu finden, die ähnliche Vorlieben wie Benutzer U haben, und dann die Bewertung R zu berechnen.
Hier ist ein Beispiel dafür, wie wir Benutzer mit ähnlichen Vorlieben finden. Betrachten Sie den kleinen Datensatz:
Dies sind Bewertungen für 2 Filme, die von 4 Benutzern A, B, C und D angegeben wurden:
Plotten der Ratings Source – Real Python
Der Abstand zwischen Plotpunkten ist eine Möglichkeit, eine Vorstellung von Ähnlichkeiten im Interesse zu bekommen. Wir können das folgende Programm verwenden, um die Entfernung zu berechnen:
from scipy import spatial
Wir verwenden den scipy.räumlich.Abstand.euklidische Funktion zur Berechnung der Entfernung. Wir berechnen den Abstand von C von A, B und D. In Bezug auf die Entfernung könnten wir D sagen, aber wenn wir uns die Tabelle ansehen, könnten wir sagen, dass A und C besser aufeinander abgestimmt sind, weil sie beide Film 2 doppelt so sehr mögen wie Film 1 (unter Berücksichtigung der Verhältnisse und nicht der tatsächlichen Bewertung), während Benutzer D beide Filme fast gleich mag, was darauf hindeutet, dass ihre Präferenz unterschiedlich sein kann. Was die euklidische Entfernung nicht vorhersagen kann, können wir möglicherweise aus dem Winkel der Verbindungslinie der Benutzer ableiten. Für die Benutzer würde das Diagramm folgendermaßen aussehen:
Je kleiner der Winkel zwischen zwei Linien ist, desto ähnlicher sind ihre Referenzen. Um dies im Programm zu finden, können wir Folgendes ausführen:
Sie können sehen, dass die Kosinusähnlichkeit zwischen a und b 0 ist, was auf eine große Ähnlichkeit hinweist. Die Verwendung der euklidischen Distanz und der Kosinusähnlichkeit ist 2 der verschiedenen Methoden, mit denen Sie die Ähnlichkeit bevorzugt berechnen können.
Berechnung der Bewertung
Sobald wir Benutzer mit ähnlichen Präferenzen wie unser Benutzer U identifiziert haben, gehen wir über die Vorhersage der Bewertung R U für einen Film geben würde, wenn sie noch nicht bewertet haben. Auch hier gibt es viele Möglichkeiten, dies zu tun.
Eine einfache Möglichkeit besteht darin, den Durchschnitt der Bewertungen zu ermitteln, die von ähnlichen Top-Nutzern für diesen Film abgegeben wurden. Der mathematische Ausdruck wäre:
Die mathematische Formel für die durchschnittliche Bewertung von n Benutzern Source – Real Python
Sie können auch einen gewichteten Ansatz wählen, wenn die in den Top ähnlichen Benutzern gibt es viele Meinungsverschiedenheiten. Das würde bedeuten, dem nächsten ähnlichen Benutzer mehr Gewicht zu geben und dann die Gewichte zu senken. Der Ausdruck wäre:
Einschränkungen der kollaborativen Filterung
Zum einen werden Metadaten nicht berücksichtigt. Benutzer können einen Film beispielsweise anhand ihrer Präferenz für den darin enthaltenen Schauspieler bewerten, Die kollaborative Filterung berücksichtigt dies jedoch nicht.
Ein weiterer Nachteil ist, dass kollaboratives Filtern nicht sehr effektiv ist, es sei denn, viele Benutzer haben viele Elemente bewertet. Nur dann kann es die beste Übereinstimmung für ein ähnliches Publikum erzielen und dann die Bewertung vorhersagen.
Da kollaboratives Filtern riesige Datensätze benötigt, um Benutzer mit engen Ähnlichkeiten zu erreichen, gibt es oft das Problem der Datensparsamkeit. Wie wir bereits gesehen haben, enthält eine spärliche Matrix mehr leere als volle Zellen, was fast immer der Fall ist.
Skalierbarkeit ist ein weiteres Problem, da der kollaborative Filteralgorithmus normalerweise für n Benutzer geschrieben wird. Wenn der Datensatz wächst, kann das Gesamtprogramm massiv werden.
Anwendungen von Empfehlungssystemen für kollaborative Filter
Empfehlungssysteme für kollaborative Filter Source – Real Python
Collaborative Filtering findet die höchste Verwendung im Social Web. Sie werden sehen, kollaborative Filterung in Aktion auf Anwendungen wie YouTube, Netflix und Reddit, unter vielen anderen. Diese Anwendungen verwenden kollaborative Filterung, um Videos / Posts zu empfehlen, die dem Benutzer basierend auf seinem Vorhersagealgorithmus am ehesten gefallen.
Collaborative Filtering ist trotz der Einschränkungen eine beliebte Methode für Empfehlungsprogramme. Es wird auch in E-Commerce-Plattformen verwendet, um Produkte zu empfehlen, basierend auf Käufen von Benutzern mit ähnlichen Vorlieben oder Vorlieben.
Als Programmierer müssen Sie Algorithmen mischen, um die kollaborative Filterung präziser zu machen, und auch Methoden oder Vorhersagen mischen, um die genauesten Ergebnisse zu erhalten. Das Kapitel Empfehlungssysteme im Buch Mining Massive Dataset ist auch eine großartige Informationsquelle zum kollaborativen Filtern.
Laden Sie den detaillierten Lehrplan herunter und erhalten Sie kostenlosen Zugang zur Orientierungssitzung
Zeit: 10:30 AM – 11:30 AM (IST/GMT +5:30)
Wir haben auch eine vollständige Anleitung, wie man ein Datenwissenschaftler wird, was die meisten Enthusiasten des maschinellen Lernens anstreben.
Um die richtigen Data Science-Fähigkeiten zu erwerben, sollten Sie sich für einen Data Science-Kurs anmelden. Dies wird Ihnen helfen, Ihre Karriere als Data Scientist zu verbessern.