Alles zu Collaborative Filtering: Algorithmen, Beispiele, Probleme

Collaborative Filtering ist ein Algorithmus aus der Kategorie der Empfehlungssysteme. Das Ziel ist eine möglichst passgenaue Empfehlung von Produkten, Artikeln, Nachrichten, Videos oder anderen Objekten an einen Nutzer auszuspielen. Kollaboratives Filtern bedient sich hierbei an Daten, die durch ähnliche Nutzer generiert werden. Somit erlaubt es ein realitätsnahes Abbild von passgenauen Empfehlungen.

Inhaltsverzeichnis 

Was ist Collaborative Filtering? Der Algorithmus einfach definiert

Einfach gesagt ist Collaborative Filtering (auf Deutsch: kollaboratives Filtern) die Idee, dass man vom Verhalten von anderen Personen lernen kann. Man nutzt das Verhalten aller Kunden, um dies in eine Empfehlung für eine einzelne Person zu übersetzen. Dazu nutzt man das Wissen, wie Kunden mit Produkten interagieren, um dies in eine Empfehlung umzurechnen. Die “Kollaboration” entsteht, indem man das Verhalten vieler Kunden zusammen nimmt, um eine Empfehlung nahe der Realität zu generieren.

Etwas formeller hat Collaborative Filtering, hat zum Ziel datenbasierte Empfehlungen zu generieren. Die Methode nutzt historische Daten, um gemeinsam auftretende Häufigkeiten zu identifizieren und als Grundlage für das voraussichtliche Verhalten eines Nutzers einzusetzen.

Das einfachste Beispiel für Collaborative Filtering ist ein Empfehlungsalgorithmus in einem Webshop. “Das könnte Sie auch interessieren” ist meist der Titel einer Box, in der relevante Artikel gezeigt werden, die einen Bezug zum aktuellen Produkt haben. Diese Empfehlungen basieren meist auf dem Verhalten der anderen Nutzer (user based collaborative filtering) oder auf den Attributen des angesehenen Artikels (article based CF).

Kollaboratives Filtern ist ein interessanter Algorithmus, da er zwar in die Kategorie Unsupervised Machine Learning fällt, auf der anderen Seite jedoch sehr häufig das Verhalten und die Meinung der Kunden und Nutzer einfließt. Folglich bildet er die reale Welt relativ genau ab, ohne explizite Labels oder Training zu benötigen.

Mehr noch kann man kollaboratives Filtern sehr gut auf Kundensegmente basierend berechnen. Dies erhöht die Personalisierung und Individualität und verbessert somit noch besser das Kundenerlebnis. Daher ist es einer der eher “praktischen” Algorithmen im Bereich Machine Learning.

Einordnung in die Data Science / Machine Learning Landschaft

Wie bereits erwähnt fällt Collaborative Filtering in den Bereich Machine Learning (ML), genauer Unsupervised Machine Learning. Diese Kategorie von Algorithmen nutzt rein Information aus Daten, um Gruppen oder Regeln abzuleiten. Im Gegensatz dazu müssen bei Supervised ML Algorithmen Labels, also Zielvariablen zur Verfügung gestellt werden (z.B. Kategorie “A”).

Innerhalb des Unsupervised Bereichs fällt Collaborative Filtering in die Sektion “Recommender Systems”. 

Recommender Systems, auf Deutsch “Empfehlungssysteme”, tun genau was ihr Name sagt: Sie empfehlen Etwas basierend auf den vorliegenden Daten. Dabei sind es meist Produkte, Services oder Menschen die empfohlen werden. Beispiele dafür sind Netflix’s Videoempfehlungen, die Kontaktempfehlungen von LinkedIn oder Amazon’s Produktempfehlungen.

Abgrenzung zu anderen Recommender Systems

Es gibt zwei große Kategorien von Recommender Systemen: Content-based Recommendation und Collaborative Filtering. Content-based Recommendation, auf Deutsch “Inhaltsbasierte Empfehlungssysteme”, beziehen sich wie der Name bereits sagt primär auf den Inhalt des Objekts sowie der Attribute der interagierenden Entität. Einfach gesagt: Wenn eine junge Person einen Film über Haie auswählt, möchte sie vermutlich etwas anderes sehen als eine alte. 

Die beiden Arten von Empfehlungssystemen sind jedoch nicht einander ausschließend. Es ist sehr häufig der Fall, dass zuerst ähnliche Benutzer und/oder Artikel ausgewählt werden, um damit eine solide Basis an Produkten zu generieren. Darauf basierend wird dann kollaboratives Filtern berechnet, um diese generische Häufigkeitsliste mit Verhaltensdaten anzureichern.

Arten und Algorithmen von Collaborative Filtering

Es gibt mehrere Arten von Collaborative Filtering. Nebst Memory-based, aka “Matrix-Based” die direkt die Beziehungen von Menschen zu Objekten berechnen, gibt es auch zahlreiche andere Herangehensweisen wie Model-based, Deep Learning oder Hybride Modelle. Wir stellen hier vier Varianten vor und zeigen, wie der Algorithmus funktioniert.

Memory-Based (aka. Neighborhood-based)

Die “memory-based” Variante von kollaborativen Filtering basiert auf einer Berechnung von Distanzen zwischen den vorhandenen Daten. Man zielt darauf ab, ähnliche Nutzer oder Produkte zu identifizieren und dann entweder zum Beispiel die Top 10 gekauften Produkte oder sehr ähnliche Produkte zu empfehlen. 

Dabei ist der Titel “memory-based” darauf zurückzuführen, dass diese Berechnungen im Speicher, also live durchgeführt werden. Dies hat zum Hintergrund, dass direkt auf den realen Daten und nicht auf einer Abstraktionsebene wie einem Machine Learning Modell gearbeitet wird. Das generelle Vorgehen ist wie folgt:

Schritt 1: Identifikation ähnlicher Nutzer

Es gibt eine Varianz an Möglichkeiten, ähnliche Nutzer zu identifizieren. Der einfachste ist die Identifikation von Nutzern, die den gleichen Artikel gekauft oder den gleichen Film bewertet haben. Umso mehr Interaktionen der betrachtete Nutzer mit dem System hat, umso besser funktioniert diese Methode, ähnliche Nutzer zu finden.

Eine andere Möglichkeit ist, Attribute eines Nutzers (zum Beispiel Dauer der Mitgliedschaft, Jahresumsatz, Alter) als Grundlage zu benutzen, um andere Nutzer zu identifizieren. Auch eine Mischform dieser beiden Möglichkeiten wird oft eingesetzt.

Die dadurch identifizieren Nutzer oder Kunden bilden die Basis. Von der Basis ausgehend wird versucht, möglichst optimale Empfehlungen für den betrachteten Nutzer zu finden.

Bei diesem Schritt eingesetzte Methoden umfassen klassische Distanzmetriken, Pearson correlation, vector cosine oder locality-sensitive hashing.

Schritt 2: Identifikation von möglichen Empfehlungen

Basierend auf den Daten der Nutzer-Basis können nun verschiedene nächste Filter eingesetzt werden. In einem binären Artikelsystem (zum Beispiel Produkte) wäre ein einfacher Fall die zehn häufigsten Produkte dieser Gruppe zu identifizieren (Top10-Approach). Ein anderer Weg ist, nach Produkten zu suchen, die ähnliche Attribute aufweisen wie das vom Nutzer zuletzt gekaufte.

Hat man ein diskretes oder stetiges System (zum Beispiel Ratings oder prozentuale Werte), kann man etwas kreativer in der Auswahl der Empfehlungen werden. Ob nun eine kategorielle Auswahl (zum Beispiel Top Produkte aus der Lieblingskategorie) oder Multiselektion (zum Beispiel, dass mehrere Tags des Produkts passen müssen) – es gibt eine lange Liste, um Kandidaten für die Empfehlungen zu generieren.

Schritt 3: Auswahl der Empfehlungen und Ausspielen

Hat man eine Liste an Empfehlungen, gilt es diese noch zu filtern und dann dem Nutzer zu präsentieren. Filter können beispielsweise auf Gewinnmarge, Neuigkeit oder auch auf einem Feedback-System beruhen.

Ein Feedback-System ist besonders interessant, da man die Empfehlungen dadurch sehr stark modifizieren kann. Feedbacks können natürlich auf positiv/negativ-Reaktion explizit durch Nutzerinteraktion aufgenommen werden, aber auch passive Feedbackindikatoren wie Nicht-Interaktion oder kurze Verweildauern auf empfohlenen Artikeln sind sehr hilfreich.

Model-based Collaborative Filtering

Die modellbasierte Variante von kollaborativen Filtern basiert, wie der Name schon sagt, auf einem vorher trainierten Modell. Meist sind dies Machine Learning Modelle wie zum Beispiel Clustering, Bayesian Networks oder auch sprachbasierte Varianten wie ein Latent Semantic Modell.

Im Unterschied zu Memory-basierten Algorithmen trainiert model-based CF ein Modell basierend auf den vorliegenden Daten, um dann neue Nutzer direkt mit einer Empfehlung ausstatten zu können. Die Vorteile sind: 

  • Funktionieren besser mit Datenlücken, da Abstraktion gegeben ist
  • Sind robuster gegen Outlier
  • Benötigen weniger Ressourcen bei den Abfragen

Wie im Machine Learning üblich, können auch Dimensionsreduktionen (zum Beispiel PCA) eingesetzt werden, damit die Rechenzeit gesenkt und Robustheit gesteigert wird.

Hybride Varianten

Ein Laptop mit einer Hotel-Buchungs-Seite geöffnet
Hybride Collaborative Filtering Modelle zielen auf schnelle, aber gleichzeitig sehr genaue Empfehlungen ab.

Selbstverständlich sind auch hybride Varianten üblich. Ob und wann welche Art von Algorithmus eingesetzt wird ist stark abhängig vom Anwendungsfall und den Erfolgsfaktoren. Aber üblich ist es, beispielsweise sowohl Top-Artikel als auch möglichst personalisierte Artikel auszuspielen, um eine gesunde Mischung aus individuellen und allgemeinen Empfehlungen zu bekommen.

Der Hintergrund ist, dass man damit Fehler im Algorithmus besser abfedert, aber auch dass die Personalisierung nicht nur hyperpersonalisierten “Bubble” wird, sondern eben auch neue Anreize setzt. 

Deep-Learning Varianten

Neuronale Netzwerke sind inzwischen im Bereich künstlicher Intelligenz weit verbreitet. Auch die Anwendung für Recommender Systems findet sich durch eine Vielzahl an Algorithmen wieder. Bei Collaborative Filtering im speziellen versucht Deep Learning einige Probleme zu lösen, die Memory-basierte CF Algorithmen mit sich bringen:

  • Miteinbezug von Attributen die nicht direkt im Datensatz sind, wie zum Beispiel ausgelaufene Produkte
  • Lösen des “Cold Start”-Problems, bei dem neue Nutzer oder neue Produkte schwierig Ergebnisse liefern
  • Eher auf Individualität statt auf Top10-Ergebnisse getrimmt

Während der Hype der künstlichen neuronalen Netze viele Vorteile verspricht, sind die Ergebnisse jedoch umstritten. Eine kürzlich veröffentlichte Studie zur Effizienz, Erfolg und Reproduktion von Deep Learning basierten Recommender Systemen kommt zu einem ernüchternden Ergebnis. In fast jedem Fall konnten die Ergebnisse entweder nicht reproduziert werden oder sie werden von einfachen Varianten outperformed. 

Nichtsdestotrotz ist selbstverständlich die Anwendung von Deep Learning ein potentieller Erfolgsfaktor, gegebenenfalls als hybrides Modell mit Vorselektion oder Filtering, in einem erfolgreichen Recommender System.

Beispiele für die Anwendung von Collaborative Filtering

Es gibt zahlreiche Beispiele für die Anwendung von kollaborativen Filtern. Hier möchten wir ein paar davon vorstellen, vor allem um Inspiration zu geben. 

Produkt-Empfehlungen im E-Commerce

Der Ursprung und auch noch immer die Königsdisziplin: Wie bekomme ich Kunden mit möglichst passenden Empfehlungen versorgt? Jeder E-Commerce Shop hat inzwischen die “Kunden die dies kauften, kauften auch” oder “Das könnte Sie auch interessieren”-Box. Das Ziel ist relativ simpel: Kunden mit Angeboten zu versorgen, die sie noch brauchen oder noch nicht wussten, dass sie sie brauchen.

Meist basieren diese Recommender Systeme auf einer Vielzahl an Daten: Kundendaten, Verhaltensdaten, Webanalytics, Historische Daten, Neuerscheinungen, Abverkauf, Marge und vieles mehr. Eine der höchsten Erfolgsquoten der Recommendersysteme im E-Commerce findet sich darin, dass Zubehör zu Hauptartikeln (z.B. der Bohrer zur Bohrmaschine) empfohlen werden.

Sales-Unterstützung für Aussendienst-Mitarbeiter

Aussendienstmitarbeiter haben ein schweres Los. Einerseits wollen sie möglichst personalisierten Service liefern, andererseits ist es sehr schwierig hunderte oder sogar tausende von Unternehmen und deren Mitarbeiter im Kopf zu behalten.

Hier springen Collaborative Filtering und andere Recommender-Systeme in Aktion. Basierend auf dem gesamten Kundenstamm findet man schnell heraus, welche zusätzlichen Artikel das Produktsortiment der Kunden entweder stärkt oder erweitert. Damit bewaffnet ins Gespräch zu gehen ist meist eine Erleichterung, auch mal über neue Möglichkeiten zu diskutieren.

Das nächste Video, der nächste Post, das nächste Bild

Einer der häufigsten Einsatzzwecke für Collaborative Filtering Algorithmen sind Soziale Medien und Streaming-Plattformen. Ob nun das nächste Video, der nächste Post oder das nächste Bild: Alles wird dadurch bestimmt, dass Plattformen versuchen, die Verweildauer (und somit die Nutzerbindung) der Nutzer zu maximieren. 

Interessant wird dies, so man eine Seite im personalisierten Feed betrachtet und dann einmal in ein ausgeloggtes, anonymes Browserfenster wechselt. Einmal mit YouTube ausprobiert zeigt das direkt sehr viel, wie sehr viele Menschen inzwischen in der personalisierten Welt sitzen.

Produktempfehlung beim Lebensmitteleinkauf

Ein besonders interessantes Anwendungsgebiet sind auch die momentan boomenden Lebensmittellieferanten wie REWE, PicNic und Amazon Fresh. Hier wird, vor allem auch in den Apps, massiv auf Personalisierung mittels Recommenders gesetzt. Vor allem historische Daten (was wurde bisher bestellt, wie regelmäßig, wann sind die letzten Einkäufe geschehen) sind eine Goldmine für Empfehlungen.

Probleme und Nachteile von kollaborativen Filtering

Das “Grey Sheep” Problem

Viele Schafe in den Bergen, von denen zwei dunkelgrau sind
„Graue Schafe“ verhalten sich anders als der Rest und möchten daher auch keine standardisierten Empfehlungen.

Graue Schafe sind Nutzer, die in ihren Wünschen, Bedürfnissen und Vorlieben nicht direkt mit der Masse übereinstimmen. Folglich sind Empfehlungen basierend auf der Allgemeinheit in den Augen dieser Nutzer schlechte Empfehlungen.

Noch ausgeprägter ist das Problem bei den “Black Sheep”. Diese Nutzergruppe hat gegensätzliche Wünsche als die anderen Nutzer und folglich sind sinnvolle Empfehlungen fast unmöglich zu generieren.

Skalierung von Collaborative Filtering

Die meisten Matrix-basierten Methoden (z.B. Memory-based CF) müssen die Beziehung von jedem Nutzer zu jedem Objekt berechnen. Bei vielen Objekten (z.B. Produkte) und vielen Nutzern wird dies sehr schnell ein Skalierungsproblem, das lange Laufzeiten und Speicher benötigt. Daher wird teilweise auf Model-basierte oder Deep-Learning CF umgeschwenkt.

Data Sparsity und der long tail

Eines der Hauptprobleme von Collaborative Filtering ist die Data Sparsity, also die Datenknappheit. Bei vielen Produkten, bei neuen Nutzern oder neuen Produkten gibt es keine bis kaum Daten zur Integration dieser Entitäten in die Berechnung. Wenn zum Beispiel ein neuer Artikel in den Shop kommt, wurde dieser bisher nicht gekauft; und wird damit auch vom klassischen kollaborativen Filtern nicht vorgeschlagen.

Abhilfe schafft selbstverständlich ein Hybrides Modell zu nutzen oder die persönlichen Empfehlungen mit einem Cocktail aus anderen Faktoren, wie zum Beispiel Neuerscheinungen oder Top-Produkten zu ergänzen.

Bubble building – wie neu ist alt?

Eine eher gesellschaftliche Frage wird durch das “bubble building” von Recommendation Systemen aufgeworfen. Collaborative Filtering beruht auf dem Verhalten ähnlicher Nutzer, die ähnliche Produkte kaufen. Folglich sind die Vorschläge wieder aus dieser Ähnlichkeit generiert. Dies führt dazu, dass man sich immer mehr in der Ähnlichkeit bewegt, die als “Bubble” betitelt ist, statt Inspiration oder Neuartigkeiten von Aussen zu erleben.

Generell ist dies ein gesellschaftspolitisches Thema, vor allem wenn man über Empfehlungen von Nachrichten und Social Media Feeds spricht; Abhilfe schafft eine einfache Modifikation der Algorithmen mit generischen Empfehlungen oder absichtlich kontroversen Artikeln. 

Fazit: Die Rolle von Collaborative Filtering in der Data Driven Company 

In diesem Artikel haben wir erklärt was Collaborative Filtering ist, wie der Algorithmus funktioniert und welche Anwendungsfälle es gibt. Die generelle Idee, dass man das Verhalten einer ähnlichen Gruppe nutzen kann, um Empfehlungen für eine einzelne Person anzuleiten, ist sehr erfolgreich und wir häufig eingesetzt.

Etwas globaler gedacht hat kollaboratives Filtern wie auch andere Recommendation Algorithmen ein Ziel: eine bessere User Experience durch Personalisierung. Diese Personalisierung hat zum Ziel, die Kunden glücklicher zu machen und ihnen das zu liefern, was sie benötigen.

Die dabei entstehenden Gefahren, dass man Kunden in eine “Bubble” zwängt, sie zu sehr zum Kaufen animiert oder einen Mainstream an Produkten und Inhalten produziert, dürfen nicht außer Acht gelassen werden. Doch können diese ethischen Bedenken im Collaborative Filtering wie in anderen Machine Learning Algorithmen durch Bedacht vermindert werden.

Zusammengefasst sehen wir kollaboratives Filtern als wichtiges Element in der Interaktion mit Kunden und Mitarbeitern in der Data Driven Company. Als unsupervised Machine Learning kann es schnell und einfach angewandt werden und produziert einen Innovationsgrad, der zusammen mit menschlicher Expertise zu einem besseren Erlebnis für beide Seiten führt.