Funktionsweise der Entitätenerkennung
Entitätenerkennung, auch Named Entity Recognition (NER) genannt, ist der Prozess, bei dem Informationen aus Sätzen, Absätzen, Texten oder anderen Formen von unstrukturiertem Text extrahiert werden. Das Toolset "Textanalyse" in der Toolbox "GeoAI" enthält Werkzeuge, die mithilfe von Natural Language Processing-(NLP-)Techniken Entitätenerkennungsmodelle trainieren und mit diesen Modellen Entitäten aus unstrukturiertem Text extrahieren.
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 in Verbindung mit dem Werkzeug Entitäten mit Deep Learning extrahieren eingesetzt werden, um die betreffenden Entitäten aus einfachem Text in ein strukturiertes Format zu extrahieren.
Potenzielle Anwendungsbereiche
Das Werkzeug hat folgende potenzielle Anwendungsbereiche:
Das Extrahieren von Daten wie z. B. Positionsdaten oder Daten der berichtenden Beamten oder der Waffen aus Kriminalitätsberichten. Auf diese Weise können Trends besser dargestellt und Korrekturmaßnahmen besser geplant werden.
Informationen, wie z. B. Positionsdaten oder ob Hilfe benötigt wird, lassen sich aus Tweets oder Social Media-Posts extrahieren. Auf diese Weise lassen sich Bereiche identifizieren, in denen bei einer Naturkatastrophe sofortige Hilfe benötigt wird.

Entitätenerkennungsmodelle in ArcGIS basieren auf der Transformer-Architektur, die das Framework Embed, encode, attend, predict nutzt.
Embedding vornehmen: In diesem Prozess wird der eingegebene Text in dichte Wort-Embeddings transformiert. Diese Embeddings erfassen semantische Informationen aus dem eingegebenen Text, und es lässt sich mit ihnen viel einfacher an dem Modell arbeiten.

Encode: In diesem Prozess wird der Kontext in einen Wortvektor codiert. Dies geschieht mithilfe von Residuum-Tigram-Convolutional Neural Networks (CNN).

Attend: Die Matrixausgabe aus dem vorherigen Schritt wird zu einem einzelnen Vektor reduziert, der zur Vorhersage an ein Standard-Feed-Forward-Netzwerk übergeben wird. Dieser Schritt hat eine ähnliche Wirkung wie der Aufmerksamkeitsmechanismus.

Predict: Der letzte Schritt in dem Modell besteht darin, dass anhand des eingegebenen Textes eine Vorhersage getroffen wird. Hierbei wird der Vektor aus dem Aufmerksamkeits-Layer zur Ausgabe der Entitätenbeschriftungs-ID an ein Multilayer-Perceptron übergeben.

Das Transformer-basierte Back-End nutzt die Architektur, die von Vaswani et al. in der folgenden Veröffentlichung vorgeschlagen wurde: "Attention Is All You Need" Dadurch werden die Modelle genauer und parallelisierbar, während gleichzeitig weniger genau beschriftete Daten für das Training benötigt werden. Intern haben die transformer-basierten Entitätenerkennungsmodelle in ArcGIS zwei Komponenten:
Encoder: Der Encoder dient als Backbone des Modells und transformiert den eingegebenen Text in eine Feature-Repräsentation in Form von Vektoren mit fester Größe. Das Modell verwendet bekannte Encoder, wie z. B. BERT, ALBERT und RoBERTa, die auf der Transformer-Architektur basieren und mit riesigen Textvolumen vortrainiert werden.
Klassifikator auf Token-Ebene: Ein Klassifikator auf Token-Ebene fungiert als Kopf des Modells und klassifiziert die Feature-Repräsentation jedes Tokens in mehrere Kategorien, die für die verschiedenen Entitäten stehen. Ein Klassifikator ist oftmals ein einfacher linearer Layer in dem neuronalen Netzwerk.

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 bei der Automatisierung der Analyse riesiger unstrukturierter Textvolumen leistungsstarke Werkzeuge sein. Wie bei anderen Modelltypen muss mit der entsprechenden persönlichen Umsicht und Transparenz bezüglich des Modelltyps und der zum Trainieren des Modells eingesetzten Trainings-Datasets vorsichtig vorgegangen werden, damit sichergestellt ist, dass sie auf relevante Aufgaben angewendet werden.
Entitätenerkennungsmodelle verwenden
Mit dem Werkzeug Entitäten mit Deep Learning extrahieren können Sie ein trainiertes Entitätenerkennungsmodell auf unstrukturierten Text anwenden und hilfreiche Informationen in Form von strukturierten Daten aus ihm extrahieren. Sie können vortrainierte Entitätenerkennungsmodelle aus dem ArcGIS Living Atlas of the World verwenden oder Ihre eigenen Modelle mit dem Werkzeug Entitätenerkennungsmodell trainieren 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. Das Eingabemodell kann eine Modelldefinitions-JSON-Datei (.emd) oder ein Deep Learning-Modellpaket (.dlpk) von Esri sein. Das Modell enthält den Pfad zu der Datei für das Deep-Learning-Modell (das die Modellgewichtungen enthält) sowie andere Modellparameter. Manche Modelle können zusätzliche Modellargumente haben.
Das Werkzeug erstellt aus jedem Text eine Tabelle mit den extrahierten Entitäten. Wenn ein Locator angegeben wird und mit dem Modell Adressen extrahiert werden können, wird stattdessen durch Geokodierung der extrahierten Adressen eine Feature-Class erzeugt. Enthält eine Textdatei mehrere Adressen, wird durch Geokodierung jeder Adresse und Replizieren der anderen Entitäten für die betreffende Textdatei ein Feature erstellt.
Obwohl das Werkzeug auf CPUs ausgeführt werden kann, wird für die Verarbeitung eine GPU empfohlen, da Deep Learning rechenintensiv ist. Zum Ausführen dieses Werkzeugs mithilfe einer GPU legen Sie die Umgebungseinstellung für den Prozessortyp auf "GPU" fest. Bei mehr als einer GPU geben Sie stattdessen die GPU-ID an.
Entitätenerkennungsmodelle trainieren
Mit dem Werkzeug Entitätenerkennungsmodell trainieren können Sie NLP-Modelle für die Erkennung benannter Entitäten trainieren. Dieses Werkzeug verwendet einen Machine-Learning-Ansatz und trainiert das Modell, indem es Trainingsgebiete bereitstellt, die aus Eingabetextpaaren und beschrifteten Entitäten in dem betreffenden 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. Das Trainieren von NLP-Modellen ist rechenintensiv, sodass empfohlen wird, eine GPU zu verwenden.
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, der Trainingsdaten in Form von Standard-Datasets für NER-Tasks enthält. Die Trainingsdaten müssen in
.json- oder.csv-Dateien vorliegen. Das Dateiformat bestimmt den Dataset-Typ der Eingabe.Wenn die Eingabe ein Ordner ist, werden die folgenden 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 Text Chunking using Transformation-Based Learning vorgeschlagene IOB-Format I – "inside" (innerhalb), O – "outside" (außerhalb), B – "beginning" (Anfang).
Der Ordner mit den Trainingsdaten muss die beiden folgenden
.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, das zusätzlich die folgenden Tags enthält: L – "last" (letztes), und U – "unit" (Einheit).
Der Ordner mit den Trainingsdaten muss die beiden folgenden
.csv-Dateien enthalten:tokens.csv: Enthält Text als Eingabe-Chunks.tags.csv: Enthält BILUO-Tags für die Text-Chunks.
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 haben, das denselben Satz Zielentitäten enthält wie die Trainingsgebiete, können Sie dieses Modell mit den neuen Trainingsdaten weiter optimieren. Ein vorhandenes Modell zu optimieren geht oftmals schneller als ein Modell neu zu trainieren. Außerdem erfordert dieser Prozess weniger Trainingsgebiete. Stellen Sie beim Optimieren eines vortrainierten Modells sicher, dass Sie dasselbe Backbone-Modell verwenden, das in dem vortrainierten Modell verwendet wurde.
Bei dem vortrainierten Modell kann es sich um eine Esri Modelldefinitionsdatei (.emd) oder eine Deep-Learning-Paket-Datei (.dlpk) handeln. Das Ausgabemodell wird im angegebenen Ausgabemodell-Ordner ebenfalls in diesen Formaten gespeichert.
Adressenentitäten werden in Entitätenerkennungsmodellen in ArcGIS anders behandelt als andere Entitäten. Wenn eine Entität als Position behandelt werden soll, muss sie in den Werkzeugparametern als Adressenentität angegeben werden. Während der Inferenzierung werden diese Entitäten mithilfe des angegebenen Locators geokodiert, und das Ergebnis des Entitätenextraktionsprozesses ist eine Feature-Class. Wird kein Locator angegeben, oder extrahiert das trainierte Modell keine Adressenentitäten, wird stattdessen eine Tabelle mit den extrahierten Entitäten erstellt.
Das Trainieren von Deep-Learning-Modellen ist ein iterativer Prozess, bei dem die Eingabe-Trainingsdaten das neuronale Netzwerk mehrmals durchlaufen. Jeder Trainingsdurchlauf durch sämtliche Trainingsdaten wird als "Epoche" bezeichnet. Mit dem Parameter Max. Epochen wird angegeben, wie oft die Trainingsdaten das Modell während des Trainings maximal durchlaufen. Dies hängt davon ab, welches Modell Sie trainieren, wie komplex die Aufgabe ist und wie viele Trainingsgebiete Sie haben. Wenn Sie sehr viele Trainingsgebiete haben, können Sie einen kleinen Wert verwenden. Im Allgemeinen empfiehlt es sich, mehrere Epochen wiederholt so lange weiterzutrainieren, bis der Validierungsverlust immer weiter abnimmt.
Mit dem Parameter Backbone-Modell wird das vorkonfigurierte neuronale Netzwerk angegeben, das als Encoder für das Modell dient und Feature-Repräsentationen des Eingabetextes extrahiert. 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 Erhöhung der Batch-Größe lässt sich die Leistung des Werkzeugs erhöhen, aber mit zunehmender Batch-Größe wird auch mehr Arbeitsspeicher benötigt. Wenn beim Trainieren des Modells ein Fehler vom Typ "Nicht genügend Arbeitsspeicher" auftritt, verwenden Sie eine kleinere Batch-Größe.
Der Parameter Lernrate ist einer der wichtigsten Hyperparameter. Dabei handelt es sich um die Rate, mit der die Modellgewichtungen während des Trainings angepasst werden. Wenn Sie eine geringe Lernrate angeben, verbessert sich das Modell nur langsam und das Training dauert u. U. lange, wodurch Zeit und Ressourcen verschwendet werden. Eine hohe Lernrate kann kontraproduktiv sein, und das Modell lernt möglicherweise nicht gut. Bei hohen Lernraten werden die Modellgewichtungen u. U. drastisch angepasst, sodass es zu fehlerhaften Ergebnissen kommt. Oftmals ist es am besten, gar keinen Wert für den Parameter Lernrate anzugeben, da das Werkzeug laut dem Paper Cyclical Learning Rates for Training Neural Networks von Leslie N. Smith einen automatisierten Lernraten-Finder verwendet.
Das Werkzeug verwendet einen Teil der Trainingsdaten als Validierungssatz. Mit dem Parameter Validierungsprozentsatz können Sie anpassen, wie viele Tainingsdaten bei der Validierung verwendet werden. 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 Tool eine Methode zur frühzeitigen Beendigung, durch die das Modelltraining beendet wird, wenn sich das Modell über anschließende Trainingsepochen hinweg nicht mehr verbessert. Dieses Verhalten können Sie ausschalten, 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 im Backbone-Modell 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 arXivLabs 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/.