0Pricing
Learn AI with Python · Lektion

Kollaboratives Filtern: benutzer- und objektbasiert

Benutzerähnlichkeit, Objektähnlichkeit, Nachbarschaftsverfahren, Kosinus-Ähnlichkeit für Bewertungen.

Kollaboratives Filtern: benutzer- und objektbasiert ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was ist kollaboratives Filtern?

Kollaboratives Filtern (CF) empfiehlt Items, indem es aus dem Verhalten vieler Benutzer lernt. Die Grundidee: Personen, die in der Vergangenheit übereinstimmten, stimmen wahrscheinlich auch in Zukunft überein. Es benötigt keine Item-Beschreibungen, sondern nur die Interaktionshistorie.

Die Benutzer-Item-Matrix

Beim kollaborativen Filtern wird zunächst eine Benutzer-Item-Matrix verwendet: Die Zeilen stehen für Benutzer, die Spalten für Items und jede Zelle enthält eine Bewertung (oder bleibt leer, wenn keine Bewertung vorliegt). Diese Matrix ist normalerweise sehr dünn besetzt, da jeder Benutzer nur wenige Items bewertet.

import pandas as pd

matrix = ratings.pivot_table(
    index="user_id", columns="item_id", values="rating"
)

Zwei Varianten des kollaborativen Filterns

  • Benutzerbasiert: Finden Sie Benutzer, die Ihnen ähnlich sind, und empfehlen Sie, was ihnen gefallen hat.
  • Itembasiert: Finden Sie Items, die den von Ihnen bevorzugten Items ähnlich sind, und empfehlen Sie diese.

Beide Varianten verwenden ein Ähnlichkeitsmaß zwischen Zeilen (Benutzern) oder Spalten (Items).

Kosinusähnlichkeit

Kosinusähnlichkeit misst den Winkel zwischen zwei Bewertungsvektoren und ignoriert dabei deren Größe. Werte nahe 1 bedeuten einen sehr ähnlichen Geschmack, Werte nahe 0, dass kein Zusammenhang besteht.

from sklearn.metrics.pairwise import cosine_similarity

filled = matrix.fillna(0)
user_sim = cosine_similarity(filled)  # user x user

Benutzerbasierte Vorhersage

Um Ihre Bewertung für ein Item vorherzusagen, berechnen Sie einen gewichteten Durchschnitt der Bewertungen ähnlicher Benutzer für dieses Item und gewichten ihn nach der Ähnlichkeit. Je ähnlicher ein Nachbar ist, desto stärker fließt er ein.

Vorhersageformel

Vorhergesagte Bewertung = Summe aus (Ähnlichkeit * Bewertung des Nachbarn) / Summe der Ähnlichkeiten, berechnet über alle Nachbarn, die das Item bewertet haben. Wenn Sie zuvor den Mittelwert jedes Benutzers abziehen (Mittelwertzentrierung), korrigieren Sie dafür, dass manche Benutzer generell hoch oder niedrig bewerten.

import numpy as np

def predict(sims, ratings_for_item):
    mask = ~np.isnan(ratings_for_item)
    if sims[mask].sum() == 0:
        return np.nan
    return np.dot(sims[mask], ratings_for_item[mask]) / sims[mask].sum()

Nachbarn auswählen (k)

Verwenden Sie statt aller Benutzer nur die k ähnlichsten Nachbarn. Dadurch wird das Rauschen durch unähnliche Benutzer reduziert und die Vorhersage beschleunigt. k ist ein abstimmbarer Hyperparameter.

Itembasierte Ähnlichkeit

Beim itembasierten kollaborativen Filtern wird die Ähnlichkeit zwischen Item-Spalten statt zwischen Benutzerzeilen berechnet. Empfehlen Sie die Items, die den Items am ähnlichsten sind, die ein Benutzer bereits bevorzugt hat.

item_sim = cosine_similarity(filled.T)  # item x item

Warum itembasierte Verfahren stabiler sind

Beziehungen zwischen Items ändern sich langsam: Die Ähnlichkeit zwischen zwei Filmen bleibt ungefähr konstant. Benutzerpräferenzen und die Benutzerbasis verändern sich schneller. Daher können itembasierte Ähnlichkeiten vorab berechnet und wiederverwendet werden. Das ermöglicht stabilere und besser skalierbare Empfehlungen und ist der Grund, warum Amazon dieses Verfahren bekanntermaßen bevorzugte.

Das Kaltstartproblem

Beim kollaborativen Filtern gibt es Schwierigkeiten mit neuen Benutzern oder Items, für die noch keine Bewertungen vorliegen. Es gibt dann nichts, womit sie verglichen werden können. Zu den üblichen Lösungen gehört, neue Benutzer nach einigen Bewertungen zu fragen oder auf inhaltsbasierte Verfahren zurückzugreifen (die später behandelt werden).

Empfehlungen erzeugen

Bewerten Sie jedes noch nicht bewertete Item für einen Benutzer, sortieren Sie die Ergebnisse absteigend und geben Sie die obersten N als Empfehlungen zurück.

scores = {item: predict_for(user, item)
          for item in unrated_items(user)}
top_n = sorted(scores, key=scores.get, reverse=True)[:10]

Kurzer Test

Testen Sie Ihr Wissen über kollaboratives Filtern.

Zusammenfassung

Sie haben kollaboratives Filtern auf einer Benutzer-Item-Matrix aufgebaut, die Kosinusähnlichkeit berechnet, Bewertungen als gewichteten Durchschnitt der Nachbarn vorhergesagt und gesehen, warum itembasiertes kollaboratives Filtern stabiler ist als benutzerbasiertes. Als Nächstes folgt die Matrixfaktorisierung mit SVD.

Häufig gestellte Fragen

Ist die Lektion „Kollaboratives Filtern: benutzer- und objektbasiert“ kostenlos?

Ja — der vollständige Text von „Kollaboratives Filtern: benutzer- und objektbasiert“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Kollaboratives Filtern: benutzer- und objektbasiert“?

Benutzerähnlichkeit, Objektähnlichkeit, Nachbarschaftsverfahren, Kosinus-Ähnlichkeit für Bewertungen. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Kollaboratives Filtern: benutzer- und objektbasiert“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Kollaboratives Filtern: benutzer- und objektbasiert
  2. Matrixfaktorisierung mit SVD
  3. Inhaltsbasiertes Filtern
  4. Hybridsysteme und Evaluationsmetriken
← Zurück zu Learn AI with Python