Hinweis:
Dieser Blogartikel ist älter als 5 Jahre – die genannten Inhalte sind eventuell überholt.
„Herzlich willkommen auf dem inovex Blog! Wenn Sie Interesse an den Themen Elasticsearch und Maschinenlernen haben, ist dieser Blogpost sicher interessant für Sie.“ – Empfehlungen wie diese basieren häufig auf der Beobachtung von auffälligen Gemeinsamkeiten einer bestimmten Gruppe von Personen („Wer A mag, mag auffällig oft auch auch B“). Zur Aufdeckung dieser Gemeinsamkeiten und der darauf aufbauenden Generierung von Empfehlungen können auch Technologien zum Einsatz kommen, an die man in diesem Kontext zunächst einmal gar nicht denkt.
So würde man die bekannte und viel verwendete Open-Source-Suchmaschine Elasticsearch vermutlich nicht ohne Weiteres mit Produktempfehlungen für Nutzer in Verbindung bringen, auch wenn sie mit Features wie Suchwortvervollständigung, More-Like-This-Queries und der Top-Hits-Aggregation-Funktionalitäten zur Verfügung stellt, die in eine ähnliche Richtung gehen. In der Tat bietet Elasticsearch mit den Significant-Terms aber auch eine Aggregation an, die genau das tut, was wir weiter oben als grundlegendes Vorgehen von sogenannten kollaborativen Filtern bei der Generierung von Empfehlungen identifiziert haben: Sie deckt das Vorliegen von sogenannten „uncommonly commons“, also untypischen und statistisch auffälligen Gemeinsamkeiten auf.
Der Vorschlag, diese Aggregation für die Generierung von Empfehlungen zu verwenden, findet sich zum Beispiel im Vortrag, den die Elasticsearch-Mitarbeiterin Britta Weber im Juni 2014 beim Treffen der Schweizer Elasticsearch User Group gehalten hat. Die Folien sind auf Speakerdeck abrufbar. Eine Grundlage für die Empfehlungsgenerierung ist also in Elasticsearch bereits vorhanden. Schön wäre es natürlich, wenn sich diese als konfigurierbare Plug & Play-Lösung zur Verfügung stellen ließe.
Wie eine solche Plug & Play-Lösung aussehen kann, zeigt das während meiner Masterthesis entstandene Empfehlungsplugin. Es erweitert die REST-Schnittstelle von Elasticsearch und erlaubt es, Recommender zu konfigurieren sowie Empfehlungen abzurufen, die mittels der bereits erwähnten Significant-Terms-Aggregation generiert werden.
Einen Überblick über die Thesis-Inhalte und -Ergebnisse liefert der Videomitschnitt meiner Abschlusspräsentation:
Nähere Details und theoretische Hintergründe sind ab sofort in meiner Ausarbeitung zu finden.
One thought on “Empfehlungsgenerierung mit Elasticsearch”