Data Science, Machine Learning und KI
Kontakt

Warum wir KI-Prinzipien brauchen

Künstliche Intelligenz verändert unsere Welt grundlegend. Algorithmen beeinflussen zunehmend, wie wir uns verhalten, denken und fühlen. Unternehmen rund um den Globus werden KI-Technologien zunehmend nutzen und ihre derzeitigen Prozesse und Geschäftsmodelle neu erfinden. Unsere sozialen Strukturen, die Art und Weise, wie wir arbeiten und wie wir miteinander interagieren, werden sich mit den Fortschritten der Digitalisierung, insbesondere der KI, verändern.

Neben ihrem sozialen und wirtschaftlichen Einfluss spielt KI auch eine wichtige Rolle bei einer der größten Herausforderungen unserer Zeit: dem Klimawandel. Einerseits kann KI Instrumente bereitstellen, um einen Teil dieser dringenden Herausforderung zu bewältigen. Andererseits wird die Entwicklung und Implementierung von KI-Anwendungen viel Energie verbrauchen und große Mengen an Treibhausgasen ausstoßen.

Risiken der KI

Mit dem Fortschritt einer Technologie, die einen so großen Einfluss auf alle Bereiche unseres Lebens hat, gehen große Chancen, aber auch große Risiken einher. Um Euch einen Eindruck von den Risiken zu vermitteln, haben wir sechs Beispiele herausgegriffen:

  • KI kann zur Überwachung von Menschen eingesetzt werden, zum Beispiel durch Gesichtserkennungssysteme. Einige Länder setzen diese Technologie bereits seit einigen Jahren intensiv ein.
  • KI wird in sehr sensiblen Bereichen eingesetzt. In diesen können schon kleine Fehlfunktionen dramatische Auswirkungen haben. Beispiele dafür sind autonomes Fahren, robotergestützte Chirurgie, Kreditwürdigkeitsprüfung, Auswahl von Bewerber:innen oder Strafverfolgung.
  • Der Skandal um Facebook und Cambridge Analytica hat gezeigt, dass Daten und KI-Technologien zur Erstellung psychografischer Profile genutzt werden können. Diese Profile ermöglichen die gezielte Ansprache von Personen mit maßgeschneiderten Inhalten. Beispielsweise zur Beeinflussung von politischen Wahlen. Dieses Beispiel zeigt die enorme Macht der KI-Technologien und die Möglichkeit für Missbrauch und Manipulation.
  • Mit den jüngsten Fortschritten in der Computer Vision Technologie können Deep Learning Algorithmen nun zur Erstellung von Deepfakes verwendet werden. Deepfakes sind realistische Videos oder Bilder von Menschen, in denen diese etwas tun oder sagen, was sie nie in der Realität getan oder gesagt haben. Die Möglichkeiten für Missbrauch dieser Technologie sind vielfältig.
  • KI-Lösungen werden häufig entwickelt, um manuelle Prozesse zu verbessern oder zu optimieren. Es wird Anwendungsfälle geben, bei denen menschliche Arbeit ersetzt wird. Dabei entstehen unterschiedlichste Herausforderungen, die nicht ignoriert, sondern frühzeitig angegangen werden müssen.
  • In der Vergangenheit haben KI-Modelle diskriminierende Muster der Daten, auf denen sie trainiert wurden, reproduziert. So hat Amazon beispielsweise ein KI-System in seinem Rekrutierungsprozess eingesetzt, das Frauen eindeutig benachteiligte.

Diese Beispiele machen deutlich, dass jedes Unternehmen und jede Person, die KI-Systeme entwickelt, sehr sorgfältig darüber nachdenken sollte, welche Auswirkungen das System auf die Gesellschaft, bestimmte Gruppen oder sogar Einzelpersonen haben wird oder haben könnte.

Daher besteht die große Herausforderung für uns darin, sicherzustellen, dass die von uns entwickelten KI-Technologien den Menschen helfen und sie befähigen, während wir gleichzeitig potenzielle Risiken minimieren.

Warum gibt es im Jahr 2022 keine offizielle Regelung?

Vielleicht fragt Ihr euch, warum es keine Gesetze gibt, die sich mit diesem Thema befassen. Das Problem bei neuen Technologien, insbesondere bei künstlicher Intelligenz, ist, dass sie sich schnell weiterentwickeln, manchmal sogar zu schnell.

Die jüngsten Veröffentlichungen neuer Sprachmodelle wie GPT-3 oder Computer Vision Modelle, z. B. DALLE-2, haben selbst die Erwartungen vieler KI-Expert:innen übertroffen. Die Fähigkeiten und Anwendungen der KI-Technologien werden sich schneller weiterentwickeln, als die Regulierung es kann. Und wir sprechen hier nicht von Monaten, sondern von Jahren.

Dabei ist zu erwähnen, dass die EU einen ersten Versuch in diese Richtung unternommen hat, indem sie eine Regulierung von künstlicher Intelligenz vorgeschlagen hat. In diesem Vorschlag wird jedoch darauf hingewiesen, dass die Verordnung frühestens in der zweiten Hälfte des Jahres 2024 für die anwendenden Unternehmen gelten könnte. Das sind Jahre, nachdem die oben beschriebenen Beispiele Realität geworden sind.

Unser Ansatz: statworx AI Principles

Die logische Konsequenz daraus ist, dass wir uns als Unternehmen selbst dieser Herausforderung stellen müssen. Und genau deshalb arbeiten wir derzeit an den statworx AI Principles, einer Reihe von Prinzipien, die uns bei der Entwicklung von KI-Lösungen leiten und Orientierung geben sollen.

Was wir bisher getan haben und wie wir dazu gekommen sind

In unserer Arbeitsgruppe „AI & Society“ haben wir begonnen, uns mit diesem Thema zu beschäftigen. Zunächst haben wir den Markt gescannt und viele interessante Paper gefunden. Allerdings sind wir zu dem Schluss gekommen, dass sich keins davon 1:1 auf unser Geschäftsmodell übertragen lässt. Oft waren diese Prinzipien oder Richtlinien sehr schwammig oder zu detailliert und zusätzlich ungeeignet für ein Beratungsunternehmen, das im B2B-Bereich als Dienstleister tätig ist. Also beschlossen wir, dass wir selbst eine Lösung entwickeln mussten.

In den ersten Diskussionen darüber wurden vier große Herausforderungen deutlich:

  • Einerseits müssen die AI Principles klar und für das breite Publikum verständlich formuliert sein, damit auch Nicht-Expert:innen sie verstehen. Andererseits müssen sie konkret sein, um sie in unseren Entwicklungsprozess integrieren zu können.
  • Als Dienstleister haben wir nur begrenzte Kontrolle und Entscheidungsgewalt über einige Aspekte einer KI-Lösung. Daher müssen wir verstehen, was wir entscheiden können und was außerhalb unserer Kontrolle liegt.
  • Unsere AI Principles werden nur dann einen nachhaltigen Mehrwert schaffen, wenn wir auch nach ihnen handeln können. Deshalb müssen wir sie in unseren Kundenprojekten anwenden und bewerben. Wir sind uns darüber im Klaren, dass Budgetzwänge, finanzielle Ziele und andere Faktoren dem entgegenstehen könnten, da es zusätzlichen Zeit- und Geldaufwand erfordert.
  • Außerdem ist nicht immer klar, was falsch und richtig ist. Unsere Diskussionen haben gezeigt, dass es viele unterschiedliche Auffassungen darüber gibt, was richtig und notwendig ist. Das bedeutet, dass wir eine gemeinsame Basis finden müssen, auf die wir uns als Unternehmen einigen können.

Unsere zwei wichtigsten Erkenntnisse

Eine wichtige Erkenntnis aus diesen Überlegungen war, dass wir zwei Dinge brauchen.

In einem ersten Schritt brauchen wir übergeordnete Grundsätze, die verständlich und klar sind und bei denen alle mit an Bord sind. Diese Grundsätze dienen als Leitidee und geben Orientierung bei der Entscheidungsfindung. In einem zweiten Schritt wird daraus ein Framework abgeleitet, welches diese Grundsätze in allen Phasen unserer Projekte in konkrete Maßnahmen übersetzt.

Die zweite wichtige Erkenntnis ist, dass es durchaus schwierig ist, diesen Prozess zu durchlaufen und sich diese Fragen zu stellen. Aber gleichzeitig auch, dass dies für jedes Unternehmen, das KI-Technologie entwickelt oder einsetzt, unvermeidlich ist.

 

Was kommt als nächstes?

Bis jetzt sind wir fast am Ende des ersten Schritts angelangt. Wir werden die statworx AI Principles bald über unsere Kanäle kommunizieren. Wenn Ihr euch ebenfalls in diesem Prozess befindet, würden wir uns freuen, mit Euch in Kontakt zu treten, um zu verstehen, wie ihr vorgegangen seid und was ihr dabei gelernt habt.

Quellen

https://www.nytimes.com/2019/04/14/technology/china-surveillance-artificial-intelligence-racial-profiling.html

https://www.nytimes.com/2018/04/04/us/politics/cambridge-analytica-scandal-fallout.html

https://www.reuters.com/article/us-amazon-com-jobs-automation-insight-idUSKCN1MK08G

https://digital-strategy.ec.europa.eu/en/policies/european-approach-artificial-intelligence

https://www.bundesregierung.de/breg-de/themen/umgang-mit-desinformation/deep-fakes-1876736

https://www.welt.de/wirtschaft/article173642209/Jobverlust-Diese-Jobs-werden-als-erstes-durch-Roboter-ersetzt.html

Jan Fischer Jan Fischer Jan Fischer Jan Fischer Jan Fischer Jan Fischer Alexander Blaufuss

Data Science ist in aller Munde, doch wie lässt es sich am besten im Unternehmen einsetzen? Was muss man bei der Planung eines AI Projektes beachten? Was sind die Risiken, und was sind die potenziellen Vorteile? Es sind genau diese Fragen, mit welchen sich die Studierenden der Dualen Hochschulen Baden-Württemberg im Rahmen der Gastvorlesung mit STATWORX auseinandergesetzt haben.

Inhalt

Aspekte der Vorlesung

Anfang Juni haben unser COO Fabian Müller und Data Science Consultant Paul Mora eine Vorlesung im Rahmen des Wirtschaftsingenieur-Studienganges der DHBW gehalten. Der Fokus der Vorlesung war es, den Studierenden bewusst zu machen welche Aspekte es bei der Planung und Evaluierung eines Data Science Projektes zu beachten gilt. Neben den finanziellen Risiken wurde hierbei auch explizit auf die ethischen Fragen der Nutzung von Künstlicher Intelligenz eingegangen.

Fabian Müller, COO bei STATWORX, hält regelmäßig Vorträge an Hochschulen & Universitäten, um aktiv Aufklärung zum Thema künstliche Intelligenz zu betreiben.

Eine unserer Missionen bei STATWORX ist es, unser Wissen mit der Gesellschaft zu teilen. Vorträge an Hochschulen und Universitäten sind dabei eine tolle Möglichkeit, die Generation von morgen für Vorteile und Risiken von KI zu sensibilisieren. 

Hands-on Case Study

Als benotete Hausaufgabe haben sich die Studierenden dann in Gruppen aufgeteilt und einen selbst erdachten Data Science Use Case im Rahmen eines Unternehmens bewertet. Eine besonders gute Bearbeitung der Aufgabe ist dem Team von Christian Paul, Mark Kekel, Sebastian Schmidt und Moritz Brüggemann gelungen. Wie im folgenden Abstract beschrieben, widmete sich das Team der Überlegung des Einsatzes von Data Science bei der Vorhersage von Kundenbestellungen.

Consultant Paul Mora erklärt den Studierenden der DHBW den AI Project Canvas.

Abstract: Anwendung künstlicher Intelligenz im Kontext eines fiktiven Unternehmens

Die vorliegende Fallstudie gibt einen Überblick über die Möglichkeiten einer KI-gesteuerten Problemlösung anhand des fiktiven und aufstrebenden Unternehmens aus dem Bereich der Wintersportausrüster. Hierbei wurden vier unterschiedliche Use-Cases, die von der Nutzung einer KI profitieren, innerhalb einer Machbarkeits-Wirkungs-Matrix analysiert und das Konzept eines KI-gesteuerten After-Sales-Managements priorisiert.

Bezüglich des After-Sales-Managements wurden bis dato keine innovativen Methoden zur Verkaufsförderung entwickelt. Lediglich die Versendung von Gutscheinen, vier Wochen nach Erhalt der Bestellung, findet bereits Anwendung. Dies stellt hierbei jedoch keine adäquate Lösung für eine langfristige Kundenbindung dar. Mithilfe konzentrierter Rabatt- oder Gutscheinaktionen sollen Kunden zukünftig zum richtigen Zeitpunkt zu einem erneuten Kauf der Produkte angeregt werden. Der richtige Zeitpunkt, also der Fälligkeitstag, an dem der Bedarf des Kunden auftritt, soll hierbei unter der Verwendung von KI fortlaufend ermittelt werden. Unter dem Einsatz der KI erhofft sich das Management den Customer Journey nachvollziehen und diesen zukünftig vorhersagen zu können. Die absatzsteigernde Maßnahme basiert dabei auf dem von Daniel Kahnemann und Vernon L. Smith entwickeltem Konzept der deskriptiven Entscheidungstheorie, welche empirisch darstellt, wie Entscheidungen in der Realität getroffen werden. Die deskriptive Entscheidungstheorie definiert dabei Anreize zur richtigen Zeit, um gegenwärtige Bedürfnisse/ Bedarfe zu stillen, als einen zentralen Aspekt in der Entscheidungsfindung eines Entscheidungsträgers.

Das Data Sciences Model Canvas wurde hierbei als Werkzeug zur Strukturierung des Implementierungsprozesses der KI innerhalb des Unternehmens gewählt. Dabei soll das vorliegende Machine-Learning-Problem, unter dessen Verwendung zukünftige Bestelltermine der Kunden vorausgesagt werden sollen, mithilfe des sogenannten „Supervised Learnings“ bearbeitet werden. Übergreifend versucht der Algorithmus eine Hypothese zu finden, die möglichst zielsichere Annahmen trifft, wobei es sich unterkategorisiert um ein Regressionsproblem handelt. Richtig umgesetzt, werden Kunden bereits zum Zeitpunkt, an dem ihr Bedarf auftritt, mithilfe von konzentrierten Rabattaktionen zu einem Kauf angeregt. Dies ermöglicht unter anderem auch die Bindung hybrider Kunden, deren Nachfrageverhalten zwar wechselhaft ist, jedoch latent beeinflusst werden kann. Der Einsatz eines intelligenten After-Sales-Management-Systems ermöglicht somit eine langfristige Markt- und Kundenorientierung.

Interesse geweckt?

Den voll ausgearbeiteten Bericht sowie eine kurze und prägnante Management-Präsentation könnt Ihr euch nachfolgend herunterladen. Der Bericht zeigt, wie man Data Science effektiv innerhalb ein Unternehmen verwenden kann, um Kundenbeziehung zu stärken und Entscheidungen fundierter zu treffen. Des Weiteren präsentiert der Bericht drei weitere potentielle Einsatzmöglichkeiten von AI und wägt dessen Vorteile und Nachteile durch das AI Project Canvas ab.

«Vertrauen schaffen durch menschenzentrierte KI»: Unter diesem Slogan hat die Europäische Kommission in der vergangenen Woche ihren Vorschlag zur Regulierung von künstlicher Intelligenz (KI-Regulierung) vorgestellt. Dieser historische Schritt positioniert Europa als ersten Kontinent, der KI und den Umgang mit personenbezogenen Daten einheitlich reguliert. Mithilfe dieser wegweisenden Regulierung soll Europa Standards zur Nutzung mit Daten und KI setzen – auch über die europäischen Grenzen hinaus. Dieser Schritt ist richtig. KI ist ein Katalysator der digitalen Transformation mit nachhaltigen Implikationen für Wirtschaft, Gesellschaft und Umwelt. Klare Spielregeln für den Einsatz dieser Technologie sind deshalb ein Muss. Damit kann sich Europa als progressiver Standort positionieren, der bereit ist für das digitale Zeitalter. In der aktuellen Form wirft der Vorschlag aber noch einige Fragen bei der praktischen Umsetzung auf. Abstriche bei der digitalen Wettbewerbsfähigkeit kann sich Europa im immer weiter klaffenden Wettbewerb mit Amerika und China nicht leisten.

Transparenz bei Risiken von KI

Zwei zentrale Vorschläge der KI-Regulierung zur Schaffung von Vertrauen

Um Vertrauen in KI-Produkte zu schaffen, setzt der Vorschlag zur KI-Regulierung auf zwei zentrale Ansätze: Risiken künstlicher Intelligenz überwachen und gleichzeitig ein «Ökosystem an KI-Exzellenz» kultivieren. Konkret beinhaltet der Vorschlag ein Verbot für die Anwendung von KI zu manipulativen und diskriminierenden Zwecken oder zur Beurteilung von Verhalten durch ein «Social Scoring System». Anwendungsfälle, die nicht in diese Kategorie fallen, sollen trotzdem auf Gefahren untersucht und auf einer vagen Risikoskala platziert werden. An Hochrisikoanwendungen werden besondere Anforderungen gestellt, deren Einhaltung sowohl vor als auch nach der Inbetriebnahme geprüft werden soll.

Dass anstelle einer Pauschalregulierung KI-Anwendungen auf Fallbasis beurteilt werden sollen, ist entscheidend. Noch letztes Jahr forderte die Europäische Kommission in einem Whitepaper die breite Einstufung aller Anwendungen in Geschäftsbereichen wie dem Gesundheitssektor oder der Transportindustrie. Diese flächendeckende Einstufung anhand definierter Branchen, unabhängig der eigentlichen Use Cases, wäre hinderlich und hätte für ganze Industrien auf dem Kontinent strukturelle Benachteiligungen bedeutet. Diese Fall-zu-Fall-Beurteilung erlaubt die agile und innovative Entwicklung von KI in allen Sektoren und unterstellt zudem alle Branchen den gleichen Standards zur Zulassung von risikoreichen Anwendungen.

Klare Definition von Risiken einer KI-Anwendung fehlt

Allerdings lässt der Vorschlag zur KI-Regulierung eine klare Definition von «hohen Risiken» vermissen. Da Entwickler selbst für die Beurteilung ihrer Anwendungen zuständig sind, ist eine klar definierte Skala zur Beurteilung von Risiken unabdingbar. Artikel 6 und 7 umschreiben zwar Risiken und geben Beispiele von «Hochrisikoanwendungen», ein Prozess zur Beurteilung von Risiken einer KI-Anwendung wird aber nicht definiert. Besonders Start-ups und kleinere Unternehmen, die unter KI-Entwicklern stark vertreten sind, sind auf klare Prozesse und Standards angewiesen, um gegenüber Großunternehmen mit entsprechenden Ressourcen nicht ins Hintertreffen zu geraten. Dazu sind praxisnahe Leitlinien zur Beurteilung von Risiken nötig.

Wird ein Use Case als «Hochrisikoanwendung» eingestuft, dann müssen verschiedene Anforderungen hinsichtlich Data Governance und Risk Management erfüllt sein, bevor das Produkt auf den Markt gebracht werden kann. So müssen verwendete Trainingsdatensätze nachweislich auf Verzerrungen und einseitige Tendenzen geprüft werden. Auch sollen die Modellarchitektur und Trainingsparameter dokumentiert werden. Nach dem Deployment muss ein Maß an menschlicher Aufsicht über getroffene Entscheidungen des Modells sichergestellt werden.

Verantwortlichkeit zu KI-Produkten ist ein hohes und wichtiges Ziel. Allerdings bleibt erneut die praktische Umsetzung dieser Anforderungen fraglich. Viele moderne KI-Systeme nutzen nicht länger den herkömmlichen Ansatz von Trainings- und Testdaten, sondern setzen bspw. durch Reinforcement Learning auf exploratives Training durch Feedback anstelle eines statischen, prüfbaren Datensatzes. Fortschritte in Explainable AI brechen zwar undurchschaubare Black-Box Modelle stetig weiter auf und ermöglichen immer mehr Rückschlüsse auf die Wichtigkeit von Variablen im Entscheidungsprozess eines Modelles, aber komplexe Modellarchitekturen und Trainingsprozesse vieler moderner neuronaler Netzwerke machen einzelne Entscheide eines solchen Modells für Menschen kaum sinnhaft rekonstruierbar.

Auch werden Anforderungen an die Genauigkeit der Prognosen oder Klassifizierungen gestellt. Dies stellt Entwickler vor besondere Herausforderungen, denn kein KI-System hat eine perfekte Genauigkeit. Dieser Anspruch besteht auch nicht, oftmals werden Fehlklassifikationen so eingeplant, dass sie für den jeweiligen Use Case möglichst wenig ins Gewicht fallen. Deshalb ist es unabdinglich, dass die Anforderungen an die Genauigkeit von Prognosen und Klassifikationen von Fall zu Fall in Anbetracht der Anwendung festgelegt werden und auf Pauschalwerte verzichtet wird.

KI-Exzellenz ermöglichen

Europa gerät ins Hintertreffen

Mit diesen Anforderungen will der Vorschlag zur KI-Regulierung durch Transparenz und Verantwortlichkeit Vertrauen in die Technologie wecken. Dies ist ein erster, richtiger Schritt in Richtung «KI-Exzellenz». Nebst Regulierung muss der KI-Standort Europa dazu aber auch für Entwickler und Investoren mehr Strahlkraft erhalten.

Laut einer jüngst veröffentlichten Studie des Center for Data Innovation gerät Europa sowohl gegenüber den Vereinigten Staaten als auch China im Anspruch um die weltweite Führungsposition in Sachen KI bereits ins Hintertreffen. So hat China mittlerweile in der Anzahl veröffentlichter Studien und Publikationen zu künstlicher Intelligenz Europa den Rang abgelaufen und die weltweite Führung übernommen. Auch ziehen europäische KI-Unternehmen erheblich weniger Investitionen an als ihre amerikanischen Pendants. Europäische KI-Unternehmen investieren weniger Geld in Forschung und Entwicklung und werden auch seltener aufgekauft als ihre amerikanischen Kollegen.

Ein Schritt in die richtige Richtung: Unterstützung von Forschung und Innovation

Der Vorschlag der EU-Kommission erkennt an, dass für Exzellenz auf dem europäischen Markt mehr Unterstützung für KI-Entwicklung benötigt wird und verspricht Regulatory Sandboxes, also rechtliche Spielräume zur Entwicklung und Testung innovativer KI-Produkte, und die Kofinanzierung von Forschungs- und Teststätten für KI. Dadurch sollen insbesondere Start-ups und kleinere Unternehmen wettbewerbsfähiger werden und für mehr europäische Innovationen sorgen.

Dies sind notwendige Schritte, um Europa auf den Weg zur KI-Exzellenz zu hieven, allerdings ist damit nicht genug getan. KI-Entwickler brauchen einfacheren Zugang zu Märkten außerhalb der EU, was auch das Vereinfachen von Datenströmen über Landesgrenzen bedeutet. Die Möglichkeiten zur Expansion in die USA und Zusammenarbeit mit Silicon Valley ist für die digitale Branche besonders wichtig, um der Vernetzung von digitalen Produkten und Services gerecht zu werden.

Was in dem Vorschlag zur KI-Regulierung gänzlich fehlt ist die Aufklärung über KI und deren Potenzial und Risiken außerhalb von Fachkreisen. Mit der zunehmenden Durchdringung aller Alltagsbereiche durch künstliche Intelligenz wird dies immer wichtiger, denn um Vertrauen in neue Technologien stärken zu können, müssen diese zuerst verstanden werden. Die Aufklärung sowohl über das Potenzial als auch die Grenzen von KI ist ein essenzieller Schritt, um künstliche Intelligenz zu entmystifizieren und dadurch Vertrauen in die Technologie zu schaffen.

Potenzial noch nicht ausgeschöpft

Mit diesem Vorschlag erkennt die Europäische Kommission an, dass Künstliche Intelligenz wegweisend ist für die Zukunft des europäischen Marktes. Leitlinien für eine Technologie dieser Tragweite sind wichtig – genauso wie die Förderung von Innovation. Damit diese Strategien auch Früchte tragen, muss ihre praktische Umsetzung auch für Start-ups und KMU zweifelsfrei umsetzbar sein. Das Potenzial zur KI-Exzellenz ist in Europa reichlich vorhanden. Mit klaren Spielregeln und Anreizen kann dies auch realisiert werden.

Von der Zeichenbank zum Machine Learning Forschungsprojekt

Als eine der führenden Beratungen im Bereich Data Science, KI & Machine Learning treffen wir bei STATWORX regelmäßig Menschen, die uns mit ihren revolutionierenden Ideen nachhaltig beeindrucken. Eines haben viele dieser Menschen mit ihren Produktideen gemeinsam: Sie wollen einen persönlichen pain point in ihrer Arbeitweise verringern. Einer dieser spannenden Menschen mit einer außergewöhnlichen Idee ist Marco Limm.

Portraitfoto Marco Limm
Bild 1: Marco Limm, Gründer des Startups creaition

Marco Limm hat das Start-up creaition gegründet, das mit seinem Produkt den äußerst komplexen und sehr iterativen Prozess der Designentwicklung optimieren möchte. Aber wie er auf diese Idee?

Während seines Studiums im Bereich Transportdesign in den USA kam ihm erstmals die Idee, den Designprozess mit Hilfe von Machine Learning zu optimieren. Dazu motiviert hat ihn, dass viele seiner Arbeiten, um es in seinen Worten zu sagen, „für die Tonne“ produziert wurden und er dadurch angespornt wurde, einen effizienteren Weg zu finden.

Die Idee, ein eigenes Produkt zu entwickeln, dass als digitale Muse für Designer*innen fungiert, umtrieb Marco bereits seit dem 3. Semester sehr stark. Mit der Motivation, auch anderen Designer*innen damit die Arbeit zu erleichtern, und angespornt von der Neugier, ob seine Idee tatsächlich umsetzbar ist, entwickelte er aus der Idee eine Forschungsarbeit, der er sich sowohl für seine Bachelor- als auch seine Masterarbeit widmete.

Die Entwicklung des creaition Prototypen

Erste Versuche mit 3D Modellen, Bilddaten & knappen Ressourcen

Marco sieht den wichtigsten Einfluss von Designer*innen am Anfang und Ende des klassischen Designprozesses – darauf müssten sich Designer*innen seiner Meinung nach viel stärker konzentrieren können. Der mittlere Part des Designprozesses umfasst z.B. „stundenlanges Auto-Fronten zeichnen“, so Marco. „Die Morphologie kann die Maschine übernehmen, dafür braucht man keinen menschlichen Designer.“

Abbildung eines Designprozesses
Bild 2: Abbildung der klassischen Struktur des Designprozesses und des interaktiven Aufbaus.

Basierend auf der Grundidee der Optimierung durch Machine Learning startete Marco zusammen mit Kevin German, im Rahmen der gemeinsamen Bachelorarbeit an der Uni, die Entwicklung des Algorithmus. Ziel war es, eine künstliche Intelligenz (KI) zu trainieren, die selbstständig Design-Vorschläge basierend auf historischen Daten kreiert.

Zuerst hat das Duo versucht, mit 3D Modellen zu arbeiten, die Marco selbst erstellt hatte. Bei diesem Versuch stießen die beiden schnell an ihre Grenzen, da ihnen in der Uni nicht die ausreichende Rechenleistung und Infrastruktur zur Verfügung stand. Ein weiteres Problem waren zudem mangelnde Daten.

In einem zweiten Schritt versuchten sie sich an Bildern, die sie aus verschiedenen Quellen bezogen (Archive, Online etc.). Das hat zwar schon besser funktioniert, aber die Ergebnisse, die der Algorithmus aus diesen Daten generierte, waren mehr Kunst als Industriedesign. Einer seiner Professoren hätte diese Ergebnisse gerne als Kunstprojekt veröffentlicht, erzählt uns Marco. „Es kamen zwar schöne Kompositionen dabei raus, die man sicherlich in ein Museum stellen könnte, aber leider war das nicht das eigentlich Ziel.“

Creaition Picture Book Ansatz 2
Bild 3: In einem „Picture Book“ zeigt Marco Limm die Ergebnisse der verschiedenen Phasen der Entwicklung des Machine Learning Algorithmus‘.

3-Layer Ansatz für den Machine Learning Algorithmus

Aus diesen ersten beiden gescheiterten Versuchen konnte die Erkenntnis gezogen werden, dass sie eine weniger komplexe, aber auch nicht zu abstrakte Datengrundlage brauchten. Es ging noch einmal zurück in die Recherche-Phase, Bücher wälzen, verschiedene Ansätze prüfen, neue Eindrücke sammeln. Das hatte zur Folge, dass sie im dritten Anlauf mit einem ganz neuen Ansatz starteten. Bei diesem neuen Ansatz unterteilten sie das Design in 3 Layer: Silhouette, Flächen, Grafiken. Die drei Layer, aus denen sich ein Design zusammensetzt, haben sie genutzt, um die Komplexität der Daten zu verringern.

Bild 4:  Auf dieser Zeichnung von Marco Limm sind man eine Auswahl der zahlreichen Entwürfe, die bei dem klassischen Designprozess vonnöten sind.

Mit dem 3-Layer Ansatz konnte Marco einen geeigneten Datensatz anlegen und mit diesen Daten den Algorithmus trainieren. Dabei heraus kamen 40.000 Designs, aus denen sie nun wählen konnten.

Aus diesem Ergebnis erwuchs die nächste Herausforderung: 40.000 Design zu evaluieren stellte keine wirkliche Arbeitserleichterung dar. Die Lösung? Ein genetischer Algorithmus, der aufgrund der Reaktionen der Designer*innen auf verschiedene Design-Vorschläge den individuellen Geschmack erkennt und darauf basierend neue Vorschläge generiert. Genannt haben sie das „Bottle-Tinder“ – denn auch hier swiped man weiter, je nachdem, ob einem das Design gefällt, oder nicht.

Beim „Bottle-Tinder“-Prinzip werden den Designer*innen immer wieder neue Designvorschläge präsentiert, die sie dann bewerten müssen. Nach etwa 15 Minuten kann der Algorithmus den Geschmack der Person extrahieren und anschließend beliebig anwenden.

Creaition mit GAN generierte Flaschen
Bild 5: In diesem Rendering ist das erste von der KI generierte Flaschendesign abgebildet.

Creaition unterwegs auf nationalen und internationalen Messen

Mit diesem Prototypen im Gepäck machte das Projekt creaition auf verschiedenen Messen auf sich aufmerksam und erhielt dort durchweg positives Feedback bekommen. Ihre Kolleg*innen aus der Designbranche sehen in ihrem Produkt ein hohes Potenzial – wer hat schon Lust auf stundenlanges Auto-Fronten zeichnen?

Creaition war u.a. bei folgenden Messen vertreten:

Next steps: Pilotprojekt

Wir von STATWORX unterstützen creaition aktuell bei Suche nach einem geeigneten Partner für ein Pilotprojekt. Ziel des Proof of Concepts ist die Entwicklung neuer Design-Entwürfe basierend auf extrahierter Design-DNA des Auftraggebers.

Konkret bedeutet das, dass der Machine Learning Algorithmus auf Grundlage Ihrer 2D-Daten neu trainiert wird und daraus eine Design-DNA herausfiltert, mit der dann wiederum beliebig viele neue Design-Vorschläge generiert werden können. In der Regel haben Unternehmen, die für diese Art von KI-Optimierung in Frage kommen, bereits eine Fülle an Daten (v.a. 2D-Daten ihrer Produkte), aus denen sie bisher keinen großen Nutzen ziehen. Nutzen Sie also das Potenzial Ihrer Daten und helfen Sie Ihrer Design-Abteilung dabei, repetitive und monotone Arbeitsschritte zu verringern, damit sie sich auf die wesentlichen, kreativen und schöpferischen Arbeiten konzentrieren können.

Sie möchten noch mehr über creaition erfahren? Hier können Sie sich das vollständige Conference-Paper herunterladen, das Marco Limm und seine Co-Autoren (Kevin German, Matthias Wölfel und Silke Helmerdig) für die ArtsIT zu diesem Thema verfasst haben.

Wenn Sie Interesse an einer Zusammenarbeit in diesem Pilotprojekt haben, dann kontaktieren Sie uns gerne über unser Kontaktformular oder schreiben Sie eine Mail an hello@creaition.io.

Auswirkungen von Machine Learning

Die konzeptionellen Grundlagen für Machine Learning (ML) wurden in der zweiten Hälfte des 20. Jahrhunderts entwickelt. Aber Rechenbeschränkungen und Datenknappheit haben die Begeisterung für künstliche Intelligenz (KI) auf die letzten Jahre verschoben. Seitdem sind Computer exponentiell schneller geworden und Cloud-Dienste mit nahezu unbegrenzten Ressourcen entstanden. Der Fortschritt in der Rechenleistung, kombiniert mit der Fülle an Daten, macht Machine Learning Algorithmen heute in vielen Bereichen anwendbar.

KI-Systeme schlagen menschliche Domänenexperten bei komplexen Spielen wie dem Brettspiel Go oder Videospielen wie Dota2. Überraschenderweise können die Algorithmen Wege finden, um die Aufgabe zu lösen, an die menschliche Experten nicht einmal gedacht haben. In diesem Sinne kann der Mensch auch von künstlichen Systemen lernen.

All diese Erfolgsgeschichten müssen in einen Kontext gesetzt werden. ML Algorithmen eignen sich gut für spezifische Aufgaben; jedoch verallgemeinern sie heute noch schlecht.

Eine aktuelle Ausnahme sind riesige Modell in Natural Language Processing – die Verwendung einer menschlichen Sprache (z. B. Englisch) durch einen Computer. Eines der Modelle heißt GPT-3 und hat sich bei mehreren Aufgaben außergewöhnlich gut bewährt. Der Erfolg von GPT-3 beruht unter anderem auf Self-Supervised Learning, ein Ansatz in Machine Learning, den ich später erläutere.

Machine Learning ist ein Zweig der Künstlichen Intelligenz

In den frühen Anfängen der Künstlichen Intelligenz wurden Anwendungen auf regelbasierten Programmen aufgebaut, das heißt, der Mensch hat sein Wissen in den Computer codiert. Dieser Ansatz ist äußerst starr, da nur Szenarien abgedeckt werden, die der Entwickler berücksichtigt hat, und es findet kein Lernen statt. Mit der deutlichen Steigerung der Rechenleistung und der damit einhergehenden Datengenerierung können Algorithmen Aufgaben ohne menschliches Zutun lernen. Die Begriffe Algorithmus und Modell werden hier als Synonyme verwendet.

Der Prozess Wissen aus Daten zu extrahieren, wird als Machine Learning bezeichnet und ist ein Teilbereich der KI. Es gibt verschiedene Machine Learning Modelle, die alle unterschiedliche Ansätze verwenden. Die meisten basieren auf zwei Elementen: Parametern und einer Zielfunktion. Die Zielfunktion gibt einen Wert zurück, der die Leistung des Modells signalisiert, und Parameter kann man sich als Stellschrauben vorstellen. Daher besteht das Ziel darin, die Parameter zu finden, die die bestmögliche Leistung des Modells für einen bestimmten Datensatz ergeben.

Das Format der Daten bestimmt, welche Algorithmen anwendbar sind. Daten können strukturiert oder unstrukturiert sein. Strukturierte Daten sind tabellenartig angeordnet, während unstrukturierte Daten Bilder, Audio oder Text darstellen. Darüber hinaus können Daten gekennzeichnet oder nicht gekennzeichnet sein. Im Fall von gekennzeichneten Daten hat jeder Datenpunkt eine Kennzeichnung (Label). In Abbildung 1 ist beispielsweise jedes Bild im Datensatz mit der Beschreibung des dargestellten Tieres versehen. Nicht gekennzeichnete Daten (unlabeled data) enthalten keine Beschreibung. Wie Sie in Abbildung 1 sehen können, enthält der Datensatz auf der rechten Seite keine Kennzeichnung mehr.

Darstellung von gekennzeichneten und nicht gekennzeichneten Daten anhand von Bildern. Bild 1: Darstellung von gekennzeichneten und nicht gekennzeichneten Daten anhand von Bildern.

Bei der Arbeit mit unstrukturierten Daten gibt es oft keine natürliche Kennzeichnung, die gesammelt werden kann. Normalerweise müssen Menschen alle Beispiele durchgehen und sie mit vordefinierten Labels versehen. Modelle benötigen jedoch viele Daten, um eine Aufgabe zu lernen – ähnlich wie der Mensch, der in seinen ersten Lebensjahren viele Erfahrungen sammelt, bevor ihm das Gehen und Sprechen gelingt. Das hat Fei Fei Li, die ehemalige Direktorin von Stanfords AI Lab, dazu motiviert, eine große Datenbank mit sauber beschrifteten Bildern zu erstellen, das ImageNet. Derzeit umfasst ImageNet mehr als 14 Millionen Bilder mit mehr als 20.000 Kategorien – so finden Sie zum Beispiel mehrere hundert Mal Bilder, die eine Banane zeigen. ImageNet wurde zur größten Datenbank mit beschrifteten Bildern und ist der Ausgangspunkt für die meisten modernen Computer Vision Modelle.

Wir begegnen ML Modellen in unserem täglichen Leben. Einige sind praktisch, wie der Übersetzungsdienst Google Translate; andere machen Spaß, wie Snapchat-Filter. Unsere Interaktion mit künstlicher Intelligenz wird in den nächsten Jahren höchstwahrscheinlich zunehmen. Angesichts der potenziellen Auswirkungen von ML Modellen auf unser zukünftiges Leben möchte ich dir die fünf Zweige von ML und ihre Schlüsselkonzepte vorstellen.

5 Typen von Machine Learning Algorithmen

Supervised Learning

Was ist überwachtes Lernen (Supervised Learning)

Bei Supervised Learning Aufgaben basiert das Training eines Modells auf Daten mit bekannten Labels. Diese Modelle verwenden Daten als Eingabe und liefern eine Vorhersage als Ausgabe. Die Vorhersagen werden dann mit den Kennzeichnungen verglichen, die als Wahrheit gelten. Ziel ist es, die Diskrepanz zwischen Wahrheit und Vorhersage zu minimieren.

Supervised Learning Aufgaben lassen sich in zwei Bereiche unterteilen: Klassifikation und Regression. Klassifikationsprobleme sagen voraus, zu welcher Klasse ein Datenpunkt gehört. Zum Beispiel die Klassifikation eines Bildes – ist ein Hund oder eine Katze zu sehen? Es wird zwischen binärer Klassifikation, bei der nur zwei Klassen beteiligt sind, und Mehrklassenklassifikation mit mehr als zwei Klassen unterschieden. Andererseits sagen Regressionsprobleme eine reellwertige Zahl voraus. Ein typisches Regressionsproblem ist die Absatzprognose, z. B. die Vorhersage, wie viele Produkte im nächsten Monat verkauft werden.

Use Case

Bauern bauen an und liefern verderbliche Waren. Eine der Entscheidungen, die ein Tomatenbauer nach der Ernte treffen muss, ist die Bündelung seines Produkts. Ästhetisch aussehende Tomaten sollten den Endverbrauchern angeboten werden, während Tomaten mit kleinen Schönheitsfehlern an Zwischenproduzenten, z. B. Tomatensaucenhersteller, verkauft werden können. Andererseits sollten ungenießbare Tomaten herausgefiltert und als natürlicher Dünger verwendet werden.

Dies ist ein spezialisierter und sich wiederholender Job, den Machine Learning-Algorithmen leicht automatisieren können. Die Qualität der Tomaten kann mittels Computer Vision klassifiziert werden. Jede Tomate wird von einem Sensor gescannt und von einem Modell ausgewertet. Das Modell ordnet jede Tomate einer bestimmten Gruppe zu.

Bevor solche Modelle in der Produktion eingesetzt werden, müssen sie auf Daten trainiert werden. Input für das Modell wären Bilder von Tomaten mit entsprechenden Labels (z. B. Endverbraucher, Zwischenproduzent, Dünger). Die Ausgabe des Modells wäre die Wahrscheinlichkeit – wie sicher ist sich das Modell bei der Vorhersage. Eine hohe Wahrscheinlichkeit signalisiert, dass das Modell von der Klassifizierung überzeugt ist. In Fällen, in denen das Modell nicht sicher ist, könnte ein menschlicher Experte es sich noch einmal ansehen. Auf diese Weise erfolgt eine Vorfilterung von eindeutigen Fällen, während nicht eindeutige Fälle einzeln ermittelt werden müssen.

Der Einsatz des Modells könnte einen effizienteren Prozess ermöglichen. Darüber hinaus gilt dieser Use Case für zahlreiche Probleme bei der Qualitätskontrolle.

Frameworks

Der Reifegrad von Frameworks für Supervised Learning ist im Vergleich zu anderen Bereichen des Machine Learning hoch. Die meisten relevanten Programmiersprachen haben ein bewährtes Paket für Supervised Learning Aufgaben. Darüber hinaus erleichtern Cloud-Anbieter und KI-Plattformen die Nutzung von Supervised Learning Modellen durch benutzerfreundliche Schnittstellen und Tools.

Überlegungen

Für Supervised Learning Aufgaben sind gekennzeichnete Daten erforderlich. In vielen Fällen ist es teuer, gekennzeichnete Daten zu sammeln. Im obigen Use Case musste beispielsweise mindestens ein menschlicher Experte jede Probe von Hand beschriften. Noch kostspieliger wird es, wenn für die Kennzeichnung umfangreiches Wissen erwartet wird, etwa das Erkennen von Tumoren auf Röntgenbildern. Aus diesem Grund haben sich verschiedene Unternehmen auf die Bereitstellung von Kennzeichnungsdienstleistungen spezialisiert. Sogar die großen Cloud-Anbieter – Microsoft, Amazon und Google – bieten diese Dienste an. Der bekannteste ist Amazon Web Services Mechanical Turk.

Daten sind jedoch reichlich vorhanden – aber oft unbeschriftet. Im Bereich des unüberwachten Lernens (Unsupervised Learning) wurden Algorithmen entwickelt, um auch Daten ohne Kennzeichnung zu nutzen.

Unsupervised Learning

Was ist unüberwachtes Lernen (Unsupervised Learning)?

Unsupervised Learning Algorithmen konzentrieren sich darauf, Probleme zu lösen, ohne von gekennzeichneten Daten abhängig zu sein. Im Gegensatz zum Supervised Learning gibt es keinen Vergleichswert, der die Wahrheit repräsentiert. Die Leistung des Modells wird anhand der Eingabedaten selbst bewertet.

Dieses Feld des Machine Learnings lässt sich in drei Teilbereiche zusammenfassen – Dimensionsreduktion, Clustering und Anomalieerkennung. Diese Teilbereiche werden im Folgenden vorgestellt.

Datensätze können aufgrund der Anzahl der Observationen und der darin enthaltenen Merkmale (Features) enorm sein. Im Allgemeinen sollte die Anzahl der Observationen viel höher sein als die Anzahl der Features, um sicherzustellen, dass Modelle ein Muster in den Daten finden können. Es gibt ein Problem, wenn die Features die Anzahl der Beispiele in den Daten überwiegen.

Dimensionsreduktionsalgorithmen gehen dieses Problem an, indem sie eine Abstraktion des ursprünglichen Datensatzes erstellen und dabei so viele Informationen wie möglich beibehalten. Das bedeutet, dass ein Datensatz mit 100 Features und nur 50 Observationen zu einem neuen Datensatz mit 10 Features und 50 Beispielen komprimiert werden kann. Die neuen Features sind so aufgebaut, dass sie möglichst viel Information beibehalten. Eine kleine Menge an Informationen aus dem ursprünglichen Datensatz wird geopfert, um sicherzustellen, dass ein Modell zuverlässige Vorhersagen liefert.

Bei Clustering-Ansätzen versuchen wir, die Beobachtungen in verschiedene Untergruppen zu unterteilen. Das Ziel besteht darin, Cluster zu erhalten, bei denen Beobachtungen innerhalb von Clustern ähnlich sind, während Beobachtungen in anderen Clustern abweichen.

Jede Beobachtung des Datensatzes kann man sich als Punkt in einem Raum vorstellen. Die erfassten Features bestimmen die Position des Punktes. Betrachtet man zwei Beobachtungen, kann eine Entfernung berechnet werden. Der Abstand ist dann ein Signal dafür, wie ähnlich sich diese beiden Punkte sind.

Clustering-Algorithmen erzeugen zunächst zufällige Cluster und passen diese iterativ an, um die Abstände von Punkten innerhalb eines Clusters zu minimieren. Die resultierenden Cluster enthalten Beobachtungen mit ähnlichen Eigenschaften.

Bei der Anomalieerkennung besteht das Ziel darin, Beobachtungen zu identifizieren, die aufgrund des Datensatzes seltsam erscheinen. Diese Beobachtungen können auch als Ausreißer oder Ausnahmen bezeichnet werden. Ein Beispiel sind betrügerische Bankaktivitäten, bei denen die Zahlung aus einem anderen Land als üblich ausgelöst wurde. Der Versuch wird als Anomalie identifiziert und löst einen Verifizierungsprozess aus.

Use Case

Große Einzelhandelsunternehmen bieten oft Treuekarten an, um Punkte zu sammeln. Nach jedem Einkauf kann die Karte gescannt werden, um Punkte zu sammeln. Monatlich erhält der/die Kunde:in einen Bericht über das Einkaufsverhalten. Welche Produkte hat der Kunde am häufigsten gekauft? Wie hoch ist der Anteil nachhaltiger Produkte im Warenkorb? Der Kunde erhält auch eine Art Rabatt- oder Cashback-Gutschein. Je mehr Punkte ein Kunde sammelt, desto höher ist der Wert des Gutscheins. Dies kann zu einer höheren Kundenbindung und -zufriedenheit führen, da sie für ihr Verhalten belohnt werden. Die gesammelten Daten über das Einkaufsverhalten der Kunden sind sehr wertvoll.

Es ist davon auszugehen, dass es eine gewisse Heterogenität unter den Kunden gibt, da alle ihr Einkaufsverhalten haben. Clustering könnte verwendet werden, um Gruppen mit ähnlichen Präferenzen zu identifizieren. Dies ist ein Problem des unüberwachten Lernens, da die Gruppen vorher unbekannt sind.

Beispielsweise können drei Cluster entstehen. Ein Cluster umfasst Kunden mit vegetarischer Ernährung, Fleischesser und Kunden, die Fleisch und vegetarische Ersatzprodukte mischen. Basierend auf den drei Kundenprofilen können Marketingkampagnen clusterspezifisch angepasst werden.

Clustering der Kunden in drei Gruppen auf der Grundlage ihres Einkaufsverhaltens. Bild 2: Clustering der Kunden in drei Gruppen auf der Grundlage ihres Einkaufsverhaltens.

Frameworks/Maturity

Dimensionsreduktions-, Clustering- und Anomalieerkennungsalgorithmen sind relativ ausgereifte Ansätze und in den meisten Machine Learning Paketen verfügbar.

Überlegungen

Neuere Forschungen legen einen Schwerpunkt auf unüberwachte Methoden. Der Hauptgrund dafür ist, dass eine Fülle von Daten zur Verfügung steht, aber nur ein winziger Teil sind gekennzeichnete Daten. Self-Supervised und Semi-Supervised Learning Ansätze entstanden aus dem Ziel, gekennzeichnete und nicht gekennzeichnete Daten zu kombinieren, um eine Aufgabe zu lernen.

Self-Supervised Learning

Was ist selbstüberwachtes Lernen (Self-Supervised Learning)?

Self-Supervised Learning ist ein neuer Ansatz im Machine Learning, der hauptsächlich in Computer Vision und Natural Language Processing angewendet wird. Diese Felder erfordern große Datensätze, um eine Aufgabe zu erlernen, aber wie bereits erwähnt, ist es teuer, einen sauberen, großen Datensatz zu generieren.

Jeden Tag werden große Mengen nicht gekennzeichneter Daten erstellt – Tweets, Instagram-Posts und vieles mehr. Die Idee des selbstüberwachten Lernens besteht darin, alle verfügbaren Daten zu nutzen.

Die Lernaufgabe wird mit nicht gekennzeichneten Daten zu einem überwachten Problem konstruiert. Der Trick ist, dass die Labels für die überwachte Aufgabe eine Teilmenge des Inputs sind. Mit anderen Worten, die Daten werden so transformiert, dass ein Teil der Eingabe als Label verwendet wird und das Ziel des Modells darin besteht, den fehlenden Teil der Eingabe vorherzusagen. Auf diese Weise überwachen sich die Daten selbst.

Es gibt verschiedene Möglichkeiten, Eingabedaten zu transformieren. Eine einfache ist durch Rotation. Wie in Abbildung 2 dargestellt, wird auf jedes Eingabebild eine Transformation angewendet. Das modifizierte Bild wird für das Modell eingegeben, und die angewendete Drehung ist das vorherzusagende Ziel. Um verschiedene Drehungen für dasselbe Bild vorherzusagen, muss das Modell ein grobes Verständnis der Welt entwickeln – bspw. wo ist der Himmel.

Self Supervised Learning Illustration Bild 3: Illustration des Self-Supervised Learnings unter Verwendung der Drehung des Eingabebildes. Das Modell lernt, die angewendete Rotation vorherzusagen.

Zusammenfassend ist die Vorhersage der Rotation irrelevant; es ist nur ein Mittel zum Zweck. Beim Lösen der Rotationsvorhersageaufgabe lernt das Modell implizit ein allgemein gutes Verständnis von Bildern.

Im Kontext von Sprachmodellen könnte ein erstes Ziel darin bestehen, das nächste Wort im Text vorherzusagen. Durch diese Aufgabe lernt das Modell bereits die Struktur einer Sprache. Der Vorteil ist, dass das Modell ein breites Verständnis erlernt hat, auf dem man weiter aufbauen kann. So fängt man nicht bei jedem Training von Null an.

Use Case

Spracherkennungsmodelle können menschliche Sprache in Text übersetzen. Es wird in vielen Diensten verwendet, vor allem in Heimassistenzsystemen wie Alexa von Amazon.

Im selbstüberwachten Kontext können nicht gekennzeichnete Daten (z.B. Hörbücher) für das Vortraining verwendet werden. Durch eine Hilfsaufgabe lernt das Modell ein initiales Verständnis von Sprache. Nach dem Training können Supervised Learning Techniken angewendet werden, um das Modell auf eine spezifische Aufgabe zu trainieren. Daher kann Self-Supervised Learning verwendet werden, um die Leistung von Supervised Learning-Ansätzen zu verbessern.

Frameworks

Im Internet gibt es zahlreiche mit Self-Supervision vortrainierte Modelle. Diese kann man auf Tensorflow Hub, PyTorch Hub, Hugging Faces und anderen Plattformen herunterladen und nutzen.

Überlegungen

Neuere Arbeiten zeigen vielversprechende Ergebnisse, konzentrieren sich jedoch oft auf einen Bereich. So bringt Self-Supervised Learning nachweisbare Verbesserungen bei der Bildklassifizierung. Die Übertragung des Fortschritts auf die Objekterkennung hat sich jedoch als knifflig erwiesen. Dennoch sind die Ansätze und Verbesserungen spannend.

Aktuell entwickeln wir uns in die Richtung, dass immer weniger Unternehmen in der Lage sind, Self-Supervised Learning Modelle zu trainieren. Dies liegt an den hohen Kosten für Rechenleistung, enormen Datenmengen, die benötigt werden und an der Knappheit von relevantem Wissen. Zudem ist es effizienter, einige wenige Self-Supervised Learning Modelle zu haben anstelle von vielen.

Semi-Supervised Learning

Was ist teilüberwachtes Lernen (Semi-Supervised Learning)?

Supervised und Unsupervised Learning werden im Semi-Supervised Learning kombiniert. Es gibt verschiedene Ansätze für das Semi-Supervised Learning. Normalerweise ist es in mehrere Schritte unterteilt.

Zunächst wird ein Modell Self-Supervised trainiert. Zum Beispiel lernt das Modell ein gutes Verständnis einer Sprache mithilfe von unbeschrifteten Textdaten und einer Hilfsaufgabe (ein Beispiel wäre die Vorhersage des nächsten Wortes im Text). Die für das Gelingen der Hilfsaufgabe verantwortlichen Elemente des Modells können extrahiert werden. Der Rest des Modells enthält ein hohes Verständnis einer Sprache.

Das verkürzte Modell wird dann auf die beschrifteten Daten mit Hilfe von Supervised Learning trainiert. Da das Modell bereits ein gewisses Verständnis einer Sprache erlernt hat, benötigt es keine riesige Menge an gekennzeichneten Daten, um eine andere spezialisierte Aufgabe im Zusammenhang mit dem Sprachverständnis zu erlernen. Semi-Supervised Learning wird hauptsächlich in den Bereichen Computer Vision und Natural Language Processing eingesetzt.

Use Case

Täglich teilen Menschen ihre Gedanken und Meinungen in den sozialen Medien. Diese Kommentare in Textform können für Unternehmen wertvoll sein. Die Verfolgung der Kundenzufriedenheit im Zeitverlauf führt zu einem besseren Verständnis der Kundenerfahrung. Die Stimmungsanalyse, ein Teilgebiet des Natural Language Processing, kann verwendet werden, um die Kundenansichten basierend auf Tweets, Facebook-Kommentaren oder Blog-Posts zu klassifizieren. Bevor die Stimmung anhand von Text klassifiziert werden kann, wird das Modell anhand von Textdokumenten aus Wikipedia, Büchern und vielen anderen Ressourcen vortrainiert. Normalerweise besteht die Aufgabe des Modells darin, das nächste Wort in einem Satz vorherzusagen. Ziel ist es, in einem ersten Schritt den Aufbau einer Sprache zu erlernen, bevor man sich auf eine bestimmte Aufgabe spezialisieren kann. Nach dem Vortraining werden die Modellparameter an einem Datensatz mit Labels feinabgestimmt. In diesem Szenario wird das Modell an einem Datensatz mit Tweets trainiert, die jeweils mit einem Tag versehen sind, je nachdem, ob das Stimmungsbild negativ, neutral oder positiv ist.

Frameworks

Semi-Supervised Learning umfasst alle Ansätze, die Unsupervised und Supervised Learning kombinieren. Daher können Praktiker gut etablierte Frameworks aus beiden Bereichen verwenden.

Überlegungen

Semi-Supervised Learning kombiniert nicht gekennzeichnete und gekennzeichnete Daten, um die Vorhersageleistung des Modells zu erhöhen. Voraussetzung ist jedoch, dass die Größe der unbeschrifteten Daten im Vergleich zu den beschrifteten Daten wesentlich größer ist. Andernfalls könnte nur Supervised Learning verwendet werden.

Reinforcement Learning

Was ist Reinforcement Learning?

Im Reinforcement Learning interagiert ein Agent (ein Modell) mit einer Umgebung. Der Agent beobachtet den Zustand der Umgebung und kann basierend auf seinen Beobachtungen eine Aktion auswählen. Der Agent erhält von der Umgebung ein Feedback. Wenn die Aktion gut war, fällt das Feedback positiv aus und vice versa. Das Ziel des Agenten ist es, seine zukünftige kumulative Belohnung zu maximieren. Mit anderen Worten, es muss für jede Situation die beste Aktion finden.

In vielen Fällen wird die Interaktion des Agenten mit der Umgebung simuliert. Auf diese Weise kann der Agent Millionen von Zuständen erleben und das richtige Verhalten lernen.

Illustration Reinforcement Learning Bild 4: Illustration des Lernprozesses beim Reinforcement Learning.

Use Case

Personalisierte Werbung kann die Effizienz einer neuen Marketingkampagne verbessern. Anzeigen für ein Produkt, beispielsweise ein Auto, werden oft allen Homepage Besuchern gleich angezeigt. Interessanter wäre es Besuchern, die wiederholt die Seite aufsuchen, schrittweise das Produkt schmackhaft zu machen, bevor das finale Angebot vorgestellt wird. Zunächst könnte die Anzeige die Verfügbarkeit günstiger Finanzierungskonditionen beschreiben, dann beim nächsten Besuch eine exzellente Serviceabteilung loben und am Ende den finalen Rabatt präsentieren. Dies kann zu mehr Klicks eines Nutzers und bei guter Umsetzung zu mehr Verkäufen führen.

Im oben beschriebenen Fall würde ein Agent je nach Profil des Benutzers auswählen, welche Anzeige geschaltet werden soll. Das Profil basiert auf den Interessen und Präferenzen des Benutzers, die aus der Online-Aktivität abgeleitet werden. Der Agent passt seine Aktionen an – indem er verschiedene Anzeigen auswählt – basierend auf dem Feedback des Benutzers. In dieser Einstellung erhält der Agent nicht bei jeder Aktion ein Signal, da es eine Weile dauert, bis sich der Nutzer für den Kauf eines Autos entscheidet. Beispielsweise kann die Schaltung einer bestimmten Anzeige das Interesse des Nutzers wecken, aber nicht sofort zu einem Verkauf führen. Dies wird als Kreditzuweisungsproblem bezeichnet. Aber der Agent kann eine Weile warten. Falls eine Folge von Maßnahmen zu einem Verkauf führt, wird die Wahrscheinlichkeit der ergriffenen Maßnahmen bei gleichem Input erhöht. Andernfalls wird der Agent in Zukunft eine neue Strategie fahren.

Frameworks

Im Bereich des Reinforcement Learning existieren verschiedene Ansätze. Daher gibt es kein standardisiertes Framework. Aber gym und baselines – beide entwickelt von OpenAI, einem gemeinnützigen KI-Forschungsunternehmen – etablieren sich als wichtige Ausgangspunkte für Reinforcement Learning-Anwendungen.

Überlegungen

Der Agent lernt auf der Grundlage vieler Interaktionen mit der Umgebung. Diese Interaktionen in Echtzeit durchzuführen, würde lange dauern und ist oft nicht machbar – zum Beispiel kann ein Autopilot in der realen Welt nicht lernen, weil er Menschenleben gefährden könnte. Daher werden Simulationen der realen Welt erstellt, in denen der Agent durch Trial & Error lernen kann. Um einen Agenten erfolgreich zu trainieren, muss die Lücke zwischen Simulation und Realität so klein wie möglich sein.

Neben der Simulation ist die Konzeption der Belohnung entscheidend für die Leistung des Agenten. Bei der Maximierung seiner Belohnung kann der Agent unbeabsichtigtes Verhalten erlernen, das zu höheren Belohnungen führt, aber die Aufgabe nicht löst.

Der Lernprozess des Agenten ist probenineffizient. Das bedeutet, dass er sehr viele Interaktionen braucht, um eine Aufgabe zu lernen.

Reinforcement Learning zeigt in vielen Bereichen vielversprechende Ergebnisse. Allerdings basieren nur wenige reale Anwendungen darauf. Dies könnte sich in ein paar Jahren ändern.

Zusammenfassung

Die Zukunft von Künstlicher Intelligenz

Künstliche Intelligenz hat einen langen Weg zurückgelegt – von regelbasierten Skripten bis hin zu Algorithmen des Machine Learnings, die menschliche Experten schlagen. Das Feld ist in den letzten Jahren stark gewachsen. ML-Modelle werden verwendet, um verschiedene Domänenprobleme anzugehen, und ihr Einfluss auf unser Leben nimmt stetig zu.

Dennoch bleiben wichtige Fragen offen. Um zuverlässigere Modelle zu erstellen, müssen wir uns diesen Fragen stellen.

Ein entscheidender Punkt ist die Messung der Intelligenz. Wir haben noch keine allgemeine Definition von Intelligenz. Die aktuellen Modelle, die wir als künstlich intelligent bezeichnen, lernen, indem sie sich die von uns bereitgestellten Daten merken. Das führt bereits zu erstaunlichen Ergebnissen. Die Einführung einer Intelligenzmetrik und deren Optimierung wird in Zukunft zu weitaus leistungsfähigeren Modellen führen. Es ist spannend, die Fortschritte in der KI zu erleben.

Quellen

  1. „Google AI defeats human Go champion“
  2. „OpenAI Five Defeats Dota 2 World Champions“
  3. https://www.alexirpan.com/2018/02/14/rl-hard.html
  4. Reinforcement Learning, Sutton R. and Barto A., 2018

Fran Peric Fran Peric Fran Peric

Der Anfang der Adventszeit brachte dieses Jahr nicht nur den ersten Schnee in der Rhein-Main Region (Abb. 1), sondern leitete auch bei vielen nach einem Jahr voller turbulenter Ereignisse und endlosen Stunden im Homeoffice die alljährliche Zeit der Besinnlichkeit ein. Obgleich sich die angesprochene Besinnung bei vielen eher euphemistisch äußert, in Form von Geschenk- und Planungsstress oder der alljährlichen Jahresendrallye bei STATWORX, dürfen gerne auch Erinnerungen an gutes Essen, kitschige Musik und gemütliche Abende heraufbeschworen werden.

Abb. 1: Schnee in Rhein-Main
Abb. 1: Für einen kurzen Moment scheint der Weltenbrand durch unsere Lieblingsniederschlagsform erloschen, und die Welt wirkt restlos in unschuldiges und reines Weiß getaucht.
Anm. der Redaktion: Der Autor hatte eine schwierige Woche. Nichtsdestotrotz gestehen wir ein, dass seine Worte ein positives Stimmungsbild inspirieren könnten.

Mit dem Advent bricht bekanntlich auch die Zeit der Weihnachtsplätzchen an. Eine exzellente Gelegenheit, bei meinen STATWORX-Kolleg*innen unter dem Vorwand der Nächstenliebe Sympathie und professionelles Ansehen durch unschuldig wirkende, zuckerhaltige Kalorienbomben inklusive Deep-Learning-Kniff zu erlangen. In Ergänzung zu meinem vorangegangenen Artikel zum Thema Kochen mit Deep Learning, möchte ich in diesem Beitrag eine kleine Web-App vorstellen, mit der sich alternative Zutaten für Rezepte vorschlagen lassen, untermalt von KI-generierten Weihnachtsliedern. Ziel dieser Artikel (und anderer, wie zum Beispiel unsere Super Mario spielende KI) ist es, die Grundlagen hinter den oftmals etwas mystisch wirkenden Deep Learning Methoden anschaulich zu vermitteln. In vielen Gesprächen entstand bei uns der Eindruck, dass durch solch einen Überblick spannende Anwendungs- und Geschäftsfälle wesentlich besser erschlossen werden können, indem man sich zunächst bewusst macht, welche grundsätzlichen Anwendungen mittels Deep Learning erschlossen werden können.

Alternative Zutaten für Rezepte finden mittels Word Embeddings

Schon länger dominieren Anwendungen und Publikationen zum Thema Natural Language Processing die Deep Learning Forschung. Regelmäßig ermöglichen bahnbrechende Ergebnisse neue Anwendungsfälle. Eines der Schlagworte war hier zunächst Word Embeddings mittels Word2Vec und nun brandaktuell Transformer-Modelle und ihr Attention-Mechanismus, wie beispielsweise BERT oder GPT-3.

Zur genaueren Veranschaulichung dieser Methode werden im Folgenden zunächst die Grundlagen von Word Embeddings erläutert. Anschließend wird aufgezeigt, wie diese Methode genutzt wurde, um Zutaten in Rezepten durch andere, möglichst ähnlich-verwendete Lebensmittel auszutauschen. Dabei werden nicht einfach „blind“ Vorschläge gemacht sondern aus ähnlichen, kontextuell verwandten Rezepten Vorschläge erkannt und abgeleitet. Somit kann (hoffentlich) sichergestellt werden, dass das alternative Rezept zur kulinarischen Freude wird und nicht unmittelbar im Mülleimer landet.

Grundlagen von Word Embeddings

Word2Vec ist ein ausgezeichnetes Beispiel, um eine der zentralen Konzepte des Deep Learnings zu veranschaulichen: das Representation Learning. Sehr vereinfacht dem Gehirn nachempfunden, durchlaufen Daten auch in künstlichen neuronalen Netzen mehrere Schichten. Jede Schicht verändert und kombiniert die Daten vorhergehender Schichten dahingehend, dass eine dichtere und abstraktere Repräsentation der Daten entsteht. Diese Ansammlungen an Zahlen, die aus menschlicher Sicht keine intuitive Bedeutung mehr haben, enthalten nicht mehr alle Informationen der Ursprungsdaten sondern nur noch jene, die für das Modell zur Lösung der jeweiligen Aufgabe als relevant eingestuft werden. Beim Training der Modelle wird die Repräsentationen also dahingehend optimiert, die Fehler der Modell-Vorhersage zu minimieren.

Möchte man also Word Embeddings nutzen, um Worte hinsichtlich ihrer Bedeutung zu vergleichen oder Ähnlichkeiten zu erkennen, wird ein Deep Learning Modell zum allgemeinen Sprachverständnis trainiert. Dies beinhaltet meistens Aufgaben, wie die Vorhersage benachbarter Worte oder des nächsten Satzes. Um diese Aufgaben lösen zu können, muss das Modell also die grundsätzliche Verwendung von Worten, insb. im Kontext von anderen Worten erlernen. Da man im Falle unserer Word Embeddings aber nur an den internen Repräsentierung der einzelnen Worte interessiert ist, ist dieses Vorgehen (Abb. 2) eigentlich nur Mittel zum Zweck.

Abb.2: Word2Vec Verfahren zur Vorhersage von benachbarten Worten

Beim Word2Vec Verfahren wird im Training versucht, ausgehend vom mittleren Wort die links und rechts benachbarten Worte vorherzusagen. Wichtig ist, dass die Repräsentierung des mittleren Wortes durch das Umfeld bzw. den Kontext geprägt wird. Treten Worte in ähnlichen Kontexten auf, ähnelt sich ihre numerische Repräsentierung. Daraus erwarten wir beispielsweise, dass die Embeddings von Feldsalat und Radicchio sich wesentlich näher sind (häufiger Kontext: Öl, Zwiebeln, Essig, Schüssel…), als die von Feldsalat und Dosenananas (seltener Kontext: trauriger verkaterter Sonntag im Studium).

Anwendung auf ein konkretes Beispiel: Pätzchen-Rezepte mit Bake2Vec

Wie auch im vorangegangenen Artikel zu diesem Beitrag wurden die Embeddings auf einer großen Ansammlung an Texten, genannt Corpus, trainiert. In diesem Fall ca. eine Million Rezepte aus Büchern und vor allem bekannten (englischen) Rezept-Webseiten, wie von der BBC oder Epicurious.

Hierbei prägen zwei verschiedene Kontexte die Embeddings:

  1. Die Auflistung aller Zutaten eines Gerichts
  2. Die Fließtext-Anleitung zur Zubereitung, also die angeleiteten Schritte im Kochrezept selbst

Nach dem Training entsteht eine Datenbank an Wort- und Embedding-Paaren, die mittels bestimmter Metriken verglichen werden können. Für gewöhnlich wird die Kosinus-Ähnlichkeit zwischen den Embeddings berechnet, womit man einen normierten Wert zwischen 0 und 1 enthält, der sozusagen die Güte einer Zutat als Ersatz einer anderen abbildet.  (Abb. 3)

Abb.3: Screenshot Web-App
Abb. 3: Screenshot aus der Web-App zur Recherche von Alternativzutaten

Für jede Zutat lassen sich Alternativen anzeigen. Beurteilen Sie die Vorschläge im Vergleich zu Ihren eigenen Ideen! Auch können Sie die Zutaten im Textfeld ändern/überschreiben, und sich Vorschläge für diese anzeigen lassen. Hier gehts zur Web-App.

Mit Generativen Modellen Weihnachtslieder generieren

Generative Modelle beweisen schon länger, zu welchen eindrucksvollen Resultaten Deep Learning abseits klassischer Machine Learning Anwendungen, wie Klassifikation und Regression, fähig sind. Anwendungsfälle wie das Generieren von fehlenden Datenpunkten oder das Ausfüllen von verdeckten Flächen in Bildern finden in der Geschäftswelt Anwendung. Künstler*innen und Enthusiasten erstellen dagegen Kunstwerke, Gedichte oder Fotos von nicht-existierenden Gesichtern. Vor 2 Jahren erzielte sogar das erste KI-generierte Porträtgemälde über $400.000 bei einer Auktion.

Neben der bildenden Kunst haben generative Modelle auch in der Musikszene ersten Anklang gefunden. Im folgenden Abschnitt betrachten wir die Generierung von Weihnachtsliedern am Beispiel einfacher Jingles und Ausschnitte wie „Oh Tannenbaum oder „Alle Jahre wieder. Damit schaffen wir zum Wohle der Lesenden und Hörenden einen Mariah Carey- und Michael Bublé-freien Safe Space, dem aber leider auch die George Michaels, Crosbys und Sinatras zum Opfer fallen.

Tensorflow Magenta

Das Magenta Projekt möchte „die Rolle von Machine Learning in kreativen Prozessen“ erforschen und bietet dabei eine Vielzahl an Veröffentlichungen, Programmier-Bibliotheken und Tools zur Generierung von Musik. Die Dance-Punk Band YACHT arbeitete daraufhin mit Google zusammen und erstellte einen Katalog aus den MIDI Tonspuren ihrer bisherigen Lieder, die dann einzeln oder gepaart (z.B. Gitarren- und Bass-Riff zusammen) verwendet wurden, um neue Musik im Stil des bisherigen Songs der Band zu generieren. Ähnlich wurde auch mit den Liedtexten verfahren. Selbst das Album Cover und die Videos im Hintergrund der Konzerte wurden mit Deep Learning Modellen generiert und verfeinert.

Die im nächsten Abschnitt beschriebenen Rekurrenten Neuronale Netze bieten eine etablierte Methode im Umgang mit einspurigen Riffs oder Jingles. Verschiedene Ausführungen und Varianten davon sind im „Magenta-Werkzeugkasten“ als MelodyRNN enthalten.

Rekurrente Modelle

Vor der Einführung von Transformer-Modellen wurden im Bereich NLP größtenteils Rekurrente Neuronale Netze (RNNs) verwendet, die von Natur aus besonders geeignet sind, sequenziellen Daten zu verarbeiten. Dies bedeutet, dass Rekurrente Netze es ermöglichen, Entscheidungen oder Vorhersagen bezüglich aufeinander folgender, abhängiger Datenpunkte zu treffen. Hierzu zählen bspw. aufeinanderfolgende Worte in einem Satz, Werte aus Sensoren im Zeitverlauf, oder eben Noten einer Partitur, die im Zeitverlauf betrachtet eine Melodie ergeben. Am Beispiel einer Wortsequenz ist es also wichtig, dass ein Machine Learning Modell einordnen kann, welche Worte in welcher Abfolge im Text erscheinen.

Um diese Informationen aus den Daten ableiten zu können, pflegen RNNs einen internen Zustand, der zusätzlich zur oben beschriebenen Repräsentation nicht nur vom aktuell betrachteten Wort, sondern auch vom internen Zustand des RNNs bei vorherigen Worten abhängt. (Abb. 4)

Abb. 4: RNN
Abb. 4: RNN Beispiel

Das RNN pflegt einen internen Zustand vorangegangener Inputs. Der neue Zustand ergibt sich aus einer Gewichtung des alten Zustands und des aktuellen Inputs.

Als Output wird in diesem Fall versucht, das folgende Wort vorherzusagen. Das RNN sollte erkennen, dass im Kontext des Wortes Weihnachten eher das Wort „backen“ vorhergesagt werden muss, und nicht etwa „kaufen“.

Um ein generatives Modell zu entwickeln, trainiert man das RNN darauf, für eine gegebene Sequenz an Worten stets das nächste, passende Wort vorherzusagen. Wendet man das Modell anschließend an, präsentiert man eben eine solche Sequenz an Worten als vorgegebenen Input, nimmt den vorhergesagten Output des Modells hinzu, füttert diesen als folgenden Input wieder in das Modell und wiederholt diesen Vorgang beliebig oft. So macht das Modell Vorhersagen auf dessen eigene Vorhersagen und generiert somit einen Text.

Musik generieren

Da es sich bei Noten von Volks- und Weihnachtsliedern auch um eine sequenzielle Abfolge von Daten handelt, lässt sich die zuvor beschriebene Methodik anschaulich auf musikalische Daten übertragen.

Möchte man ein Lied in einem bestimmten Stil oder Genre eines anderen Liedes weiterführen oder generieren, kann man im einfachsten Falle ein von Magenta publiziertes (und vortrainiertes) MelodyRNN verwenden. Dort gibt man die gewünschte Anfangsmelodie als MIDI Datei vor und definiert ggf. noch weitere Parameter wie Länge oder Freiheitsgrade in der Generierung. Anschließend wird das Lied, analog zum Text-Beispiel, Ton für Ton synthetisiert.

Abb. 5: Generierte Musik "oh Tannenbaum"
Abb.5: Kein Vivaldi, dafür aber eine Flasche Primitivo; der musikalisch gänzlich untalentierte Autor schafft es eines Nachts, Noten in einspurige MIDI Dateien ohne Taktwechsel zu exportieren, um sie mit Magenta verarbeiten zu können.

Für den interessierten Lesenden gibt es an dieser Stelle noch einiges zu entdecken! Um den Bogen zum Thema Representation Learning zu schlagen, empfehlen wir einen Blick auf MusicVAE [https://magenta.tensorflow.org/music-vae]. Mit einem Variational Autoencoder lassen sich Embeddings (merke: nicht nur auf Worte beschränkt, sondern auch ganze Texte, Bilder, Lieder,…) erlernen, welche einfach und strukturiert manipulierbar sind. Somit lässt sich beispielsweise eine Komponente eines Embeddings ändern, die das Musikgenre darstellt, aber nicht die Melodie. (Re)konstruiert man anschließend das Embedding, erhält man ein Lied mit der gleichen Melodie, jedoch im Stil einer anderen Musikrichtung.

Beispiele für State-of-the-Art Musikgenerierung finden sich auch in der OpenAI Jukebox, welche sich auch eines VAE-Modells bedient.

Fazit

Bei den in diesem Artikel beschriebenen Methoden muss natürlich meist etwas Auslese oder Feinabstimmung betrieben werden, um die gewünschten Ergebnissen zu erzielen. Im Falle der kreativen Anwendung, wie bei der Band YACHT, wurden tausende, wenn nicht zehntausend Melodien generiert und durchsucht, um zufriedenstellende Resultate zu erhalten. Bei den Plätzchenzutaten hingegen ging es eher um die Exploration von Modell-Varianten und -Parametern, welche dann zu beständig guten Ergebnissen führen.

Der Autor hofft, dass Ihnen der kleine Einblick in Methoden des Natural Language Processing gefallen hat und möchte Sie animieren, die Plätzchen Web-App auszuprobieren, oder diese zu missbrauchen, um sich Alternativen zu deftigen Zutaten oder Gemüse auszugeben.

Bleiben Sie so artig, wie nötig! Frohe Weihnachten! J.

Anmerkungen & Quellen

A) Hallo und danke Mama!

Abb. 6: Plaetzchen
Abb. 6: Eine unvollständige Auswahl der Plätzchen der Familie des Autors.

Während mütterlicherseits jährlich über 20 Sorten gebacken werden, schafft es die Tante nur auf mickrige acht. Die Begeisterung und das Interesse am Kochen und Backen ist im Kindesalter bereits auf den Autor übergesprungen. Im Gegenzug jedoch wundert sich dessen Familie des Öfteren, „was dieses Deep Learning denn genau ist“ und was der Junge auf der Arbeit eigentlich macht. Anwendungsbeispiele wie diese Web-App sind dabei wunderbare Gelegenheiten, Methoden des Deep Learning anschaulich zu erklären, Alltagsbezug zu schaffen und sich für die vielen kommenden fachlichen Herausforderungen zu motivieren!

B) Die Rezepte dieser kleinen Exkursion wurden Chefkoch.de entnommen, zu den Originalen gelangen Sie über die folgenden Links:

 

Management Summary

In modernen Unternehmen fallen im Tagesgeschäft an vielen Stellen Informationen in Textform an: Je nach Businesskontext können dies Rechnungen sein, oder auch Emails, Kundeneingaben (wie Rezensionen oder Anfragen), Produktbeschreibungen, Erklärungen, FAQs sowie Bewerbungen. Diese Informationsquellen blieben bis vor kurzem weitestgehend dem Menschen vorbehalten, da das maschinelle, inhaltliche Verstehen von Text ein technologisch herausforderndes Problem darstellt.
Aufgrund jüngster Errungenschaften im Bereich Deep Learning können nun eine Reihe unterschiedlicher NLP („Natural Language Processing“) Tasks mit erstaunlicher Güte gelöst werden.
Erfahren Sie in diesem Beitrag anhand von fünf praxisnahen Beispielen, wie NLP Use Cases diverse Businessprobleme lösen und so für Effizienz und Innovation sorgen.

Einführung

Natural Language Processing (NLP) ist zweifelslos ein Gebiet, dem in jüngster Vergangenheit besondere Aufmerksamkeit im Big Data-Umfeld zugekommen ist. So hat sich das von Google gemessene Interesse an dem Thema in den letzten drei Jahren mehr als verdoppelt. Daran ist erkennbar, dass innovative NLP-Technologien längst nicht mehr nur ein Thema für die Big Player, wie Apple, Google oder Amazon, ist. Vielmehr ist eine generelle Demokratisierung der Technologie zu beobachten. Einer der Gründe dafür ist sicherlich, dass nach einer Schätzung von IBM etwa 80% der „weltweiten Informationen“ nicht in strukturierten Datenbanken vorliegen, sondern in unstrukturierter, natürlicher Sprache. NLP wird zukünftig eine Schlüsselrolle einnehmen, wenn es darum geht, diese Informationen nutzbar zu machen. Damit wird der erfolgreiche Einsatz von NLP-Technologien zu einem der Erfolgsfaktoren für die Digitalisierung in Unternehmen werden.

Damit Sie sich ein Bild davon machen können, welche Möglichkeiten NLP heutzutage im Businesskontext öffnet, werden Ihnen im Folgenden fünf praxisnahe Anwendungsfälle vorgestellt und die dahinterstehende Lösungen erklärt.

Was ist NLP? – Ein kurzer Überblick

Als ein Forschungsthema, das bereits in den 50er Jahren Linguisten und Informatiker beschäftigte, fristete NLP im 20sten Jahrhundert auf der Anwendungsseite ein kaum sichtbares Dasein.

Der zentrale Grund dafür lag in der Verfügbarkeit der notwendigen Trainingsdaten. Zwar ist generell die Verfügbarkeit von unstrukturierten Daten, in Form von Texten, insbesondere mit dem Aufstieg des Internets exponentiell gestiegen, jedoch fehlte es weiterhin an geeigneten Daten für das Modelltraining. Dies lässt sich damit begründen, dass die frühen NLP Modelle zumeist überwacht trainiert werden mussten (sogenanntes Supervised Learning). Das Supervised Learning setzt jedoch voraus, dass Trainingsdaten mit einer dedizierten Zielvariable versehen werden müssen. Dies bedeutet, dass z.B. bei einer Textklassifikation der Textkorpus vor dem Modelltraining manuell durch Menschen annotiert werden muss.

Dies änderte sich Ende der 2010er Jahre, als eine neue Modellgeneration künstlicher neuronaler Netzwerke zu einem Paradigmenwechsel führte. Diese sogenannten „Language Models“ werden auf Grundlage riesiger Textkorpora von Facebook, Google und Co. (vor-)trainiert, indem einzelne Wörter in den Texten zufällig maskiert und im Verlauf des Trainings vorhergesagt werden. Es handelt sich dabei um das sogenannte selbstüberwachte Lernen (Self-Supervised Learning), das nicht länger eine separate Zielvariable voraussetzt. Im Zuge des Trainings erlernen diese Modelle ein kontextuelles Verständnis von Texten.

Vorteil dieses Vorgehens ist, dass ein- und dasselbe Modell mit Hilfe des erlernten kontextuellen Verständnisses für eine Vielzahl unterschiedlicher Downstream-Tasks (z.B. Textklassifizierung, Sentiment Analysis, Named Entity Recognition) nachjustiert werden kann. Dieser Vorgang wird als Transfer Learning bezeichnet. In der Praxis lassen sich diese vortrainierten Modelle herunterladen, sodass nur die Feinjustierung für die spezifische Anwendung durch zusätzliche Daten selbst gemacht werden muss. Folglich lassen sich mittlerweile mit wenig Entwicklungsaufwand performante NLP-Anwendungen entwickeln.

Um mehr über Language Models (insbesondere die sogenannten Transformer Modelle wie „BERT“, bzw. „roBERTa“, u.ä.) sowie Trends und Hemmnisse im Bereich NLP zu erfahren, lesen Sie hier den Beitrag zum Thema NLP-Trends von unserem Kollegen Dominique Lade.

Die 5 Use Cases

Textklassifizierung im Rekrutierungsprozess

Ein medizinisches Forschungsinstitut möchte seinen Rekrutierungsprozess von Studienteilnehmer*innen effizienter gestalten.

Für das Testen eines neuen Medikaments werden unterschiedliche, untereinander abhängige Anforderungen an die infrage kommende Personen gestellt (z.B. Alter, allg. Gesundheitszustand, Vorhandensein/Abwesenheit von Vorerkrankungen, Medikationen, genetische Dispositionen etc.). Das Prüfen all dieser Anforderungen ist mit einem großen Zeitaufwand verbunden. Üblicherweise dauert das Sichten und Beurteilen relevanter Informationen etwa eine Stunde pro potenziellen Studienteilnehmenden. Hauptgrund dafür ist, dass die klinischen Notizen Informationen über Patienten enthalten, die über strukturierte Daten wie Laborwerte und Medikamente hinausgehen: Auch unstrukturierter Informationen sind in den medizinischen Berichten, Arztbriefen, und Entlassungsberichten o.ä. in Textform zu finden. Insbesondere das Auswerten letzterer Daten bedarf viel Lesezeit und ist daher mit großem Aufwand verbunden. Um den Prozess zu beschleunigen, entwickelt das Forschungsinstitut ein Machine Learning Modell, das eine Vorauswahl von vielversprechenden Kandidaten trifft, sodass die Experten*innen lediglich die vorgeschlagene Personengruppe validieren müssen.

Die NLP Lösung

Aus methodischer Sicht handelt es sich bei diesem Problem um eine sogenannte Textklassifikation. Dabei wird basierend auf einem Text, eine Prognose für eine zuvor definierte Zielvariable erstellt. Um das Modell zu trainieren, ist es – wie im Supervised Learning üblich – notwendig, die Daten, in diesem Fall also die Arztdokumente, mit der Zielvariable zu annotieren. Da es hier ein Klassifikationsproblem zu lösen gilt (geeignete oder ungeeignete Studienteilnehmer*in), beurteilen die Experten*innen für einige Personen im Pool die Eignung für die Studie manuell. Ist eine Person geeignet, wird sie mit einer Eins gekennzeichnet (=positiver Fall), ansonsten mit einer Null (=negativer Fall). Anhand dieser Trainingsbeispiele kann das Modell nun Zusammenhänge zwischen den medizinischen Dokumenten der Personen und ihrer Eignung lernen.

Um der Komplexität des Problems Herr zu werden, wird ein entsprechend komplexes Modell namens ClinicalBERT verwendet. Dabei handelt es sich um ein Language Modell, das auf BERT (Bidirectional Encoder Representations from Transformers) basiert, und zusätzlich auf einem Datensatz von klinischen Texten trainiert wurde. Somit ist ClinicalBERT in der Lage, sogenannte Repräsentationen von sämtlichen medizinischen Dokumentationen für jede Person zu generieren. In einem letzten Schritt wird das neuronale Netzwerk von ClinicalBERT durch eine taskspezifische Komponente ergänzt. In diesem Fall handelt es sich um eine binäre Klassifikation: Zu jeder Person soll eine Eignungswahrscheinlichkeit ausgegeben werden. Durch einen entsprechenden linearen Layer wird die hochdimensionale Textdokumentation schlussendlich in eine einzige Zahl, die Eignungswahrscheinlichkeit, überführt. In einem Gradientenverfahren lernt das Modell nun anhand der Trainingsbeispiele die Eignungswahrscheinlichkeiten.

Weitere Anwendungsszenarien von Textklassifikation

Textklassifikation findet häufig in der Form von Sentiment Analysis statt. Dabei geht es darum, Texte in vordefinierte Gefühlskategorien (z.B. negativ/positiv) einzuordnen. Diese Informationen sind insbesondere in der Finanzwelt oder beim Social Media Monitoring wichtig. Darüber hinaus kann Textklassifikation in verschiedenen Kontexten verwendet werden, in denen es darum geht, Dokumente nach ihrem Typ zu sortieren (z.B. Rechnungen, Briefe, Mahnungen…).

Named Entity Recognition zur Verbesserung der Usability einer Nachrichtenseite

Ein Verlagshaus bietet seinen Leser*innen auf einer Nachrichtenseite eine Vielzahl von Artikeln über diverse Themen an. Im Zuge von Optimierungsmaßnahmen möchte man ein besseres Recommender-System implementieren, sodass zu jedem Artikel weitere passende (ergänzende oder ähnliche) Artikel vorgeschlagen werden. Außerdem möchte man die Suchfunktion auf der Landingpage verbessern, damit der Kunde oder die Kundin schnell den Artikel findet, der gesucht ist.
Um für diese Zwecke eine gute Datengrundlage zu schaffen, entscheidet sich der Verlag dazu, mit Named Entity Recognition den Texten automatisierte Tags zuzuordnen, anhand derer sowohl das Recommender-System als auch die Suchfunktion verbessert werden können. Nach erfolgreicher Implementierung wird auf deutlich mehr vorgeschlagene Artikel geklickt und die Suchfunktion ist wesentlich komfortabler geworden. Im Resultat verbringen die Leser*innen signifikant mehr Zeit auf der Seite.

Die NLP Lösung

Um das Problem zu lösen, ist es wichtig, die Funktionsweise von NER zu verstehen:

Bei NER geht es darum, Worte oder ganze Satzglieder inhaltlichen Kategorien zuzuordnen. So kann man „Peter“ beispielsweise als Person identifizieren, „Frankfurt am Main“ ist ein Ort und „24.12.2020“ ist eine Zeitangabe. Offensichtlich gibt es aber auch deutlich kompliziertere Fälle. Dazu vergleichen Sie die folgenden Satzpaare:

  1. „Früher spazierte Emma im Park immer an der schönen Bank aus Holz vorbei.“   (Bank = Sitzbank)
  2. „Gestern eilte sie noch zur Bank, um das nötige Bargeld abzuheben.“ (Bank = Geldinstitut)

Für den Menschen ist vollkommen offensichtlich, dass das Wort „Bank“ in den beiden Sätzen eine jeweils andere Bedeutungen hat. Diese scheinbar einfache Unterscheidung ist für den Computer allerdings alles andere als trivial. Ein Entity Recognition Modell könnte die beiden Sätze wie folgt kennzeichnen:

  1. „[Früher] (Zeitangabe) spazierte [Emma] (Person) im Park immer an der schönen [Bank] (Sitzgelegenheit) aus Holz vorbei.“
  2. „[Gestern] (Zeitangabe) eilte [sie] (Person/Pronomen) noch zur [Bank] (Geldinstitut), um das nötige Bargeld abzuheben.“  

In der Vergangenheit hätte man zur Lösung des obigen NER-Problems zu regelbasierten Algorithmen gegriffen, doch auch hier setzt sich der Machine Learning Ansatz durch:

Das vorliegende Multiclass-Klassifizierungsproblem der Entitätsbestimmung wird erneut mithilfe des BERT-Modells angegangen. Zusätzlich wird das Modell auf einem annotierten Datensatz trainiert, in dem die Entitäten manuell identifiziert sind. Die umfangreichste öffentlich zugängliche Datenbank in englischer Sprache ist die Groningen Meaning Bank (GMB). Nach erfolgreichem Training ist das Modell in der Lage, aus dem Kontext, der sich aus dem Satz ergibt, auch bisher unbekannte Wörter korrekt zu bestimmen. So erkennt das Modell, dass nach Präpositionen wie „in, bei, nach…“ ein Ort folgt, aber auch komplexere Kontexte werden in Bezug auf die Entitätsbestimmung herangezogen.

Weitere Anwendungsszenarien von NER:

NER ist als klassische Information Retrieval-Task für viele andere NER-Tasks, wie zum Beispiel Chatbots und Frage-Antwort Systeme, zentral. Darüber hinaus wird NER häufig zur Textkatalogisierung verwendet, bei der der Typ des Textes anhand von stichhaltigen, erkannten Entitäten bestimmt wird.

Ein Chatbot für ein Fernbusunternehmen

Ein Fernbusunternehmen möchte seine Erreichbarkeit erhöhen und darum die Kommunikationswege mit dem Kunden ausbauen. Neben seiner Homepage und seiner App möchte das Unternehmen einen dritten Weg zum Kunden, nämlich einen Whatsapp-Chatbot, anbieten. Die Zielvorstellung ist, dass man in der Konversation mit dem Chatbot gewisse Aktionen wie das Suchen, Buchen und Stornieren von Fahrten ausführen kann. Außerdem soll mit dem Chatbot ein zuverlässiger Weg geschaffen werden, die Fahrgäste über Verspätungen zu informieren.

Mit der Einführung des Chatbots können nicht nur bestehende Fahrgäste leichter erreicht werden, sondern auch Kontakt zu neuen Kunden*innen aufgebaut werden, die noch keine App installiert haben.

Die NLP Lösung

Abhängig von den Anforderungen, die an den Chatbot gestellten werden, wählt man zwischen verschiedenen Chatbot Architekturen aus.

Über die Jahre sind im Wesentlichen vier Chatbot-Paradigmen erprobt worden: In einer ersten Generation wurde die Anfrage auf bekannte Muster geprüft und entsprechend angepasste vorgefertigte Antworten ausgegeben („pattern matching“). Etwas ausgefeilter ist das sogenannte „grounding“, bei der durch Named Entity Recognition (s.o.) aus Wissensbibliotheken (z.B. Wikipedia) extrahierte Informationen in einem Netzwerk organisiert werden. Ein solches Netzwerk hat den Vorteil, dass nicht nur eingetragenes Wissen abgerufen werden kann, sondern, dass auch nicht registriertes Wissen durch die Netzwerkstruktur inferiert werden kann. Beim „searching“ werden direkt Fragen-Antwortpaare aus dem Konversationsverlauf (oder aus davor registrierten Logs) zum Suchen einer passenden Antwort herangezogen. Die Anwendung von Machine Learning Modellen ist der bewährteste Ansatz, um dynamisch passende Antworten zu generieren („generative models“).

Um einen modernen Chatbot mit klar eingrenzbaren Kompetenzen für das Fernbusunternehmen zu implementieren, empfiehlt es sich, auf bestehende Frameworks wie Google Dialogflow zurückzugreifen. Hierbei handelt es sich um eine Plattform, mit der sich Chatbots konfigurieren lassen, die die Elemente aller zuvor gennannten Chatbot-Paradigmen besitzen. Dazu übergibt man Parameter wie Intends, Entitäten und Actions.

Ein Intend („Benutzerabsicht“) ist beispielsweise die Fahrplanauskunft. Indem man verschiedene Beispielphrasen („Wie komme ich am … von … nach … “, „Wann fährt der nächste Bus von … nach …“) an ein Language Model übergibt, gelingt es dem Chatbot auch ungesehene Inputsätze dem richtigen Intend zuzuordnen (vgl. Textklassifikation).

Weiterhin werden die verschiedenen Reiseorte und Zeitangaben als Entitäten definiert. Wird nun vom Chatbot ein Intend mit passenden Entitäten erfasst (vgl. NER), dann kann eine Action, in diesem Fall eine Datenbankabfrage, ausgelöst werden. Schlussendlich wird eine Intend-Answer mit den relevanten Informationen ausgegeben, die an sämtliche vom Benutzer angegebene Informationen im Chatverlauf angepasst ist („stateful“).

Weitere Anwendungsszenarien von Chatbots:

Es gibt vielfältige Einsatzmöglichkeiten im Kundenservice – je nach Komplexität des Szenarios von der automatischen Vorbereitung (z.B. Sortierung) eines Kundenauftrags hin zur kompletten Abwicklung einer Kundenerfahrung.

Ein Question-Answering-System als Voice Assistant für technische Fragen zum Automobil

 Ein Automobilhersteller stellt fest, dass viele seiner Kunden*innen nicht gut mit den Handbüchern, die den Autos beiliegt, zurechtkommt. Häufig wird zu lange nach der relevanten Information gesucht oder sie wird gar nicht gefunden. Daher wird beschlossen, ergänzend zum statischen Handbuch auch einen Voice Assistant anzubieten, der auf technische Fragen präzise Antworten gibt. Zukünftig können die Fahrer*innen bequem mit ihrer Mittelkonsole sprechen, wenn sie ihr Fahrzeug warten wollen oder technische Auskunft wünschen.

Die NLP Lösung

Mit Frage-Antwort-Systemen wird sich schon seit Jahrzehnten auseinandergesetzt wird, stehen sie doch in gewisser Hinsicht an der Vorfront der künstlichen Intelligenz. Ein Frage-Antwort-System, das unter Berücksichtigung aller vorliegenden Daten immer eine korrekte Antwort fände, könnte man auch als „General AI“ bezeichnen. Eine Hauptschwierigkeit auf dem Weg zur General AI ist, dass das Gebiet, über das das System informiert sein muss, unbegrenzt ist. Demgegenüber liefern Frage-Antwort-Systeme gute Ergebnisse, wenn das Gebiet klar eingegrenzt ist, wie es beim Automobilassistenten der Fall ist. Grundsätzlich gilt: Je spezifischer das Gebiet, desto bessere Ergebnisse können erwartet werden.

Für die Implementierung des Frage-Antwort-Systems werden strukturierte Daten, wie technische Spezifikationen der Komponenten und Kennzahlen des Modells, aber auch unstrukturierte Daten, wie Handlungsanweisungen, aus dem Handbuch herangezogen. Sämtliche Daten werden in einem Vorbereitungsschritt mithilfe anderer NLP-Techniken (Klassifikation, NER) in Frage-Antwort-Form gebracht. Diese Daten werden einer Version von BERT übergeben, die bereits auf einem großen Frage-Antwort-Datensatz („SQuAD“) vortrainiert wurde. Das Modell ist damit in der Lage, souverän bereits eingespeiste Fragen zu beantworten, aber auch „educated guesses“ für ungesehene Fragen abzugeben.

Weitere Anwendungsszenarien von Frage-Antwort-Systemen:

Mithilfe von Frage-Antwort-Systemen können unternehmensinterne Suchmaschinen um Funktionalitäten erweitert werden. Im E-Commerce können auf Basis von Artikelbeschreibungen und Rezensionen automatisiert Antworten auf Sachfragen gegeben werden.

Automatische Textzusammenfassungen (Textgenerierung) von Schadensbeschreibungen für eine Sachversicherung

Eine Versicherung möchte die Effizienz ihrer Schadensregulierungsabteilung erhöhen. Es wurde festgestellt, dass es bei einigen Schadensreklamationen vom Kunden zu internen Zuständigkeitskonflikten kommt. Grund dafür ist, dass diese Schäden von Kund*innen zumeist über mehrere Seiten beschrieben werden und so eine erhöhte Einarbeitungszeit benötigt wird, um beurteilen zu können, ob man den Fall bearbeiten soll. So passiert es häufig, dass eine Schadensbeschreibung komplett gelesen werden muss, um zu verstehen, dass man den Schaden selbst nicht zu bearbeiten hat. Nun soll ein System Abhilfe schaffen, das automatisierte Zusammenfassungen generiert. Die Sachbearbeiter*innen können in Folge der Implementierung nun deutlich schneller über die Zuständigkeit entscheiden.

Die NLP Lösung

Grundsätzlich kann man beim Probelm der Textzusammenfassung zwischen zwei verschiedenen Ansätzen differenzieren: Bei der Extraction werden aus dem Inputtext die wichtigsten Sätze identifiziert, die dann im einfachsten Fall als Zusammenfassung verwendet werden. Dem gegenüber steht die Abstraction, bei der ein Text durch ein Modell in einen neu generierten Zusammenfassungstext überführt wird. Der zweite Ansatz ist deutlich komplexer, da hier Paraphrasierung, Generalisierung oder das Einbeziehen von weiterführendem Wissen möglich ist. Daher birgt dieser Ansatz auch ein größeres Potenzial, sinnvolle Zusammenfassungen generieren zu können, ist allerdings auch fehleranfälliger. Moderne Algorithmen zur Textzusammenfassung verfolgen den zweiten Ansatz, oder aber eine Kombination aus beiden Ansätzen.

Zur Lösung des Versicherungs-Use-Cases wird ein sogenanntes Sequence-to-Sequence-Modell verwendet, welches einer Wortsequenz (der Schadensbeschreibung) einer anderen Wortsequenz (der Zusammenfassung) zuordnet. Hierbei handelt es sich üblicherweise um ein rekurrentes neuronales Netzwerk (RNN), das auf Grundlage von Textzusammenfassungs-Paaren trainiert wird. Der Trainingsprozess ist so gestaltet, dass die Wahrscheinlichkeit für das nächste Wort abhängig von den letzten Worten (und zusätzlich einem „inner state“ des Modells), modelliert wird. Gleichsam schreibt das Modell effektiv die Zusammenfassung „von links nach rechts“, indem sukzessiv das nächste Wort vorhergesagt wird. Ein alternativer Ansatz sieht vor, den Input vom Language Model BERT numerisch encodieren zu lassen und auf Basis dieser Zahlenrepräsentation einen GPT-Decoder den Text autoregressiv zusammenfassen zu lassen. Mithilfe von Modellparametern kann in beiden Fällen angepasst werden, wie lang die Zusammenfassung etwa sein soll.

Weitere Anwendungsszenarien von Sprachgenerierung:

Ein solches Szenario ist an vielen Stellen denkbar: Das automatisierte Schreiben von Berichten, die Generierung von Texten auf der Grundlage der Analyse von Einzelhandelsverkaufsdaten, die Zusammenfassung von elektronischen Krankenakten oder die Erstellung von textlichen Wettervorhersagen aus Wetterdaten sind denkbare Anwendungen. Darüber hinaus kommt es auch bei anderen NLP Anwendungsfällen wie Chatbots und Q&A-Systemen zur Sprachgenerierung.

Ausblick

Vielleicht haben Sie beim Durchlesen dieser Anwendungsbeispiele von Textklassifikation, Chatbots, Frage-Antwort-Systemen, NER und Textzusammenfassungen den Eindruck gewonnen, dass es auch in Ihrem Unternehmen viele Prozesse gibt, die sich mit NLP-Lösungen beschleunigen ließen.

Tatsächlich ist NLP nicht nur ein spannendes Forschungsfeld, sondern auch eine Technologie, deren Anwendbarkeit im Businessumfeld stetig wächst.

NLP wird in Zukunft nicht nur ein Fundament einer datengetriebenen Unternehmenskultur werden, sondern birgt schon jetzt durch direkte Anwendung ein riesiges Innovationspotenzial, in das es sich zu investieren lohnt.

Bei STATWORX haben wir bereits jahrelange Erfahrung in der Entwicklung von maßgeschneiderten NLP-Lösungen. Hier finden die zwei unserer Case Studies zum Thema NLP: Social Media Recruiting mit NLP & Supplier Recommendation Tool. Wir stehen Ihnen gerne für eine individuelle Beratung zu diesem und vielen weiteren Themen zur Verfügung.

 

Computer sehen zu lassen, dies mag für viele nach Science-Fiction klingen. Denn mit «sehen» ist nicht das Filmen mit einer Webcam, sondern das Verständnis von Bildmaterial gemeint. Tatsächlich sind derartige Technologien hinter den Kulissen vieler alltäglicher Services schon lange im Einsatz. Soziale Netzwerke erkennen seit Jahren Freunde und Bekannte auf Fotos und moderne Smartphones lassen sich mit dem Gesicht anstatt einem PIN-Code entsperren. Neben diesen kleinen Alltagserleichterungen birgt das rasant wachsende Feld der «Computer Vision» weitaus größeres Potenzial für den industriellen Einsatz. Die spezialisierte Verarbeitung von Bildmaterial verspricht sowohl viele repetitive Prozesse zu erleichtern und automatisieren. Zudem sollen Experten und Fachpersonal entlastet und in ihren Entscheidungen unterstützt werden.

Die Grundlagen für Bilderkennung und Computer Vision wurden bereits in den 1970er Jahren geschaffen. Allerdings hat das Feld erst in den letzten Jahren vermehrt Anwendung außerhalb der Forschung gefunden. In unserer Tätigkeit als Data Science & AI Beratung hier bei STATWORX haben wir bereits einige interessante Anwendungsfälle von Computer Vision kennengelernt. Dieser Beitrag stellt fünf ausgewählte und besonders vielversprechende Use Cases verschiedener Industrien vor, die entweder bereits in Produktion anzutreffen sind, oder in den kommenden Jahren große Veränderungen in ihren jeweiligen Feldern versprechen.

Inhaltsverzeichnis

Use Cases Computer Vision

1. Einzelhandel: Customer Behavior Tracking

Onlineshops wie Amazon können sich die Analysefähigkeit ihrer digitalen Plattform schon lange zunutze machen. Das Verhalten der Kundschaft kann detailliert analysiert und die User Experience dadurch optimiert werden. Auch die Retailbranche versucht die Erfahrung ihrer Kundschaft zu optimieren und ideal zu gestalten. Allerdings haben bisher die Tools gefehlt, um Interaktion von Personen mit ausgestellten Gegenständen automatisch zu erfassen. Computer Vision vermag diese Lücke für den Einzelhandel nun ein Stück weit zu schließen.

In Kombination mit bestehenden Sicherheitskameras können Algorithmen Videomaterial automatisch auswerten und somit das Kundschaftsverhalten innerhalb des Ladens studieren. Beispielsweise kann die aktuelle Anzahl an Personen im Laden jederzeit gezählt werden, was sich zu Zeiten der COVID-19 Pandemie mit den Auflagen zur maximal erlaubten Anzahl an Besuchern in Geschäften als Anwendungsgebiet anbietet. Interessanter dürften aber Analysen auf der Individualebene sein, wie die gewählte Route durch das Geschäft und einzelne Abteilungen. Damit lassen sich das Design, der Aufbau und die Platzierung von Produkten optimieren, Staus in gut besuchten Abteilungen vermeiden und insgesamt die User Experience der Kundschaft verbessern. Revolutionär ist die Möglichkeit zum Tracking der Aufmerksamkeit, welche einzelne Regale und Produkte von der Kundschaft erhalten. Spezialisierte Algorithmen sind dazu in der Lage, die Blickrichtung von Menschen zu erfassen und somit zu messen, wie lange ein beliebiges Objekt von Passanten betrachtet wird.

Mithilfe dieser Technologie hat der Einzelhandel nun die Möglichkeit zum Onlinehandel aufzuschließen und das Kundschaftsverhalten innerhalb ihrer Geschäfte detailliert auszuwerten. Dies ermöglicht nicht nur die Steigerung von Absätzen, sondern auch die Minimierung der Aufenthaltszeit und optimierte Verteilung von Kunden innerhalb der Ladenfläche.

Abbildung 1: Customer Behavior Tracking
Abbildung 1: Customer Behavior Tracking mit Computer Vision
(https://www.youtube.com/watch?v=jiaNA1hln5I)

2. Landwirtschaft: Erkennung von Weizenrost mittels Computer Vision

Moderne Technologien ermöglichen Landwirtschaftsbetrieben die effiziente Bestellung immer größerer Felder. Dies hat gleichzeitig zur Folge, dass diese Flächen auf Schädlinge und Pflanzenkrankheiten überprüfen müssen, denn falls übersehen, können Pflanzenkrankheiten zu schmerzhaften Ernteeinbrüchen und Verlusten führen.

Machine Learning verschafft hier Abhilfe, denn mittels des Einsatzes von Drohnen, Satellitenbildern und Remote-Sensoren können große Datenmengen generiert werden. Moderne Technologie erleichtert die Erhebung unterschiedlicher Messwerte, Parameter und Statistiken, welche automatisiert überwacht werden können. Landwirtschaftsbetriebe haben somit rund um die Uhr einen Überblick über die Bodenbedingungen, Bewässerungsgrad, Pflanzengesundheit und lokalen Temperaturen, trotz der großflächigen Bepflanzung von stetig größeren Feldern. Machine Learning Algorithmen werten diese Daten aus. So kann der Landwirtschaftbetrieb frühzeitig anhand dieser Informationen auf potenzielle Problemherde reagieren und vorhandene Ressourcen effizient verteilen kann.

Computer Vision ist für die Landwirtschaft besonders interessant, denn durch die Analyse von Bildmaterial lassen sich Pflanzenkrankheiten bereits im Anfangsstadium erkennen. Vor wenigen Jahren wurden Pflanzenkrankheiten häufig erst dann erkannt wurden, wenn sie sich bereits ausbreiten konnten. Basierend auf Computer Vision lässt sich die großflächige Ausbreitung mittels Frühwarnsysteme nun frühzeitig erkennen und stoppen. Landwirtschaftsbetriebe verlieren dadurch nicht nur weniger Ernte, sie sparen auch beim Einsatz von Gegenmaßnahmen wie Pestiziden, da vergleichsweise kleinere Flächen behandelt werden müssen.

Besonders die automatisierte Erkennung von Weizenrost hat innerhalb der Computer Vision Community viel Aufmerksamkeit erhalten. Verschiedene Vertreter dieses aggressiven Pilzes befallen Getreide in Ostafrika, rund ums Mittelmeer, wie auch in Zentraleuropa und führen zu großen Ernteausfällen von Weizen. Da der Schädling an Stängeln und Blättern von Getreide gut sichtbar ist, lässt er sich von trainierten Bilderkennungsalgorithmen schon früh erkennen und an der weiteren Ausbreitung hindern.

Abbildung 2: Erkennung von Weizenrost mit computer vision
Abbildung 2: Erkennung von Weizenrost mit Computer Vision
(https://www.kdnuggets.com/2020/06/crop-disease-detection-computer-vision.html)

3. Gesundheitswesen: Bildsegmentierung von Scans

Das Potenzial von Computer Vision im Gesundheitswesen ist riesig, die möglichen Anwendungen zahllos. Die medizinische Diagnostik verlässt sich stark auf das Studium von Bildern, Scans und Fotografien. Die Analyse von Ultraschallbildern, MRI- und CT-Scans gehören zum Standardrepertoire der modernen Medizin. Computer Vision Technologien versprechen diesen Prozess nicht nur zu vereinfachen, sondern auch Fehldiagnosen vorzubeugen und entstehende Behandlungskosten zu senken. Computer Vision soll dabei medizinisches Fachpersonal nicht ersetzen, sondern deren Arbeit erleichtern und bei Entscheidungen unterstützen. Bildsegmentierung hilft bei der Diagnostik, indem relevante Bereiche auf 2D- oder 3D Scans erkannt und eingefärbt werden können, um das Studium von Schwarz-Weiß-Bildern zu erleichtern.

Der neuste Use Case für diese Technologie liefert die COVID-19 Pandemie. Bildsegmentierung kann Ärzt*innen und Wissenschaftler*innen bei der Identifikation von COVID-19 und der Analyse und Quantifizierung der Ansteckung und des Krankheitsverlaufs unterstützen. Der trainierte Bilderkennungsalgorithmus identifiziert verdächtige Stellen auf CT-Scans der Lunge. Anschließend ermittelt er deren Größe und Volumen, sodass der Krankheitsverlauf betroffener Patienten klar verfolgt werden kann.

Der Nutzen für das Monitoring einer neuen Krankheit ist riesig. Computer Vision erleichtert Ärzt*innen nicht nur die Diagnose der Krankheit und Überwachung während der Therapie. Die Technologie generiert auch wertvolle Daten zum Studium der Krankheit und ihrem Verlauf. Dabei profitiert auch die Forschung von den erhobenen Daten und dem erstellten Bildmaterial, sodass mehr Zeit für Experimente und Teste anstatt der Datenerhebung verwendet werden kann.

4. Automobil Industrie: Objekterkennung und -klassifizierung im Verkehr

Selbstfahrende Autos gehören definitiv zu den Use Cases aus dem Bereich der künstlichen Intelligenz, denen in letzten Jahren medial am meisten Aufmerksamkeit gewidmet wurde. Zu erklären ist dies wohl eher mit dem futuristischen Anstrich der Idee von autonomem Fahren als den tatsächlichen Konsequenzen der Technologie. Im Grunde genommen sind darin mehrere Machine Learning Probleme verpackt, Computer Vision bildet aber ein wichtiges Kernstück bei deren Lösung.

So muss der Algorithmus (der sogenannte «Agent»), von dem das Auto gesteuert wird, jederzeit über die Umgebung des Autos aufgeklärt sein. Der Agent muss wissen wie die Straße verläuft, wo sich andere Autos in der Nähe befinden, wie groß der Abstand zu potenziellen Hindernissen und Objekten ist und wie schnell sich diese Objekte auf der Straße bewegen, um sich konstant der sich stets ändernden Umwelt anpassen zu können. Dazu sind autonome Fahrzeuge mit umfangreichen Kameras ausgestattet, welche ihre Umgebung flächendeckend filmen. Das erstellte Filmmaterial wird anschließend in Echtzeit von einem Bilderkennungsalgorithmus überwacht. Ähnlich wie beim Customer Behavior Tracking setzt dies voraus, dass der Algorithmus nicht nur statische Bilder, sondern einen konstanten Fluss an Bildern nach relevanten Objekten absuchen und diese klassifizieren kann.

Abbildung 5: Objekterkennung und Klassifizierung im Straßenverkehr
Abbildung 5: Objekterkennung und Klassifizierung im Straßenverkehr (https://miro.medium.com/max/1000/1*Ivhk4q4u8gCvsX7sFy3FsQ.png)

Diese Technologie existiert bereits und kommt auch industriell zum Einsatz. Die Problematik im Straßenverkehr stammt von dessen Komplexität, Volatilität und der Schwierigkeit, einen Algorithmus so zu trainieren, dass auch etwaiges Versagen des Agenten in komplexen Ausnahmesituationen ausgeschlossen werden kann. Dabei entblößt sich die Achillessehne von Computer Vision: Der Bedarf nach großen Mengen an Trainigsdaten, deren Generierung im Straßenverkehr mit hohen Kosten verbunden ist.

5. Fitness: Human Pose Estimation

Die Fitnessbranche befindet sich seit Jahren im Prozess der digitalen Transformation. Neue Trainingsprogramme und Trends werden via YouTube einem Millionenpublikum vorgestellt, Trainingsfortschritte werden mit Apps verfolgt und ausgewertet und spätestens seit dem Beginn der Coronakrise erfreuen sich virtuelle Trainings und Home Workouts massiver Beliebtheit. Gerade beim Kraftsport lassen sich Fitnesstrainer*innen aufgrund der hohen Verletzungsgefahr nicht aus dem Studio wegdenken – noch nicht. Denn während heute das Überprüfen der eigenen Haltung und Position beim Training via Video bereits gängig ist, ermöglicht es Computer Vision auch in diesem Feld Videomaterial genauer als das menschliche Auge auszuwerten und zu beurteilen.

Zum Einsatz kommt dabei eine Technologie, die dem bereits vorgestellten Attention Tracking der Einzelhandelsbranche ähnelt. Human Pose Estimation ermöglicht einem Algorithmus das Erkennen und Schätzen der Haltung und Pose von Menschen auf Video. Dazu wird die Position der Gelenke und deren Stellung im Bezug zueinander ermittelt. Da der Algorithmus gelernt hat, wie die ideale und sichere Ausführung einer Fitnessübung aussehen soll, lassen sich Abweichungen davon automatisiert erkennen und hervorheben. Implementiert in einer Smartphone App kann dies in Echtzeit und mit unmittelbarem Warnsignal geschehen. Somit kann rechtzeitig vor gefährlichen Fehlern gewarnt werden, anstatt Bewegungen erst im Nachhinein zu analysieren. Dies verspricht das Verletzungsrisiko beim Krafttraining maßgeblich zu reduzieren. Training ohne Fitnesstrainer*innen wird dadurch sicherer und die Kosten für sicheres Krafttraining werden gesenkt.

Human Pose Estimation ist ein weiterer Schritt in Richtung digitalem Fitnesstraining. Smartphones sind im Fitnesstraining bereits weitgehend etabliert. Apps, die das Training sicherer machen, dürften bei der breiten Nutzerbasis großen Anklang finden.

Abbildung 6: Analyse von Bewegungsabläufen in Echtzeit
Abbildung 6: Analyse von Bewegungsabläufen in Echtzeit mit Computer Vision
(https://mobidev.biz/wp-content/uploads/2020/07/detect-mistakes-knee-cave.gif)

Zusammenfassung

Computer Vision ist ein vielseitiges und vielversprechendes Feld von Machine Learning. Es verspricht die Lösung einer breiten Palette von Problemen in verschiedensten Branchen und Industrien. Das Verarbeiten von Bild- und Videomaterial in Echtzeit ermöglicht die Lösung von Problemstellungen weit komplexer als mit herkömmlichen Datenformaten. Das bringt den Stand von Machine Learning den «intelligenten» Systemen immer näher. Bereits heute bieten sich immer häufiger alltägliche Schnittstellen zu Computer Vision an – ein Trend, der sich in den kommenden Jahren nur zu beschleunigen scheint.

Die hier vorgestellten Beispiele sind nur die Spitze des Eisbergs. Tatsächlich gibt es in jeder der genannten Branchen große Bestrebungen mithilfe von Computer Vision Technologie bestehende Prozesse effizienter zu gestalten. Aktuell gibt es viele Bestrebungen Computer Vision in die dritte Dimension zu heben und anstelle von Fotos und Scans auch 3D-Modelle verarbeiten zu lassen. Die Nachfrage nach industrieller Bildverarbeitung in 3D wächst, sowohl in der Vermessung, der Medizin, wie auch der Robotik. Die Verarbeitung von 3D-Bildmaterial wird in den kommenden Jahren noch Beachtung erhalten, denn viele Problemstellungen lassen sich erst in 3D effizient lösen.

 

NLP (engl. für Natural Language Processing) beschreibt allgemein das computergestützte Verarbeiten von menschlicher Sprache. Dies umfasst neben der geschriebenen auch die gesprochene Sprache. Die Ziele, die mit NLP verfolgt werden, lassen sich in zwei übergeordnete Kategorien einordnen: Verstehen von Sprache und Erzeugen von Sprache. Die technische Herausforderung ist bei beiden Zielen, unstrukturierte Informationen in Form von Texten in ein Format zu transferieren, das maschinell verarbeitet werden kann. Das bedeutet konkret, dass Texte in einem Zahlenformat repräsentiert werden müssen, welches der Computer verstehen kann.  

Noch vor wenigen Jahren war dies nur für einige wenige Technologiekonzerne möglich. Dabei hatten diese Firmen drei entscheidende Vorteile:

  • Zugang zu riesigen Mengen an unstrukturierten Textdaten
  • Fachleute, die in der Lage sind, cutting-edge Technologien zu entwickeln
  • Rechenkapazitäten, um die Menge an unstrukturierten Daten verarbeiten zu können

In diesem Artikel zeigen wir verschiedene Anwendungsgebiete von NLP und erklären, wie sich innerhalb nur weniger Jahre die Markteintrittsbarrieren so weit gesenkt haben, dass heute jedes Unternehmen NLP für eigene Lösungen nutzen kann.

Inhaltsverzeichnis

In welchen Bereichen kann NLP eingesetzt werden?

Computergestützte Sprachverarbeitung ist ein sehr abstrakter Begriff. Verständlicher wird der Begriff, wenn man ihn in die Anwendungsgebiete herunterbricht. Dabei wird für jeden Teilbereich ein anderes, spezialisiertes Modell für die Sprachverarbeitung angewandt. Zu beachten ist dabei, dass Aufgaben, die einem Menschen eher leichtfallen, wie z.B. das Erkennen von Emotionen, auch für eine Maschine im NLP Bereich tendenziell eher einfach sind.. Andersherum sind auch kompliziertere Aufgaben, wie das Übersetzen von Texten, für den Computer eine tendenziell schwieriger zu lösende Aufgabe. Die sechs wichtigsten Anwendungen von NLP und die damit lösbaren Businessprobleme werden nachfolgend beleuchtet.

Sequenzklassifizierung

Das klassische Beispiel für NLP ist die Sequenzklassifizierung. Ziel ist es, Textsequenzen einer von mehreren vorher definierten Klassen zuzuordnen. Ein Beispiel für Klassen sind Emotionen (freudig, wütend, erheitert, usw.). Dem Computer wird ein Text vorgelegt und er muss selbstständig entscheiden, welche Emotion der Autor mit seinem Text ausdrücken wollte. Weitere Beispiele sind das Zuordnen eines Texts zu einem bekannten Autor oder das Klassifizieren von Dokumentarten.

Bei der Sequenzklassifizierung ist zu beachten, dass eine Sequenz aus einem Text beliebiger Länge bestehen kann. Eine Sequenz kann aus einem einzigen Wort (Sequenz von Buchstaben), einem Satz, einem Paragraphen, oder aber aus einem kompletten Dokument bestehen. Ein Beispiel für eine kürzere Sequenz wäre eine Urlaubsbewertung.

Anwendungsbeispiel 1:

Ein Reiseportal möchte spezifisch Kunden mit einer negativen Urlaubserfahrung in einer Marketingkampagne ansprechen. Dazu werden vorhandene Kundenbewertungen in drei Klassen unterteilen – Positiv, Neutral und Negativ. Jede Bewertung wird automatisch einer dieser Klassen zugeordnet.

Wobei längere Dokumente beispielsweise Postsendungen beliebiger Art sein könnten.

Anwendungsbeispiel 2:

Die Logistik-Abteilung einer internationalen Firma prozessiert verschiedene Dokumentarten in unterschiedlichen Teams. Dazu werden aktuell Postsendungen manuell selektiert und sortiert. Zukünftig werden diese automatisch einer Kategorie zuordnen. Als Kategorien könnten Eingehende Rechnungen, Lieferscheine sowie andere Anfragen definiert werden

Frage-Antwort Modelle

Bei Frage-Antwort Problemen wird dem Computer eine möglichst große Anzahl an Textkorpora zur Verfügung gestellt. Ziel ist es, auf Fragen, die von einem Person verfasst wurden, eine inhaltlich korrekte Antwort zu geben, die auf Informationen der Textkorpora basiert. Die Schwierigkeit dieser Aufgabe variiert, je nachdem wie konkret die benötigten Informationen im Text sind. Die einfachste Lösung ist  die komplette Extraktion vorhandener Textstellen. Darauf aufbauend kann die extrahierte Information in eine grammatikalisch korrekte Antwort verpackt werden. Am komplexesten zu implementieren sind logische Schlussfolgerungen basierend auf den vorhandenen Informationen.

Ein gegebener Text könnte beispielsweise die Struktur eines Firmengeländes beschreiben. Es werden dabei Gebäude A, B und C erwähnt. Eine mögliche Frage könnte lauten „Wie viele Gebäude sind auf dem Firmengelände vorhanden?“ Eine logische Schlussfolgerung des Computers wäre die Erkenntnis, dass das Gelände aus insgesamt 3 Gebäuden besteht, ohne, dass die Zahl an sich erwähnt wurde.

Anwendungsbeispiel 3:

Eine mittelständische Firma beobachtet seit längerer Zeit einen kontinuierlichen Anstieg an Kundenanfragen. Bei vielen dieser Anfragen handelt es sich um Auskunftsanfragen zu Informationen. Die Firma beschließt, einen Chatbot zu entwickeln. Basierend auf internen Supportdokumenten können Kunden nun selbstständig, automatisch Fragen an den Chatbot stellen und beantworten lassen.

Generierung von Texten

Basierend auf einem gegebenen Text soll möglichst genau das nächste passende Wort vorhergesagt werden. Der so entstandene Text kann wiederum zur Vorhersage von einem weiteren Wort benutzt werden. Dieser Vorgang kann beliebig oft wiederholt werden, um beliebig lange Texte zu erzeugen. Dabei ist es möglich, Texte mit beliebigen Sprachfeinheiten zu generieren. So kann ein bestimmter Akzent oder Dialekt modelliert werden, aber auch eine einfache oder komplexere Sprache verwendet werden, je nach Zielgruppe. Die größte Herausforderung ist, dass Text sowohl inhaltlich als auch sprachlich fehlerfrei sein sollte.

Anwendungsbeispiel 4:

Ein Hersteller eines Dokumentenverwaltungssystems möchte das Auffinden von Dokumenten einfacher gestalten. In der eingebauten Suchmaske wird der Suchbegriff automatisch mit weiteren passenden Wörtern ergänzt.

Erkennen von Satzgliedern

Bei dem Erkennen von Satzgliedern, auch Named Entity Recognition (NER) ist das Ziel, ein oder mehrere Wörter in einem Satz einer Klasse zuzuordnen. Als mögliche Satzglieder können grammatikalische Einheiten definiert werden. Dabei wird ein Satz gegliedert nach Subjekt, Prädikat, Objekt usw. Oft werden anstelle von grammatikalischen Einheiten benutzerdefinierte Entitäten gewählt. Oft sind die gesuchten Entitäten z.B. Orte, natürliche Personen, Firmen oder Zeiten. Wenn ein Mensch eine Entscheidung treffen muss, zu welcher Kategorie ein Satzglied gehört, greifen wir automatisch auf Regeln (wie z.B. Grammatikregeln) zurück. Bei NER soll der Computer lernen, auf ähnliche Entscheidungsregeln zurückzugreifen. Allerdings werden diese Regeln nicht explizit vorgegeben, stattdessen muss der Computer sich diese selbstständig erarbeiten.

Anwendungsbeispiel 5:

Ein Hedgefonds analysiert automatisch die eingereichten vierteljährlichen Berichte welche bei der Börsenaufsicht eingereicht werden. Ziel ist es, automatisch Zusammenfassungen der Geschäftsaktivität der Firma zu erstellen. So besteht die Liste der zu extrahierenden Identitäten aus Geschäftsart, Geschäftsbereich, Geschäftsführer usw.

Zusammenfassungen

Die Aufgabe, eine Zusammenfassung eines Textes zu erstellen, kann man sich exakt wie die Aufgabenstellung früher im Deutschunterricht vorstellen. Das Ziel ist es, eine möglichst echt wirkende, menschliche Zusammenfassung mit allen relevanten Inhalten zu erstellen. Dabei müssen selbstverständlich geltende Rechtschreib- und Grammatikregeln eingehalten werden. Die Herausforderung dabei ist es, dem Computer beizubringen wichtige und relevante Inhalte von unwichtigen Inhalten zu trennen.

Anwendungsbeispiel 6:

Eine Onlinenachrichtenagentur hat durch Analyse des Nutzungsverhalten der Website herausgefunden das immer weniger Leute die Artikel komplett bis zum Ende durchlesen. Um Lesern das extrahieren von relevanten Informationen zu erleichtern, soll automatisch eine Zusammenfassung für vorhandene und neuen Artikeln erstellt werden. Die Zusammenfassung soll in Länge und Sprachkomplexität abhängig vom Nutzerprofil erstellt werden.

Übersetzungen

Beim Anwendungsfall einer Textübersetzung soll der Text von einer Sprache in eine andere transferieren werden, unter Einhaltung der geltenden Rechtschreib- und Grammatikregeln und ohne den Inhalt zu verändern. Dabei hat der Computer ähnliche Probleme mit dem Übersetzen von Texten wie ein Mensch. Es muss stets die Balance zwischen inhaltlicher und grammatikalischer Korrektheit gehalten werden, ohne sich dabei vom Originaltext zu entfernen.

Anwendungsbeispiel 7:

Ein national agierender Zulieferbetrieb möchte seinen Absatzmarkt international erweitern. Dazu müssen alle vorhandenen technischen Spezifikationen in die Sprache der Zielmärkte übersetzt werden. Eine besondere Herausforderung besteht in der Übersetzung von technischen, branchenspezifischen Vokabular.

Wie haben sich die NLP-Modelle entwickelt?

Die Geschichte von NLP-Modellen lässt sich in drei Epochen unterteilen: Naive Modelle, statische Vektormodelle und dynamische Vektormodelle.

In den Anfängen von NLP Modellen wurde versucht, den Sinn von Texten durch das Zählen von Wörtern oder Wortpaaren zu ermitteln. Dazu war ein sehr intensives Vorbearbeiten der Texte notwendig. Das eigentliche Rechnen der Modelle, basierend auf den Zählständen, ist (mit heutigen Computern) äußerst schnell zu bewerkstelligen. Allerdings geht durch das Zählen der Wörter jeglicher Kontext verloren.

Der nächste Entwicklungsschritt waren statische Vektormodelle. Der Gedanke hinter diesen Modellen ist, dass jedes Wort durch einen Vektor, also eine Zahlenreihe, repräsentiert wird. Diese Zahlenreihen werden meist durch Zuhilfenahme von Deep Learning Modellen berechnet. Sie dienen anschließend als Eingabe für ein weiteres Modell, z.B. wiederum ein Deep Learning Modell, dass die Zahlenreihe nutzt, um damit die eigentliche Aufgabe, z.B. die Klassifikation der Texte, zu lösen. Durch Zuhilfenahme der Vektoren war es möglich, den Kontext von Wörtern besser zu erfassen. D.h. bei dem Berechnen eines Vektors für ein Wort werden andere, dieses Wort umgebende Wörter, mitbetrachtet. Allerdings sind die Vektoren für ein gleich geschriebenes Wort noch identisch, unabhängig von der eigentlichen Bedeutung. Bei dem unten gezeigten Beispiel wäre der Vektor für ‚Bank‘ jeweils der gleiche.

Ich sitze auf der Bank. (Bank = Sitzgelegenheit)

Ich bringe mein Geld zur Bank. (Bank = Geldhaus)

Das berechnen der Vektoren sowie des Modells ist sehr zeit- und rechenintensiv. Allerdings gestaltet sich die Vorhersage, durch den fehlenden Kontext der Vektoren, noch sehr effizient.

Die aktuellste Generation von NLP Modellen ist ähnlich der zweiten Generation, allerdings werden nun Vektoren mit Bezug auf den Kontext des Wortes berechnet. Somit würde in dem obenstehenden Beispiel für die Sitzbank ein anderer Vektor berechnet werden als für das Geldhaus. Das macht sowohl die Berechnung des Modells als auch die Vorhersage sehr rechenintensiv.

Wieso ist NLP so relevant geworden?

Den Beginn der „New-Area of NLP“ hat Google Ende 2018 mit dem sogenannten BERT Modell eingeläutet (hier geht es zum offiziellen GitHub repository). Seitdem erscheinen monatlich Anpassungen und Weiterentwicklungen des Modells von Universitäten, aber auch anderen Firmen wie Facebook und natürlich von Google selbst. Die Mehrheit dieser Modelle steht der breiten Masse kostenfrei zur Verfügung – fast immer ist die Verwendung auch für den kommerziellen Zweck freigegeben.

Die Performance dieser neusten Generation von NLP Modellen ist in vielen Bereichen auf Augenhöhe mit, oder bereits über, den Ergebnissen, die von Menschen erzielt werden können.

Die Forschung hat Datensätze für verschiedene Aufgaben und Teilbereiche der Sprachverarbeitung entwickelt. Diese Aufgaben wurden zunächst von Menschen gelöst, um einen Referenzwert zu schaffen, der von Computern geschlagen werden soll. Mittlerweile sind NLP Modelle in der Lage, in fast allen Bereichen nahezu menschliche Ergebnisse zu liefern.

Zu beachten ist, dass die Datensätze sehr generalistisch sind. Jeder dieser Benchmark-Datensätze versucht in seinem Teilbereich eine möglichst große Abdeckung zu erlangen, um eine möglichste gute, generelle Aussage über die Performance zu treffen. Businessprobleme hingegen sind meist deutlich konkreter. So kann es sein, dass ein Modell sehr gut in der Lage ist, die generelle Stimmung von Texten aller Art zu erfassen und somit eine gute, hohe Bewertung in diesem Bereich erlangt.

Ein Businessproblem könnte sein, dass die Stimmung von Kundenbeiträgen in sozialen Netzwerken oder von eingehenden Emails von Kundenbeschwerden zu bewerten. Von einem menschlichen Standpunkt aus gesehen, sind beide Aufgaben sehr ähnlich. Für eine Maschine kann es einen großen Unterscheid machen, ob es sich um kurze, informellen Texte, wie Beiträge aus sozialen Medien, oder um längere, formelle Texte, wie E-Mails, handelt. Eine Evaluation der Modelle auf das Business-Problem ist unerlässlich.

Wie ist NLP so gut anwendbar geworden?

Bis vor wenigen Jahren gab es in der Entwicklung von künstlicher Intelligenz,  und speziell für den Teilbereich NLP, drei grundlegende Probleme, die die Entwicklung und Adaption dieser Modelle erschwert hat. Die Probleme hingen mit der Ressourcenallokation in den drei Bereichen Daten, Rechenleistung und Humankapital zusammen. Alle drei Punkte wurden durch das Vortrainieren von Modellen deutlich entschärft.

Die großen, relevanten Firmen in der NLP-Modellentwicklung investieren in diese Ressourcen und stellen im Anschluss diese vortrainierten Modelle meist kostenfrei zur Verfügung. Die Modelle sind bereits sehr gut im generellen Verstehen von Texten, aber lassen meist noch Raum für Verbesserungen bei spezifischen Problemen. Der Löwenanteil an Ressourcen wird jedoch für den ersten Teil, dem generalistischen Repräsentieren von Text, benötigt. Diese vortrainierten Modelle lassen sich nun mit Verhältnis wenig Aufwand auf bestimmte Businessprobleme feinabstimmen. Durch das Feinabstimmten können exzellente Ergebnisse mit minimalstem Aufwand und geringen Kosten erzielt werden.

Einstiegsbarriere: Datenverfügbarkeit

Mit zunehmender Komplexität der Modelle wächst der Bedarf an Daten, welche für das Training benötigt werden, exponentiell. Die Performance dieser Modelle kommt durch das Betrachten des Kontextes eines Wortes zustande. Folglich ist es notwendig, dass ein Modell möglichst viele Wörter in möglichst vielen Kombinationen sieht. Durch das Internet gibt es Zugriff auf sehr große Textsammlungen. So wurde das vorhin erwähnte BERT Modell auf diversen Büchern mit zusammen etwa 800 Millionen Wörtern sowie der kompletten englischsprachigen Plattform Wikipedia mit etwa 2,5 Milliarden Wörtern trainiert.

Einstiegsbarriere: Rechenleistung

Aus dem immer weiter ansteigenden Bedarf an Daten sowie der ansteigenden Modellkomplexität ergibt sich ein immer größerer Bedarf an Rechenleistung. Dabei lassen sich einige Punkte beobachten. Die Leistung von Computern steigt jedes Jahr massiv an, man spricht von einer Verdoppelung der Rechenleistung etwa alle zwei Jahre. Gleichzeitig wird Rechenleistung immer günstiger. Seit dem Siegeszug von Cloudanbietern wurde der Zugang zu Rechenleistung demokratisiert. Extrem performante und spezialisierte Computercluster sind nun nicht mehr nur für große Firmen, sondern für jedermann bei einer minutengenauen Abrechnung verfügbar.

Einstiegsbarriere: Talentakquisition

In den Anfängen von KI war es notwendig, entweder selbst ein kompetitives Entwicklungsteam innerhalb der eigenen Organisation aufzubauen oder die komplette Entwicklung von spezialisierten Firmen einzukaufen. Dadurch war es erforderlich, finanziell sehr stark in Vorleistung zu gehen, um nach einer oft mehrjährigen Entwicklungszeit ein fertiges KI-Produkt in Betrieb nehmen zu können. Oft sind solche Projekte fehlgeschlagen oder haben einen zu geringen Mehrwert gestiftet. Finanzielle Investitionen mit solch einem Risikoprofil waren meist nur für große multinationale Unternehmen möglich. Die meisten der neu entwickelten NLP-Modelle sind heutzutage frei zugänglich, auch für kommerzielle Zwecke. Somit ist es möglich, innerhalb von Wochen, anstatt Monaten oder Jahren, einen Machbarkeitsnachweis zu bekommen. Die Einführungszeit eines kompletten Produktes hat sich von Jahren auf Monate reduziert. Iterationen in der Produktentwicklung sind nun sehr schnell möglich, mit einem geringen initialen Investment.

Welche Herausforderung bestehen weiterhin?

Viele der ursprünglich vorhandenen Probleme wurden entschärft oder komplett gelöst. Diese Entwicklungen haben vor allem den Zeitaufwand bis zum Abschluss einer Machbarkeitsstudie extrem verkürzt. 

Modell

Aktuell sind vortrainierte Modelle von einer Vielzahl an Firmen und Anbietern vorhanden. Diese werden laufend weiterentwickelt und oft wird nach einigen Monaten eine neuere, verbesserte Version veröffentlicht. Außerdem werden von ein- und demselben Modell zum gleichen Zeitpunkt mehrere Versionen veröffentlicht. Diese unterscheiden sich oftmals in der Komplexität oder der Sprache.

Es ist extrem wichtig, in der Anfangsphase eines NLP-Projekts Modelle zu sondieren und zu evaluieren. Grundsätzlich lässt sich die Performance in zwei verschiedene Dimensionen aufteilen: Die Qualität der Ergebnisse und die Ausführungsgeschwindigkeit.

Die Qualität von Modellergebnisse zu beurteilen, ist je nach Aufgabe häufig anspruchsvoll. Bei der Klassifizierung von Emotionen lässt sich meistens eindeutig bestimmen, ob das Modell richtig oder falsch lag. Das Beurteilen von Zusammenfassungen ist deutlich schwieriger. Es ist sehr wichtig in der Anfangsphase eines Projektes ein Gütemaß zu bestimmen, das technisch umsetzbar ist, aber auch das Businessproblem widerspiegelt.

Die zweite Dimension der Modellperformance ist die Ausführungsgeschwindigkeit. Diese umfasst sowohl die benötigte Zeit für das Training als auch für die Vorhersage. Dabei ist es sehr wichtig, frühzeitig den Anspruch an das Modell mit allen Projektpartnern abzustimmen. So hat ein Modell, welches live und innerhalb von Millisekunden Anfragen beantworten muss, andere Eigenschaften als ein Modell, welches einmal pro Tag über Nacht Ergebnisse berechnet.

Daten

Das Thema Daten ist generell bei KI und vor allem im Bereich NLP ein zweischneidiges Schwert. Einerseits sind Daten generell vorhanden und es existieren Computersysteme, die in der Lage sind, diese zu verarbeiten. Durch das Vortrainieren von Modellen wird uns ein Großteil der Arbeit mit Daten abgenommen. Andererseits sind vortrainierte Modelle immer darauf ausgelegt, möglichst gut in einer Vielzahl von Aufgaben zu funktionieren. Oft liefern die vortrainieren Modelle ohne eine Feinabstimmung bereits gute, aber keine herausragenden Ergebnisse.

Die Feinabstimmung erfolgt meist in zwei Dimensionen. Das Modell muss zunächst auf Spracheigenheiten und Feinheiten angepasst werden – das kann spezielles Vokabular sein, aber auch Slang und Dialekt. So gibt es einen großen Unterschied zwischen Beiträgen aus den Sozialen Medien und Anleitungen für produktionstechnische Verfahren.

Die zweite Dimension bezieht sich auf die eigentliche Aufgabenstellung. Um eine herausragende Leistung zu erlangen, müssen Modelle immer auf das Businessproblem abgestimmt werden. Ein Modell, das übersetzen kann, unterscheidet sich erheblich von einem Modell, das Emotionen klassifizieren kann. Für diese Feinabstimmung werden Texte/Daten benötigt, welche auf die Zielsprache und das Zielproblem abgestimmt sind. Die Texte müssen aufbereitet und dem Modell zugeführt werden. Je nach Komplexität und Qualität der Daten kann dies noch immer ein aufwendiger Prozess sein.

Rechenleistung

Der Fakt, dass Computer immer besser werden und Rechenleistung immer günstiger wird, ist einer der Hauptgründe für die Adaption von KI. Wie bereits mehrfach erwähnt, ist es durch vortrainierte Modelle nicht mehr notwendig, den Löwenanteil der Rechenleistung selbst zu erbringen. Computerleistung wird lediglich für die Datenverarbeitung und die Feinabstimmung der Modelle benötigt. Dies ist ein Bruchteil von der Rechenleistung, die für das komplette Training von Anfang bis Ende benötigt wird. Dennoch ist es meist mehr als ein Standard-Computer in einer angemessenen Zeit bewerkstelligen könnte. Daher wird für die Feinabstimmung meist auf Cloudcomputing zurückgegriffen. Cloudressourcen werden in der Regel minutengenau abgerechnet und sind daher sehr kostengünstig. Allerdings unterscheidet sich der Ablauf eines Trainings mittels Cloudcomputing deutlich von einem Training in einem Standard-Rechenzentrum, weswegen in diesem Bereich Wissen in der eigenen Organisation entweder aufgebaut oder von externen Dienstleistern eingekauft werden muss.

Was können wir in der Zukunft von NLP erwarten?

Vom gesamten Bereich der künstlichen Intelligenz wird an NLP aktuell am aktivsten geforscht. Es sind in den nächsten Monaten und Jahren noch einige interessante Entwicklungen zu erwarten und derzeit zeichnen sich zwei Entwicklungen mit sehr interessanten praktischen Implikationen ab.

Wir erwarten kurz- bis mittelfristig den praktischen Einsatz von sogenannten Zero-Shot Modellen. Diese Modelle sind für ein gewisses Aufgabengebiet wie Sequenzklassifikation trainiert. Die Neuheit ist, dass diese Modelle sehr gute Ergebnisse liefern, ohne jeweils domänenspezifische Daten gesehen zu haben. Somit entwickeln diese Modelle eine Art „generelle“ Intelligenz. Damit wird die Feinabstimmung von Modellen deutlich einfacher oder entfällt komplett.

Der nächste zu erwartende Schritt sind sogenannte General Purpose Modelle. Diese Art von Modellen können jedes Aufgabengebiet auf ungesehenen Daten lösen, wodurch die komplette Feinabstimmung entfallen würde. Erste Versuche mit diesen Modellen scheinen sehr gute Ergebnisse zu liefern, allerdings sind die Modelle extrem groß und stellen sehr hohe Anforderungen an die Rechenleistung. Damit ist die Inbetriebnahme dieser Modelle aktuell äußerst schwer und teuer. Noch gibt es nahezu keine praktischen Einsatzgebiete. Wir erwarten in den nächsten Jahren deutliche Sprünge hinsichtlich Praktikabilität und Performance.

Zusammenfassung

Die jüngsten Entwicklungen in dem Bereich der Sprachprozessierung sind beeindruckend und schnell zugleich. Den Startschuss der neusten Entwicklungen gab Google mit der Veröffentlichung des BERT-Modells vor knapp zwei Jahren und seitdem werden in einem Wochenrhythmus neue Modelle von Firmen und Universitäten rund um die Welt veröffentlicht. Diese Modelle verbessern oft die Ergebnisse von vorhandenen Problemen oder ermöglichen es, vorhandene Ressourcen effizienter einzusetzen. Probleme welche vor zwei Jahren noch als unlösbar galten sind nun oft sehr gut lösbar und auch im Hinblick auf einzusetzende Ressourcen und Entwicklungszeit erschwinglich. Die notwendige Zeit, eine Machbarkeitsstudie zu erstellen, wurde extrem verkürzt.

 

Management Summary

OCR (Optical Character Recognition) ist eine große Herausforderung für viele Unternehmen. Am OCR-Markt tummeln sich diverse Open Source sowie kommerzielle Anbieter. Ein bekanntes Open Source Tool für OCR ist Tesseract, das mittlerweile von Google bereitgestellt wird. Tesseract ist aktuell in der Version 4 verfügbar, die die OCR Extraktion mittels rekurrenten neuronalen Netzen durchführt. Die OCR Performance von Tesseract ist nach wie vor jedoch volatil und hängt von verschiedenen Faktoren ab. Eine besondere Herausforderung ist die Anwendung von Tesseract auf Dokumente, die aus verschiedenen Strukturen aufgebaut sind, z.B. Texten, Tabellen und Bildern. Eine solche Dokumentenart stellen bspw. Rechnungen dar, die OCR Tools aller Anbieter nach wie vor besondere Herausforderungen stellen.

In diesem Beitrag wird demonstriert, wie ein Finetuning der Tesseract-OCR (Optical Character Recognition) Engine auf einer kleinen Stichprobe von Daten bereits eine erhebliche Verbesserung der OCR-Leistung auf Rechnungsdokumenten bewirken kann. Dabei ist der dargestellte Prozess nicht ausschließlich auf Rechnungen anwendbar sondern auf beliebige Dokumentenarten.

Es wird ein Anwendungsfall definiert, der auf eine korrekte Extraktion des gesamten Textes (Wörter und Zahlen) aus einem fiktiven, aber realistischen deutschen Rechnungsdokument abzielt. Es wird hierbei angenommen, dass die extrahierten Informationen für nachgelagerte Buchhaltungszwecke bestimmt sind. Daher wird eine korrekte Extraktion der Zahlen sowie des Euro-Zeichens als kritisch angesehen.

Die OCR-Leistung von zwei Tesseract-Modellen für die deutsche Sprache wird verglichen: das Standardmodell (nicht getuned) und eine finegetunete Variante. Das Standardmodell wird aus dem Tesseract OCR GitHub Repository bezogen. Das feinabgestimmte Modell wird mit denen in diesem Artikel beschriebenen Schritten entwickelt. Eine zweite deutsche Rechnung ähnlich der ersten wird für die Feinabstimmung verwendet. Sowohl das Standardmodell als auch das getunte Modell werden auf der gleichen Out-of-Sample Rechnung bewertet, um einen fairen Vergleich zu gewährleisten.

Die OCR-Leistung des Tesseract Standardmodells ist bei Zahlen vergleichsweise schlecht. Dies gilt insbesondere für Zahlen, die den Zahlen 1 und 7 ähnlich sind. Das Euro-Symbol wird in 50% der Fälle falsch erkannt, sodass das Ergebnis für eine etwaig nachgelagerte Buchhaltungsanwendung ungeeignet ist.

Das getunte Modell zeigt eine ähnliche OCR-Leistung für deutsche Wörter. Die OCR-Leistung bei Zahlen verbessert sich jedoch deutlich. Alle Zahlen und jedes Euro-Symbol werden korrekt extrahiert.  Es zeigt sich, dass eine Feinabstimmung mit minimalem Aufwand und einer geringen Menge an Schulungsdaten eine große Verbesserung der Erkennungsleistung erzielen kann. Dadurch wird Tesseract OCR mit seiner Open-Source-Lizenzierung zu einer attraktiven Lösung im Vergleich zu proprietärer OCR-Software. Weiterhin werden abschließende Empfehlungen für das Finetuning von Tesseract LSTM-Modellen dargestellt, für den Fall, dass mehr Trainingsdaten vorliegen.

Download des Tesseract Docker Containers

Der gesamte Finetuning-Prozess des LSTM-Modells von Tesseract wird im Folgenden ausführlich erörtert. Da die Installation und Anwendung von Tesseract kompliziert werden kann, haben wir einen Docker Container vorbereitet, der alle nötigen Installationen bereits enthält.

[contact-form-7 404 "Nicht gefunden"]

Einführung

Tesseract 4 mit seiner LSTM-Engine funktioniert out-of-the-box für einfache Texte bereits recht gut. Es gibt jedoch Szenarien, für die das Standardmodell schlecht abschneidet. Beispiele hierfür sind exotische Schriftarten, Bilder mit Hintergründen oder Text in Tabellen.  Glücklicherweise bietet Tesseract eine Möglichkeit zum Finetuning der LSTM-Engine, um die OCR-Leistung für speziellere Anwendungsfälle zu verbessern.

Warum OCR für Rechnungen eine Herausforderung ist

Auch wenn OCR in Teilbereichen als ein gelöstes Problem gilt, stellt die fehlerfreie Extraktion eines großen Textkorpus nach wie vor eine Herausforderung dar. Dies gilt insbesondere für OCR auf Dokumenten, die eine hohe strukturelle Varianz aufweisen, wie bspw. Rechnungsdokumente. Diese bestehen häufig aus unterschiedlichsten Elementen, die OCR-Engine von Tesseract for Herausforderungen stellen:

1. Farbige Hintergründe und Tabellenstrukturen stellen eine Herausforderung für die Seitensegmentierung dar.

2. Rechnungen enthalten normalerweise seltene Zeichen wie das EUR- oder USD-Zeichen

3. Zahlen können nicht mit einem Sprachwörterbuch überprüft werden.

Darüber hinaus ist die Fehlermarge gering: Häufig ist eine exakte Extraktion der numerischen Daten für nachfolgenden Prozessschritte von größter Bedeutung.

Problem (1) lässt sich in der Regel dadurch lösen, dass man eine der 14 von Tesseract bereitgestellten Segmentierungsmodus auswählt. Die beiden letztgenannten Probleme lassen sich häufig durch ein Finetuning der LSTM-Engine auf Basis von Beispielen ähnlicher Dokumente lösen.

Use Case Zielsetzung und Daten

Zwei ähnliche Beispielrechnungen werden in dem Artikel näher betrachtet. Die in Abbildung 1 gezeigte Rechnung wird zur Bewertung der OCR-Leistung sowohl für das Standard- als auch des feingetunte Tesseract-Modell verwendet. Besondere Aufmerksamkeit wird der korrekten Extraktion von Zahlen gewidmet. Die in Abbildung 2 gezeigte, zweite Rechnung wird zum Finetuning des LSTM Modells verwendet.

Die meisten Rechnungsdokumente sind in einer sehr gut lesbaren Schriftart wie „Arial“ geschrieben. Um die Vorteile des Tunings zu veranschaulichen, wird das anfängliche OCR-Problem durch die Berücksichtigung von Rechnungen, die in der Schriftart „Impact“ geschrieben sind, erschwert. „Impact“ ist eine Schriftart, die sich deutlich von normalen serifenlosen Schriften unterscheidet, und zu einer höheren Fehlerkennung für Tesseract führt.

Es wird im Folgenden gezeigt, dass Tesseract nach der Feinabstimmung auf Basis einer sehr kleinen Datenmenge trotz dieser schwierigen Schriftart sehr zufriedenstellende Ergebnisse liefert.

Abbildung 1: Rechnung 1, die zur Evaluierung der OCR Performance beider Modelle verwendet wird
Abbildung 2: Rechnung 2, die zum Finetuning der LSTM Engine verwendet wird

Verwendung des Tesseract 4.0 Docker Containers

Die Einrichtung zum Finetuning der Tesseract-LSTM-Engine funktioniert derzeit nur unter Linux und kann etwas knifflig sein. Daher wird zusammen mit diesem Artikel ein Docker-Container mit vorinstalliertem Tesseract 4.0 sowie mit den kompilierten Trainings-Tools und Skripten bereitgestellt.

Laden Sie das Docker-Image aus der bereitgestellten Archivdatei oder pullen Sie das Container-Image über den bereitgestellten Link:

docker load -i docker/tesseract_image.tar

Sobald das image aufgebaut ist, starten Sie den Container im „detached“ Modus:

docker run -d --rm --name tesseract_container tesseract:latest

Greifen Sie auf die Shell des laufenden Containers zu, um die folgenden Befehle in diesem Artikel zu replizieren:

docker exec -it tesseract_container /bin/bash

Allgemeine Verbesserungen der OCR Performance

Es gibt drei Möglichkeiten, wie die OCR-Leistung von Tesseract verbessert werden kann, noch bevor ein Finetuning der LSTM-Engine vorgenommen wird.

1. Preprocessing der Bilder

Gescannte Dokumente können eine schiefe Ausrichtung haben, wenn sie auf dem Scanner nicht richtig platziert wurden. Gedrehte Bilder sollten entzerrt werden, um die Liniensegmentierungsleistung von Tesseract zu optimieren.

Darüber hinaus kann beim Scannen ein Bildrauschen entstehen, das durch einen Rauschunterdrückungsalgorithmus entfernt werden sollte. Beachten Sie, dass Tesseract standardmäßig eine Schwellenwertbildung unter Verwendung des Otsu-Algorithmus durchführt, um Graustufenbilder in schwarze und weiße Pixel zu binärisieren.

Eine detaillierte Behandlung der Bildvorverarbeitung würde den Rahmen dieses Artikels sprengen und ist nicht notwendig, um für den gegebenen Anwendungsfall zufriedenstellende Ergebnisse zu erzielen. Die Tesseract-Dokumentation bietet einen praktischen Überblick.

2. Seitensegmentierung

Während der Seitensegmentierung versucht Tesseract, rechteckige Textbereiche zu identifizieren. Nur diese Bereiche werden im nächsten Schritt für die OCR ausgewählt. Es ist daher wichtig, alle Regionen mit Text zu erfassen, damit keine Informationen verloren gehen.

Tesseract ermöglicht die Auswahl aus 14 verschiedenen Seitensegmentierungsmethoden, die mit dem folgenden Befehl angezeigt werden können:

tesseract --help-psm

Die Standard-Segmentierungsmethode erwartet eine Bild ähnlich zu einer Buchseite. Dieser Modus kann jedoch aufgrund der zusätzlichen tabellarischen Strukturen in Rechnungsdokumenten nicht alle Textbereiche korrekt identifizieren. Eine bessere Segmentierungsmethode ist durch Option 4 gegeben: „Assume a single column of text of variable sizes“.

Um die Bedeutung einer geeigneten Seitensegmentierungsmethode zu veranschaulichen, betrachten wir das Ergebnis der Verwendung der Standardmethode „Fully automatic page segmentation, but no OSD “ in Abbildung 3:


Abbildung 3: Die Standard-Segmentierungsmethode kann nicht alle Textbereiche erkennen

Beachten Sie, dass die Texte „Rechnungsinformationen:“, „Pos.“ und „Produkt“ nicht segmentiert wurden. In Abbildung 4 führt eine geeignetere Methode zu einer perfekten Segmentierung der Seite.

3. Verwendung von Dictionaries, Wortlisten und Mustern für den Text

Die von Tesseract verwendeten LSTM-Modelle wurden auf Basis von großen Textmengen in einer bestimmten Sprache trainiert. Dieser Befehl zeigt die Sprachen an, die derzeit für Tesseract verfügbar sind:

tesseract --list-langs 

Weitere Sprachmodelle sind verfügbar, indem die entsprechenden language.tessdata heruntergelden und in den Ordner tessdata der lokalen Tesseract-Installation abgelegt werden. Das Tesseract-Repository auf GitHub stellt drei Varianten von Sprachmodellen zur Verfügung: normal, fast und best. Nur die schnelle sowie die beste Variante sind für ein Finetuning verwendbar. Wie der Name schon sagt, handelt es sich dabei um die schnellsten bzw. genauesten Varianten von Modellen. Weitere Modelle wurden ebenfalls für spezielle Anwendungsfälle wie die ausschließliche Erkennung von Ziffern und Interpunktion trainiert und sind in den Referenzen aufgeführt.

Da die Sprache der Rechnungen in diesem Anwendungsfall Deutsch ist, wird das zu diesem Artikel gehörende Docker-Image mit dem deu.tessdata-Modell geliefert.

Für eine bestimmte Sprache kann die Wortliste von Tesseract weiter ausgebaut oder auf bestimmte Wörter oder sogar Zeichen beschränkt werden. Dieses Thema liegt außerhalb des Rahmens dieses Artikels, da es nicht notwendig ist, um für den vorliegenden Anwendungsfall zufriedenstellende Ergebnisse zu erzielen.

Setup des Finetuning-Prozesses

Für das Finetuning müssen drei Dateitypen erstellt werden:

1. tiff-Dateien

Tagged Image File Format oder TIFF ist ein unkomprimiertes Bilddateiformat (im Gegensatz zu JPG oder PNG, die komprimierte Dateiformate sind). TIFF-Dateien können mit einem Konvertierungswerkzeug aus PNG- oder JPG-Formaten gewonnen werden. Obwohl Tesseract mit PNG- und JPG-Bildern arbeiten kann, wird das TIFF-Format empfohlen.

2. Box-Dateien

Zum Trainieren des LSTM-Modells verwendet Tesseract so genannte Box-Dateien mit der Erweiterung „.box“. Eine Box-Datei enthält den erkannten Text zusammen mit den Koordinaten der Bounding Box, in der sich der Text befindet. Box-Dateien enthalten sechs Spalten, die korrespondieren zu Symbol, Links, Unten, Rechts, Oben und Seite:

P 157 2566 1465 2609 0
r 157 2566 1465 2609 0
o 157 2566 1465 2609 0
d 157 2566 1465 2609 0
u 157 2566 1465 2609 0
k 157 2566 1465 2609 0
t 157 2566 1465 2609 0
  157 2566 1465 2609 0
P 157 2566 1465 2609 0
r 157 2566 1465 2609 0
e 157 2566 1465 2609 0
i 157 2566 1465 2609 0
s 157 2566 1465 2609 0
  157 2566 1465 2609 0
( 157 2566 1465 2609 0
N 157 2566 1465 2609 0
e 157 2566 1465 2609 0
t 157 2566 1465 2609 0
t 157 2566 1465 2609 0
o 157 2566 1465 2609 0
) 157 2566 1465 2609 0
  157 2566 1465 2609 0

Jedes Zeichen befindet sich auf einer separaten Zeile in der Box-Datei. Das LSTM-Modell akzeptiert entweder die Koordinaten einzelner Zeichen oder einer ganzen Textzeile. In der obigen Beispiel-Box-Datei befindet sich der Text „Produkt Preis (Netto)“ optisch auf der gleichen Zeile im Dokument. Alle Zeichen haben die gleichen Koordinaten, nämlich die Koordinaten des Begrenzungsrahmens um diese Textzeile herum. Die Verwendung von Koordinaten auf Zeilenebene ist wesentlich einfacher und wird standardmäßig bereitgestellt, wenn die Box-Datei mit dem folgenden Befehl erzeugt wird:

cd /home/fine_tune/train
tesseract train_invoice.tiff train_invoice --psm 4 -l best/deu lstmbox

Das erste Argument ist die zu extrahierende Bilddatei, das zweite Argument stellt den Dateinamen der Box-Datei dar. Der Sprachparameter -l weist Tesseract an, das deutsche Modell für die OCR zu verwenden. Der Parameter –psm weist Tesseract an, das vierte Seitensegmentierungsverfahren zu verwenden.

Nahezu unvermeidlich ist, dass die generierten OCR-Box-Dateien Fehler in der Symbolspalte enthalten. Jedes Symbol in der Box-Datei des Trainings muss daher von Hand überprüft werden. Dies ist ein mühsamer Prozess, da die Box-Datei der Demo-Rechnung fast tausend Zeilen enthält (eine für jedes Zeichen in der Rechnung). Um die Korrektur zu vereinfachen, stellt der Docker-Container ein Python-Skript zur Verfügung, das die Bounding-Boxes zusammen mit dem OCR-Text auf dem Originalrechnungsbild zeichnet, um einen Vergleich zwischen der Box Datei und dem Dokument zu erleichtern. Das Ergebnis ist in Abbildung 4 dargestellt. Der Docker-Container enthält bereits die korrigierten Box-Dateien, die durch den Suffix „_correct“ gekennzeichnet sind.


Abbildung 4 – Extrahierter Text bei Anwendung des Tesseract Modells „deu“

3. lstmf Dateien

Während des Finetunings extrahiert Tesseract den Text aus der Tiff-Datei und überprüft die Vorhersage anhand der Koordinaten sowie des Symbols in der Box-Datei. Tesseract verwendet dabei nicht direkt die Tiff- und Box-Datei, sondern erwartet eine sog. lstmf-Datei, die aus den beiden vorherigen Dateien erstellt wurde. Hierbei ist zu beachten, dass zur Erstellung der lstmf-Datei die Tiff- und Box-Datei denselben Namen haben müssen, z.B. train_invoice.tiff und train_invoice.box.

Der folgende Befehl erzeugt eine lstmf-Datei für die Zugrechnung:

cd /home/fine_tune/train
tesseract train_invoice.tiff train_invoice lstm.train 

Alle lstmf-Dateien, die für das Training relevant sind, müssen durch ihren relativen Pfad in einer Textdatei namens deu.training_files.txt angegeben werden. In diesem Anwendungsfall wird nur eine lstmf-Datei für das Training verwendet, so dass die Datei deu.training_files.txt nur eine Zeile enthält, nämlich: eval/train_invoice_correct.lstmf.

Es wird empfohlen, auch eine lstfm-Datei für die Evaluierungs-Rechnung zu erstellen. Auf diese Weise kann die Performance des Modells während dem Trainingsvorgang bewertet werden:

cd /home/fine_tune/eval
tesseract eval_invoice_correct.tiff eval_invoice_correct lstm.train

Evaluierung des Standard-LSTM-Modells

OCR-Vorhersagen aus dem deutschen Standardmodell „deu“ werden als Benchmark verwendet. Einen genauen Überblick über die OCR-Leistung des deutschen Standardmodells erhält man, indem man eine Box-Datei für die Evaluierungs-Rechnung erzeugt und den OCR-Text mit dem bereits erwähnten Python-Skript visualisiert. Dieses Skript, das die Datei „eval_invoice_ocr deu.tiff“ erzeugt, befindet sich im mitgelieferten Container unter „/home/fine_tune/src/draw_box_file_data.py“. Das Skript erwartet als Argument den Pfad zu einer Tiff-Datei, die entsprechende Box-Datei sowie einen Namen für die Ausgabe-Tiff-Datei. Der durch das deutsche Standardmodell extrahierte OCR-Text wird als eval/eval_invoice_ocr_deu.tiff gespeichert und ist in Abbildung 1 dargestellt.

Auf den ersten Blick sieht der durch OCR extrahierte Text gut aus. Das Modell extrahiert deutsche Zeichen wie ä, ö ü und ß korrekt. Tatsächlich gibt es nur drei Fälle, in denen Wörter Fehler enthalten:

OCR Truth
Jessel GmbH 8 Co Jessel GmbH & Co
11 Glasbehälter 1l Glasbehälter
Zeki64@hloch.com Zeki64@bloch.com

Das Modell schneidet bei gebräuchlichen deutschen Wörtern bereits gut ab, hat aber Schwierigkeiten mit singulären Symbolen wie „&“ und „l“ sowie Wörtern wie „bloch“, die nicht in der Wortliste des Modells enthalten sind.

Preise und Zahlen sind für das Modell eine viel größere Herausforderung. Hierbei treten deutlich häufiger Fehler bei der Extraktion auf:

OCR Truth
159,16 159,1€
1% 7%
1305.816 1305.81€
227.66 227.6€
341.51 347.57€
1115.16 1115.7€
242.86 242.8€
1456.86 1456.8€
51.46 54.1€
1954.719€ 1954.79€

Das deutsche Standardmodell extrahiert das Euro-Symbol € in 9 von 18 Fällen nicht korrekt. Dies entspricht einer Fehlerquote von 50%.

Finetuning des Standard-LSTM-Modells

Das Standard-LSTM-Modell wird nun auf der in Abbildung 2 gezeigten Rechnung finegetuned. Anschließend wird die OCR-Leistung anhand der in Abbildung 1 gezeigten Evaluierungs-Rechnung bewertet, die auch zuvor für das Benchmarking des deutschen Standardmodells verwendet wurde.

Zum Finetuning des LSTM-Modells muss dieses zunächst aus der Datei deu.traineddata extrahiert werden. Mit dem folgenden Befehl wird das LSTM-Modell aus dem deutschen Standardmodell in das Verzeichnis lstm_model extrahiert:

cd /home/fine_tune
combine_tessdata -e tesseract/tessdata/best/deu.traineddata lstm_model/deu.lstm

Anschließend werden alle notwendigen Dateien für das Finetuning zusammengestellt. Die Dateien sind ebenfalls im Docker-Container vorhanden:

  1. Die Trainings-Dateien train_invoice_correct.lstmf und deu.training_files.txt im Verzeichnis train.
  2. Die Evaluierungs-Dateien eval_invoice_correct.lstmf und deu.training_files.txt im eval-Verzeichnis.
  3. Das extrahierte LSTM-Modell deu.lstm im Verzeichnis lstm_model.

Der Docker-Container enthält das Skript src/fine_tune.sh, das den Prozess des Finetunings startet. Sein Inhalt ist:

/usr/bin/lstmtraining 
 --model_output output/fine_tuned 
 --continue_from lstm_model/deu.lstm 
 --traineddata tesseract/tessdata/best/deu.traineddata 
 --train_listfile train/deu.training_files.txt 
 --evallistfile eval/deu.training_files.txt 
 --max_iterations 400

Mit diesem Befehl wird das extrahierte Modell deu.lstm in der in train/deu.training_files.txt angegebenen Datei train_invoice.lstmf getuned. Das Finetuning des LSTM-Modells erfordert sprachspezifische Informationen, die im Ordner deu.tessdata enthalten sind. Die Datei eval_invoice.lstmf, die in eval/deu.training_files.txt angegeben ist, wird zur Berechnung der OCR-Performance während des Trainings verwendet. Das Finetuning wird nach 400 Iterationen beendet. Die gesamte Trainingsdauer dauert weniger als zwei Minuten.

Der folgende Befehl führt das Skript aus und protokolliert die Ausgabe in einer Datei:

cd /home/fine_tune
sh src/fine_tune.sh > output/fine_tune.log 2>&1

Der Inhalt der Protokolldatei nach dem Training ist unten dargestellt:

src/fine_tune.log
Loaded file lstm_model/deu.lstm, unpacking...
Warning: LSTMTrainer deserialized an LSTMRecognizer!
Continuing from lstm_model/deu.lstm
Loaded 20/20 lines (1-20) of document train/train_invoice_correct.lstmf
Loaded 24/24 lines (1-24) of document eval/eval_invoice_correct.lstmf
2 Percent improvement time=69, best error was 100 @ 0
At iteration 69/100/100, Mean rms=1.249%, delta=2.886%, char train=8.17%, word train=22.249%, skip ratio=0%, New best char error = 8.17 Transitioned to stage 1 wrote best model:output/deu_fine_tuned8.17_69.checkpoint wrote checkpoint.
-----
2 Percent improvement time=62, best error was 8.17 @ 69
At iteration 131/200/200, Mean rms=1.008%, delta=2.033%, char train=5.887%, word train=20.832%, skip ratio=0%, New best char error = 5.887 wrote best model:output/deu_fine_tuned5.887_131.checkpoint wrote checkpoint.
-----
2 Percent improvement time=112, best error was 8.17 @ 69
At iteration 181/300/300, Mean rms=0.88%, delta=1.599%, char train=4.647%, word train=17.388%, skip ratio=0%, New best char error = 4.647 wrote best model:output/deu_fine_tuned4.647_181.checkpoint wrote checkpoint.
-----
2 Percent improvement time=159, best error was 8.17 @ 69
At iteration 228/400/400, Mean rms=0.822%, delta=1.416%, char train=4.144%, word train=16.126%, skip ratio=0%, New best char error = 4.144 wrote best model:output/deu_fine_tuned4.144_228.checkpoint wrote checkpoint.
-----
Finished! Error rate = 4.144

Während des Trainings speichert Tesseract nach jeder Iteration einen sog. Model Checkpoint. Die Leistung des Modells an diesem Kontrollpunkt wird anhand der Evaluierungs-Daten getestet und mit dem aktuell besten Ergebnis verglichen. Wenn sich das Ergebnis verbessert, d.h. der OCR-Fehler abnimmt, wird eine beschriftete Kopie des Checkpoints gespeichert. Die erste Nummer des Dateinamens für den Kontrollpunkt steht für den Zeichenfehler und die zweite Nummer für die Trainingsiteration.

Der letzte Schritt ist die neue Zusammenstellung des finegetunten LSTM-Modells, so dass man wieder ein „traineddata“ Modell erhält. Unter der Annahme, dass der Kontrollpunkt bei der 181. Iteration selektiert wurde, wird mit dem folgenden Befehl ein ausgewählter Kontrollpunkt „deu_fine_tuned4.647_181.checkpoint“ in ein voll funktionsfähiges Tesseract-Modell „deu_fine_tuned.traineddata“ umgewandelt:

cd /home/fine_tune
/usr/bin/lstmtraining 
 --stop_training 
 --continue_from output/deu_fine_tuned4.647_181.checkpoint 
 --traineddata tesseract/tessdata/best/deu.traineddata 
 --model_output output/deu_fine_tuned.traineddata

Dieses Modell muss in die Testdaten der lokalen Tesseract-Installation kopiert werden, um es Tesseract zur Verfügung zu stellen. Dies ist im Docker-Container bereits geschehen.

Vergewissern Sie sich, dass das feinabgestimmte Modell in Tesseract verfügbar ist:

tesseract --list-langs

Evaluierung des finegetunten LSTM-Modells

Das finegetunte Modell wird analog zum Standardmodell evaluiert: Es wird eine Box-Datei der Auswertungs-Rechnung erstellt, und der OCR-Text wird mit Hilfe des Python-Skripts auf dem Bild der Auswertungsrechnung angezeigt.

Der Befehl zur Erzeugung der Box-Dateien muss so modifiziert werden, dass das fein abgestimmte Modell „deu_fine_tuned“ anstelle des Standardmodells „deu“ verwendet wird:

cd /home/fine_tune/eval
tesseract eval_invoice.tiff eval_invoice --psm 4 -l deu_fine_tuned lstmbox

Der durch das fein abgestimmte Modell extrahierte OCR-Text ist in Abbildung 5 unten dargestellt.

Abbildung 5: OCR Ergebnisse des finegetunten LSTM Modells

Wie beim deutschen Standardmodell bleibt die Leistung bei den deutschen Wörtern gut, aber nicht perfekt. Um die Leistung bei seltenen Wörtern zu verbessern, könnte die Wortliste des Modells um weitere Worte erweitert werden.

OCR Truth
 Jessel GmbH 8 Co Jessel GmbH & Co
1! Glasbehälte 1l Glasbehälter
Zeki64@hloch.com Zeki64@bloch.com

Wichtiger ist, dass sich die OCR-Leistung bei Zahlen deutlich verbessert hat: Das verfeinerte Modell extrahierte alle Zahlen und jedes Vorkommen des €-Zeichens korrekt.

OCR Truth
159,1€ 159,1€
7% 7%
1305.81€ 1305.81€
227.6€ 227.6€
347.57€ 347.57€
1115.7€ 1115.7€
242.8€ 242.8€
1456.8€ 1456.8€
54.1€ 54.1€
1954.79€ 1954.79€

Fazit und Ausblick

In diesem Artikel wurde gezeigt, dass die OCR-Leistung von Tesseract durch Finetuning erheblich verbessert werden kann. Insbesondere bei Nicht-Standard-Anwendungsfällen, wie der Text-Extraktion von Rechnungsdokumenten, kann so die OCR-Leistung signifikant verbessert werden. Neben der Open Source Lizensierung macht die Möglichkeit, die LSTM-Engine von Tesseract mittels Finetunings für spezifische Anwendungsfälle zu tunen, das Framework zu einem attraktiven Tool, auch für anspruchsvollere OCR-Einsatzszenarien.

Zur weiteren Verbesserung des Ergebnisses kann es sinnvoll sein, das Modell für weitere Iterationen zu tunen. In diesem Anwendungsfall wurde die Anzahl der Iterationen absichtlich begrenzt, da nur ein Dokument zum Finetuning verwendet wurde. Mehr Iterationen erhöhen potenziell das Risiko einer Überanpassung des LSTM-Modells auf bestimmten Symbolen, was wiederum die Fehlerquote bei anderen Symbolen erhöht. In der Praxis ist es wünschenswert, die Anzahl der Iterationen unter der Voraussetzung zu erhöhen, dass ausreichend Trainingsdaten zur Verfügung stehen. Die endgültige OCR-Leistung sollte immer auf Basis eines weiteren, jedoch repräsentativen Datensatz von Dokumenten überprüft werden.

Referenzen

  • Tesseract training: https://tesseract-ocr.github.io/tessdoc/TrainingTesseract-4.00.html
  • Image processing overview: https://tesseract-ocr.github.io/tessdoc/ImproveQuality#image-processing
  • Otsu thresholding: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_thresholding/py_thresholding.html
  • Tesseract digits comma model: https://github.com/Shreeshrii/tessdata_shreetest

 

Management Summary

OCR (Optical Character Recognition) ist eine große Herausforderung für viele Unternehmen. Am OCR-Markt tummeln sich diverse Open Source sowie kommerzielle Anbieter. Ein bekanntes Open Source Tool für OCR ist Tesseract, das mittlerweile von Google bereitgestellt wird. Tesseract ist aktuell in der Version 4 verfügbar, die die OCR Extraktion mittels rekurrenten neuronalen Netzen durchführt. Die OCR Performance von Tesseract ist nach wie vor jedoch volatil und hängt von verschiedenen Faktoren ab. Eine besondere Herausforderung ist die Anwendung von Tesseract auf Dokumente, die aus verschiedenen Strukturen aufgebaut sind, z.B. Texten, Tabellen und Bildern. Eine solche Dokumentenart stellen bspw. Rechnungen dar, die OCR Tools aller Anbieter nach wie vor besondere Herausforderungen stellen.

In diesem Beitrag wird demonstriert, wie ein Finetuning der Tesseract-OCR (Optical Character Recognition) Engine auf einer kleinen Stichprobe von Daten bereits eine erhebliche Verbesserung der OCR-Leistung auf Rechnungsdokumenten bewirken kann. Dabei ist der dargestellte Prozess nicht ausschließlich auf Rechnungen anwendbar sondern auf beliebige Dokumentenarten.

Es wird ein Anwendungsfall definiert, der auf eine korrekte Extraktion des gesamten Textes (Wörter und Zahlen) aus einem fiktiven, aber realistischen deutschen Rechnungsdokument abzielt. Es wird hierbei angenommen, dass die extrahierten Informationen für nachgelagerte Buchhaltungszwecke bestimmt sind. Daher wird eine korrekte Extraktion der Zahlen sowie des Euro-Zeichens als kritisch angesehen.

Die OCR-Leistung von zwei Tesseract-Modellen für die deutsche Sprache wird verglichen: das Standardmodell (nicht getuned) und eine finegetunete Variante. Das Standardmodell wird aus dem Tesseract OCR GitHub Repository bezogen. Das feinabgestimmte Modell wird mit denen in diesem Artikel beschriebenen Schritten entwickelt. Eine zweite deutsche Rechnung ähnlich der ersten wird für die Feinabstimmung verwendet. Sowohl das Standardmodell als auch das getunte Modell werden auf der gleichen Out-of-Sample Rechnung bewertet, um einen fairen Vergleich zu gewährleisten.

Die OCR-Leistung des Tesseract Standardmodells ist bei Zahlen vergleichsweise schlecht. Dies gilt insbesondere für Zahlen, die den Zahlen 1 und 7 ähnlich sind. Das Euro-Symbol wird in 50% der Fälle falsch erkannt, sodass das Ergebnis für eine etwaig nachgelagerte Buchhaltungsanwendung ungeeignet ist.

Das getunte Modell zeigt eine ähnliche OCR-Leistung für deutsche Wörter. Die OCR-Leistung bei Zahlen verbessert sich jedoch deutlich. Alle Zahlen und jedes Euro-Symbol werden korrekt extrahiert.  Es zeigt sich, dass eine Feinabstimmung mit minimalem Aufwand und einer geringen Menge an Schulungsdaten eine große Verbesserung der Erkennungsleistung erzielen kann. Dadurch wird Tesseract OCR mit seiner Open-Source-Lizenzierung zu einer attraktiven Lösung im Vergleich zu proprietärer OCR-Software. Weiterhin werden abschließende Empfehlungen für das Finetuning von Tesseract LSTM-Modellen dargestellt, für den Fall, dass mehr Trainingsdaten vorliegen.

Download des Tesseract Docker Containers

Der gesamte Finetuning-Prozess des LSTM-Modells von Tesseract wird im Folgenden ausführlich erörtert. Da die Installation und Anwendung von Tesseract kompliziert werden kann, haben wir einen Docker Container vorbereitet, der alle nötigen Installationen bereits enthält.

[contact-form-7 404 "Nicht gefunden"]

Einführung

Tesseract 4 mit seiner LSTM-Engine funktioniert out-of-the-box für einfache Texte bereits recht gut. Es gibt jedoch Szenarien, für die das Standardmodell schlecht abschneidet. Beispiele hierfür sind exotische Schriftarten, Bilder mit Hintergründen oder Text in Tabellen.  Glücklicherweise bietet Tesseract eine Möglichkeit zum Finetuning der LSTM-Engine, um die OCR-Leistung für speziellere Anwendungsfälle zu verbessern.

Warum OCR für Rechnungen eine Herausforderung ist

Auch wenn OCR in Teilbereichen als ein gelöstes Problem gilt, stellt die fehlerfreie Extraktion eines großen Textkorpus nach wie vor eine Herausforderung dar. Dies gilt insbesondere für OCR auf Dokumenten, die eine hohe strukturelle Varianz aufweisen, wie bspw. Rechnungsdokumente. Diese bestehen häufig aus unterschiedlichsten Elementen, die OCR-Engine von Tesseract for Herausforderungen stellen:

1. Farbige Hintergründe und Tabellenstrukturen stellen eine Herausforderung für die Seitensegmentierung dar.

2. Rechnungen enthalten normalerweise seltene Zeichen wie das EUR- oder USD-Zeichen

3. Zahlen können nicht mit einem Sprachwörterbuch überprüft werden.

Darüber hinaus ist die Fehlermarge gering: Häufig ist eine exakte Extraktion der numerischen Daten für nachfolgenden Prozessschritte von größter Bedeutung.

Problem (1) lässt sich in der Regel dadurch lösen, dass man eine der 14 von Tesseract bereitgestellten Segmentierungsmodus auswählt. Die beiden letztgenannten Probleme lassen sich häufig durch ein Finetuning der LSTM-Engine auf Basis von Beispielen ähnlicher Dokumente lösen.

Use Case Zielsetzung und Daten

Zwei ähnliche Beispielrechnungen werden in dem Artikel näher betrachtet. Die in Abbildung 1 gezeigte Rechnung wird zur Bewertung der OCR-Leistung sowohl für das Standard- als auch des feingetunte Tesseract-Modell verwendet. Besondere Aufmerksamkeit wird der korrekten Extraktion von Zahlen gewidmet. Die in Abbildung 2 gezeigte, zweite Rechnung wird zum Finetuning des LSTM Modells verwendet.

Die meisten Rechnungsdokumente sind in einer sehr gut lesbaren Schriftart wie „Arial“ geschrieben. Um die Vorteile des Tunings zu veranschaulichen, wird das anfängliche OCR-Problem durch die Berücksichtigung von Rechnungen, die in der Schriftart „Impact“ geschrieben sind, erschwert. „Impact“ ist eine Schriftart, die sich deutlich von normalen serifenlosen Schriften unterscheidet, und zu einer höheren Fehlerkennung für Tesseract führt.

Es wird im Folgenden gezeigt, dass Tesseract nach der Feinabstimmung auf Basis einer sehr kleinen Datenmenge trotz dieser schwierigen Schriftart sehr zufriedenstellende Ergebnisse liefert.

Abbildung 1: Rechnung 1, die zur Evaluierung der OCR Performance beider Modelle verwendet wird
Abbildung 2: Rechnung 2, die zum Finetuning der LSTM Engine verwendet wird

Verwendung des Tesseract 4.0 Docker Containers

Die Einrichtung zum Finetuning der Tesseract-LSTM-Engine funktioniert derzeit nur unter Linux und kann etwas knifflig sein. Daher wird zusammen mit diesem Artikel ein Docker-Container mit vorinstalliertem Tesseract 4.0 sowie mit den kompilierten Trainings-Tools und Skripten bereitgestellt.

Laden Sie das Docker-Image aus der bereitgestellten Archivdatei oder pullen Sie das Container-Image über den bereitgestellten Link:

docker load -i docker/tesseract_image.tar

Sobald das image aufgebaut ist, starten Sie den Container im „detached“ Modus:

docker run -d --rm --name tesseract_container tesseract:latest

Greifen Sie auf die Shell des laufenden Containers zu, um die folgenden Befehle in diesem Artikel zu replizieren:

docker exec -it tesseract_container /bin/bash

Allgemeine Verbesserungen der OCR Performance

Es gibt drei Möglichkeiten, wie die OCR-Leistung von Tesseract verbessert werden kann, noch bevor ein Finetuning der LSTM-Engine vorgenommen wird.

1. Preprocessing der Bilder

Gescannte Dokumente können eine schiefe Ausrichtung haben, wenn sie auf dem Scanner nicht richtig platziert wurden. Gedrehte Bilder sollten entzerrt werden, um die Liniensegmentierungsleistung von Tesseract zu optimieren.

Darüber hinaus kann beim Scannen ein Bildrauschen entstehen, das durch einen Rauschunterdrückungsalgorithmus entfernt werden sollte. Beachten Sie, dass Tesseract standardmäßig eine Schwellenwertbildung unter Verwendung des Otsu-Algorithmus durchführt, um Graustufenbilder in schwarze und weiße Pixel zu binärisieren.

Eine detaillierte Behandlung der Bildvorverarbeitung würde den Rahmen dieses Artikels sprengen und ist nicht notwendig, um für den gegebenen Anwendungsfall zufriedenstellende Ergebnisse zu erzielen. Die Tesseract-Dokumentation bietet einen praktischen Überblick.

2. Seitensegmentierung

Während der Seitensegmentierung versucht Tesseract, rechteckige Textbereiche zu identifizieren. Nur diese Bereiche werden im nächsten Schritt für die OCR ausgewählt. Es ist daher wichtig, alle Regionen mit Text zu erfassen, damit keine Informationen verloren gehen.

Tesseract ermöglicht die Auswahl aus 14 verschiedenen Seitensegmentierungsmethoden, die mit dem folgenden Befehl angezeigt werden können:

tesseract --help-psm

Die Standard-Segmentierungsmethode erwartet eine Bild ähnlich zu einer Buchseite. Dieser Modus kann jedoch aufgrund der zusätzlichen tabellarischen Strukturen in Rechnungsdokumenten nicht alle Textbereiche korrekt identifizieren. Eine bessere Segmentierungsmethode ist durch Option 4 gegeben: „Assume a single column of text of variable sizes“.

Um die Bedeutung einer geeigneten Seitensegmentierungsmethode zu veranschaulichen, betrachten wir das Ergebnis der Verwendung der Standardmethode „Fully automatic page segmentation, but no OSD “ in Abbildung 3:


Abbildung 3: Die Standard-Segmentierungsmethode kann nicht alle Textbereiche erkennen

Beachten Sie, dass die Texte „Rechnungsinformationen:“, „Pos.“ und „Produkt“ nicht segmentiert wurden. In Abbildung 4 führt eine geeignetere Methode zu einer perfekten Segmentierung der Seite.

3. Verwendung von Dictionaries, Wortlisten und Mustern für den Text

Die von Tesseract verwendeten LSTM-Modelle wurden auf Basis von großen Textmengen in einer bestimmten Sprache trainiert. Dieser Befehl zeigt die Sprachen an, die derzeit für Tesseract verfügbar sind:

tesseract --list-langs 

Weitere Sprachmodelle sind verfügbar, indem die entsprechenden language.tessdata heruntergelden und in den Ordner tessdata der lokalen Tesseract-Installation abgelegt werden. Das Tesseract-Repository auf GitHub stellt drei Varianten von Sprachmodellen zur Verfügung: normal, fast und best. Nur die schnelle sowie die beste Variante sind für ein Finetuning verwendbar. Wie der Name schon sagt, handelt es sich dabei um die schnellsten bzw. genauesten Varianten von Modellen. Weitere Modelle wurden ebenfalls für spezielle Anwendungsfälle wie die ausschließliche Erkennung von Ziffern und Interpunktion trainiert und sind in den Referenzen aufgeführt.

Da die Sprache der Rechnungen in diesem Anwendungsfall Deutsch ist, wird das zu diesem Artikel gehörende Docker-Image mit dem deu.tessdata-Modell geliefert.

Für eine bestimmte Sprache kann die Wortliste von Tesseract weiter ausgebaut oder auf bestimmte Wörter oder sogar Zeichen beschränkt werden. Dieses Thema liegt außerhalb des Rahmens dieses Artikels, da es nicht notwendig ist, um für den vorliegenden Anwendungsfall zufriedenstellende Ergebnisse zu erzielen.

Setup des Finetuning-Prozesses

Für das Finetuning müssen drei Dateitypen erstellt werden:

1. tiff-Dateien

Tagged Image File Format oder TIFF ist ein unkomprimiertes Bilddateiformat (im Gegensatz zu JPG oder PNG, die komprimierte Dateiformate sind). TIFF-Dateien können mit einem Konvertierungswerkzeug aus PNG- oder JPG-Formaten gewonnen werden. Obwohl Tesseract mit PNG- und JPG-Bildern arbeiten kann, wird das TIFF-Format empfohlen.

2. Box-Dateien

Zum Trainieren des LSTM-Modells verwendet Tesseract so genannte Box-Dateien mit der Erweiterung „.box“. Eine Box-Datei enthält den erkannten Text zusammen mit den Koordinaten der Bounding Box, in der sich der Text befindet. Box-Dateien enthalten sechs Spalten, die korrespondieren zu Symbol, Links, Unten, Rechts, Oben und Seite:

P 157 2566 1465 2609 0
r 157 2566 1465 2609 0
o 157 2566 1465 2609 0
d 157 2566 1465 2609 0
u 157 2566 1465 2609 0
k 157 2566 1465 2609 0
t 157 2566 1465 2609 0
  157 2566 1465 2609 0
P 157 2566 1465 2609 0
r 157 2566 1465 2609 0
e 157 2566 1465 2609 0
i 157 2566 1465 2609 0
s 157 2566 1465 2609 0
  157 2566 1465 2609 0
( 157 2566 1465 2609 0
N 157 2566 1465 2609 0
e 157 2566 1465 2609 0
t 157 2566 1465 2609 0
t 157 2566 1465 2609 0
o 157 2566 1465 2609 0
) 157 2566 1465 2609 0
  157 2566 1465 2609 0

Jedes Zeichen befindet sich auf einer separaten Zeile in der Box-Datei. Das LSTM-Modell akzeptiert entweder die Koordinaten einzelner Zeichen oder einer ganzen Textzeile. In der obigen Beispiel-Box-Datei befindet sich der Text „Produkt Preis (Netto)“ optisch auf der gleichen Zeile im Dokument. Alle Zeichen haben die gleichen Koordinaten, nämlich die Koordinaten des Begrenzungsrahmens um diese Textzeile herum. Die Verwendung von Koordinaten auf Zeilenebene ist wesentlich einfacher und wird standardmäßig bereitgestellt, wenn die Box-Datei mit dem folgenden Befehl erzeugt wird:

cd /home/fine_tune/train
tesseract train_invoice.tiff train_invoice --psm 4 -l best/deu lstmbox

Das erste Argument ist die zu extrahierende Bilddatei, das zweite Argument stellt den Dateinamen der Box-Datei dar. Der Sprachparameter -l weist Tesseract an, das deutsche Modell für die OCR zu verwenden. Der Parameter –psm weist Tesseract an, das vierte Seitensegmentierungsverfahren zu verwenden.

Nahezu unvermeidlich ist, dass die generierten OCR-Box-Dateien Fehler in der Symbolspalte enthalten. Jedes Symbol in der Box-Datei des Trainings muss daher von Hand überprüft werden. Dies ist ein mühsamer Prozess, da die Box-Datei der Demo-Rechnung fast tausend Zeilen enthält (eine für jedes Zeichen in der Rechnung). Um die Korrektur zu vereinfachen, stellt der Docker-Container ein Python-Skript zur Verfügung, das die Bounding-Boxes zusammen mit dem OCR-Text auf dem Originalrechnungsbild zeichnet, um einen Vergleich zwischen der Box Datei und dem Dokument zu erleichtern. Das Ergebnis ist in Abbildung 4 dargestellt. Der Docker-Container enthält bereits die korrigierten Box-Dateien, die durch den Suffix „_correct“ gekennzeichnet sind.


Abbildung 4 – Extrahierter Text bei Anwendung des Tesseract Modells „deu“

3. lstmf Dateien

Während des Finetunings extrahiert Tesseract den Text aus der Tiff-Datei und überprüft die Vorhersage anhand der Koordinaten sowie des Symbols in der Box-Datei. Tesseract verwendet dabei nicht direkt die Tiff- und Box-Datei, sondern erwartet eine sog. lstmf-Datei, die aus den beiden vorherigen Dateien erstellt wurde. Hierbei ist zu beachten, dass zur Erstellung der lstmf-Datei die Tiff- und Box-Datei denselben Namen haben müssen, z.B. train_invoice.tiff und train_invoice.box.

Der folgende Befehl erzeugt eine lstmf-Datei für die Zugrechnung:

cd /home/fine_tune/train
tesseract train_invoice.tiff train_invoice lstm.train 

Alle lstmf-Dateien, die für das Training relevant sind, müssen durch ihren relativen Pfad in einer Textdatei namens deu.training_files.txt angegeben werden. In diesem Anwendungsfall wird nur eine lstmf-Datei für das Training verwendet, so dass die Datei deu.training_files.txt nur eine Zeile enthält, nämlich: eval/train_invoice_correct.lstmf.

Es wird empfohlen, auch eine lstfm-Datei für die Evaluierungs-Rechnung zu erstellen. Auf diese Weise kann die Performance des Modells während dem Trainingsvorgang bewertet werden:

cd /home/fine_tune/eval
tesseract eval_invoice_correct.tiff eval_invoice_correct lstm.train

Evaluierung des Standard-LSTM-Modells

OCR-Vorhersagen aus dem deutschen Standardmodell „deu“ werden als Benchmark verwendet. Einen genauen Überblick über die OCR-Leistung des deutschen Standardmodells erhält man, indem man eine Box-Datei für die Evaluierungs-Rechnung erzeugt und den OCR-Text mit dem bereits erwähnten Python-Skript visualisiert. Dieses Skript, das die Datei „eval_invoice_ocr deu.tiff“ erzeugt, befindet sich im mitgelieferten Container unter „/home/fine_tune/src/draw_box_file_data.py“. Das Skript erwartet als Argument den Pfad zu einer Tiff-Datei, die entsprechende Box-Datei sowie einen Namen für die Ausgabe-Tiff-Datei. Der durch das deutsche Standardmodell extrahierte OCR-Text wird als eval/eval_invoice_ocr_deu.tiff gespeichert und ist in Abbildung 1 dargestellt.

Auf den ersten Blick sieht der durch OCR extrahierte Text gut aus. Das Modell extrahiert deutsche Zeichen wie ä, ö ü und ß korrekt. Tatsächlich gibt es nur drei Fälle, in denen Wörter Fehler enthalten:

OCR Truth
Jessel GmbH 8 Co Jessel GmbH & Co
11 Glasbehälter 1l Glasbehälter
Zeki64@hloch.com Zeki64@bloch.com

Das Modell schneidet bei gebräuchlichen deutschen Wörtern bereits gut ab, hat aber Schwierigkeiten mit singulären Symbolen wie „&“ und „l“ sowie Wörtern wie „bloch“, die nicht in der Wortliste des Modells enthalten sind.

Preise und Zahlen sind für das Modell eine viel größere Herausforderung. Hierbei treten deutlich häufiger Fehler bei der Extraktion auf:

OCR Truth
159,16 159,1€
1% 7%
1305.816 1305.81€
227.66 227.6€
341.51 347.57€
1115.16 1115.7€
242.86 242.8€
1456.86 1456.8€
51.46 54.1€
1954.719€ 1954.79€

Das deutsche Standardmodell extrahiert das Euro-Symbol € in 9 von 18 Fällen nicht korrekt. Dies entspricht einer Fehlerquote von 50%.

Finetuning des Standard-LSTM-Modells

Das Standard-LSTM-Modell wird nun auf der in Abbildung 2 gezeigten Rechnung finegetuned. Anschließend wird die OCR-Leistung anhand der in Abbildung 1 gezeigten Evaluierungs-Rechnung bewertet, die auch zuvor für das Benchmarking des deutschen Standardmodells verwendet wurde.

Zum Finetuning des LSTM-Modells muss dieses zunächst aus der Datei deu.traineddata extrahiert werden. Mit dem folgenden Befehl wird das LSTM-Modell aus dem deutschen Standardmodell in das Verzeichnis lstm_model extrahiert:

cd /home/fine_tune
combine_tessdata -e tesseract/tessdata/best/deu.traineddata lstm_model/deu.lstm

Anschließend werden alle notwendigen Dateien für das Finetuning zusammengestellt. Die Dateien sind ebenfalls im Docker-Container vorhanden:

  1. Die Trainings-Dateien train_invoice_correct.lstmf und deu.training_files.txt im Verzeichnis train.
  2. Die Evaluierungs-Dateien eval_invoice_correct.lstmf und deu.training_files.txt im eval-Verzeichnis.
  3. Das extrahierte LSTM-Modell deu.lstm im Verzeichnis lstm_model.

Der Docker-Container enthält das Skript src/fine_tune.sh, das den Prozess des Finetunings startet. Sein Inhalt ist:

/usr/bin/lstmtraining 
 --model_output output/fine_tuned 
 --continue_from lstm_model/deu.lstm 
 --traineddata tesseract/tessdata/best/deu.traineddata 
 --train_listfile train/deu.training_files.txt 
 --evallistfile eval/deu.training_files.txt 
 --max_iterations 400

Mit diesem Befehl wird das extrahierte Modell deu.lstm in der in train/deu.training_files.txt angegebenen Datei train_invoice.lstmf getuned. Das Finetuning des LSTM-Modells erfordert sprachspezifische Informationen, die im Ordner deu.tessdata enthalten sind. Die Datei eval_invoice.lstmf, die in eval/deu.training_files.txt angegeben ist, wird zur Berechnung der OCR-Performance während des Trainings verwendet. Das Finetuning wird nach 400 Iterationen beendet. Die gesamte Trainingsdauer dauert weniger als zwei Minuten.

Der folgende Befehl führt das Skript aus und protokolliert die Ausgabe in einer Datei:

cd /home/fine_tune
sh src/fine_tune.sh > output/fine_tune.log 2>&1

Der Inhalt der Protokolldatei nach dem Training ist unten dargestellt:

src/fine_tune.log
Loaded file lstm_model/deu.lstm, unpacking...
Warning: LSTMTrainer deserialized an LSTMRecognizer!
Continuing from lstm_model/deu.lstm
Loaded 20/20 lines (1-20) of document train/train_invoice_correct.lstmf
Loaded 24/24 lines (1-24) of document eval/eval_invoice_correct.lstmf
2 Percent improvement time=69, best error was 100 @ 0
At iteration 69/100/100, Mean rms=1.249%, delta=2.886%, char train=8.17%, word train=22.249%, skip ratio=0%, New best char error = 8.17 Transitioned to stage 1 wrote best model:output/deu_fine_tuned8.17_69.checkpoint wrote checkpoint.
-----
2 Percent improvement time=62, best error was 8.17 @ 69
At iteration 131/200/200, Mean rms=1.008%, delta=2.033%, char train=5.887%, word train=20.832%, skip ratio=0%, New best char error = 5.887 wrote best model:output/deu_fine_tuned5.887_131.checkpoint wrote checkpoint.
-----
2 Percent improvement time=112, best error was 8.17 @ 69
At iteration 181/300/300, Mean rms=0.88%, delta=1.599%, char train=4.647%, word train=17.388%, skip ratio=0%, New best char error = 4.647 wrote best model:output/deu_fine_tuned4.647_181.checkpoint wrote checkpoint.
-----
2 Percent improvement time=159, best error was 8.17 @ 69
At iteration 228/400/400, Mean rms=0.822%, delta=1.416%, char train=4.144%, word train=16.126%, skip ratio=0%, New best char error = 4.144 wrote best model:output/deu_fine_tuned4.144_228.checkpoint wrote checkpoint.
-----
Finished! Error rate = 4.144

Während des Trainings speichert Tesseract nach jeder Iteration einen sog. Model Checkpoint. Die Leistung des Modells an diesem Kontrollpunkt wird anhand der Evaluierungs-Daten getestet und mit dem aktuell besten Ergebnis verglichen. Wenn sich das Ergebnis verbessert, d.h. der OCR-Fehler abnimmt, wird eine beschriftete Kopie des Checkpoints gespeichert. Die erste Nummer des Dateinamens für den Kontrollpunkt steht für den Zeichenfehler und die zweite Nummer für die Trainingsiteration.

Der letzte Schritt ist die neue Zusammenstellung des finegetunten LSTM-Modells, so dass man wieder ein „traineddata“ Modell erhält. Unter der Annahme, dass der Kontrollpunkt bei der 181. Iteration selektiert wurde, wird mit dem folgenden Befehl ein ausgewählter Kontrollpunkt „deu_fine_tuned4.647_181.checkpoint“ in ein voll funktionsfähiges Tesseract-Modell „deu_fine_tuned.traineddata“ umgewandelt:

cd /home/fine_tune
/usr/bin/lstmtraining 
 --stop_training 
 --continue_from output/deu_fine_tuned4.647_181.checkpoint 
 --traineddata tesseract/tessdata/best/deu.traineddata 
 --model_output output/deu_fine_tuned.traineddata

Dieses Modell muss in die Testdaten der lokalen Tesseract-Installation kopiert werden, um es Tesseract zur Verfügung zu stellen. Dies ist im Docker-Container bereits geschehen.

Vergewissern Sie sich, dass das feinabgestimmte Modell in Tesseract verfügbar ist:

tesseract --list-langs

Evaluierung des finegetunten LSTM-Modells

Das finegetunte Modell wird analog zum Standardmodell evaluiert: Es wird eine Box-Datei der Auswertungs-Rechnung erstellt, und der OCR-Text wird mit Hilfe des Python-Skripts auf dem Bild der Auswertungsrechnung angezeigt.

Der Befehl zur Erzeugung der Box-Dateien muss so modifiziert werden, dass das fein abgestimmte Modell „deu_fine_tuned“ anstelle des Standardmodells „deu“ verwendet wird:

cd /home/fine_tune/eval
tesseract eval_invoice.tiff eval_invoice --psm 4 -l deu_fine_tuned lstmbox

Der durch das fein abgestimmte Modell extrahierte OCR-Text ist in Abbildung 5 unten dargestellt.

Abbildung 5: OCR Ergebnisse des finegetunten LSTM Modells

Wie beim deutschen Standardmodell bleibt die Leistung bei den deutschen Wörtern gut, aber nicht perfekt. Um die Leistung bei seltenen Wörtern zu verbessern, könnte die Wortliste des Modells um weitere Worte erweitert werden.

OCR Truth
 Jessel GmbH 8 Co Jessel GmbH & Co
1! Glasbehälte 1l Glasbehälter
Zeki64@hloch.com Zeki64@bloch.com

Wichtiger ist, dass sich die OCR-Leistung bei Zahlen deutlich verbessert hat: Das verfeinerte Modell extrahierte alle Zahlen und jedes Vorkommen des €-Zeichens korrekt.

OCR Truth
159,1€ 159,1€
7% 7%
1305.81€ 1305.81€
227.6€ 227.6€
347.57€ 347.57€
1115.7€ 1115.7€
242.8€ 242.8€
1456.8€ 1456.8€
54.1€ 54.1€
1954.79€ 1954.79€

Fazit und Ausblick

In diesem Artikel wurde gezeigt, dass die OCR-Leistung von Tesseract durch Finetuning erheblich verbessert werden kann. Insbesondere bei Nicht-Standard-Anwendungsfällen, wie der Text-Extraktion von Rechnungsdokumenten, kann so die OCR-Leistung signifikant verbessert werden. Neben der Open Source Lizensierung macht die Möglichkeit, die LSTM-Engine von Tesseract mittels Finetunings für spezifische Anwendungsfälle zu tunen, das Framework zu einem attraktiven Tool, auch für anspruchsvollere OCR-Einsatzszenarien.

Zur weiteren Verbesserung des Ergebnisses kann es sinnvoll sein, das Modell für weitere Iterationen zu tunen. In diesem Anwendungsfall wurde die Anzahl der Iterationen absichtlich begrenzt, da nur ein Dokument zum Finetuning verwendet wurde. Mehr Iterationen erhöhen potenziell das Risiko einer Überanpassung des LSTM-Modells auf bestimmten Symbolen, was wiederum die Fehlerquote bei anderen Symbolen erhöht. In der Praxis ist es wünschenswert, die Anzahl der Iterationen unter der Voraussetzung zu erhöhen, dass ausreichend Trainingsdaten zur Verfügung stehen. Die endgültige OCR-Leistung sollte immer auf Basis eines weiteren, jedoch repräsentativen Datensatz von Dokumenten überprüft werden.

Referenzen