Funktionsweise der Entitätenerkennung

Die Entitätenerkennung, die auch als Erkennung benannter Entitäten (Named Entity Recognition, NER) bezeichnet wird, ist ein Prozess, bei dem Informationen aus Sätzen, Absätzen, Berichten in Textform oder anderen Arten unstrukturierter Texte extrahiert werden. Das Toolset "Textanalyse" in der Toolbox "GeoAI" enthält Werkzeuge, die auf der Verarbeitung natürlicher Sprache (NLP) basierende Methoden zum Trainieren von Entitätenerkennungsmodellen sowie zum Verwenden dieser Modelle zum Extrahieren von unstrukturiertem Text verwenden.

Mit dem Werkzeug Entitätenerkennungsmodell trainieren werden NLP-Modelle zum Extrahieren einer vordefinierten Reihe von Entitäten (wie z. B. Organisationen, Personen, Daten oder Länder) trainiert, die als Teil eines Training-Datasets bereitgestellt werden. Trainierte Entitätenerkennungsmodelle können mit dem Werkzeug Entitäten mit Deep Learning extrahieren verwendet werden, um diese Entitäten aus reinem Text in ein strukturiertes Format zu extrahieren.

Potenzielle Anwendungsbereiche

Das Werkzeug hat folgende potenzielle Anwendungsbereiche:

  • Extrahieren von Daten wie Ort, verantwortlicher Beamter oder verwendete Waffe aus Polizeimeldungen. Auf diese Weise können Einblicke in Trends gewonnen werden, und Abhilfemaßnahmen können besser geplant werden.
  • Informationen wie der Ort oder gegebenenfalls benötigte Unterstützung können aus Tweets oder Beiträgen in sozialen Medien extrahiert werden. So können bei einer Naturkatastrophe Bereiche identifiziert werden, in denen sofortige Hilfe benötigt wird.
Diagramm eines Entitätenerkennungsmodells
Dieses Entitätenerkennungsmodell dient zum Extrahieren von Entitäten wie Datum, Uhrzeit und Ort aus Berichten in Textform.

Entitätenerkennungsmodelle in ArcGIS basieren auf der Transformer-Architektur, die das Framework Embed, encode, attend, predict (Einbettung, Codierung, Aufmerksamkeit, Vorhersage) nutzt.

  • Einbettung: Bei diesem Prozess wird der Eingabetext in verdichtete Worteinbettungen transformiert. In diesen Einbettungen werden semantische Informationen aus dem Eingabetext erfasst. Diese sind für das Modell wesentlich leichter zu verarbeiten.
    Workflow für Einbettung
  • Codierung: Bei diesem Prozess wird der Kontext in einen Wortvektor codiert. Hierzu werden residuale neuronale Faltungsnetzwerke mit Trigramm-Modell verwendet.
    Workflow für Codierung
  • Aufmerksamkeit: Die Matrixausgabe aus dem vorherigen Schritt wird auf einen einzigen Vektor reduziert, der zur Vorhersage einem standardmäßigen Feed-Forward-Netzwerk übergeben wird. Dieser Schritt hat eine ähnliche Wirkung wie der Aufmerksamkeitsmechanismus.
    Workflow für Aufmerksamkeit
  • Vorhersage: Im letzten Schritt des Modells wird anhand des Eingabetextes eine Vorhersage erstellt. Hier wird der Vektor aus dem Attention-Layer einem Multilayer-Perzeptron übergeben, um die Entitätsbeschriftungs-ID zurückzugeben.
    Workflow für Vorhersage

Das Transformer-basierte Back-End verwendet die von Vaswani et al. in der Abhandlung Attention Is All You Need vorgeschlagene Architektur. Dadurch werden die Modelle genauer und parallelisierbar, während gleichzeitig weniger genaue beschriftete Daten für das Training benötigt werden. Intern bestehen Transformer-basierte Entitätenerkennungsmodelle in ArcGIS aus zwei Komponenten:

  • Encoder: Der Encoder dient als Backbone und transformiert den Eingabetext in eine Feature-Repräsentation in Form von Vektoren fester Größe. Das Modell verwendet bekannte Encoder wie BERT, ALBERT und RoBERTa, die auf der Transformer-Architektur basieren und mit enormen Textmengen vortrainiert werden.
  • Klassifikator auf Token-Ebene: Ein Klassifikator auf Token-Ebene dient als Kopf des Modells und klassifiziert die Feature-Repräsentationen der einzelnen Token in mehreren Kategorien, die die verschiedenen Entitäten darstellen. Ein Klassifikator ist oft ein einfacher linearer Layer im neuronalen Netzwerk.
Komponenten eines Entitätenerkennungsmodells

Entitätenerkennungsmodelle in ArcGIS unterstützen darüber hinaus auch das Mistral-Modell-Backbone. Mistral ist ein Large Language Modell, das auf einer Transformer-Architektur basiert und als reines Decoder-Modell verwendet wird. Die Mistral-Architektur zeichnet sich durch folgende Komponenten aus:

  • Sliding Window Attention: Verarbeitet lange Texte auf effiziente Weise, indem es diese in kleinere, überlappende Segmente aufteilt und dadurch Rechenaufwand und Speicherauslastung reduziert, wobei wichtige Kontexte erhalten bleiben.
  • Grouped-Query Attention: Verbessert die Effizienz, indem ähnliche Abfragen in zusammengefasst werden. Dadurch wird die Anzahl von Aufmerksamkeitsberechnungen reduziert und die Verarbeitung beschleunigt.
  • Byte-Fallback BPE (Byte Pair Encoding) Tokenizer: Wandelt Text in Token um, die das Modell verarbeiten kann.
Hinweis:

NLP-Modelle können beim Automatisieren der Analyse enormer unstrukturierter Textmengen als leistungsstarke Werkzeuge dienen. Stellen Sie wie bei anderen Modelltypen unbedingt sicher, dass die Modelle auf relevante Tasks mit angemessener menschlicher Überwachung und Transparenz bezüglich des Typs des Modells und der zum Trainieren des Modells verwendeten Trainings-Datasets angewendet werden.

Verwenden von Entitätenerkennungsmodellen

Sie können das Werkzeug Entitäten mit Deep Learning extrahieren verwenden, um ein trainiertes Entitätenerkennungsmodell auf unstrukturierten Text anzuwenden und aus diesem Text nützliche Informationen in Form strukturierter Daten zu extrahieren. Sie können vortrainierte Entitätenerkennungsmodelle aus ArcGIS Living Atlas of the World verwenden oder mit dem Werkzeug Entitätenerkennungsmodell trainieren eigene Modelle trainieren.

Als Eingabe für das Werkzeug Entitäten mit Deep Learning extrahieren wird ein Ordner mit den Textdateien oder eine Textspalte in einer Feature-Class oder Tabelle verwendet, für die die Erkennung benannter Entitäten ausgeführt werden soll. Als Eingabemodell kann eine JSON-Datei mit der Esri Modelldefinition (.emd) oder ein Deep-Learning-Modellpaket (.dlpk) verwendet werden. Das Modell enthält den Pfad zur Deep-Learning-Modelldatei (mit Modellgewichtungen) und andere Modellparameter. Einige Modelle verfügen möglicherweise über zusätzliche Modellargumente.

Das Werkzeug erstellt aus jedem Text eine Tabelle mit den extrahierten Entitäten. Wenn ein Locator angegeben wird und das Modell Adressen extrahieren kann, wird stattdessen eine Feature-Class durch Geokodierung der extrahierten Adressen erzeugt. Wenn eine Textdatei mehrere Adressen enthält, wird durch Geokodierung der einzelnen Adressen und Replikation der anderen Entitäten für diese Textdatei ein Feature erstellt.

Das Werkzeug kann zwar in CPUs ausgeführt werden, aber da Deep Learning rechenintensiv ist, wird für die Verarbeitung ein Grafikprozessor empfohlen. Um dieses Werkzeug mit einem Grafikprozessor auszuführen, legen Sie die Umgebungseinstellung Prozessortyp auf "GPU" fest. Wenn Sie mehrere Grafikprozessoren haben, geben Sie stattdessen die Umgebungseinstellung "GPU-ID" an.

Trainieren von Entitätenerkennungsmodellen

Sie können das Werkzeug Entitätenerkennungsmodell trainieren zum Trainieren von NLP-Modellen für die Erkennung benannter Entitäten verwenden. Das Werkzeug verwendet maschinelles Lernen und trainiert das Modell durch Bereitstellen von Trainingsgebieten, die aus Paaren aus Eingabetext und beschrifteten Entitäten in diesem Text bestehen. Mit dem Mistral-Modell-Backbone verwendet es In-Context-Learning. Es lenkt den Informationsgewinn und die Reaktionen des Modells mithilfe von Eingabeaufforderungen und durch die Bereitstellung von bestimmten Beispielen, anhand derer das gewünschte Ergebnis abgeleitet werden kann. Da das Trainieren von NLP-Modellen rechenintensiv ist, wird ein Grafikprozessor empfohlen.

Zur Eingabe stehen folgende Möglichkeiten zur Verfügung:

  • Eine Feature-Class oder Tabelle, die ein Textfeld mit dem Eingabetext für das Modell und die beschrifteten Entitäten enthält, wobei das ausgewählte Textfeld als Eingabetext für das Modell verwendet wird und die übrigen Felder als Beschriftungen für benannte Entitäten behandelt werden.
  • Ein Ordner mit Trainingsdaten in Form von Standard-Datasets für NER-Tasks. Die Trainingsdaten müssen sich in .json- oder .csv-Dateien befinden. Durch das Dateiformat wird der Dataset-Typ der Eingabe bestimmt.
    • Wenn als Eingabe ein Ordner verwendet wird, werden folgende Dataset-Typen unterstützt:
      • ner_json: Der Trainingsdatenordner muss eine .json-Datei mit Text und die beschrifteten Entitäten im spaCy JSON-Trainingsformat enthalten.
      • IOB: Das von Ramshaw und Marcus in der Abhandlung Text Chunking using Transformation-Based Learning vorgeschlagene IOB-Format (Tags, die sich I = inside (innerhalb), O = outside (außerhalb), B = beginning (am Anfang) befinden).

        Der Trainingsdatenordner sollte die folgenden zwei .csv-Dateien enthalten:

        • tokens.csv: Enthält Text als Eingabe-Chunks.
        • tags.csv: Enthält IOB-Tags für die Text-Chunks.
      • BILUO: Eine Erweiterung des IOB-Formats, die zusätzlich L-Tags (last (letztes)) und U-Tags (unit (Einheit)) enthält.

        Der Trainingsdatenordner sollte die folgenden zwei .csv-Dateien enthalten:

        • tokens.csv: Enthält Text als Eingabe-Chunks.
        • tags.csv: Enthält BILUO-Tags für die Textabschnitte.

Beim Trainieren eines Entitätenerkennungsmodells können Sie das Modell von Grund auf trainieren, ein bereits trainiertes Modell optimieren oder In-Context-Learning verwenden.

Wenn Sie bereits Zugriff auf ein vortrainiertes Entitätenerkennungsmodell mit den gleichen Zielentitäten wie in den Trainingsgebieten haben, können Sie es anhand der neuen Trainingsdaten weiter optimieren. Das Optimieren eines vorhandenen Modells ist oft schneller als das Trainieren eines neuen Modells und erfordert außerdem weniger Trainingsgebiete. Stellen Sie beim Optimieren eines vortrainierten Modells sicher, dass Sie das gleiche Backbone-Modell wie für das vortrainierte Modell verwenden.

Als vortrainiertes Modell kann eine Esri Modelldefinitionsdatei (.emd) oder eine Deep-Learning-Paketdatei (.dlpk) verwendet werden. Das Ausgabemodell wird außerdem in diesen Formaten im angegebenen Ordner für das Ausgabemodell gespeichert.

Entitätenerkennungsmodelle in ArcGIS behandeln Adressenentitäten anders als andere Entitäten. Wenn eine Entität als Position behandelt werden soll, muss sie in den Werkzeugparametern als Adressenentität angegeben werden. Bei der Inferenz werden diese Entitäten mit dem angegebenen Locator geokodiert, und als Ergebnis der Entitätenextraktion wird eine Feature-Class erstellt. Wenn kein Locator bereitgestellt wird oder das trainierte Modell keine Adressenentitäten extrahiert, wird stattdessen eine Tabelle mit den extrahierten Entitäten erstellt.

Das Trainieren von Deep-Learning-Modellen ist ein iterativer Prozess, bei dem die Eingabetrainingsdaten mehrmals durch das neuronale Netzwerk geleitet werden. Die einzelnen Trainingsdurchläufe der gesamten Trainingsdaten werden als Epochen bezeichnet. Mit dem Parameter Max. Epochen wird angegeben, wie oft das Modell die Trainingsdaten während des Trainings verarbeitet. Dies hängt vom zu trainierenden Modell, von der Komplexität des Tasks und von der Anzahl Ihrer Trainingsgebiete ab. Wenn Sie eine große Anzahl von Trainingsgebieten haben, können Sie einen kleinen Wert verwenden. Generell ist es ratsam, wiederholt mit mehreren Epochen zu trainieren, bis der Validierungsverlust kontinuierlich abnimmt.

Mit dem Parameter Modell-Backbone wird das vorkonfigurierte neuronale Netzwerk angegeben, das als Encoder für das Modell dient und mit dem Feature-Repräsentationen des Eingabetextes extrahiert werden. Dieser Parameter unterstützt BERT-, ALBERT- und RoBERTa-basierte Encoder, die auf der Transformer-Architektur basieren und unter teilweiser Beaufsichtigung mit großen Textmengen vortrainiert wurden. Der Parameter Modell-Backbone unterstützt darüber hinaus auch das Mistral-LLM (Large Language Model). Mistral ist ein reiner Decoder-Transformer, der Sliding Window Attention für eine effiziente Verarbeitung von langen Texten, Grouped-Query Attention zur Optimierung von Berechnungen und Byte-Fallback BPE Tokenizer für den Umgang mit verschiedenen Texteingaben verwendet.

Das Modell wird in Batches trainiert, und mit dem Parameter für die Batch-Größe wird angegeben, wie viele Trainingsgebiete jeweils beim Training verarbeitet werden. Durch größere Batches kann die Leistung des Werkzeugs erhöht werden. Größere Batches belegen jedoch mehr Arbeitsspeicher. Wenn beim Trainieren des Modells die Fehlermeldung "Nicht genügend Arbeitsspeicher" angezeigt wird, verwenden Sie kleinere Batches.

Der Parameter Lernrate ist einer der wichtigsten Hyperparameter. Es handelt sich dabei um die Rate, mit der die Modellgewichtungen beim Training angepasst werden. Wenn Sie eine niedrige Lernrate angeben, wird das Modell nur langsam verbessert, und das Training kann viel Zeit beanspruchen, sodass Zeit und Ressourcen vergeudet werden. Eine hohe Lernrate kann kontraproduktiv sein und führt möglicherweise nicht zu guten Lernergebnissen. Bei hohen Lernraten können die Modellgewichtungen drastisch angepasst werden und zu fehlerhaften Ergebnissen führen. Oft empfiehlt es sich, keinen Wert für den Parameter Lernrate anzugeben, da das Werkzeug die Lernrate basierend auf der Abhandlung Cyclical Learning Rates for Training Neural Networks von Leslie N. Smith automatisch ermittelt.

Das Werkzeug verwendet einen Teil der Trainingsdaten als Validierungssatz. Mit dem Parameter Validierungsprozentsatz können Sie die Menge der Trainingsdaten anpassen, die für die Validierung verwendet werden sollen. Beim Mistral-Modell müssen mindestens 50 Prozent der Daten für die Validierung reserviert werden, da Mistral zur Bewertung der Modell-Performance zwar einen kleineren Trainingssatz, dafür jedoch einen größeren Validierungssatz benötigt.

Standardmäßig verwendet das Werkzeug eine Methode, bei der das Modelltraining beendet wird, wenn sich das Modell in nachfolgenden Epochen nicht mehr verbessert. Dieses Verhalten können Sie deaktivieren, indem Sie das Kontrollkästchen Beenden, wenn sich das Modell nicht mehr verbessert deaktivieren.

Sie können auch angeben, ob die Backbone-Layer im vortrainierten Modell fixiert werden sollen, sodass die Gewichtungen und Verzerrungen wie ursprünglich vorgesehen beibehalten werden. Standardmäßig werden die Layer des Backbone-Modells nicht fixiert, und die Gewichtungen und Verzerrungen des Wertes Modell-Backbone können geändert werden, um sie an die Trainingsgebiete anzupassen. Die Verarbeitung dauert zwar länger, führt aber in der Regel zu besseren Ergebnissen.

Ressourcen

Weitere Informationen finden Sie nachfolgend:

"Attention Is All You Need" von Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser und Illia Polosukhin auf der arXivLabs-Plattform der Cornell University

Honnibal, Matthew. "Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models". https://explosion.ai/blog/deep-learning-formula-nlp.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee und Kristina Toutanova. "Fully Understanding the Hashing Trick". 22. Mai 2018. https://arxiv.org/pdf/1805.08539.pdf.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee und Kristina Toutanova. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". 24. Mai 2019. https://arxiv.org/pdf/1810.04805.pdf.

Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks". 4. April 2017. https://doi.org/10.48550/arxiv.1506.01186.

Ramshaw, Lance und Mitch Marcus. "Text Chunking using Transformation-Based Learning". 1995 In "Third Workshop on Very Large Corpora".

"Mistral." https://docs.mistral.ai/getting-started/open_weight_models/.