Lade Inhalt...

Design, Test und Validierung von Machine Learning-basierten Empfehlungssystemen unter Anwendung der Programmiersprache Python

Projektarbeit 2019 43 Seiten

Informatik - Angewandte Informatik

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 ge­nannt, prominent das autonome Fahren oder die Gesichtserkennung. Mit ML ausgerüs­tete 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 vorgedrun­gen 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 An­wendung.

1.1 Problemstellung

Empfehlungssysteme können basiert sein auf persönlichen Empfehlungen von Freun­den, auf den Ratschlägen von Experten, oder aber auf bestimmten Algorithmen2. In vie­len 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 Datenge­winnung, der Bereinigung des Quellmaterials, der Visualisierung und der Evaluation be­trachtet.

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, Programmbibli­otheken zur programmtechnischen Implementierung sowie eine strukturierte Daten­Pipeline.

Diese Logik wird im Aufbau der Arbeit gespiegelt:

Kapitel 2 gibt einen konzentrierten Überblick über die Methodenwelt des Machine Lear­ning, 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 be­stimmt dann ein passendes Programm3. Die Geschichte des ML beginnt in den 50er Jahren mit den ersten lernenden Schachautomaten (Arthur Samuel) und Frank Rosen­blatts Perzeptron4. Hier soll diese geschichtliche Entwicklung nicht weiterverfolgt wer­den; 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 Chi­nas als Maßstab nimmt- als eine Schlüsseltechnologie des 21. Jahrhunderts eingestuft wird. Im Nachfolgenden wird ein kurzer Überblick über die wichtigsten Methoden gege­ben.

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 Bezie­hung herzustellen. Diese Beziehung wird dann genutzt, für weitere Input-Daten einen Forecast-Wert zu finden. Supervised Learning kann genutzt werden für Regressionsbe­rechnungen, 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üssel­worte sein („gratis") oder die Textlänge. In der 2. Phase wird mit Hilfe eines Testdaten­satzes ü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 Mak­ros 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 Trainings­und 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 An­wendung erleichtern, indem dem Analysten leistungsfähige Bibliotheken zur Verfügung gestellt werden, die insbesondere die rechenintensiven Verfahrensschritte automatisie­ren und beschleunigen. Damit verbunden steigen auch die Anforderungen an den Ana­lysten, 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 meh­rere 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 Algorith­mus 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 Vor­stellungen über Gruppen hier zu vorschneller Vergabe von Labels führen; dies gilt ge­rade im Bereich sozialwissenschaftlicher Untersuchungen. Ein Unterschied zum Über­wachten Lernen besteht darin, dass es im Regelfall kein richtiges oder falsches Clus­tern gibt. Im Vordergrund steht nicht die Vorhersage, sondern die Gewinnung von Er­kenntnissen ü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 zugeord­net 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 Ver­schiebungen mehr vorkommen.

Genannt werden soll noch das Verfahren Primary Component Analysis (PCA, Haupt­komponentenanalyse11 ). 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 orien­tieren 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ärkungs­lernen (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 infor­miert worden zu sein. Besonderes Augenmerk muss dabei auf den Zeitfaktor der Rück­kopplung 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/Wir­kungszusammenhä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 Neuro­nen des menschlichen Gehirns simuliert13. Input und Output werden meist durch meh­rere 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 Py­thon 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 Operatio­nen 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 Bezeich­nung „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 Programmierspra­che R nachgebildete tabellarische Struktur, die sich durch eine Vielzahl integrier­ter 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 veranschauli­chen hilft.

Auf weitere Bibliotheken wird in Kapital 5 eingegangen, insbesondere im Bereich Visua­lisierung 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 an­hand 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 Algo­rithmus 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 Men­sehen generierte Empfehlungen (von Freunden, von Fachleuten als kuratierte Aus­wahl), aber in jüngerer Zeit verstärkt auf Basis von Daten und darauf angewandten Al­gorithmen.

Grundsätzlich müssen Systeme unterschieden werden, die personalisierte Empfehlun­gen aussprechen, von solchen, die jedem Nutzer dieselbe Empfehlung geben- bei­spielsweise basierend auf einer Liste der beliebtesten Produkte (dazu gehören u.a. die bekannten Bestsellerlisten)21. Im Folgenden werden die personalisierten Systeme wei­ter betrachtet. Die Personalisierung beruht dabei auf der Konstruktion eines Benutzer­profiles. 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 Profilerstel­lung 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 Al­bum hört, so kann er Empfehlungen erhalten von Alben, die nach dem Klassifikations­schema als ähnlich eingestuft wurden. Einen anderen Weg gehen die Systeme des kol- laborativen Filterns (collaborative filtering). Ausschlaggebend ist das Verhalten der Nut­zer, das durch ihre Aktivitäten offenbart wird22

Mag Nutzer A z.B. einen Harry Potter- Film, so wird dieser Film auch Nutzer B vorge­schlagen, weil B in der Vergangenheit in seiner Auswahl ähnlich zu A war. Diese spezi­elle Variante wird Nutzer-basiertes kollaboratives Filtern genannt23. Eine zweite Vari­ante 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 Ge­schäft nicht zu unterschätzende Gefahr: einzelne Produkte werden durch Gefäl­ligkeitsreviews stark in den Auswahllisten in vordere Positionen gebracht.

Gerade der letzte Punkt zeigt, wie wichtig es für den Betreiber eines Empfehlungssys­tems ist, eine Manipulation der Bewertungen auszuschließen oder zumindest zu redu­zieren. Die Größe Vertrauen, die ein Nutzer dem System entgegenbringt, ist letztlich da­für verantwortlich, ob das System genutzt und vor allem auch an neue Nutzer weiter­empfohlen wird.

Einen ganz anderen Ansatz verfolgen die Wissens-basierten Verfahren (Knowledge-ba­sed)26. Hier wird über die Beziehung zwischen Kundennutzen und Produkteigenschaf­ten unter Einbeziehung von Wissensdatenbanken ein Empfehlungsmodell erstellt.

Diese Systeme werden bevorzugt eingesetzt, wenn es sich um komplexe Produkte han­delt, 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

Details

Seiten
43
Jahr
2019
ISBN (eBook)
9783346091987
ISBN (Buch)
9783346091994
Sprache
Deutsch
Katalognummer
v511500
Institution / Hochschule
AKAD University, ehem. AKAD Fachhochschule Stuttgart
Note
1,7
Schlagworte
Python Machine Learning

Autor

Zurück

Titel: Design, Test und Validierung von Machine Learning-basierten Empfehlungssystemen unter Anwendung der Programmiersprache Python