3. Januar 2022

Wie sich ein trainierter TabTransformer in der realen Welt verhält

Mitwirkende
Jakob Cassiman
Machine Learning Engineer
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen

Wir haben kürzlich einen Blogpost über den TabTransformer und seine grundlegenden Ideen geschrieben. Es ist ein vielversprechendes neues Deep-Learning-Modell für tabellarische Daten, aber wir wollten auch Ergebnisse zu Daten und Problemen, die uns in der Praxis begegnen.

Boston House Preise mit Mayonnaise

Die Daten, mit denen wir unsere Tests durchgeführt haben, stammen von der belgischen Notarvereinigung (FedNot), die über einen großen Datensatz mit belgischen Hauspreisen verfügt. Es ist also ein bisschen wie bei den Hauspreisen von Boston, einem klassischen Datensatz für maschinelles Lernen, nur besser und belgisch.

Die Daten stammen aus verschiedenen Quellen. Wir haben öffentliche Datensätze wie OpenStreetMap mit internen pseudonymisierten FedNot-Datenbanken kombiniert.

Um den Wert eines bestimmten Hauses vorherzusagen, verwenden wir eine Teilmenge der verfügbaren Merkmale:

  • Physische Hausbeschreibung: Gebäudehöhe, Grundstücksfläche, Gebäudefläche, Gebäudetyp (offen, halboffen, geschlossen)
  • Ein Merkmal aus der zeitlichen Dimension: die Tage zwischen dem Hausverkauf und dem Referenzdatum 1. Januar 2014
  • Ortsangaben: Geohashes, Postleitzahl, Provinz, Region

Für unsere weiteren Experimente nehmen wir eine Stichprobe der Daten und teilen sie in drei Abschnitte auf:

  1. 5000 Zeilen für einen überwachten Trainingssatz.
  2. 3000 Zeilen für den Testsatz, mit dem wir die Modelle bewerten werden.
  3. Etwa 300 000 Zeilen für unüberwachtes Lernen. Das bedeutet, dass wir die Preise für diesen Teil ignorieren. Wenn Ihnen angesichts dieses Überraschungsdatensatzes der Magen knurrt, lesen Sie einfach weiter.

Kein gewöhnliches Modell

Nun wollen wir sehen, was es mit diesem T a b T r a n s f o r m e r auf sich hat.

Die TabTransformer-Architektur.(Papier)

Das Hauptmerkmal dieses Modells ist, dass es Transformationsblöcke enthält. Genau wie im NLP lernen die Transformatorblöcke kontextuelle Einbettungen. In diesem Fall sind die Eingaben jedoch keine Wörter, sondern kategoriale Merkmale.

Darüber hinaus können Sie den Transformator mit denselben unüberwachten Techniken trainieren wie im NLP! (Siehe GPT, BERT, ...) Wir werden die 300k unbeschrifteten Beispiele verwenden, um die Transformatorschichten vorzutrainieren (also ohne den Preis). Das sollte die Leistung verbessern, wenn wir nur wenige beschriftete Daten haben.

Mehr über dieses Modell erfahren Sie in unserem früheren Blogpost.

Dank Phil Wang gibt es eine Implementierung der TabTransformer-Modellarchitektur in PyTorch. Wir werden diese verwenden.

Alles, was bleibt, ist die Implementierung der unüberwachten Pre-Trainingsphase. In dem TabTransformer-Papier wird vorgeschlagen, dem Ansatz von ELECTRA zu folgen.

Angepasstes ELECTRA Pretraining für denTabTransformer.

Das ist es, was wir tun müssen, um die Electra-Vortrainingstechnik anzuwenden:

  1. Nehmen Sie das Transformatormodul, das wir vortrainieren wollen
  2. Füttern Sie es mit den (unbeschrifteten) Daten, ABER ändern Sie einige der Eingabe-Token.
  3. Nun fügen wir dem Transformatormodul einen binären Klassifikator hinzu, der lernt, zu erkennen, welche der Token verändert wurden und welche immer noch die ursprünglichen Token sind.

Dieser Ansatz wird auch als "replaced token detection" bezeichnet.

Da Electra als Technik zum Vortraining von Sprachmodellen vorgeschlagen wird, wird im TabTransformer-Papier zu Recht darauf hingewiesen, dass wir zwei Änderungen an der ursprünglichen Technik vornehmen müssen.

In Schritt 2 von Electra wird ein benutzerdefiniertes Generatormodell trainiert, um plausible Ersetzungstoken zu generieren. Denn es ist zu einfach, ein Wort zu erkennen, das durch ein zufälliges Wort ersetzt wurde.

Bei tabellarischen Daten sind die Token jedoch kategorische Merkmale, so dass wir ein Merkmal einfach durch eine andere Klasse dieses kategorischen Merkmals ersetzen können. Beenden Sie das Generatormodell.

So sieht Schritt 2 des Electra-Frameworks in einer PyTorch-Dataset-Klasse aus:

In Schritt 3 des Electra-Papiers ist der Klassifikator auf dem Transformer-Modul für alle Token gleich. Das ist sinnvoll, weil alle Wörter aus der gleichen Verteilung stammen.

Im Falle von Tabellendaten können wir dies noch verbessern und für jede Spalte einen eigenen Klassifikator erstellen.

Ein effizienter Weg, dies zu tun, besteht darin, eine Faltungsschicht in der Tiefe zu definieren, die einen Filter pro Tiefengruppe definiert. Jede Gruppe stimmt dann mit einer Spalte in der Tabelle überein:

Der Code für eine Reihe von binären Klassifikatoren. Siehe auch diese Diskussion.

Das Vortraining bezieht sich nur auf den Transformer-Block im TabTransformer. Nach dem Vortraining müssen wir noch eine Feinabstimmung der endgültigen MLP vornehmen, bei der die Ausgabe des Transformators mit den kontinuierlichen Merkmalen kombiniert wird.

Diese Feinabstimmung erfolgt anhand der überwachten Daten, die auch die Hauspreise enthalten.

Der höchste Augenblick

Entschuldigen Sie mein Französisch, aber hier kommt der Abschnitt, in dem wir testen, ob TabTransformer LightGBM den Rang abläuft.

Wir haben LightGBM aus zwei Gründen als Basis gewählt. Erstens, weil es im Allgemeinen ein hervorragendes Modell ist. Und zweitens ist es das beste Modell für den gesamten Datensatz, bei dem wir den größten Teil nicht für das unbeaufsichtigte Training reserviert haben.

Mit diesem Experiment wollen wir überprüfen, ob das unüberwachte Pretraining des TabTransformers ein Gewinn oder ein Fehlschlag ist.

Wir folgen dem Aufbau des TabTransformer-Beitrags und nehmen (obszön) kleine beschriftete Zugsätze mit 25 bis 2000 Datenpunkten. Da die Datensätze so klein sind, nehmen wir mehrere Versionen (z. B. verwenden wir 70 verschiedene Trainingssätze mit 25 Punkten).

Für jeden dieser Trainingssätze trainieren wir das LightGBM-Modell und nehmen eine Feinabstimmung des vortrainierten TabTransformers vor.

Danach verwenden wir den Testsatz, den wir zu Beginn auseinandergehalten haben, um die absoluten Fehler zu messen. Diese Fehler sind in dieser Abbildung dargestellt:

Bevor wir auf diese Ergebnisse eingehen, haben Sie vielleicht noch zwei Fragen:

Gibt es diese Art von Datensätzen überhaupt?

Stellen Sie sich einen Fall vor, in dem die Beschaffung der Kennzeichen sehr teuer ist, sehr lange dauert oder Menschen schaden kann. Wenn wir z. B. vorhersagen wollen, ob ein Flugzeug abstürzen wird, wollen wir so wenige Kennzeichnungen wie möglich haben.

Warum sollten Sie jemals ein Deep-Learning-Modell auf Datensätzen dieser Größe trainieren?

Der wichtigste Grund, warum wir in dieser Situation ein Deep-Learning-Modell in Betracht ziehen, ist, dass wir das Vortraining durchführen und die endgültige MLP-Schicht so klein wie möglich halten können. In der Arbeit über TabTransformer trainieren die Autoren ebenfalls mit denselben Datensätzen.

Also gut, schauen wir uns die Ergebnisse an. Eine erste Schlussfolgerung ist, dass LightGBM der klare Gewinner des gelben Trikots ist.

ABER, wenn wir uns die beiden kleinsten Datensätze ansehen, kommen wir zu dem Schluss, dass TabTransformer das grüne Sprintertrikot gewinnt. Bei 25 Datenpunkten ist der Fehler von TabTransformer kleiner und bei 50 Datenpunkten hat LGBM einige unangenehme Ausreißer, die TabTransformer nicht hat.

Dieses Ergebnis ist vielleicht nicht so großartig wie erhofft, aber es ist dennoch erstaunlich, denn es bedeutet, dass das unüberwachte Pretraining auf tabellarischen Daten funktioniert hat!

Wenn wir etwas weiter graben, können wir auch diese Ergebnisse erklären. Werfen Sie einen Blick auf die Bedeutung der Merkmale des LGBM-Modells:

Bei den fünf wichtigsten Merkmalen handelt es sich offensichtlich um numerische Merkmale und bei den sieben unwichtigsten um kategoriale Merkmale.

Erinnern wir uns daran, dass das Modell während der Pre-Trainingsphase des TabTransformers nur die Beziehungen zwischen den kategorialen Merkmalen lernen konnte. Es macht also Sinn, dass selbst das beste Transformatormodul niemals mit der Leistung einer optimalen Nutzung der kontinuierlichen Merkmale konkurrieren kann.

Schlussfolgerungen und Schlussbemerkungen

  • Die erste Schlussfolgerung ist, dass gute Daten mindestens so wichtig sind wie gute Modelle. In diesem Fall wären Sie mit besseren Daten und mehr Beschriftungen viel besser dran. Siehe auch diesen Vortrag von Andrew Ng über diese datenzentrierte Sichtweise.
  • Zweitens kann ein komplexes Modell mit viel schöner Theorie immer noch schlechter sein als (relativ) einfache Ideen wie gradientenverstärkte Maschinen. Eine "Eins für den Aufwand" gibt es im Land der Modellierung nicht.
  • Positiv zu vermerken ist, dass uns das Vortraining mit tabellarischen Daten gelungen ist. Wenn Sie also viele unbeschriftete Daten und nur wenige Beschriftungen haben, ist TabTransformer mit dem Stand der Technik konkurrenzfähig!

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Stiftung Modelle
Unternehmen
Unser Team
Verantwortungsvolle und ethische KI
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natürlicher Sprache
Computer Vision