iX 12/2018
S. 50
Titel
Maschinelles Lernen II
Aufmacherbild

Recommendation Engines mit Spark ML implementieren

Empfehlenswert

Shopbetreiber, die ihre Kunden und Interessenten gezielt auf passende Zusatzangebote aus dem eigenen Portfolio hinweisen wollen, kommen um den Einsatz einer sogenannten Recommendation Engine nicht herum. Mithilfe des Big-Data-Frameworks Spark ist der Eigenbau einer solchen „Empfehlungsmaschine“ mit vertretbarem Aufwand machbar.

Kunden, die dieses Produkt gekauft haben, kauften auch y. Jeder, der schon einmal online etwas bestellt hat, kennt diesen mehr oder weniger dezent eingeblendeten Hinweis. Auf Netflix und Amazon Prime werden Filme und Serien vorgeschlagen, die sich Kunden mit ähnlichen Vorlieben ebenfalls angeschaut haben. Spotify und Apple Music empfehlen neue Musik, die zu unseren bisherigen Vorlieben passt. Und in den Newsfeeds von Twitter oder Facebook steuern Algorithmen, welche Nachrichten wir von welchen Freunden zu Gesicht bekommen und welche Werbung eingeblendet wird.

Empfehlungsdienste sind allgegenwärtig. Sie bilden einen der Eckpfeiler des Erfolgs der großen Internetplattformen. Als Nutzer bekommt man sehr schnell das Gefühl, dass das jeweilige Angebot speziell auf einen selbst zugeschnitten ist. Im Idealfall sieht man dabei nur die Dinge, die einen wirklich als Nächstes interessieren. Bei dieser Art der Individualisierung von Internetdiensten spricht man demnach auch von Personalisierung.

Wer als Anbieter auf personalisierte Empfehlungen (Recommendations) setzen möchte, sieht sich mit der Frage der Umsetzung und des damit verbundenen Aufwands konfrontiert. Schließlich können Webseiten nicht händisch für jeden Benutzer einzeln angepasst werden. Dies funktioniert im großen Stil nur, wenn die Empfehlungen automatisiert und dynamisch ausgespielt werden – am besten so flexibel, dass man dafür keine aufwendigen Regelsysteme entwickeln und bedienen muss. Und am besten auch in einer Art und Weise, dass sich der Erfolg gegenüber nicht personalisierten Angeboten einfach nachweisen lässt. Hier beginnt der Siegeszug von Systemen, die mithilfe geeigneter Machine-Learning-Algorithmen Empfehlungen automatisch erzeugen und individuell an die Nutzer ausspielen. Da im Vorhinein keine Zielwerte bekannt sind und der Algorithmus selbstständig Empfehlungen berechnen muss, spricht man in diesem Fall auch von unüberwachtem Lernen (Unsupervised Learning).

Inhaltliche Analyse oder die Weisheit der Masse?

Bei Empfehlungssystemen unterscheidet man zwei Ansätze: kollaborative Filter (Collaborative Filtering) und inhaltsbasierte Filter (Content-based Filtering).

Bei der kollaborativen Filterung werden die gespeicherten Informationen über das (Kauf-)Verhalten anderer Benutzer mit ähnlichem Geschmack herangezogen, um einem Interessenten ein bestimmtes Produkt, das er bisher noch nicht kennt, zu empfehlen. Produkt steht hier stellvertretend für einen Film, eine Nachricht, ein Musikstück oder ein anderes Item, das man kaufen oder konsumieren kann.

Content-based Filter hingegen versuchen, den Inhalt eines Produkts zu „ergründen“ und diesen im nächsten Schritt mit dem Inhalt anderer Produkte in Zusammenhang zu bringen. Damit diese Form der Ähnlichkeitsanalyse klappt, muss der Inhalt in geeigneter Form repräsentiert werden. Es muss also eine Art Beschreibung vorliegen. In der Regel sind dies Produktbeschreibungen oder Artikeltexte.

Wer jetzt glaubt, dass es Heerscharen von Softwareentwicklern, Data Engineers und Data Scientists bedarf, um ausgefeilte Algorithmen für die Analyse großer Datenmengen zu entwickeln, hat den Siegeszug des quelloffenen Big-Data-Frameworks Spark in den letzten Jahren nicht mitbekommen. Der Einsatz eines Empfehlungssystems ist somit nicht mehr nur Branchenriesen wie Amazon, Netflix oder Facebook vorbehalten. Spark in Kombination mit Cloud-basierten Diensten wie Amazon Web Services, Microsoft Azure oder Google Cloud bringt die Recommender Engines auch in Reichweite kleinerer Unternehmen.