Kapitel 1. Vom Produktziel zum ML-Framing
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
ML ermöglicht es Maschinen, aus Daten zu lernen und sich auf probabilistische Weise zu verhalten, um Probleme zu lösen, indem sie für ein bestimmtes Ziel optimiert werden. Dies steht im Gegensatz zur traditionellen Programmierung, bei der ein Programmierer Schritt-für-Schritt-Anweisungen schreibt, die beschreiben, wie ein Problem zu lösen ist. Das macht ML besonders nützlich, um Systeme zu bauen, für die wir keine heuristische Lösung definieren können.
Abbildung 1-1 beschreibt zwei Möglichkeiten, ein System zur Erkennung von Katzen zu schreiben. Auf der linken Seite besteht ein Programm aus einem Verfahren, das manuell geschrieben wurde. Auf der rechten Seite nutzt ein ML-Ansatz einen Datensatz mit Fotos von Katzen und Hunden, die mit dem entsprechenden Tier beschriftet sind, damit ein Modell die Zuordnung von Bild zu Kategorie lernen kann. Beim ML-Ansatz gibt es keine Vorgaben, wie das Ergebnis erreicht werden soll, sondern nur eine Reihe von Beispieleingaben und -ausgaben.
ML ist leistungsfähig und kann völlig neue Produkte hervorbringen, aber da es auf Mustererkennung basiert, bringt es ein gewisses Maß an Unsicherheit mit sich. Es ist wichtig, herauszufinden, welche Teile eines Produkts von ML profitieren würden und wie man ein Lernziel so formuliert, dass das Risiko einer schlechten Erfahrung für die Nutzer/innen minimiert wird.
Für Menschen ist es zum Beispiel nahezu unmöglich (und extrem zeitaufwändig), Schritt-für-Schritt-Anweisungen zu schreiben, um anhand der Pixelwerte automatisch zu erkennen, welches Tier auf einem Bild zu sehen ist. Wenn wir jedoch Tausende von Bildern verschiedener Tiere in ein Faltungsneuronales Netzwerk (CNN) einspeisen, können wir ein Modell erstellen, das diese Klassifizierung genauer durchführt als ein Mensch. Das macht es zu einer attraktiven Aufgabe, die mit ML angegangen werden kann.
Auf der anderen Seite sollte sich eine Anwendung, die deine Steuern automatisch berechnet, auf die von der Regierung vorgegebenen Richtlinien verlassen. Wie du vielleicht schon gehört hast, sind Fehler in deiner Steuererklärung generell verpönt. Das macht den Einsatz von ML für die automatische Erstellung von Steuererklärungen zu einer fragwürdigen Angelegenheit.
Du solltest niemals ML verwenden, wenn du dein Problem mit einer überschaubaren Menge an deterministischen Regeln lösen kannst. Mit überschaubar meine ich eine Reihe von Regeln, die du getrost schreiben kannst und die nicht zu komplex zu pflegen sind.
Während ML also eine Welt von verschiedenen Anwendungen eröffnet, ist es wichtig, darüber nachzudenken, welche Aufgaben mit ML gelöst werden können und sollten. Wenn du Produkte entwickelst, solltest du von einem konkreten Geschäftsproblem ausgehen, feststellen, ob es ML erfordert, und dann daran arbeiten, den ML-Ansatz zu finden, der es dir ermöglicht, so schnell wie möglich zu iterieren.
Wir werden diesen Prozess in diesem Kapitel behandeln, beginnend mit Methoden zur Einschätzung, welche Aufgaben durch ML gelöst werden können, welche ML-Ansätze für welche Produktziele geeignet sind und wie man an die Datenanforderungen herangeht. Ich werde diese Methoden anhand der Fallstudie zum ML-Editor veranschaulichen, die wir in "Unsere Fallstudie" erwähnt haben : ML-Assisted Writing" erwähnt haben, und einem Interview mit Monica Rogati.
Schätzen, was möglich ist
Da ML-Modelle Aufgaben bewältigen können, ohne dass Menschen ihnen Schritt für Schritt Anweisungen geben müssen, können sie einige Aufgaben besser erledigen als menschliche Experten (z. B. Tumore auf Röntgenbildern erkennen oder Go spielen) und einige, die für Menschen völlig unzugänglich sind (z. B. aus einem Pool von Millionen von Artikeln Artikel empfehlen oder die Stimme eines Sprechers so verändern, dass sie wie eine andere Person klingt).
Die Fähigkeit von ML, direkt aus Daten zu lernen, macht es für eine breite Palette von Anwendungen nützlich, erschwert es aber den Menschen, genau zu unterscheiden, welche Probleme mit ML lösbar sind. Für jedes erfolgreiche Ergebnis, das in einer Forschungsarbeit oder einem Unternehmensblog veröffentlicht wird, gibt es Hunderte von vernünftig klingenden Ideen, die völlig fehlgeschlagen sind.
Zwar gibt es derzeit keine todsichere Methode, um den Erfolg von ML vorherzusagen ( ), aber es gibt Richtlinien, die dir helfen können, das Risiko eines ML-Projekts zu verringern. Am wichtigsten ist, dass du immer mit einem Produktziel beginnst und dann entscheidest, wie du es am besten lösen kannst. In dieser Phase solltest du für jeden Ansatz offen sein, egal ob er ML erfordert oder nicht. Wenn du ML-Ansätze in Betracht ziehst, achte darauf, dass du sie danach bewertest, wie gut sie für das Produkt geeignet sind, und nicht einfach danach, wie interessant die Methoden im luftleeren Raum sind.
Der beste Weg, dies zu tun, besteht darin, zwei aufeinanderfolgende Schritte zu befolgen: (1) Du formulierst dein Produktziel in einem ML-Paradigma, und (2) du bewertest die Machbarkeit dieser ML-Aufgabe. Je nach Bewertung kannst du deine Aufgabenstellung anpassen, bis wir zufrieden sind. Lass uns untersuchen, was diese Schritte wirklich bedeuten.
-
Ein Produktziel in einem ML-Paradigma formulieren: Wenn wir ein Produkt entwickeln, denken wir zuerst darüber nach, welchen Service wir den Nutzern bieten wollen. Wie in der Einleitung erwähnt, werden wir die Konzepte in diesem Buch anhand des Fallbeispiels eines Editors veranschaulichen, der Nutzern hilft, bessere Fragen zu schreiben. Das Ziel dieses Produkts ist klar: Wir wollen, dass die Nutzer/innen umsetzbare und nützliche Ratschläge zu den von ihnen geschriebenen Inhalten erhalten. ML-Probleme haben jedoch einen ganz anderen Rahmen. Bei einem ML-Problem geht es darum, eine Funktion aus Daten zu lernen. Ein Beispiel ist das Lernen, einen Satz in einer Sprache aufzunehmen und ihn in einer anderen auszugeben. Für ein Produktziel gibt es in der Regel viele verschiedene ML-Formulierungen mit unterschiedlichen Schwierigkeitsgraden bei der Umsetzung.
-
Bewertung der ML-Durchführbarkeit: Nicht alle ML-Probleme sind gleich! Während sich unser Verständnis von ML weiterentwickelt hat, sind Probleme wie die Erstellung eines Modells zur korrekten Klassifizierung von Fotos von Katzen und Hunden innerhalb weniger Stunden lösbar geworden, während andere, wie die Entwicklung eines Systems, das in der Lage ist, ein Gespräch zu führen, nach wie vor offene Forschungsprobleme sind. Um ML-Anwendungen effizient zu entwickeln, ist es wichtig, mehrere potenzielle ML-Framings in Betracht zu ziehen und mit denjenigen zu beginnen, die wir für die einfachsten halten. Eine der besten Möglichkeiten, die Schwierigkeit eines ML-Problems einzuschätzen, besteht darin, sowohl die Art der benötigten Daten als auch die vorhandenen Modelle zu betrachten, die diese Daten nutzen könnten.
Um verschiedene Framings vorzuschlagen und ihre Machbarkeit zu bewerten, sollten wir zwei zentrale Aspekte eines ML-Problems untersuchen: Daten und Modelle.
Wir werden mit Modellen beginnen.
Modelle
Es gibt viele gebräuchliche Modelle in ML, und wir werden hier keinen Überblick über sie alle geben. Einen ausführlicheren Überblick findest du in den Büchern, die unter "Zusätzliche Ressourcen" aufgeführt sind. Zusätzlich zu den gängigen Modellen werden wöchentlich viele Modellvarianten, neue Architekturen und Optimierungsstrategien veröffentlicht. Allein im Mai 2019 wurden mehr als 13.000 Arbeiten bei ArXiv eingereicht, einem beliebten elektronischen Forschungsarchiv, in dem häufig Arbeiten über neue Modelle veröffentlicht werden.
Es ist jedoch sinnvoll, einen Überblick über die verschiedenen Kategorien von Modellen zu geben und darüber, wie sie auf unterschiedliche Probleme angewendet werden können. Zu diesem Zweck schlage ich hier eine einfache Taxonomie von Modellen vor, die darauf basiert, wie sie ein Problem angehen. Du kannst sie als Leitfaden für die Auswahl eines Ansatzes zur Lösung eines bestimmten ML-Problems verwenden. Da Modelle und Daten in der ML eng miteinander verbunden sind, gibt es einige Überschneidungen zwischen diesem Abschnitt und "Datentypen".
ML Algorithmen können danach kategorisiert werden, ob sie Labels benötigen. Dabei bezieht sich ein Label auf das Vorhandensein einer idealen Ausgabe in den Daten, die ein Modell für ein bestimmtes Beispiel erzeugen sollte. Überwachte Algorithmen nutzen Datensätze, die Labels für Eingaben enthalten, und versuchen, eine Zuordnung von Eingaben zu Labels zu lernen. Unüberwachte Algorithmen hingegen benötigen keine Kennzeichnungen. Schwach überwachte Algorithmen schließlich nutzen Kennzeichnungen, die nicht genau dem gewünschten Ergebnis entsprechen, ihm aber in gewisser Weise ähneln.
Viele Produktziele können sowohl mit überwachten als auch mit unüberwachten Algorithmen angegangen werden. Ein Betrugserkennungssystem kann erstellt werden, indem ein Modell trainiert wird, um Transaktionen zu erkennen, die vom Durchschnitt abweichen, ohne dass Kennzeichnungen erforderlich sind. Ein solches System könnte auch durch die manuelle Kennzeichnung von Transaktionen als betrügerisch oder legitim erstellt werden und ein Modell trainieren, das aus diesen Kennzeichnungen lernt.
Für die meisten Anwendungen sind überwachte Ansätze einfacher zu validieren, da wir Zugang zu Labels haben, um die Qualität der Vorhersage eines Modells zu beurteilen. Das macht es auch einfacher, Modelle zu trainieren, da wir Zugang zu den gewünschten Ergebnissen haben. Auch wenn die Erstellung eines beschrifteten Datensatzes anfangs zeitaufwändig sein kann, ist es viel einfacher, Modelle zu erstellen und zu validieren. Aus diesem Grund werden in diesem Buch hauptsächlich überwachte Ansätze behandelt.
Unter kannst du die möglichen Ansätze deutlich eingrenzen, indem du festlegst, welche Art von Eingaben dein Modell benötigt und welche Ergebnisse es produzieren soll. Je nach Art der Inputs könnte eine der folgenden Kategorien von ML-Ansätzen eine gute Wahl sein:
-
Klassifizierung und Regression
-
Wissensextraktion
-
Katalogorganisation
-
Generative Modelle
Ich werde im folgenden Abschnitt näher darauf eingehen. Wenn wir uns mit den verschiedenen Modellierungsansätzen beschäftigen, empfehle ich, darüber nachzudenken, welche Art von Daten dir zur Verfügung steht oder die du sammeln könntest. Oft ist die Verfügbarkeit von Daten der begrenzende Faktor bei der Modellauswahl.
Klassifizierung und Regression
Einige Projekte konzentrieren sich darauf, Datenpunkte effektiv zwischen zwei oder mehr Kategorien zu klassifizieren oder ihnen einen Wert auf einer kontinuierlichen Skala zuzuweisen (als Regression statt Klassifizierung bezeichnet). Regression und Klassifizierung sind zwar technisch unterschiedlich, aber die Methoden, mit denen sie angegangen werden, überschneiden sich oft stark, deshalb fassen wir sie hier zusammen.
Einer der Gründe, warum sich Klassifizierung und Regression ähneln, ist, dass die meisten Klassifizierungsmodelle eine Wahrscheinlichkeitsbewertung für die Zugehörigkeit eines Modells zu einer Kategorie ausgeben. Der Klassifizierungsaspekt besteht dann darin, zu entscheiden, wie ein Objekt auf der Grundlage dieser Punktzahl einer Kategorie zugeordnet werden soll. Auf einer hohen Ebene kann ein Klassifizierungsmodell also als Regression auf Wahrscheinlichkeitswerte betrachtet werden.
Üblicherweise klassifizieren oder bewerten wir einzelne Beispiele, wie z.B. Spamfilter, die jede E-Mail als gültig oder Junk klassifizieren, Betrugserkennungssysteme, die Nutzer/innen als betrügerisch oder legitim einstufen, oder Computer Vision Radiologiemodelle, die Knochen als gebrochen oder gesund einstufen.
In Abbildung 1-2 siehst du ein Beispiel dafür, wie einen Satz nach seiner Stimmung und dem Thema klassifiziert, das er behandelt.
Bei Regressionsprojekten ordnen wir jedem Beispiel nicht eine Klasse zu, sondern geben ihm einen Wert. Ein Beispiel für ein Regressionsproblem ist die Vorhersage des Verkaufspreises eines Hauses anhand von Merkmalen wie der Anzahl der Zimmer und der Lage des Hauses.
In manchen Fällen haben wir Zugang zu einer Reihe von Datenpunkten aus der Vergangenheit (anstelle von einem), um ein Ereignis in der Zukunft vorherzusagen. Diese Art von Daten wird oft als eine Zeitreihe bezeichnet, und Vorhersagen aus einer Reihe von Datenpunkten werden unter als Prognosen bezeichnet. Zeitreihendaten könnten die Krankengeschichte eines Patienten oder eine Reihe von Besucherzahlen in Nationalparks darstellen. Diese Projekte profitieren oft von Modellen und Funktionen, die diese zusätzliche zeitliche Dimension nutzen können.
In anderen Fällen versuchen wir, ungewöhnliche Ereignisse in einem Datensatz zu erkennen. Dies wird als Anomalieerkennung bezeichnet. Wenn es bei einem Klassifizierungsproblem um die Erkennung von Ereignissen geht, die nur eine kleine Minderheit der Daten ausmachen und daher schwer genau zu erkennen sind, werden oft andere Methoden benötigt. Eine Nadel aus einem Heuhaufen herauszusuchen ist hier eine gute Analogie.
Eine gute Klassifizierungs- und Regressionsarbeit erfordert in den meisten Fällen eine umfangreiche Merkmalsauswahl und Merkmalsentwicklung. Bei der Merkmalsauswahl geht es darum, eine Untergruppe von Merkmalen zu ermitteln, die den größten Vorhersagewert haben. Bei der Feature-Generierung geht es darum, gute Prädiktoren für ein Ziel zu identifizieren und zu generieren, indem bestehende Features eines Datensatzes verändert und kombiniert werden. Wir werden diese beiden Themen in Teil III ausführlicher behandeln.
In jüngster Zeit hat Deep Learning seine vielversprechende Fähigkeit gezeigt, automatisch nützliche Merkmale aus Bildern, Texten und Audiodaten zu generieren. In Zukunft könnte es eine größere Rolle bei der Vereinfachung der Merkmalsgenerierung und -auswahl spielen, aber vorerst bleiben sie integraler Bestandteil des ML-Workflows.
Schließlich können wir oft auf der zuvor beschriebenen Klassifizierung oder Bewertung aufbauen, um nützliche Ratschläge zu geben. Dazu müssen wir ein interpretierbares Klassifizierungsmodell erstellen und dessen Merkmale nutzen, um umsetzbare Ratschläge zu geben. Mehr dazu später!
Nicht alle Probleme zielen darauf ab, einem Beispiel eine Reihe von Kategorien oder Werten zuzuordnen. In manchen Fällen möchten wir auf einer detaillierteren Ebene arbeiten und Informationen aus Teilen einer Eingabe extrahieren, z. B. wenn wir wissen wollen, wo sich ein Objekt in einem Bild befindet.
Wissensextraktion aus unstrukturierten Daten
Strukturierte Daten sind Daten, die in einem tabellarischen Format gespeichert sind. Datenbanktabellen und Excel-Tabellen sind gute Beispiele für strukturierte Daten. Unstrukturierte Daten sind Datensätze, die nicht in einem tabellarischen Format vorliegen. Dazu gehören Texte (aus Artikeln, Rezensionen, Wikipedia und so weiter), Musik, Videos und Lieder.
In Abbildung 1-3 siehst du ein Beispiel für strukturierte Daten auf der linken Seite und unstrukturierte Daten auf der rechten Seite. Modelle zur Wissensextraktion konzentrieren sich darauf, aus einer Quelle unstrukturierter Daten mithilfe von ML eine Struktur zu extrahieren.
Im Falle von Text kann die Wissensextraktion zum Beispiel genutzt werden, um den Bewertungen Struktur zu verleihen. Ein Modell kann trainiert werden, um Aspekte wie Sauberkeit, Servicequalität und Preis aus den Bewertungen zu extrahieren. Die Nutzer/innen können dann leicht auf Bewertungen zugreifen, die Themen erwähnen, die sie interessieren.
Im medizinischen Bereich könnte ein Modell zur Wissensextraktion erstellt werden, das Rohtexte aus medizinischen Zeitungen als Eingabe nimmt und Informationen wie die in der Zeitung besprochene Krankheit sowie die dazugehörige Diagnose und ihre Leistung extrahiert. In Abbildung 1-4 nimmt ein Modell einen Satz als Eingabe und extrahiert, welche Wörter sich auf einen Medientyp und welche Wörter sich auf den Titel eines Mediums beziehen. Wenn wir ein solches Modell auf Kommentare in einem Fanforum anwenden, können wir zum Beispiel Zusammenfassungen darüber erstellen, welche Filme häufig diskutiert werden.
Bei Bildern besteht die Aufgabe der Wissensextraktion oft darin, interessante Bereiche in einem Bild zu finden und sie zu kategorisieren. Zwei gängige Ansätze sind in Abbildung 1-5 dargestellt: Die Objekterkennung ist ein gröberer Ansatz, bei dem Rechtecke (sogenannte Bounding Boxes) um die interessierenden Bereiche gezeichnet werden, während die Segmentierung jedes Pixel eines Bildes genau einer bestimmten Kategorie zuordnet.
Manchmal können diese extrahierten Informationen als Input für ein anderes Modell verwendet werden. Ein Beispiel ist die Verwendung eines Posenerkennungsmodells, um Schlüsselpunkte aus einem Video eines Yogis zu extrahieren und diese Schlüsselpunkte an ein zweites Modell weiterzuleiten, das die Pose anhand von markierten Daten als richtig oder falsch klassifiziert. Abbildung 1-6 zeigt ein Beispiel für eine Reihe von zwei Modellen, die genau das tun könnten. Das erste Modell extrahiert strukturierte Informationen (die Koordinaten der Gelenke) aus unstrukturierten Daten (einem Foto), und das zweite Modell nimmt diese Koordinaten und klassifiziert sie als Yogastellung.
Die Modelle, die wir bisher gesehen haben, konzentrieren sich auf die Erzeugung von Ergebnissen, die von einer bestimmten Eingabe abhängen. In einigen Fällen, z. B. bei Suchmaschinen oder Empfehlungssystemen, geht es darum, relevante Artikel zu finden. Das werden wir in der folgenden Kategorie behandeln .
Katalogorganisation
Katalog Organisationsmodelle produzieren meist eine Reihe von Ergebnissen, die den Nutzern präsentiert werden. Diese Ergebnisse können von einer in eine Suchleiste eingegebenen Zeichenkette, einem hochgeladenen Bild oder einem mit einem Assistenten gesprochenen Satz abhängen. In vielen Fällen, wie z. B. bei Streaming-Diensten, können diese Ergebnisse dem Nutzer auch proaktiv als Inhalte präsentiert werden, die ihm gefallen könnten, ohne dass er überhaupt eine Anfrage stellt.
Abbildung 1-7 zeigt ein Beispiel für ein solches System, das potenzielle Filmkandidaten auf der Grundlage eines Films, den der/die Nutzer/in gerade gesehen hat, vorschlägt, ohne dass der/die Nutzer/in irgendeine Form der Suche durchführen muss.
Diese Modelle empfehlen also entweder Artikel, die mit einem Artikel verwandt sind, für den sich der/die Nutzer/in bereits interessiert hat (ähnliche Medium-Artikel oder Amazon-Produkte), oder sie bieten eine nützliche Möglichkeit, einen Katalog zu durchsuchen (so dass Nutzer/innen nach Artikeln suchen können, indem sie Text eingeben oder ihre eigenen Fotos einreichen).
Diese Empfehlungen basieren meist auf dem Lernen aus früheren Nutzermustern. In diesem Fall werden sie kollaborative Empfehlungssysteme genannt. In diesem Fall spricht man von inhaltsbasierten Empfehlungssystemen. Einige Systeme nutzen sowohl kollaborative als auch inhaltsbasierte Ansätze.
Schließlich kann ML auch für kreative Zwecke eingesetzt werden. Modelle können lernen, ästhetisch ansprechende Bilder, Töne und sogar lustige Texte zu erzeugen. Solche Modelle werden als generative Modelle bezeichnet.
Generative Modelle
Generative Modelle konzentrieren sich auf die Generierung von Daten, die möglicherweise von Benutzereingaben abhängen. Da sich diese Modelle auf die Generierung von Daten konzentrieren, anstatt sie in Kategorien einzuteilen, zu bewerten, Informationen aus ihnen zu extrahieren oder sie zu organisieren, haben sie in der Regel eine große Bandbreite an Ergebnissen. Das bedeutet, dass generative Modelle besonders gut für Aufgaben wie die Übersetzung geeignet sind, bei denen die Ergebnisse sehr vielfältig sind.
Auf der anderen Seite werden generative Modelle oft zum Trainieren verwendet und haben weniger eingeschränkte Ergebnisse, was sie für die Produktion riskanter macht. Aus diesem Grund empfehle ich, zuerst mit anderen Modellen zu beginnen, es sei denn, sie sind notwendig, um dein Ziel zu erreichen. Lesern, die tiefer in generative Modelle eintauchen möchten, empfehle ich das Buch Generative Deep Learning von David Foster.
Praktische Beispiele sind die Übersetzung, bei der Sätze in einer Sprache auf eine andere übertragen werden, die Zusammenfassung, die Erstellung von Untertiteln, bei der Videos und Audiospuren auf Transkripte übertragen werden, und die neuronale Stilübertragung (siehe Gatys et al., "A Neural Algorithm of Artistic Style"), bei der Bilder auf stilisierte Wiedergaben übertragen werden.
Abbildung 1-8 zeigt ein Beispiel für ein generatives Modell, das ein Foto auf der linken Seite umwandelt, indem es ihm einen Stil verleiht, der einem Gemälde ähnelt, das in der Vignette auf der rechten Seite gezeigt wird.
Wie du bereits erkennen kannst, erfordert jedes Modell eine andere Art von Daten, die trainiert werden müssen. In der Regel hängt die Wahl eines Modells stark von den Daten ab, die du erhalten kannst - die Datenverfügbarkeit bestimmt oft die Modellauswahl.
Sehen wir uns ein paar gängige Datenszenarien und die dazugehörigen Modelle an.
Daten
Supervised ML-Modelle nutzen Muster in Daten, um nützliche Zuordnungen zwischen Eingaben und Ausgaben zu lernen. Wenn ein Datensatz Merkmale enthält, die das angestrebte Ergebnis vorhersagen, sollte es für ein geeignetes Modell möglich sein, daraus zu lernen. Meistens haben wir jedoch zunächst nicht die richtigen Daten, um ein Modell zu trainieren, das einen Produktanwendungsfall von Anfang bis Ende löst.
Nehmen wir zum Beispiel an, wir trainieren ein Spracherkennungssystem, das auf Kundenanfragen hört, ihre Absichten versteht und entsprechend dieser Absichten Aktionen ausführt. Wenn wir mit der Arbeit an diesem Projekt beginnen, können wir eine Reihe von Absichten definieren, die wir verstehen wollen, wie z. B. "einen Film auf dem Fernseher abspielen".
Um ein ML-Modell für diese Aufgabe zu trainieren, bräuchten wir einen Datensatz mit Audioclips von Nutzern unterschiedlicher Herkunft, die in ihren eigenen Worten darum bitten, dass das System einen Film abspielt. Ein repräsentativer Satz von Eingaben ist entscheidend, denn jedes Modell kann nur aus den Daten lernen, die wir ihm vorlegen. Wenn ein Datensatz nur Beispiele aus einer Teilmenge der Bevölkerung enthält, ist ein Produkt auch nur für diese Teilmenge nützlich. Da wir uns für einen speziellen Bereich entschieden haben, ist es äußerst unwahrscheinlich, dass es bereits einen Datensatz mit solchen Beispielen gibt.
Für die meisten Anwendungen, die wir in Angriff nehmen wollen, müssen wir zusätzliche Daten suchen, kuratieren und sammeln. Der Prozess der Datenerfassung kann je nach Projekt sehr unterschiedlich umfangreich und komplex sein, und es ist wichtig, die Herausforderung im Voraus abzuschätzen, um erfolgreich zu sein.
Definieren wir zunächst ein paar verschiedene Situationen, in denen du dich bei der Suche nach einem Datensatz befinden kannst. Diese Ausgangssituation sollte bei der Entscheidung, wie du vorgehen willst, eine wichtige Rolle spielen.
Datentypen
Sobald wir ein Problem als Zuordnung von Eingaben zu Ausgaben definiert haben, können wir nach Datenquellen suchen, die dieser Zuordnung entsprechen.
Für die Betrugserkennung könnten dies Beispiele von betrügerischen und unschuldigen Nutzern sein, zusammen mit Merkmalen ihres Kontos, anhand derer wir ihr Verhalten vorhersagen können. Für die Übersetzung wäre dies ein Korpus von Satzpaaren in der Ausgangs- und Zieldomäne. Für die Organisation von Inhalten und die Suche könnte dies ein Verlauf vergangener Suchanfragen und Klicks sein.
Wir werden selten in der Lage sein, genau die Zuordnung zu finden, nach der wir suchen. Aus diesem Grund ist es sinnvoll, ein paar verschiedene Fälle zu betrachten. Stell dir das als eine Hierarchie der Bedürfnisse nach Daten vor.
Datenverfügbarkeit
gibt es ungefähr drei Stufen der Datenverfügbarkeit, vom besten Fall bis zur größten Herausforderung. Leider kannst du, wie bei den meisten anderen Aufgaben auch, davon ausgehen, dass die nützlichsten Daten am schwersten zu finden sind. Gehen wir sie durch.
- Beschriftete Daten existieren
-
Das ist die Kategorie ganz links in Abbildung 1-9. Bei der Arbeit an einem überwachten Modell ist es der Traum eines jeden Praktikers, einen beschrifteten Datensatz zu finden. Beschriftet bedeutet hier, dass viele Datenpunkte den Zielwert enthalten, den das Modell vorhersagen soll. Das macht das Training und die Beurteilung der Modellqualität viel einfacher, da die Beschriftungen die richtigen Antworten liefern. In der Praxis ist es selten, einen beschrifteten Datensatz zu finden, der deinen Anforderungen entspricht und im Internet frei verfügbar ist. Es kommt jedoch häufig vor, dass du den gefundenen Datensatz mit dem benötigten Datensatz verwechselst.
- Schwach beschriftete Daten existieren
-
Diese ist die mittlere Kategorie in Abbildung 1-9. Einige Datensätze enthalten Kennzeichnungen, die nicht genau ein Modellierungsziel darstellen, aber in gewisser Weise damit korrelieren. Die Wiedergabe- und Skip-Historie eines Musik-Streaming-Dienstes ist ein Beispiel für einen schwach beschrifteten Datensatz zur Vorhersage, ob ein Nutzer ein Lied nicht mag. Auch wenn ein Hörer ein Lied nicht als unbeliebt markiert hat, ist es ein Hinweis darauf, dass er es nicht mochte, wenn er es übersprungen hat, während es gespielt wurde. Schwache Kennzeichnungen sind per Definition weniger präzise, aber oft leichter zu finden als perfekte Kennzeichnungen.
- Unbeschriftete Daten existieren
-
Diese Kategorie befindet sich auf der rechten Seite von Abbildung 1-9. In manchen Fällen haben wir zwar keinen beschrifteten Datensatz, der die gewünschten Eingaben den Ausgaben zuordnet, aber wir haben zumindest Zugang zu einem Datensatz mit relevanten Beispielen. Im Beispiel der Textübersetzung haben wir vielleicht Zugang zu großen Textsammlungen in beiden Sprachen, aber keine direkte Zuordnung zwischen ihnen. Das bedeutet, dass wir den Datensatz beschriften oder ein Modell finden müssen, das aus nicht beschrifteten Daten lernen kann, oder wir müssen ein bisschen von beidem machen.
- Wir müssen Daten erfassen
-
In sind wir in einigen Fällen einen Schritt von unbeschrifteten Daten entfernt, da wir sie erst beschaffen müssen. In vielen Fällen haben wir keinen Datensatz für das, was wir brauchen, und müssen daher einen Weg finden, solche Daten zu beschaffen. Das wird oft als unüberwindbare Aufgabe angesehen, aber es gibt inzwischen viele Methoden, um schnell Daten zu sammeln und zu kennzeichnen. Das wird der Schwerpunkt von Kapitel 4 sein.
Für unsere Fallstudie wäre ein idealer Datensatz ein Satz von Fragen, die von den Nutzern eingegeben wurden, zusammen mit einem Satz von besser formulierten Fragen. Ein schwach gekennzeichneter Datensatz wäre ein Datensatz mit vielen Fragen, die mit schwachen Kennzeichnungen wie "Likes" oder "Upvotes" versehen sind, die auf ihre Qualität hinweisen. Auf diese Weise kann ein Modell lernen, was gute und schlechte Fragen ausmacht, aber es gibt keine Vergleichsbeispiele für dieselbe Frage. Du kannst diese beiden Beispiele in Abbildung 1-9 sehen.
Im Allgemeinen bezieht sich ein schwach markierter Datensatz in der ML auf einen Datensatz, der Informationen enthält, die einem Modell beim Lernen helfen, aber nicht die exakte Grundwahrheit. In der Praxis sind die meisten Datensätze, die wir sammeln können, schwach beschriftet.
Ein unvollkommener Datensatz ist völlig in Ordnung und sollte dich nicht davon abhalten. Der ML-Prozess ist von Natur aus iterativ. Deshalb ist es am besten, mit einem Datensatz zu beginnen und erste Ergebnisse zu erhalten, unabhängig von der Datenqualität.
Datensätze sind iterativ
In vielen Fällen wirst du nicht in der Lage sein, sofort einen Datensatz zu finden, der eine direkte Zuordnung zwischen den Eingaben und der gewünschten Ausgabe enthält. Ich schlage vor, dass du die Art und Weise, wie du das Problem formulierst, schrittweise änderst, damit es einfacher wird, einen geeigneten Datensatz für den Anfang zu finden. Jeder Datensatz, den du untersuchst und verwendest, wird dir wertvolle Informationen liefern, die du nutzen kannst, um die nächste Version deines Datensatzes zu kuratieren und nützliche Funktionen für deine Modelle zu entwickeln.
Tauchen wir nun in die Fallstudie ein und sehen wir uns an, wie wir das Gelernte nutzen können, um verschiedene Modelle und Datensätze zu identifizieren, die wir verwenden könnten, und das am besten geeignete auszuwählen.
Den ML-Editor einrahmen
Sehen wir uns unter an, wie wir durch einen Produktanwendungsfall iterieren können, um den richtigen ML-Rahmen zu finden. Wir werden diesen Prozess durchlaufen, indem wir eine Methode skizzieren, um von einem Produktziel (den Nutzern zu helfen, bessere Fragen zu schreiben) zu einem ML-Paradigma zu gelangen.
Wir möchten einen Editor bauen, der Fragen von Nutzern annimmt und sie verbessert, damit sie besser geschrieben werden, aber was bedeutet "besser" in diesem Fall? Beginnen wir damit, das Produktziel des Schreibassistenten etwas klarer zu definieren.
Viele Menschen nutzen Foren, soziale Netzwerke und Websites wie Stack Overflow, um Antworten auf ihre Fragen zu finden. Die Art und Weise, wie die Leute ihre Fragen stellen, hat jedoch einen großen Einfluss darauf, ob sie eine nützliche Antwort erhalten. Das ist sowohl für den Nutzer, der eine Antwort auf seine Frage sucht, als auch für künftige Nutzer, die das gleiche Problem haben und eine bereits vorhandene Antwort nützlich finden könnten, bedauerlich. Unser Ziel ist es daher, einen Assistenten zu entwickeln, der den Nutzern hilft, bessere Fragen zu schreiben.
Wir haben ein Produktziel und müssen nun entscheiden, welchen Modellierungsansatz wir verwenden wollen. Um diese Entscheidung zu treffen, durchlaufen wir die bereits erwähnte Iterationsschleife der Modellauswahl und Datenvalidierung.
Der Versuch, alles mit ML zu machen: Ein End-to-End Framework
In diesem Zusammenhang bedeutet End-to-End, dass ein einziges Modell verwendet wird, um von der Eingabe zur Ausgabe zu gelangen, ohne Zwischenschritte. Da die meisten Produktziele sehr spezifisch sind, erfordert der Versuch, einen ganzen Anwendungsfall durch Lernen von Anfang bis Ende zu lösen, oft maßgeschneiderte, hochmoderne ML-Modelle. Für Teams, die die Ressourcen haben, solche Modelle zu entwickeln und zu pflegen, kann dies die richtige Lösung sein, aber oft lohnt es sich, zunächst mit besser verstandenen Modellen zu beginnen.
In unserem Fall könnten wir versuchen, einen Datensatz mit schlecht formulierten Fragen und deren professionell bearbeiteten Versionen zu sammeln. Dann könnten wir ein generatives Modell verwenden, um direkt von einem Text zum anderen zu gelangen.
Abbildung 1-10 zeigt, wie das in der Praxis aussehen könnte. Sie zeigt ein einfaches Diagramm mit Benutzereingaben auf der linken Seite, der gewünschten Ausgabe auf der rechten Seite und einem Modell dazwischen.
Wie du sehen wirst, ist dieser Ansatz mit großen Herausforderungen verbunden:
- Daten
-
Um einen solchen Datensatz zu erhalten, müssten wir Fragenpaare finden, die dieselbe Absicht verfolgen, aber eine unterschiedliche Qualität der Formulierung haben. Dieser Datensatz ist in seiner jetzigen Form recht selten zu finden. Außerdem wäre es sehr kostspielig, ihn selbst zu erstellen, da wir dazu die Unterstützung professioneller Redakteure bräuchten, um diese Daten zu generieren.
- Modell
-
Modelle, die von einer Textsequenz zu einer anderen übergehen, wie sie in der bereits erwähnten Kategorie der generativen Modelle zu finden sind, haben in den letzten Jahren enorme Fortschritte gemacht. Sequenz-zu-Sequenz-Modelle (wie in der Veröffentlichung von I. Sutskever et al., "Sequence to Sequence Learning with Neural Networks", beschrieben ) wurden ursprünglich 2014 für Übersetzungsaufgaben vorgeschlagen und schließen die Lücke zwischen maschineller und menschlicher Übersetzung. Der Erfolg dieser Modelle lag jedoch meist bei Aufgaben auf Satzebene, und sie wurden nicht häufig für die Verarbeitung von Texten verwendet, die länger als ein Absatz sind. Das liegt daran, dass sie bisher nicht in der Lage waren, den langfristigen Kontext von einem Absatz zum anderen zu erfassen. Außerdem gehören sie zu den am langsamsten zu trainierenden Modellen, da sie in der Regel eine große Anzahl von Parametern haben. Wenn ein Modell nur einmal trainiert wird, ist das nicht unbedingt ein Problem. Wenn es jedoch stündlich oder täglich neu trainiert werden muss, kann die Trainingszeit zu einem wichtigen Faktor werden.
- Latenz
-
Sequence-to-Sequence-Modelle sind oft autoregressive Modelle, d.h. sie benötigen die Ausgabe des Modells für das vorherige Wort, um mit der Arbeit am nächsten zu beginnen. Dadurch können sie Informationen aus benachbarten Wörtern nutzen, aber sie sind langsamer zu trainieren und langsamer bei der Inferenz als einfachere Modelle. Solche Modelle können einige Sekunden brauchen, um eine Antwort zum Zeitpunkt der Schlussfolgerung zu geben, im Gegensatz zu einer Latenzzeit von unter einer Sekunde bei einfacheren Modellen. Es ist zwar möglich, ein solches Modell so zu optimieren, dass es schnell genug läuft, aber das erfordert zusätzliche technische Arbeit.
- Leichte Umsetzung
-
Die Ausbildung komplexer End-to-End-Modelle ist ein sehr heikler und fehleranfälliger Prozess, da sie viele bewegliche Teile haben. Das bedeutet, dass wir den Kompromiss zwischen der potenziellen Leistung eines Modells und der Komplexität, die es zu einer Pipeline hinzufügt, abwägen müssen. Diese Komplexität verlangsamt nicht nur den Aufbau einer Pipeline, sondern führt auch zu einem höheren Wartungsaufwand. Wenn wir davon ausgehen, dass andere Teammitglieder dein Modell wiederholen und verbessern müssen, kann es sich lohnen, eine Reihe von einfacheren, besser verstandenen Modellen zu wählen.
Dieser durchgängige Ansatz könnte funktionieren, aber er erfordert eine Menge Datenerfassung und technischen Aufwand im Vorfeld, ohne Erfolgsgarantie, weshalb es sich lohnt, andere Alternativen zu untersuchen, wie wir im Folgenden erläutern werden.
Die einfachste Herangehensweise: Der Algorithmus sein
Wie du im Interview am Ende dieses Abschnitts sehen wirst, ist es für Datenwissenschaftler/innen oft eine gute Idee, den Algorithmus zu sein, bevor sie ihn implementieren. Mit anderen Worten: Um zu verstehen, wie man ein Problem am besten automatisiert, sollte man zunächst versuchen, es manuell zu lösen. Wie würden wir also vorgehen, wenn wir die Fragen selbst bearbeiten würden, um die Lesbarkeit und die Chancen auf eine Antwort zu verbessern?
Ein erster Ansatz wäre, überhaupt keine Daten zu verwenden, sondern den Stand der Technik zu nutzen, um zu definieren, was eine Frage oder einen Text zu einem guten Text macht. Für allgemeine Schreibtipps könnten wir uns an einen professionellen Redakteur wenden oder die Stilrichtlinien von Zeitungen studieren, um mehr zu erfahren.
Außerdem sollten wir uns in einem Datensatz einzelne Beispiele und Trends ansehen und diese in unsere Modellierungsstrategie einfließen lassen. Das überspringen wir jetzt, denn wir werden in Kapitel 4 genauer darauf eingehen, wie das geht.
Zunächst könnten wir anhand von Forschungsergebnissen einige Merkmale identifizieren, die uns helfen, klarer zu schreiben. Zu diesen Merkmalen könnten Faktoren gehören wie:
- Prosaische Einfachheit
-
Wir geben neuen Autoren oft den Rat, einfachere Wörter und Satzstrukturen zu verwenden. Wir könnten also eine Reihe von Kriterien für die angemessene Satz- und Wortlänge aufstellen und bei Bedarf Änderungen empfehlen.
- Tone
-
Wir könnten die Verwendung von Adverbien, Superlativen und Interpunktion messen, um die Polarität des Textes zu ermitteln. Je nach Kontext kann es sein, dass Fragen mit mehr Meinung weniger Antworten erhalten.
- Strukturelle Merkmale
-
Schließlich können wir versuchen, das Vorhandensein wichtiger struktureller Merkmale wie die Verwendung von Gruß- oder Fragezeichen zu extrahieren.
Sobald wir nützliche Merkmale identifiziert und generiert haben, können wir eine einfache Lösung entwickeln, die sie nutzt, um Empfehlungen zu geben. Hier ist kein ML im Spiel, aber diese Phase ist aus zwei Gründen wichtig: Sie liefert eine Grundlage, die sehr schnell zu implementieren ist, und dient als Maßstab, an dem die Modelle gemessen werden können.
Um unsere Intuition zu überprüfen, wie man gute Texte erkennt, können wir einen Datensatz mit "guten" und "schlechten" Texten sammeln und sehen, ob wir die guten von den schlechten Texten anhand dieser Merkmale unterscheiden können .
Der Mittelweg: Aus unserer Erfahrung lernen
Jetzt wir einen Grundstock an Merkmalen haben, können wir versuchen, mit ihnen ein Modell des Stils aus einem Datensatz zu lernen. Dazu nehmen wir einen Datensatz, extrahieren daraus die oben beschriebenen Merkmale und trainieren einen Klassifikator, um gute und schlechte Beispiele zu unterscheiden.
Sobald wir ein Modell haben, das geschriebenen Text klassifizieren kann, können wir es untersuchen, um herauszufinden, welche Merkmale eine hohe Vorhersagekraft haben und diese als Empfehlungen verwenden. Wie das in der Praxis funktioniert, werden wir in Kapitel 7 sehen.
Abbildung 1-11 beschreibt diesen Ansatz. Auf der linken Seite wird ein Modell trainiert, um eine Frage als gut oder schlecht zu klassifizieren. Auf der rechten Seite wird dem trainierten Modell eine Frage vorgelegt und es bewertet die möglichen Umformulierungen dieser Frage, die zu einer besseren Bewertung führen. Die Umformulierung mit der höchsten Punktzahl wird dem Nutzer empfohlen.
Schauen wir uns die Herausforderungen an, die wir in "Trying to Do It All with ML: An End-to-End Framework" beschrieben haben, und sehen wir, ob der Klassifikator-Ansatz sie einfacher macht:
- Datensatz
-
Wir könnten einen Datensatz mit guten und schlechten Beispielen erhalten, indem wir Fragen aus einem Online-Forum zusammen mit einem Maß für ihre Qualität sammeln, z. B. die Anzahl der Ansichten oder Upvotes. Im Gegensatz zum End-to-End-Ansatz brauchen wir dafür keinen Zugang zu den Überarbeitungen der gleichen Fragen. Wir brauchen lediglich eine Reihe von guten und schlechten Beispielen, aus denen wir hoffentlich aggregierte Merkmale lernen können.
- Modell
-
Dabei müssen wir zwei Dinge berücksichtigen: wie prädiktiv ein Modell ist (kann es gute und schlechte Artikel effizient unterscheiden?) und wie leicht Merkmale daraus extrahiert werden können (können wir sehen, welche Attribute zur Klassifizierung eines Beispiels verwendet wurden?). Es gibt viele mögliche Modelle, die wir hier verwenden können, und verschiedene Merkmale, die wir aus dem Text extrahieren können, um ihn besser erklären zu können.
- Latenz
-
Die meisten Textklassifizierer sind recht schnell. Wir können mit einem einfachen Modell wie einem Random Forest beginnen, das auf normaler Hardware in weniger als einer Zehntelsekunde Ergebnisse liefert, und bei Bedarf zu komplexeren Architekturen übergehen.
- Leichte Umsetzung
-
Im Vergleich zur Texterstellung ist die Textklassifizierung relativ gut verstanden, sodass die Erstellung eines solchen Modells relativ schnell gehen sollte. Es gibt viele Beispiele für funktionierende Textklassifizierungspipelines im Internet, und viele solcher Modelle wurden bereits in der Produktion eingesetzt.
Wenn wir mit einer menschlichen Heuristik beginnen und dann dieses einfache Modell erstellen, haben wir schnell eine erste Grundlage und den ersten Schritt zu einer Lösung. Außerdem ist das erste Modell eine gute Grundlage für die weitere Entwicklung (mehr dazu in Teil III).
Ich habe mich mit Monica Rogati zusammengesetzt, um mehr darüber zu erfahren, wie wichtig es ist, mit einfachen Basisdaten zu beginnen.
Monica Rogati: Wie du ML-Projekte auswählst und priorisierst
Nach ihrem Doktortitel in Informatik begann Monica Rogati ihre Karriere bei LinkedIn, wo sie an Kernprodukten wie der Integration von ML in den People You May Know-Algorithmus arbeitete und die erste Version des Job-to-Candidate-Matchings entwickelte. Danach wurde sie VP of Data bei Jawbone, wo sie das gesamte Datenteam aufbaute und leitete. Monica berät heute Dutzende von Unternehmen mit 5 bis 8.000 Beschäftigten. Sie hat sich freundlicherweise bereit erklärt, einige ihrer Ratschläge an Teams weiterzugeben, wenn es um die Entwicklung und Umsetzung von ML-Produkten geht.
F: Wie wählt man ein ML-Produkt aus?
A: Du musst dich daran erinnern, dass du versuchst, die besten Werkzeuge zu nutzen, um ein Problem zu lösen, und ML nur dann einzusetzen, wenn es sinnvoll ist.
Angenommen, du möchtest vorhersagen, was ein Nutzer einer Anwendung tun wird, und es ihm als Vorschlag zeigen. Du solltest damit beginnen, die Diskussionen über Modellierung und Produkt zu kombinieren. Dazu gehört auch, dass du das Produkt so gestaltest, dass es mit ML-Fehlern vernünftig umgeht.
Du könntest damit beginnen, das Vertrauen zu berücksichtigen, das unser Modell in seine Vorhersage hat. Dann könnten wir unsere Vorschläge je nach Konfidenzwert unterschiedlich formulieren. Liegt die Konfidenz über 90 %, präsentieren wir den Vorschlag an prominenter Stelle; liegt sie über 50 %, zeigen wir ihn immer noch an, aber mit weniger Nachdruck, und wenn die Konfidenz unter diesem Wert liegt, zeigen wir gar nichts an.
F: Wie entscheidest du, worauf du dich bei einem ML-Projekt konzentrieren willst?
A: Du musst den Wirkungsengpass finden, d.h. den Teil deiner Pipeline, der den größten Nutzen bringen könnte, wenn du ihn verbesserst. Wenn ich mit Unternehmen zusammenarbeite, stelle ich oft fest, dass sie vielleicht nicht an dem richtigen Problem arbeiten oder sich nicht in der richtigen Wachstumsphase befinden.
Oft gibt es Probleme rund um das Modell. Der beste Weg, das herauszufinden, ist, das Modell durch etwas Einfaches zu ersetzen und die gesamte Pipeline zu debuggen. Häufig liegt das Problem nicht in der Genauigkeit deines Modells. Häufig ist dein Produkt tot, auch wenn dein Modell erfolgreich ist.
F: Warum empfiehlst du normalerweise, mit einem einfachen Modell zu beginnen?
A: Das Ziel unseres Plans sollte sein, unser Modell irgendwie zu entschärfen. Das geht am besten, indem wir mit einer "Strohmann-Basislinie" beginnen, um die Leistung im schlimmsten Fall zu bewerten. In unserem Beispiel könnte dies einfach die Aktion sein, die der Nutzer zuvor durchgeführt hat.
Wenn wir das tun würden, wie oft würde unsere Vorhersage richtig sein und wie ärgerlich wäre unser Modell für den Nutzer, wenn wir falsch lägen? Angenommen, unser Modell wäre nicht viel besser als diese Grundvoraussetzung, wäre unser Produkt dann immer noch wertvoll?
Das gilt auch für Beispiele aus dem Bereich des Verstehens und der Generierung natürlicher Sprache wie Chatbots, Übersetzungen, Fragen und Antworten und Zusammenfassungen. Bei der Zusammenfassung reicht es zum Beispiel oft aus, die wichtigsten Schlüsselwörter und Kategorien eines Artikels zu extrahieren, um die Bedürfnisse der meisten Nutzer zu erfüllen.
F: Wenn du deine gesamte Pipeline hast, wie identifizierst du dann den Engpass bei den Auswirkungen?
A: Du solltest damit beginnen, dir vorzustellen, dass der Wirkungsengpass gelöst ist, und dich fragen, ob es den Aufwand wert war, den du dafür veranschlagt hast. Ich ermutige Datenwissenschaftler/innen, einen Tweet zu verfassen, und Unternehmen, eine Pressemitteilung zu schreiben, bevor sie überhaupt mit einem Projekt beginnen. Das hilft ihnen zu vermeiden, an etwas zu arbeiten, nur weil sie es für cool halten, und stellt die Auswirkungen der Ergebnisse in einen Kontext zum Aufwand.
Im Idealfall kannst du die Ergebnisse unabhängig vom Ausgang bewerten: Wenn du nicht das beste Ergebnis erzielst, ist es trotzdem wichtig? Hast du etwas gelernt oder einige Annahmen bestätigt? Eine Möglichkeit, dies zu erreichen, ist der Aufbau einer Infrastruktur, die den Aufwand für den Einsatz verringert.
Bei LinkedIn hatten wir Zugriff auf ein sehr nützliches Designelement, ein kleines Fenster mit ein paar Zeilen Text und Hyperlinks, das wir mit unseren Daten anpassen konnten. Das machte es einfacher, Experimente für Projekte wie die Job-Empfehlungen zu starten, da das Design bereits genehmigt war. Da der Ressourceneinsatz gering war, musste die Wirkung nicht so groß sein, was einen schnelleren Iterationszyklus ermöglichte. Die Hürde wird dann durch nichttechnische Belange wie Ethik, Fairness und Branding überwunden.
F: Wie entscheidest du, welche Modellierungstechniken du verwendest?
A: Die erste Verteidigungslinie ist, sich die Daten selbst anzusehen. Nehmen wir an, wir wollen ein Modell erstellen, um LinkedIn-Nutzern Gruppen zu empfehlen. Ein naiver Weg wäre, die beliebteste Gruppe zu empfehlen, die den Namen des Unternehmens im Gruppentitel enthält. Nachdem wir uns ein paar Beispiele angesehen haben, haben wir herausgefunden, dass eine der beliebtesten Gruppen für das Unternehmen Oracle "Oracle ist scheiße" ist.
Es ist immer sinnvoll, sich die Mühe zu machen, die Ein- und Ausgaben deines Modells manuell zu überprüfen. Scrolle durch eine Reihe von Beispielen, um zu sehen, ob etwas seltsam aussieht. Der Leiter meiner Abteilung bei IBM hatte das Mantra, dass man etwas eine Stunde lang von Hand machen sollte, bevor man sich an die Arbeit macht.
Die Betrachtung deiner Daten hilft dir dabei, gute Heuristiken, Modelle und Möglichkeiten zu finden, das Produkt neu zu gestalten. Wenn du die Beispiele in deinem Datensatz nach Häufigkeit ordnest, kannst du vielleicht sogar 80 % deiner Anwendungsfälle schnell identifizieren und benennen.
Bei Jawbone zum Beispiel gaben die Leute "Phrasen" ein, um den Inhalt ihrer Mahlzeiten aufzuzeichnen. Als wir die Top 100 von Hand beschrifteten, hatten wir bereits 80 % der Phrasen erfasst und wussten genau, welche Probleme wir in den Griff bekommen mussten, z. B. verschiedene Textkodierungen und Sprachen.
Die letzte Verteidigungslinie ist eine vielfältige Belegschaft, die sich die Ergebnisse ansieht. So kannst du feststellen, ob ein Modell diskriminierendes Verhalten an den Tag legt, z. B. wenn es deine Freunde als Gorillas kennzeichnet, oder ob es unsensibel ist, indem es schmerzhafte Erfahrungen aus der Vergangenheit mit seinem intelligenten Rückblick auf das vergangene Jahr aufdeckt.
Fazit
Wie wir auf gesehen haben, beginnt die Entwicklung einer ML-gestützten Anwendung mit der Beurteilung der Machbarkeit und der Auswahl eines Ansatzes. Meistens ist die Wahl eines überwachten Ansatzes der einfachste Weg, um anzufangen. In der Praxis sind Klassifizierung, Wissensextraktion, Katalogorganisation oder generative Modelle die am häufigsten verwendeten Paradigmen.
Wenn du dich für einen Ansatz entscheidest, solltest du herausfinden, wie einfach du auf stark oder schwach beschriftete Daten oder überhaupt auf Daten zugreifen kannst. Dann solltest du potenzielle Modelle und Datensätze vergleichen, indem du ein Produktziel definierst und den Modellierungsansatz auswählst, mit dem du dieses Ziel am besten erreichst.
Wir haben diese Schritte für den ML-Editor veranschaulicht und uns dafür entschieden, mit einfachen Heuristiken und einem klassifikationsbasierten Ansatz zu beginnen. Und schließlich haben wir darüber berichtet, wie führende Unternehmen wie Monica Rogati diese Praktiken anwenden, um ML-Modelle erfolgreich an die Nutzer/innen weiterzugeben.
Jetzt, wo wir einen ersten Ansatz gewählt haben, ist es an der Zeit, Erfolgskriterien zu definieren und einen Aktionsplan zu erstellen, um regelmäßig Fortschritte zu erzielen. Dazu gehört es, minimale Leistungsanforderungen festzulegen, die verfügbaren Modellierungs- und Datenressourcen gründlich zu untersuchen und einen einfachen Prototyp zu bauen.
Wir werden alle diese Punkte in Kapitel 2 behandeln.
Get Aufbau von Anwendungen mit maschinellem Lernen now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.