class="lazyload

NEUIGKEITEN / AI TECHNOLOGIE

25. November 2020
Call-Center-Berater sehen allmählich, wie NLU in ihren Alltag Einzug hält und ihnen hilft, Kundenanfragen leichter zu beantworten. Damit ein Tool dies leisten kann, muss es in der Lage sein, gleichzeitig die Kundenanfrage und ihre Merkmale zu erkennen, d. h. eine Absicht und benannte Entitäten.

"OK Google, spiel die Rolling Stones auf Spotify", "Alexa, wie ist das Wetter in Paris heute?", "Siri, wer ist der französische Präsident?"

Wenn Sie schon einmal Sprachassistenten verwendet haben, haben Sie indirekt einige Prozesse des Natural Language Understanding (NLU) genutzt. Die gleiche Logik gilt für Chatbot-Assistenten oder die automatische Weiterleitung von Tickets im Kundendienst. NLU ist schon seit einiger Zeit Teil unseres Alltags und wird wahrscheinlich auch nicht mehr aufhören.

Durch die Automatisierung der Extraktion von Kundenabsichten beispielsweise kann NLU uns helfen, die Anfragen unserer Kunden schneller und genauer zu beantworten. Aus diesem Grund hat jedes große Unternehmen mit der Entwicklung einer eigenen Lösung begonnen. Doch bei all den Bibliotheken und Modellen, die es im Bereich NLU gibt und die alle behaupten, sie seien auf dem neuesten Stand der Technik oder leicht zu bekommen, ist es manchmal kompliziert, sich zurechtzufinden. Nachdem wir in unseren NLU-Projekten bei Artefact mit verschiedenen Bibliotheken experimentiert haben, wollten wir unsere Ergebnisse mit Ihnen teilen und Ihnen helfen, ein besseres Verständnis der aktuellen NLU-Tools zu bekommen.

Was ist NLU?

Natural Language Understanding (NLU) wird von Gartner definiert als "das Verstehen der Struktur und Bedeutung menschlicher Sprache(z. B. Englisch, Spanisch, Japanisch) durch Computer, so dass Benutzer mit dem Computer in natürlichen Sätzen interagieren können". Mit anderen Worten: NLU ist ein Teilbereich von artificial intelligence , der die Interpretation von Texten ermöglicht, indem er sie analysiert, in Computersprache umwandelt und in einer für Menschen verständlichen Form ausgibt.

Wenn man sich genau ansieht, wie Chatbots und virtuelle Assistenten arbeiten, von Ihrer Anfrage bis zu ihrer Antwort, ist NLU eine Schicht, die Ihre Hauptabsicht und alle für die Maschine wichtigen Informationen extrahiert, damit sie Ihre Anfrage am besten beantworten kann. Angenommen, Sie rufen den Kundendienst Ihrer Lieblingsmarke an, um zu erfahren, ob Ihre Traumtasche endlich in Ihrer Stadt erhältlich ist: NLU teilt dem Assistenten mit, dass Sie eine Anfrage zur Produktverfügbarkeit haben, und sucht in der Produktdatenbank nach dem bestimmten Artikel, um herauszufinden, ob er an Ihrem Wunschort verfügbar ist. Dank NLU haben wir eine Absicht, einen Produktnamen und einen Ort extrahiert.

Bild für Beitrag

(Oben: Illustration einer Kundenabsicht und mehrere Entitäten, die aus der Konversation extrahiert werden)

Natürliche Sprache ist in den meisten Unternehmen verankert: data . Mit den jüngsten Durchbrüchen in diesem Bereich, der Demokratisierung der NLU-Algorithmen, dem Zugang zu mehr Rechenleistung und mehr data wurden viele NLU-Projekte gestartet. Schauen wir uns eines von ihnen an.

Präsentation des Projekts

Ein typisches Projekt, bei dem NLU zum Einsatz kommt, ist, wie bereits erwähnt, die Unterstützung von Callcenter-Beratern bei der Beantwortung von Kundenanfragen im Verlauf des Gesprächs. Dazu müssten wir zwei verschiedene Aufgaben erfüllen:

  • Verstehen der Absicht des Kunden während des Anrufs (d.h. Textklassifizierung)
  • Erfassen Sie die wichtigen Elemente, die es ermöglichen, die Anfrage des Kunden zu beantworten (d. h. Erkennung von Namensbestandteilen), z. B. Vertragsnummern, Produkttyp, Produktfarbe usw.

Als wir uns die einfachen und standardmäßigen Lösungen für diese beiden Aufgaben ansahen, fanden wir mehr als ein Dutzend Frameworks, einige von der GAFAM entwickelt, andere von Open-Source-Plattformanbietern. Es ist unmöglich zu wissen, welches wir für unseren Anwendungsfall auswählen sollen und wie jedes von ihnen bei einem konkreten Projekt und einer realen data, hier die in Text umgewandelten Audiogespräche eines Call Centers, funktioniert. Deshalb haben wir beschlossen, unseren Leistungsvergleich mit einigen Tipps sowie Vor- und Nachteilen für jede von uns getestete Lösung zu teilen.

Es ist wichtig zu beachten, dass dieser Benchmark mit englischem data und transkribiertem Sprachtext durchgeführt wurde und daher weniger als Referenz für andere Sprachen oder Anwendungen verwendet werden kann, die direkt geschriebenen Text verwenden, z.B.. Chatbot-Anwendungsfälle.

Benchmark

Erkennung von Absichten

Das Ziel ist es, die Absicht des Kunden zu erkennen. Bei einem Satz muss das Modell in der Lage sein, ihn in die richtige Klasse einzuordnen, wobei jede Klasse einer vordefinierten Absicht entspricht. Wenn es mehrere Klassen gibt, spricht man von einer Mehrklassen-Klassifizierungsaufgabe. Ein Intent kann zum Beispiel "möchte ein Produkt kaufen" oder "sucht Informationen" sein. In unserem Fall hatten wir definiert 5 verschiedene Intents und die folgenden sechs Lösungen wurden für den Benchmark verwendet:

  • FastTextFastText: Bibliothek für effizientes Lernen von Wortrepräsentationen und Satzklassifizierung, entwickelt von Facebooks AI Research Lab.
  • Ludwig: eine Toolbox, die es ermöglicht, Deep-Learning-Modelle zu trainieren und zu testen, ohne Code schreiben zu müssen, indem man die Kommandozeile oder die programmatische API verwendet. Der Benutzer muss lediglich eine CSV-Datei (oder einen Pandas DataFrame mit der programmatischen API) mit seiner data, eine Liste von Spalten, die als Eingaben verwendet werden sollen, und eine Liste von Spalten, die als Ausgaben verwendet werden sollen, zur Verfügung stellen, Ludwig erledigt den Rest.
  • Logistische Regression mit spaCy-vorverarBeitunG: Klassische logistische Regression unter Verwendung der Scikit-Learn-Bibliothek mit benutzerdefinierter Vorverarbeitung unter Verwendung der spaCy-Bibliothek (Tokenisierung, Lemmatisierung, Entfernen von Stoppwörtern).
  • BERT mit SpaCy-Pipeline: spaCy-Modellpipelines, die das Transformatorenpaket von Hugging Face umhüllen, ermöglichen den einfachen Zugriff auf moderne Transformatorenarchitekturen wie BERT.
  • LUIS: cloud API-Dienst von Microsoft, der benutzerdefinierte Machine-Learning-Intelligenz auf den natürlichsprachlichen Konversationstext eines Benutzers anwendet, um Absichten und Entitäten vorherzusagen.
  • Flair: ein Framework für modernste NLP für verschiedene Aufgaben wie Named Entity Recognition (NER), Part-of-Speech Tagging (PoS), Sense Disambiguation und Klassifikation.

Die folgenden Modelle wurden alle mit denselben Datensätzen trainiert und getestet: 1600 Äußerungen zum Trainieren, 400 zum Testen. Die Modelle wurden nicht feinabgestimmt, so dass einige von ihnen möglicherweise bessere Leistungen erbringen als die unten dargestellten.

Bild für Beitrag

*Inferenzzeit auf dem lokalen Macbook Air (1,6 GHz Dual-Core Intel Core i5-8 Go 1600 MHz DDR3 RAM).

  • Insgesamt erzielen alle Lösungen gute oder sogar sehr gute Ergebnisse (F1-Score > 70%).
  • Einer der Nachteile von Ludwig und LUIS besteht darin, dass es sich um "Blackbox"-Modelle handelt, was das Verständnis und die Feinabstimmung erschwert.
  • LUIS ist die einzige getestete Lösung, die nicht quelloffen ist und daher wesentlich teurer ist. Darüber hinaus kann die Verwendung der Python-API komplex sein, da sie ursprünglich für die Verwendung über eine Klick-Button-Schnittstelle konzipiert wurde. Es kann jedoch eine Lösung sein, die zu bevorzugen ist, wenn es sich um ein Projekt handelt, das in die Produktion gehen soll und dessen Infrastruktur z. B. auf Azure aufgebaut ist, da die Integration des Modells dann einfacher ist.

Extraktion von Entitäten

Das Ziel ist es, bestimmte Wörter zu finden und sie korrekt in vordefinierte Kategorien einzuordnen. Wenn Sie herausgefunden haben, was Ihr Kunde tun möchte, müssen Sie möglicherweise weitere Informationen in seiner Anfrage finden. Wenn ein Kunde zum Beispiel etwas kaufen möchte, möchten Sie vielleicht wissen, um welches Produkt es sich handelt, in welcher Farbe, oder wenn ein Kunde ein Produkt zurückgeben möchte, möchten Sie vielleicht wissen, zu welchem Datum oder in welchem Geschäft der Kauf getätigt wurde. In unserem Fall hatten wir definiert 16 benutzerdefinierte Entitäten: 9 produktbezogene Entitäten (Name, Farbe, Typ, Material, Größe, ...) und zusätzliche Entitäten in Bezug auf Geografie und Zeit. Was die Absichtserkennung betrifft, so wurden mehrere Lösungen verwendet, um einen Benchmark zu erstellen:

  • spaCy: eine Open-Source-Bibliothek für die fortgeschrittene Verarbeitung natürlicher Sprache in Python, die verschiedene Funktionen bietet, darunter Named Entity Recognition.
  • LUIS: siehe oben
  • Ludwig: siehe oben
  • Flair: siehe oben

Die folgenden Modelle wurden alle mit denselben Datensätzen trainiert und getestet: 1600 Äußerungen zum Trainieren, 400 zum Testen. Die Modelle wurden nicht feinabgestimmt, so dass einige von ihnen möglicherweise bessere Leistungen erbringen als die unten dargestellten.

Bild für Beitrag

  • Zwei Modelle, spaCy und LUIS, schneiden bei der Erkennung benannter Personen besonders gut ab. Ludwig und Flair müssten noch etwas feiner abgestimmt werden, um bessere Ergebnisse zu erzielen, vor allem in Bezug auf die Wiedererkennung.
  • Ein Vorteil von LUIS ist, dass der Benutzer einige fortgeschrittene Funktionen für die Entity-Erkennung nutzen kann, wie z.B. Deskriptoren, die Hinweise darauf geben, dass bestimmte Wörter und Phrasen Teil eines Entity-Domain-Vokabulars sind (z.B.: Farbvokabular = schwarz, weiß, rot, blau, navy, grün).

Schlussfolgerung

Unter den Lösungen, die wir mit unserem Callcenter-Datensatz getestet haben, sticht keine in Bezug auf die Leistung hervor, weder bei der Absichtserkennung noch bei der Erkennung von Entitäten. Unserer Erfahrung nach sollte die Entscheidung für eine Lösung von der Praktikabilität und dem jeweiligen Anwendungsfall abhängen (verwenden Sie bereits Azure, möchten Sie mehr Freiheiten bei der Feinabstimmung Ihrer Modelle haben...). Zur Erinnerung: Wir haben die Bibliotheken so genommen, wie sie sind, um diesen Benchmark zu erstellen, ohne eine Feinabstimmung der Modelle vorzunehmen. Die angezeigten Ergebnisse sind also mit etwas Abstand zu betrachten und könnten bei einem anderen Anwendungsfall oder mit mehr Training anders ausfallen data.

class="lazyload

Interessieren Sie sich für digitales und data Marketing?

Melden Sie sich für Data Digest an, den Newsletter von Artefact, und erhalten Sie jeden Monat praktische Ratschläge, Einblicke und Meinungen in Ihren Posteingang.

Melden Sie mich an!