Maschinelles Lernen Unternehmen, was ist daran so besonders?
Maschinelles Lernen ist der Teilbereich der künstlichen Intelligenz, der sich mit dem Entwurf und der Entwicklung von Algorithmen beschäftigt, die es Computern ermöglichen, ihre Leistung im Laufe der Zeit anhand von Daten, wie Sensordaten oder Datenbanken, zu verbessern. Wikipedia
Vor zehn Jahren waren Unternehmen im Bereich Maschinelles Lernen praktisch nicht existent, oder, sagen wir, höchstens marginal. Der Hauptgrund für diese Situation war schlichtweg, dass es damals nicht viele Algorithmen gab, die tatsächlich funktionierten und einen geschäftlichen Mehrwert lieferten. Automatisierte Übersetzung funktioniert zum Beispiel immer noch kaum und ist in den meisten Unternehmen weit davon entfernt, nutzbar zu sein.
Lokad reiht sich in das breite Feld des maschinellen Lernens ein, mit einem besonderen Interesse an statistischem Lernen. Persönlich arbeite ich nun fast ein Jahrzehnt im Bereich des maschinellen Lernens, und es ist immer noch überraschend zu sehen, wie grundlegend unterschiedlich dieses Feld im Vergleich zur typischen Shrinkwrap-Software-Welt ist. Maschinelles Lernen ist eine eigene Softwarewelt.
Der wissenschaftliche Fortschritt in Bereichen, die wie künstliche Intelligenz aussahen, war langsam, sehr langsam im Vergleich zu den meisten anderen Softwarebereichen. Aber eine Tatsache, die zu wenig bekannt ist, ist auch, dass der wissenschaftliche Fortschritt stetig verlaufen ist; und heutzutage gibt es einige erfolgreiche Unternehmen im Bereich des maschinellen Lernens:
- Smart-Spam-Filter: Verdammt, Akismet hat auf meinem Blog mehr als 71.000 Blog-Spam-Kommentare erfasst, mit so gut wie keinen Fehlalarmen, soweit ich das beurteilen kann.
- Spracherkennung: Dragon Dictate leistet bereits nach nur wenigen Minuten Benutzertuning eine ziemlich beeindruckende Arbeit.
- Handschriftenerkennung und sogar Gleichungserkennung sind in Windows 7 integriert.
Maschinelles Lernen ist Mainstream geworden.
1. Produkt verändert sich, aber die Benutzeroberfläche bleibt gleich
Für die meisten Softwareunternehmen ist es der Weg, wiederkehrende Einnahmen zu erzielen, wenn etwas Neues ins Blickfeld des Kunden rückt. SaaS verändert diesen finanziellen Aspekt zwar langsam, aber dennoch bringt bei den meisten SaaS-Produkten die Evolution sehr greifbare Veränderungen an der Benutzeroberfläche mit sich.
Im Gegensatz dazu bedeutet Entwicklung im maschinellen Lernen in der Regel nicht, dass neue Funktionen hinzugefügt werden. Der Großteil der Evolution geschieht tief im Inneren mit sehr wenigen oder gar keinen sichtbaren Veränderungen. Google Search – vermutlich das erfolgreichste aller maschinellen Lernprodukte – ist berüchtigt simpel und ist es seit einem Jahrzehnt. In letzter Zeit wurde eine Anpassung der Rankings basierend auf Nutzerpräferenzen hinzugefügt, aber diese Änderung erfolgte fast 10 Jahre nach dem Start und ich vermute, wird von den meisten Nutzern immer noch nicht wahrgenommen.
Dennoch, bedeutet das nicht, dass die Google-Mitarbeiter in den letzten 10 Jahren untätig waren. Ganz im Gegenteil: Die Google-Teams haben ihre Technologie mit wütendem Eifer verbessert und Schlacht um Schlacht gegen Web-Spammer gewonnen, die mittlerweile sehr clevere Tricks anwenden.
2. Zehn Größenordnungen in der Leistung
Wenn es um Softwareleistung geht, dauern gewöhnliche Shrinkwrap-Operationen in der Regel 100ms. Zum Beispiel vermute ich, dass die üblichen Berechnungszeiten serverseitig, die zur Generierung einer Webanwendung benötigt werden, von 5ms für die am meisten optimierten Apps bis zu 500ms für die langsamsten reichen. Dauert es länger, geben Ihre Nutzer den Besuch Ihrer Website auf. Obwohl es kaum überprüfbar ist, vermute ich, dass dieser Leistungsbereich für 99% der Webanwendungen zutrifft.
Beim maschinellen Lernen hingegen variieren die typischen Rechenkosten um mehr als 10 Größenordnungen, von Millisekunden bis zu Wochen.
Heutzutage ist der Preis für einen Monat CPU-Leistung bei 2Ghz auf 10$ gesunken, und ich erwarte, dass dieser Preis in den nächsten 5 Jahren unter 1$ fällt. Außerdem kann ein Monat CPU durch groß angelegte Parallelisierung in nur wenige Stunden realer Zeit komprimiert werden. Für die meisten Algorithmen im maschinellen Lernen kann die Genauigkeit verbessert werden, indem man dem aktuellen Problem mehr CPU zur Verfügung stellt.
Daher kann ein Anstieg der Genauigkeit um 1% bei einer Investition von 1 Monat CPU (10$) enorm profitabel sein, aber eine solche Argumentation ist schlicht Wahnsinn für die meisten, wenn nicht alle, Softwarebereiche außerhalb des maschinellen Lernens.
3. Komplexe Skalierbarkeitsherausforderungen
Das Hochskalieren eines Web2.0 wie zum Beispiel Twitter ist in der Tat eine Herausforderung, aber letztlich liegen 90% der Lösung in einer einzigen Technik: dem In-Memory-Caching der am häufigsten angesehenen Elemente.
Im Gegensatz dazu ist das Skalieren von Algorithmen im maschinellen Lernen in der Regel eine erschreckend komplizierte Aufgabe. Google brauchte mehrere Jahre, um eine groß angelegte Diagonalisierung dünn besetzter Matrizen (PageRank) durchzuführen; und lineare Algebra ist eindeutig nicht der herausforderndste Bereich der Mathematik, wenn es um Probleme des maschinellen Lernens geht.
Das Kernproblem des maschinellen Lernens besteht darin, dass der effizienteste Weg, Ihre Genauigkeit zu verbessern, darin besteht, mehr Eingangsdaten hinzuzufügen. Wenn Sie beispielsweise die Genauigkeit Ihres Spam-Filters verbessern möchten, können Sie versuchen, Ihren Algorithmus zu optimieren, aber Sie können auch eine größere Eingangsdatenbank nutzen, in der E-Mails bereits als Spam oder kein Spam markiert sind. Tatsächlich ist es – sofern ausreichend Rechenleistung vorhanden ist – häufig viel einfacher, die Genauigkeit durch größere Eingangsdatenmengen zu verbessern als durch intelligentere Algorithmen.
Dennoch ist der Umgang mit großen Datenmengen im maschinellen Lernen ein kompliziertes Problem, weil man seine Daten nicht naiv partitionieren kann. Naive Partitionierung entspricht dem Verwerfen von Eingangsdaten und dem Durchführen von lokalen Berechnungen, die nicht alle verfügbaren Daten nutzen. Fazit: Maschinelles Lernen benötigt sehr clevere Methoden, um seine Algorithmen zu verteilen.
4. Nutzerfeedback ist meist schlichtweg falsch
Schlaue Leute raten dazu, Hallway-Usability-Tests durchzuführen. Das gilt auch für jede Benutzeroberfläche, die Sie für Ihr maschinelles Lernprodukt bereitstellen, aber wenn es darum geht, den Kern Ihrer Technologie zu verbessern, ist Nutzerfeedback praktisch nutzlos, wenn es nicht gar schädlich ist, falls es tatsächlich umgesetzt wird.
Das Hauptproblem besteht darin, dass im maschinellen Lernen die meisten guten / korrekten / erwarteten Verhaltensweisen leider kontraintuitiv sind. Zum Beispiel beklagt ein häufiger Kunde bei Lokad, dass wir flache Prognosen liefern, die als inkorrekt wahrgenommen werden. Dabei sind diese flachen Prognosen genau im Interesse dieser Kunden, weil sie sich als genauer herausstellen.
Obwohl ich mich mit Spam-Filterung gut auskenne, bin ich mir ziemlich sicher, dass 99% der Vorschläge, die ich erarbeite und an die Akismet-Leute sende, für sie einfach Quatsch wären, weil die Herausforderung bei der Spam-Filterung nicht darin besteht, wie filtere ich Spam, sondern wie filtere ich Spam, ohne legitime E-Mails zu blockieren. Und ja, die Leute von Pfizer haben das Recht, Sildenafil-Citrat-Verbindungen per E-Mail zu diskutieren, ohne dass alle ihre E-Mails gefiltert werden.
5. Aber Nutzerdaten enthalten die Wahrheit
Fiktive Daten und Szenarien ergeben im maschinellen Lernen meist keinen Sinn. Reale Daten erweisen sich in vielerlei unerwarteten Weisen als überraschend. Nach 10 Jahren Arbeit in diesem Bereich war jeder neue Datensatz, den ich untersucht habe, in vielerlei Hinsicht überraschend. Es ist vollkommen nutzlos, mit selbst erfundenen Daten zu arbeiten. Ohne echte Kundendaten können Sie im maschinellen Lernen nichts bewirken.
Dieser spezielle Aspekt führt oft zu dem Henne-Ei-Problem im maschinellen Lernen: Wenn Sie beginnen möchten, die Anzeige kontextbezogener Werbung zu optimieren, benötigen Sie zahlreiche Werbetreibende und Publisher. Doch ohne zahlreiche Werbetreibende und Publisher können Sie Ihre Technologie nicht verfeinern und folglich niemanden überzeugen, beizutreten.
6. Tuning vs. Mathematik, Evolution vs. Revolution
Schlaue Leute raten dazu, dass das komplette Neuschreiben ein strategischer Fehler ist, der Softwareunternehmen häufig zugrunde liegt. Doch im maschinellen Lernen ist das Neuschreiben häufig der einzige Weg, Ihr Unternehmen zu retten.
Irgendwann gegen Ende der Neunziger nahm sich Altavista, die führende Suchmaschine, nicht die Zeit, ihre Ranking-Technologie auf Basis verrückter mathematischer Ideen zur groß angelegten Diagonalisierung neu zu schreiben. Infolgedessen wurden sie von einem kleinen Unternehmen (Google) überwältigt, das von einer Gruppe unerfahrener Leute geführt wurde.
Feinabstimmung und inkrementelle Verbesserungen sind das Herzstück der klassischen Softwareentwicklung, und dies gilt – meistens – auch für das maschinelle Lernen. Das Erreichen des nächsten Prozentpunkts an Genauigkeit wird häufig durch das sorgfältige Abstimmen und Verfeinern eines bestehenden Algorithmus erreicht, wobei zahlreiche ad-hoc Berichtssysteme entworfen werden, um tiefere Einblicke in das Verhalten des Algorithmus zu gewinnen.
Dennoch kostet jeder weitere Prozentpunkt an Genauigkeit auf diese Weise den zehnfachen Aufwand im Vergleich zum vorherigen; und nach ein paar Monaten oder Jahren steckt Ihre Technologie einfach in einer Sackgasse fest.
Genau hier kommt die harte Mathematik ins Spiel. Mathematik ist entscheidend, um den nächsten Leistungssprung zu erzielen, die Art von Sprung, bei dem Sie eine 10%ige Verbesserung erzielen, die mit dem vorherigen Ansatz gar nicht möglich schien. Das Ausprobieren neuer Theorien ist dann wie Roulette spielen: Meistens verlieren Sie, und die neue Theorie bringt keine zusätzlichen Verbesserungen.
Letztendlich bedeutet Fortschritt im maschinellen Lernen sehr häufig, Ansätze auszuprobieren, die mit hoher Wahrscheinlichkeit zum Scheitern verurteilt sind. Aber hin und wieder funktioniert etwas tatsächlich und die Technologie macht einen gewaltigen Sprung nach vorne.