Schritt 2.5: Modell auswählen

Jetzt haben wir unser Dataset zusammengestellt und Einblicke in die wichtigsten Eigenschaften unserer Daten gewonnen. Als Nächstes sollten Sie auf der Grundlage der Messwerte, die wir in Schritt 2 erfasst haben, überlegen, welches Klassifizierungsmodell wir verwenden sollten. Das heißt, Sie stellen Fragen wie: „Wie stellen wir die Textdaten einem Algorithmus zur Verfügung, der numerische Eingaben erwartet?“ (Dies wird als Datenvorverarbeitung und -vektorisierung bezeichnet), „Welcher Modelltyp sollten wir verwenden?“, „Welche Konfigurationsparameter sollten wir für unser Modell verwenden?“ usw.

Dank jahrzehntelanger Forschung haben wir Zugriff auf eine große Bandbreite von Optionen zur Datenvorverarbeitung und -konfiguration. Die Verfügbarkeit einer sehr großen Anzahl möglicher Optionen zur Auswahl erhöht jedoch die Komplexität und den Umfang des vorliegenden Problems erheblich. Angesichts der Tatsache, dass die besten Optionen nicht offensichtlich sind, wäre eine naive Lösung darin, jede mögliche Option umfassend auszuprobieren und einige Entscheidungen über die Intuition zu bereinigen. Das wäre jedoch enorm teuer.

In diesem Leitfaden wird die Auswahl eines Textklassifizierungsmodells erheblich vereinfacht. Unser Ziel ist es, für einen bestimmten Datensatz einen Algorithmus zu finden, der eine nahezu genaue Genauigkeit erreicht und gleichzeitig die für das Training erforderliche Rechenzeit minimiert. Wir haben eine große Anzahl von Tests (~450.000) für verschiedene Arten von Problemen durchgeführt (insbesondere Sentimentanalyse und Themenklassifizierung). Dabei wurden 12 Datasets verwendet, die sich für jedes Dataset zwischen verschiedenen Datenvorverarbeitungstechniken und verschiedenen Modellarchitekturen abwechseln. So konnten wir Dataset-Parameter identifizieren, die optimale Entscheidungen beeinflussen.

Der unten stehende Algorithmus und das Flussdiagramm der Modellauswahl sind eine Zusammenfassung unserer Tests. Wenn Sie die Begriffe, die in diesen Richtlinien verwendet werden, noch nicht verstanden haben, ist das kein Grund zur Sorge. In den folgenden Abschnitten dieses Leitfadens werden sie ausführlich erläutert.

Algorithmus für die Datenvorbereitung und Modellerstellung

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

Im Flussdiagramm unten zeigen die gelben Felder Daten- und Modellvorbereitungsprozesse an. Graue und grüne Kästchen zeigen Auswahlmöglichkeiten an, die wir für die einzelnen Prozesse in Betracht gezogen haben. Grüne Kästchen zeigen die empfohlene Vorgehensweise für jeden Prozess an.

Sie können dieses Flussdiagramm als Ausgangspunkt für Ihren ersten Test verwenden, da Sie damit eine hohe Genauigkeit bei geringen Kosten erzielen. Sie können dann Ihr anfängliches Modell in den nachfolgenden Iterationen weiter verbessern.

Flussdiagramm: Textklassifizierung

Abbildung 5: Flussdiagramm: Textklassifizierung

Dieses Flussdiagramm beantwortet zwei wichtige Fragen:

  1. Welchen Lernalgorithmus oder welches Modell sollten wir verwenden?

  2. Wie sollen wir die Daten vorbereiten, um die Beziehung zwischen Text und Label effizient zu lernen?

Die Antwort auf die zweite Frage hängt von der Antwort auf die erste Frage ab. Wie die Daten, die in ein Modell eingespeist werden, vorverarbeitet werden, hängt davon ab, welches Modell wir auswählen. Modelle können grob in zwei Kategorien eingeteilt werden: Modelle, die Informationen zur Wortreihenfolge verwenden (Sequenzmodelle), und Modelle, die nur Text als „Taschen“ (Sets) aus Wörtern (N-Gramm-Modelle) sehen. Zu den Arten von Sequenzmodellen gehören Convolutional Neural Networks (CNN), recurrent Neural Networks (RNNs) und ihre Varianten. Zu den Arten der N-Gramm-Modelle gehören logistische Regression, einfache mehrschichtige Perceptronen (MLPs oder vollständig verbundene neuronale Netzwerke), Gradient Boosted Trees und Support Vector Machines.

Bei unseren Tests haben wir festgestellt, dass das Verhältnis von „Anzahl der Stichproben“ (S) zu „Anzahl der Wörter pro Stichprobe“ (W) mit dem Modell übereinstimmt, das gut abschneidet.

Wenn der Wert für dieses Verhältnis klein ist (<1500), sind kleine mehrschichtige Perceptronen, die N-Gramme als Eingabe verwenden (was wir Option A nennen), besser oder zumindest schlechter als Sequenzmodelle. MLPs sind einfach zu definieren und zu verstehen und benötigen viel weniger Rechenzeit als Sequenzmodelle. Wenn der Wert für dieses Verhältnis hoch ist (>= 1500), verwenden Sie ein Sequenzmodell (Option B). In den folgenden Schritten können Sie zu den relevanten Unterabschnitten (mit dem Label A oder B) für den Modelltyp wechseln, den Sie basierend auf dem Verhältnis von Proben/Wörtern pro Stichprobe ausgewählt haben.

Bei unserem IMDb-Überprüfungs-Dataset beträgt das Verhältnis zwischen Stichproben und Wörtern pro Stichprobe etwa 144. Das bedeutet, dass wir ein MLP-Modell erstellen.