Leseprobe
Gliederung
1. Einleitung
1.1 Problemstellung
1.2 Zielsystem
2. Machine Learning
2.1 Supervised Learning
2.2 Unsupervised Learning
2.3 Reinforcement Learning
2.4 Neuronale Netze
3. Python und seine Anwendung im Machine Learning
4. Empfehlungssysteme
4.1 Überblick
4.2 Die Daten-Pipeline
4.3 Kollaboratives Filtern
4.4 Content-basiertes Filtern
4.5 Wissensbasierte Systeme
4.6 Hybride Systeme
5. Die Realisierung in Python
5.1 Benutzerbasiertes kollaboratives Filtern
5.2 Modell-basiertes kollaboratives Filtern
5.3 Content-basiertes Filtern
6. Fazit und Ausblick
6.1 Neue Algorithmen
6.2 Manipulierte Bewertungen
6.3 Ethische und juristische Fragen
Literaturverzeichnis
Abbildungsverzeichnis
1. Einleitung
„Computers are able to see, hear and learn. Welcome to the future.1 ” Dave Waters Ein Blick durch große Tageszeitungen zeigt, dass das Thema Machine Learning (ML)- häufig unter dem populären Schlagwort Künstliche Intelligenz“- den Sprung von der Fachwelt in die Allgemeinsprache bewältigt hat. Dabei werden viele Anwendungen genannt, prominent das autonome Fahren oder die Gesichtserkennung. Mit ML ausgerüstete Lautsprecher werden als intelligente Assistenten zunehmend Teil des Alltags. Bei der Beschreibung spektakulärer Einsätze wird gern übersehen, dass an anderer Stelle Machine Learning unsere Aktivitäten im Alltag beeinflusst, vielleicht sogar steuert. Empfehlungssysteme, d.h. Algorithmen-gesteuerte technische Verfahrensweisen, die dem Nutzer nach verschiedenen Kriterien Vorschläge für seine Wahl von Produkten und Dienstleistungen unterbreiten, sind in viele Teile der Online-Wirtschaft vorgedrungen und werden mehr und mehr zur Basis der anschließenden (Kauf-)Entscheidung. Die große Bedeutung dieses Themas wird auch durch zahlreiche Konferenzen und Workshops belegt. Diese Arbeit untersucht die Grundlagen dieser Systeme und ihre Anwendung.
1.1 Problemstellung
Empfehlungssysteme können basiert sein auf persönlichen Empfehlungen von Freunden, auf den Ratschlägen von Experten, oder aber auf bestimmten Algorithmen2. In vielen Fällen werden für die Optimierung der Empfehlung Verfahren des Machine Learning eingesetzt.
Diese Arbeit soll konkrete Ansätze zur Implementierung von Algorithmen-basierten Empfehlungssystemen entwickeln, einschließlich der IT-technischen Umsetzung. Dabei wird die Perspektive eines Data Analyst gewählt, es wird also der Prozess der Datengewinnung, der Bereinigung des Quellmaterials, der Visualisierung und der Evaluation betrachtet.
Die methodische Diskussion umfasst auch die Darstellung der Vor- und Nachteile der einzelnen Ansätze. Im nun folgenden Zielsystem wird der systematische Aufbau der Arbeit vorgestellt.
1.2 Zielsystem
Die Entwicklung von IT-gestützten Empfehlungssystemen beruht auf der Kombination verschiedener Bausteine. Dazu gehören problemadäquate Algorithmen, Programmbibliotheken zur programmtechnischen Implementierung sowie eine strukturierte DatenPipeline.
Diese Logik wird im Aufbau der Arbeit gespiegelt:
Kapitel 2 gibt einen konzentrierten Überblick über die Methodenwelt des Machine Learning, während Kapitel 3 für die ausgewählte Programmiersprache Python die zentralen Bibliotheken einführt. Kapitel 4 gibt dann einen Überblick über die wichtigsten Ansätze im Bereich der Empfehlungssysteme, außerdem wird die Konzeption einer Daten-Pipe- line diskutiert. Ausgewählte Methoden werden in Kapitel 5 konkret umgesetzt, dabei werden die zentralen Prozessschritte beschrieben und insbesondere die vielfältigen Probleme der Datenanalyse erläutert. Das abschließende Kapitel 6 beschäftigt sich dann mit der Weiterentwicklung dieser Systeme, geht aber auch auf deren Probleme und Grenzen ein.
2. Machine Learning
In Zeitungen, Zeitschriften und vielen anderen Medien werden die Begriffe Machine Learning, Künstliche Intelligenz (oder die englische Form Artificial Intelligence) oder Neuronale Netze meist undifferenziert und austauschbar benutzt. Hier wird der Begriff Machine Learning verwendet, und zwar in folgender Definition: ein Computer wird nicht direkt für eine Aufgabe programmiert, sondern erlangt seine Fähigkeiten durch Lernen. Damit wird das klassische Prinzip des Computers: Eingabe -> Verarbeitung ->Ausgabe quasi in ihr Gegenteil verkehrt, denn ein ML-System erhält Input und Output und bestimmt dann ein passendes Programm3. Die Geschichte des ML beginnt in den 50er Jahren mit den ersten lernenden Schachautomaten (Arthur Samuel) und Frank Rosenblatts Perzeptron4. Hier soll diese geschichtliche Entwicklung nicht weiterverfolgt werden; es genügt festzuhalten, dass insbesondere in den letzten 10 Jahren das ML eine weite Verbreitung gefunden hat und -wenn man die Anstrengungen der USA und Chinas als Maßstab nimmt- als eine Schlüsseltechnologie des 21. Jahrhunderts eingestuft wird. Im Nachfolgenden wird ein kurzer Überblick über die wichtigsten Methoden gegeben.
2.1 Supervised Learning
Ein häufig benutztes Kriterium ist die Unterscheidung in überwachtes (Supervised) und unüberwachtes (Unsupervised) Lernen5. Im überwachten Lernen sind sowohl Input wie auch Output identifiziert (so enthält beispielsweise der oft verwendete Boston Housing- Datensatz6 eine Reihe von metrischen wie auch kategorischen Datenvektoren, die Hausalter oder Durchschnittseinkommen repräsentieren, sowie als abhängige Größe den Kaufpreis des Hauses), und der Algorithmus versucht zwischen beiden eine Beziehung herzustellen. Diese Beziehung wird dann genutzt, für weitere Input-Daten einen Forecast-Wert zu finden. Supervised Learning kann genutzt werden für Regressionsberechnungen, aber auch für die Klassifikation von Items. Ein klassisches Beispiel ist die Identifikation von Spam bei Emails. Der Algorithmus wird in der 1. Phase trainiert, Spam zu erkennen, indem er bestimmte Muster aufdeckt: diese können bestimmte Schlüsselworte sein („gratis") oder die Textlänge. In der 2. Phase wird mit Hilfe eines Testdatensatzes überprüft, welche Genauigkeit in der Vorhersage erreicht wurde, m.a.W. wieviel Spam korrekt identifiziert wurde (true positives), aber auch wieviel Ham (die nützlichen Emails) fälschlicherweise als Spam eingestuft wurden. Diese Evaluation setzt eine problemadäquate Metrik voraus, die die Entscheidung unterstützt, ob das ML-Pro- gramm für den produktiven Einsatz bereits geeignet ist. Bei einer binären Größe kann ein Label die Ausprägungen positiv oder negativ haben. Der Algorithmus kann nun jede der beiden Ausprägungen richtig (true) oder falsch (false) berechnen. Damit gibt es 4 Werte, die im Machine Learning in einer sogenannten Confusion Matrix7 dargestellt werden. Die Python Bibliothek SkLearn stellt für die nötigen Berechnungen eigene Makros bereit. Aus dieser Matrix lassen sich dann verschiedene Metriken ableiten:
- Die Präzision (precision), eine Kennzahl, die das Verhältnis zwischen den true positives zu allen positives berechnet.
- Der Recall, der das Verhältnis zwischen den positives zu allen korrekten Werten angibt (d.h. neben den positives auch den false negatives).
Es gibt eine Vielzahl von Methoden im Supervised Learning, als ein typisches Beispiel soll hier k Nearest Neighbor (kNN) skizziert werden8.
Die Methode erlaubt die Klassifikation von Objekten anhand bestimmter Merkmale, den Features. So können Hunde und Pferde klassifiziert werden, wenn als Merkmale z.B. Größe und Gewicht herangezogen werden. Der Datenbestand wird in einen Trainingsund einen Testsatz aufgeteilt, und die Merkmale des Trainingssatzes werden im Feature Raum (der hier durch eine Ebene repräsentiert wird, da ja nur 2 Merkmale zur Verfügung stehen) abgebildet. Für den Trainingssatz ist die Klassifikation bekannt, d.h. die Labels Hund oder Pferd stehen fest. Für neue Daten soll nun anhand der Nähe zu den Datenpunkten festgestellt werden, welcher Kategorie der Datenpunkt angehört. Festzulegen ist die Anzahl der Nachbarn, die für die Zuordnung maßgeblich ist (das k in kNN), sowie das Distanzmaß (z.B. kann die Euklidische Distanz gewählt werden). Im nächsten Schritt werden die Testdaten benutzt, um festzustellen, ob die Zuordnung zu den Kategorien korrekt ist. Anhand der auftretenden Klassifizierungsfehler (Pferde, die als Hunde erkannt werden) kann die Qualität der Zuordnung bestimmt werden. Der Analyst kann dann durch das Feintuning der Parameter eine Verbesserung versuchen.
Für die praktische Anwendung gilt, dass Fortschritte bei Hardware und Software die Anwendung erleichtern, indem dem Analysten leistungsfähige Bibliotheken zur Verfügung gestellt werden, die insbesondere die rechenintensiven Verfahrensschritte automatisieren und beschleunigen. Damit verbunden steigen auch die Anforderungen an den Analysten, die richtige Auswahl zu treffen und die Ergebnisse angemessen interpretieren zu können.
Die bisher vorgestellten Methoden erfordern immer einen gelabelten Testdatensatz. Im nun folgenden Unsupervised Learning wird diese Bedingung aufgegeben.
2.2 Unsupervised Learning
Bei dieser Form des Lernens sind die Datensätze ohne Label, also nicht klassifiziert. Der eingesetzte Algorithmus versucht, Muster zu erkennen, und damit eine oder mehrere Strukturen zu definieren9. Basis sind Ähnlichkeiten oder auch Unterschiede in den Eigenschaften der betrachteten Items. Typisch sind daher auch sogenannte Clustering- Verfahren, bei der Items bestimmten Haufen zugeordnet werden. So kann der Algorithmus z.B. anhand der Kriterien Farbe und Süße verschiedene Obst und Gemüse zu Gruppen zusammenstellen. Die Bezeichnung der Cluster liegt dabei beim Analysten, der Algorithmus kann das nicht tun. Damit wächst auch die Gefahr, dass subjektive Vorstellungen über Gruppen hier zu vorschneller Vergabe von Labels führen; dies gilt gerade im Bereich sozialwissenschaftlicher Untersuchungen. Ein Unterschied zum Überwachten Lernen besteht darin, dass es im Regelfall kein richtiges oder falsches Clustern gibt. Im Vordergrund steht nicht die Vorhersage, sondern die Gewinnung von Erkenntnissen über Gruppen.
Ein typischer Vertreter der Gruppe der Clustering-Verfahren ist das KMeans-Verfah- ren10. Das K bezieht sich auf die gewünschte Anzahl Cluster, auf die die Items zugeordnet werden sollen. Nachdem die ersten Datenpunkte im Feature-Raum allokiert wurden, werden die anderen Datenpunkte aufgrund ihrer Nähe zugeordnet. Nach dieser initialen Phase erfolgt ein sukzessives Updaten, bei der die Clustermittel jeweils als Mittelwert „ihrer" Clusterelemente bestimmt werden. Das Verfahren ist beendet, wenn keine Verschiebungen mehr vorkommen.
Genannt werden soll noch das Verfahren Primary Component Analysis (PCA, Hauptkomponentenanalyse11 ). Hier liegt die Zielsetzung in der Reduzierung der Dimensionen, d.h. der Anzahl Variablen. Durch mathematische Umformungen werden Variablen, die nur einen geringen Einfluss auf das Ergebnis haben, herausgenommen. Dies erleichtert die weitere Verarbeitung, so dass die PCA auch oft als vorbereitendes Verfahren für weitere Analysen eingesetzt wird.
Die bisher genannten Methodenfamilien basieren auf definierten Datensätzen, in denen die Algorithmen nach Mustern suchen. Wenn ein Roboter in einem Lager am Beginn seines Weges keine Informationen über seine Umgebung hat, sich aber dennoch orientieren soll, so muss Machine Learning hier andere Wege gehen. Eine Möglichkeit stellt das Reinforcement Learning dar, das im nächsten Kapitel vorgestellt wird.
2.3 Reinforcement Learning
Im Spiel Go „Computer gegen Mensch" wurde auf Seiten des Computers Verstärkungslernen (Reinforcement Learning) eingesetzt12. Der Algorithmus erhält eine Zielfunktion (z.B. einen Score in einem Spiel) sowie eine Reihe von Eingabe- Parametern. Zentral sind nun die Rückkopplungen, die das System enthält. Diese positiven oder negativen Feedbacks zusammen mit dem erzielten Score führen zu einem Lernergebnis. So hat Alpha Go verschiedene Videospiele gemeistert, ohne explizit über die Spielregeln informiert worden zu sein. Besonderes Augenmerk muss dabei auf den Zeitfaktor der Rückkopplung gelegt werden, denn die Belohnungen manifestieren sich oft erst über einen längeren Zeitraum.
Ein anderer Ansatz, Probleme zu lösen ohne ausreichende Daten über Ursache/Wirkungszusammenhänge zu haben stellt das Künstliche Neuronale Netz dar.
2.4 Neuronale Netze
Künstliche Neuronale Netze (KNN) gehören vom Prinzip her zu den ältesten ML-Me- chanismen, auch wenn ihr Erfolg bedingt durch den schnellen Fortschritt bei Hard- und Software erst in den letzten 10 Jahren begonnen hat. In einem KNN werden die Neuronen des menschlichen Gehirns simuliert13. Input und Output werden meist durch mehrere Layer verknüpft und durch einen Rückkopplungsmechanismus in eine Lernschleife versetzt (Backpropagation). Die Einsatzmöglichkeiten sind sehr vielfältig, sie reichen von der Gesichtserkennung bis zur Tornadovorhersage. Besonders leistungsfähig sind die KNNs bei Problemen, bei denen nur geringes systematisches Wissen über die Problemstellung vorhanden ist. Ein Nachteil kann im Black Box-Charakter14 des Netzes gesehen werden; eine nachvollziehbare Analyse der Entscheidungen ist in den meisten Anwendungsfällen nicht möglich.
3. Python und seine Anwendung im Machine Learning
Die konkrete Modellierung der Aufgabenstellung wird in der Programmiersprache Python durchgeführt. Es handelt sich um eine interpretierende Programmiersprache, d.h., Anweisungen in der Kommandozeile werden unmittelbar in Maschinencode übersetzt und ausgeführt. Python wird häufig das „Schweizer Taschenmesser" der Datenanalyse genannt. Diese Bezeichnung liegt begründet in15:
- Einer Vielzahl von Bibliotheken, die für mathematische und statistische Operationen vorcodierte Befehlsfolgen enthalten16.
- Datencontainern, die für die Aufgaben des Data Mining hervorragend geeignet sind17.
- Mit Sklearn eine speziell auf das Machine Learning ausgerichtete Bibliothek, die mit wenigen Befehlen komplexe Analysen erlaubt.
- Die permanente Weiterentwicklung wird durch eine aktive Community betrieben, die für eine Vielzahl von Problemen Lösung bereithält.
Die im Machine Learning häufig genutzten Bibliotheken werden oft unter der Bezeichnung „Data Science Stack" zusammengefasst. Dazu gehören insbesondere:
- Numpy (Basis für viele mathematische Operationen, stellt mit dem Numpy-Array einen vieldimensionalen Container bereit)18
- Pandas (erweitert Core Python um den Data Frame, eine der Programmiersprache R nachgebildete tabellarische Struktur, die sich durch eine Vielzahl integrierter Manipulationen auszeichnet).
- Matplotlib (eine Bibliothek mit der man Diagramme und Darstellungen erzeugen kann). Für die explorative Datenanalyse ein sehr hilfreiches Tool, da es einen schnellen Überblick über Datensätze ermöglicht und Analysen zu veranschaulichen hilft.
Auf weitere Bibliotheken wird in Kapital 5 eingegangen, insbesondere im Bereich Visualisierung und Machine Learning.
4. Empfehlungssysteme
4.1 Überblick
Empfehlungssysteme finden eine breite Anwendung in alltäglichen Applikationen: Ama- zon-Kunden werden Produkte vorgeschlagen, die für sie interessant sein können, Spo- tify-Nutzer erhalten Vorschläge für neue Songs und Netflix-Zuschauer erweitern anhand der Empfehlungen ihre private Videothek19. Gerade der Film-Streamingdienst Netflix ist ein interessantes Beispiel für die Bedeutung von Empfehlungssystemen: das Unternehmen hat daher bereits Wettbewerbe ausgeschrieben, bei dem der beste Algorithmus für die Filmauswahl gesucht wurde; der Sieger trat dann in Wettstreit mit dem unternehmenseigenen Verfahren20
Empfehlungen generiert werden auf verschiedenen Wegen, dazu gehören von Mensehen generierte Empfehlungen (von Freunden, von Fachleuten als kuratierte Auswahl), aber in jüngerer Zeit verstärkt auf Basis von Daten und darauf angewandten Algorithmen.
Grundsätzlich müssen Systeme unterschieden werden, die personalisierte Empfehlungen aussprechen, von solchen, die jedem Nutzer dieselbe Empfehlung geben- beispielsweise basierend auf einer Liste der beliebtesten Produkte (dazu gehören u.a. die bekannten Bestsellerlisten)21. Im Folgenden werden die personalisierten Systeme weiter betrachtet. Die Personalisierung beruht dabei auf der Konstruktion eines Benutzerprofiles. Dieses Profil kann aktiv erstellt werden, z.B. durch den Nutzer selbst, indem dieser aus einer Merkmalsliste für ihn zutreffende Kriterien auswählt. Die Profilerstellung kann aber auch ohne aktives Tun des Nutzers erfolgen, indem aus seinen Aktivitäten (z.B. der Auswahl seiner Musiktitel) auf seine Präferenzen geschlossen wird. Im Folgenden werden die wichtigsten Systeme genannt und klassifiziert.
Eine wichtige Gruppe sind die inhaltsbasierten Systeme (Content-based). Hier würde für einen Musik-Streamingdienst eine Klassifikation der Songs und Alben nach Genre, Musiker, Orchester, Komponist usw. erfolgen. Wenn nun ein Nutzer ein bestimmtes Album hört, so kann er Empfehlungen erhalten von Alben, die nach dem Klassifikationsschema als ähnlich eingestuft wurden. Einen anderen Weg gehen die Systeme des kol- laborativen Filterns (collaborative filtering). Ausschlaggebend ist das Verhalten der Nutzer, das durch ihre Aktivitäten offenbart wird22
Mag Nutzer A z.B. einen Harry Potter- Film, so wird dieser Film auch Nutzer B vorgeschlagen, weil B in der Vergangenheit in seiner Auswahl ähnlich zu A war. Diese spezielle Variante wird Nutzer-basiertes kollaboratives Filtern genannt23. Eine zweite Variante ist das Produkt-basierte kollaborative Filtern24. Werden verschiedene Bücher X, Y und Z von den Nutzern mit einem 5-Sterne Urteil bedacht, und kauft ein neuer Nutzer nun das Buch Y, so erhält er z.B. X als weitere Empfehlung („Dieses Buch könnte Ihnen auch gefallen"). Bereits diese kurzen Erläuterungen zeigen, dass Bewertungen eine zentrale Rolle spielen. Das Zustandekommen von Bewertungen soll daher etwas genauer hinterfragt werden.
Warum nehmen Nutzer sich die Zeit, eine Bewertung abzugeben25:
- Nutzer bewerten, um ihr eigenes Profil zu verbessern, und in Zukunft mehr auf sie zugeschnittene Empfehlungen zu erhalten.
- Nutzer drücken mit der Bewertung ihre eigene Meinung aus, was vielleicht ihr Selbstwertgefühl stärken hilft.
- Nutzer möchten andere Nutzer warnen, ein bestimmtes Produkt nicht oder nicht in dieser Form zu genießen.
- Im umgekehrten Fall können Nutzer auch versuchen, andere Nutzer zum Erwerb des Produktes zu überreden („Influencer"); eine gerade im E-Commerce Geschäft nicht zu unterschätzende Gefahr: einzelne Produkte werden durch Gefälligkeitsreviews stark in den Auswahllisten in vordere Positionen gebracht.
Gerade der letzte Punkt zeigt, wie wichtig es für den Betreiber eines Empfehlungssystems ist, eine Manipulation der Bewertungen auszuschließen oder zumindest zu reduzieren. Die Größe Vertrauen, die ein Nutzer dem System entgegenbringt, ist letztlich dafür verantwortlich, ob das System genutzt und vor allem auch an neue Nutzer weiterempfohlen wird.
Einen ganz anderen Ansatz verfolgen die Wissens-basierten Verfahren (Knowledge-based)26. Hier wird über die Beziehung zwischen Kundennutzen und Produkteigenschaften unter Einbeziehung von Wissensdatenbanken ein Empfehlungsmodell erstellt.
Diese Systeme werden bevorzugt eingesetzt, wenn es sich um komplexe Produkte handelt, bei denen die schiere Zahl der Auswahlmerkmale eine besondere Vorgehensweise erfordert; in Kapitel 4.5 wird dieser Ansatz im Detail erläutert.
[...]
1 http//www.supplychaintoday.com/machine-learning-quotes-supply-chain-today/
2 Ricci, Francesco/ Rokach, Lior/ Shapira, Bracha/ Kantor, Paul B. (2011), S.2
3 Nguyen, Chi Nhan/ Zeigermann, Oliver (2018), S.14
4 Ertel, Wolfgang (2016), S. 6
5 Nguyen, Chi Nhan/ Zeigermann, Oliver (2018), S. 21
6 https://www.kaggle.Com/c/boston-housing
7 Nguyen, Chi Nhan/ Zeigermann, Oliver (2018), S. 130
8 Lantz, Brett (2013), S. 67
9 Nguyen, Chi Nhan/ Zeigermann, Oliver (2018), S. 23
10 Richert, Willi/ Coelho, Luis Pedro (2013), S. 63
11 Richert, Willi/ Coelho, Luis Pedro (2013), S. 248
12 Ertel, Wolfgang (2016), S.287
13 Grus, Joel (2015), S. 302
14 Grus, Joel (2015), S. 301
15 Müller, Andreas C./ Guido, Sarah (2017), S. 25
16 Nguyen, Chi Nhan/ Zeigermann, Oliver (2018), S. 46
17 Nguyen, Chi Nhan/ Zeigermann, Oliver (2018), S.51
18 https://www.numpy.org/
19 Klahold, Andre (2009), S.4
20 Ricci, Francesco/ Rokach, Lior/ Shapira, Bracha/ Kantor, Paul B. (2011), S. 150
21 Ricci, Francesco/ Rokach, Lior/ Shapira, Bracha/ Kantor, Paul B. (2011), S.11
22 Klahold, Andre (2009), S.62
23 Ekstrand, Michael D./ Riedl, John T./ Konstan, Joseph A. (2011), S. 91
24 Ekstrand, Michael D./ Riedl, John T./ Konstan, Joseph A. (2011), S. 95
25 Herlocker, Jonathan L./Konstan, Joseph A./ Terveen, Loren G./ Riedl, John T. (2004), S.11
26 Aggarwal, Charu C. (2016), S. 168