Dynamische Empfehlungssysteme


14

Ein Empfehlungssystem würde die Korrelation zwischen Bewertungen verschiedener Benutzer messen und Empfehlungen für einen bestimmten Benutzer über die Elemente abgeben, die für ihn von Interesse sein könnten.

Der Geschmack ändert sich jedoch mit der Zeit, sodass alte Bewertungen möglicherweise nicht die aktuellen Vorlieben widerspiegeln und umgekehrt. Vielleicht haben Sie einmal ein Buch mit "ausgezeichnet" bewertet, das Sie jetzt als "nicht zu ekelhaft" einstufen würden, und so weiter. Darüber hinaus ändern sich auch die Interessen.

Wie sollten Empfehlungssysteme in einer sich ändernden Umgebung funktionieren?

  1. Eine Möglichkeit besteht darin, die "alten" Bewertungen abzuschneiden. Dies funktioniert unter der Annahme, dass Sie "alt" richtig definieren (Sie können sogar sagen, dass Bewertungen niemals ablaufen und so tun, als ob das Problem nicht besteht). Aber es ist nicht die bestmögliche Option: Natürlich entwickeln sich die Geschmäcker, es ist ein normaler Lebensfluss, und es gibt keinen Grund, warum wir das zusätzliche Wissen der einmal korrekten Bewertungen der Vergangenheit nicht nutzen können.
  2. Eine andere Möglichkeit besteht darin, dieses zusätzliche Wissen irgendwie unterzubringen. Auf diese Weise konnten wir nicht nur ein "Sofortmatch" für Ihre aktuellen Interessen finden, sondern Ihnen auch die Dinge vorschlagen, die Ihnen als Nächstes gefallen könnten (im Gegensatz zu den Dingen, die Ihnen jetzt gefallen könnten ).

Ich bin mir nicht sicher, ob ich das gut genug erkläre. Im Grunde bin ich für den zweiten Ansatz und bin über ein Recommender System , das die Zusammenhänge des Geschmack messen würde Trajektorien und Ertrag Empfehlungen , die für .. gut gerecht zu werden, nennen sie es persönliches Wachstum - weil sie von Menschen , die kommen werden "schmeckt Flugbahn" (und nicht nur "Schnappschuss schmeckt") ist ähnlich wie bei Ihnen.

Jetzt die Frage: Ich frage mich, ob es schon etwas Ähnliches wie "Option 2" gibt, und wenn ja, ich frage mich, wie es funktioniert. Und wenn es nicht existiert, können Sie gerne darüber diskutieren, wie es funktionieren soll! :)

Antworten:


8

Ich empfehle das Paper Kollaboratives Filtern mit zeitlicher Dynamik von Yehuda Koren (Netflix Contest!), In dem dieses Problem ausführlich behandelt wird.

Ich stimme dem Autor zu, dass die erste Option ("Abschneiden") nicht der richtige Weg ist. Es ist richtig, dass veraltete Einstellungen auf diese Weise ignoriert werden, aber a) einige Einstellungen ändern sich nie, daher werden Daten gelöscht, um die Evergreens zu identifizieren, und b) einige Einstellungen in der Vergangenheit sind erforderlich, um die Einstellungen der Zukunft zu verstehen ( zB kaufen Sie Staffel 1 -> wahrscheinlich kaufen Sie Staffel 2).

Koren versucht jedoch nicht, solche Trajektorien explizit zu identifizieren (dh um zukünftiges Änderungsverhalten eines Benutzers vorhersagen zu können), da dies eine sehr sehr schwierige Aufgabe ist. Sie können sich das vorstellen, wenn Sie bedenken, dass Präferenz- "Stationen" entlang einer Trajektorie NICHT an die Zeit gebunden sind, sondern an die persönliche Entwicklung eines Benutzers, der durch andere Trajektorien unterbrochen oder gekreuzt oder einfach auf eine andere Weise ausgedrückt werden kann. ZB wenn man von harten Actionfilmen zu Actionfilmen übergeht, gibt es keinen bestimmten "Entry-Soft-Action-Film" oder ähnliches. Der Benutzer kann diesen Bereich jederzeit (zeitlich und räumlich) betreten. Diese Probleme in Verbindung mit der Spärlichkeit der Daten machen es nahezu unmöglich, hier ein realisierbares Modell zu erstellen.

Stattdessen versucht Koren, die vergangenen Daten in Langzeitmuster-Signale und tägliches Rauschen zu zerlegen, um die Wirksamkeit von Rating-Vorhersagen zu erhöhen. Er wendet diesen Ansatz sowohl auf SVD als auch auf ein einfaches kollaboratives Neigborbood-Modell an. Leider bin ich noch nicht mit der Mathematik fertig, daher kann ich dazu keine näheren Angaben machen.

Zusätzlicher Hinweis zur expliziten Modellierung der Trajektorien

Der Bereich Sequence Mining stellt Methoden zur Verfügung, aber der entscheidende Punkt ist, eine geeignete abstrakte Darstellung der Elemente zu finden (da die Verwendung der Elemente selbst aufgrund von Spärlichkeit nicht funktioniert), z. B. das Clustering in Tags. Obwohl dieser Ansatz einige Einblicke in das Verhalten einiger Benutzer bietet (Data Mining!), Ist er möglicherweise nicht relevant für die Anwendung für alle Kunden (dh für die Masse), sodass implizite Modellierungen, wie von Koren vorgeschlagen, möglich sind am Ende besser.


Das Yehuda-Papier kommt dem, worüber ich gesprochen habe, sehr nahe, obwohl er in der Tat nicht über "Geschmackstrajektorien" spricht. Vielleicht hast du recht und die "Geschmacksänderungsrate" ist für niemanden festgelegt. Danke für den Link!
Andreister

Ja, das ist das erste, woran ich dachte.
Stumpy Joe Pete

2

Ich kenne kein funktionierendes System, würde mich aber nicht wundern, wenn Amazon, NetFlix oder jemand ein solches System hat. Sogar die Google-Suchmaschine könnte ein ähnliches System haben.

Ich habe darüber nachgedacht, als ich im letzten Semester an Dr. Ngs Kurs teilgenommen habe. Der Ansatz, den ich zuerst für optimal hielt, bestand darin, einen Gewichtungsfaktor basierend auf dem Alter hinzuzufügen. Je aktueller ein Datenelement ist, desto stärker würde es gewichtet. Dieser Ansatz wäre relativ einfach und rechnerisch kostengünstig zu implementieren.

Wenn ich mir diesen Ansatz jedoch genauer überlege, denke ich, dass er für viele Anwendungen schwerwiegende Mängel aufweist. Persönlich folge ich oft einem Genre oder zeige es für einige Zeit, werde es leid, gehe zu etwas anderem über, kehre aber später zum ursprünglichen Genre zurück. Dieser Burnout-Wiederentflammungszyklus tritt auch in der Gesellschaft auf.

Daher neige ich zu einem etwas komplizierteren System. Die Daten müssten in zwei Gruppen unterteilt werden. Aktuelle Daten - der Schwellenwert müsste abhängig von der Anwendung und der Dauer der Interaktionen des Einzelnen variieren -, die stärker gewichtet würden, und "historische" Daten, die mit langsamer Abnahme der Werte im Laufe der Zeit niedriger bewertet würden. Zweitens würde ein Faktor einbezogen, um zu versuchen, ein "Ausschalten" zu erkennen, bei dem ein starkes Interesse oder eine starke Beteiligung plötzlich verschwindet. Die "aktuellen" Daten, die ähnlich klassifiziert sind, würden so umklassifiziert, als ob sie historisch wären.

Keiner dieser Ansätze ist rigoros oder validiert, aber ich glaube, es lohnt sich, einige Versuche der Hypothese zu konstruieren.


Ihre Vorstellung von niedrigeren Gewichten für alte Daten ähnelt in der Tat "Option 1". Stattdessen sage ich, dass der gesamte Verlauf des sich ändernden Geschmacks wichtig ist - dh, wenn Sie gestern das Genre A mochten und heute das Genre B mochten, würde das System andere Personen mit demselben "AB- ??" Geschmack bewegt sich und würde vorschlagen, dass Sie morgen Genre C.
möchten

1

Aus meiner Sicht kann eine modifizierte Version der kollaborativen Filterung funktionieren. Sie müssen jedoch einen Zeitstempel für jede Rangliste führen und eine Strafe verhängen, während Sie das Gewicht einer Rangliste berechnen, die älter ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.