- Vorschlag einer nichtparametrischen Methode zur Textklassifikation, die einen einfachen Kompressor wie gzip mit einem k-Nearest-Neighbor-(kNN)-Klassifikator kombiniert
- Kommt ganz ohne Trainingsparameter aus, ist dennoch leichtgewichtig und universell einsetzbar und verursacht im Vergleich zu DNNs geringere Rechenkosten
- Erzielt im Vergleich zu nicht vortrainierten Deep-Learning-Methoden auf sechs In-Distribution-Datensätzen konkurrenzfähige Ergebnisse
- Übertrifft BERT auf allen fünf OOD-(Out-of-Distribution)-Datensätzen, darunter vier ressourcenarme Sprachen
- Zeigt auch in Few-Shot-Szenarien, in denen zu wenige gelabelte Daten für ein effektives DNN-Training vorhanden sind, starke Leistung
Hintergrund und Problemstellung
- DNNs werden wegen ihrer hohen Genauigkeit breit für Textklassifikation eingesetzt
- Sie erfordern jedoch Millionen von Parametern und große Mengen gelabelter Daten, was hohe Rechenkosten verursacht
- Dadurch werden Nutzung, Optimierung und die Übertragung auf OOD-(Out-of-Distribution)-Situationen in der Praxis zu kostspieligen Aufgaben
Vorgeschlagene Methode
- Als Alternative zu DNNs wird eine einfache, leichtgewichtige und universelle nichtparametrische Methode vorgestellt
- Die Architektur kombiniert einen einfachen Kompressor wie gzip mit einem k-Nearest-Neighbor-Klassifikator
- Das zentrale Merkmal ist, dass sie vollständig ohne Trainingsparameter auskommt
Experimentelle Ergebnisse
- Auf sechs In-Distribution-Datensätzen erreicht sie eine Leistung, die mit nicht vortrainierten Deep-Learning-Methoden konkurrieren kann
- Übertrifft BERT auf allen fünf OOD-Datensätzen, darunter vier ressourcenarme Sprachen
- Hat auch Stärken in Few-Shot-Szenarien, in denen zu wenige gelabelte Daten vorhanden sind, um ein DNN effektiv zu trainieren
1 Kommentare
Hacker-News-Kommentare
Direkter Link zum Paper: https://aclanthology.org/2023.findings-acl.426.pdf
Intuitiv ist der Kern, dass bei den Dokumenten x1, x2 und einem neuen Dokument x gilt: Wenn die statistische Regelmäßigkeit von x näher an x1 als an x2 liegt, dann ist
len(compress(cat(x1,x))) - len(compress(x)) < len(compress(cat(x2,x))) - len(compress(x)). Dabei istcatdas Aneinanderhängen undcompressein Kompressor wie gzip.Wörtlich ist
len(compress(cat(x1,x))) - len(compress(x))die zusätzlich benötigte Byte-Zahl, um die statistische Regelmäßigkeit von x1 zu komprimieren, gegeben die statistische Regelmäßigkeit von x. Je ähnlicher sich x1 und x sind, desto weniger zusätzliche Bytes werden benötigt, umcat(x1,x)zu komprimieren, verglichen mit der Komprimierung von x allein.Die Autoren verwenden auf Basis dieser Idee eine Distanzfunktion namens Normalized Compression Distance (NCD) und wenden k-Nearest Neighbors (kNN) auf komprimierte Dokumente an. Außerdem behandeln sie den Zusammenhang zwischen NCD, Information, Shannon-Entropie und Kolmogorov-Komplexität.
Überraschenderweise schlägt diese einfache und intuitive Methode BERT bei mehreren Zero-Shot-Klassifikationsaufgaben. Das heißt allerdings nicht zwangsläufig, dass sie auch größere und neuere Transformer schlägt.
Man würde also die Kompressionsgröße mit und ohne Verwendung des Dokuments als Wörterbuch vergleichen. Da zstd zumindest auf Level 20+ eine deutlich höhere Kompressionsrate als gzip erreicht, könnte es noch besser funktionieren, wenn der Erfolg bei gzip tatsächlich auf einer Approximation der Kolmogorov-Komplexität beruht.
Wenn x1 Englisch ist und x die hebräische Übersetzung desselben Dokuments, würde ich erwarten, dass ein LLM besser ist.
Ich habe kürzlich mit Bildern gearbeitet und dabei JPEG ausgegeben; selbst bei denselben Grundpixeln können sehr unterschiedliche Bilder entstehen. Interessant ist, dass die JPG-Dateigröße größer wird, je verrauschter und zufälliger ein Bild ist, und kleiner, je mehr es wie ein Foto aussieht.
Wenn dich die Äquivalenz von KI und Kompression interessiert, lohnt sich ein Blick auf den Hutter Prize :) http://prize.hutter1.net/
Sehenswert ist auch das Large Text Compression Benchmark http://mattmahoney.net/dc/text.html - der derzeit weltbeste Kompressor ist ein neuronales Netz von Fabrice Bellard, dem bekannten Schöpfer von ffmpeg und QEMU.
Ich mag auch sehr den passenden rein textbasierten Stil solcher Seiten.
Dabei wird die arithmetische Kodierung(https://en.wikipedia.org/wiki/Arithmetic_coding) abhängig vom Kontext des vorherzusagenden Bytes/Bits angepasst; je genauer das Kommende vorhergesagt wird, desto effizienter wird die Kodierung. Die Aufgabe selbst ist der von GPT-ähnlichen Transformern sehr ähnlich.
Bei perfekter Vorhersage schrumpft das arithmetische Intervall nicht, daher entstehen fast keine zusätzlichen Speicherkosten und somit werden auch keine Bits gespeichert. Für einen fairen Benchmark müsste man allerdings auch die Größe des Dekompressors einrechnen.
Das ist eine ziemlich alte Idee; siehe [1,2]. Alt, aber wie das Perzeptron immer noch sehr nützlich.
[1] Li and Vitanyi. An Introduction to Kolmogorov Complexity and Its Applications
[2] Clustering by compression. https://arxiv.org/pdf/cs/0312044
Eine Theorie ist wie eine Geschichte, die mit denselben „Figuren“ sehr viel erklärt. Diese Figuren sind hier eher Konzepte; ein Beispiel dafür wären Atome.
Ich möchte darauf hinweisen, dass diese Methode nur bei Nachrichtenartikeln stärker ist.
Bei Yahoo Questions ist sie nicht die beste. Es ist nicht unplausibel anzunehmen, dass Nachrichten in ähnlicher Weise geschrieben werden und manchmal sogar teilweise kopiert sind, sodass viele Wörter gemeinsam vorkommen.
Yahoo Questions ist ein Forum, daher ist die Wortvariation größer, aber zwischen den Wörtern bestehen semantische Ähnlichkeiten.
Mit anderen Worten: gzip ist stark, wenn es viele Wortüberlappungen gibt (der Größenanstieg bei der gzip-Komprimierung ist klein), und wenn semantische Ähnlichkeit wichtig ist, gewinnt ein DNN immer.
Die Ergebnisse sind interessant, aber meiner Meinung nach nicht so interessant, wie sie klingen.
Es ist sehr wichtig zu beachten, dass dieses Ergebnis aus Out-of-Distribution-Daten stammt. Zum Beispiel handelt es sich um Nachrichten in Sprachen wie „Kinyarwanda, Kirundi, Pinyin“.
In allgemeineren Settings gewinnt BERT weiterhin mit großem Abstand.
Es ist zwar cool, dass eine so einfache Methode sehr effektiv sein kann, aber man sollte das nicht überverkaufen.
Betrachtet man aber die zitierten Bedingungen, ist es eher ziemlich intuitiv. Was bedeutet es, Text in einer völlig unbekannten Sprache zu klassifizieren? Wenn man Kirundi-Text klassifizieren soll, versteht man die Bedeutung überhaupt nicht, und das Beste, was man tun kann, ist, die Häufigkeit von Wörtern oder Zeichenfolgen zu betrachten und Texte mit ähnlichen Häufigkeits-Fingerabdrücken zu gruppieren.
Die eigentliche Bedeutung versteht man zwar immer noch nicht, aber man kann besser sein als Zufall, und genau das passiert auch. Die gute Nachricht ist, dass genau das gzip+kNN tut; das ist ihre Kernaufgabe und der Grund ihrer Existenz.
Wenn man versucht, diesen Text zu lesen und zu verstehen oder das nächste Zeichen vorherzusagen, gewinnt man dabei nicht viel. Ein normaler Mensch würde das gar nicht erst versuchen, weil er die Sprache nicht kennt. Leider macht BERT genau das. Es ist eben das Einzige, was BERT kann. Trotzdem kann man BERT dazu beglückwünschen, dass es daraus noch mehr Nutzen gezogen hat als ein gewöhnlicher Mensch, vielleicht sogar mehr als ein ungewöhnlicher Mensch.
Tatsächlich sehr clever und intuitiv nachvollziehbar.
Wenn man zwei ähnliche Textstücke aneinanderhängt, lassen sie sich besser komprimieren als zwei unterschiedliche Textstücke.
Das wirkt weniger wie ein Sieg dieser Methode als eher wie ein negatives Signal für Deep-Learning-basierte Ähnlichkeit.
Im Hype um LLMs ist zwar klar, dass LLMs großartig sind, aber viele scheinen anzunehmen, dass es auch bei Embedding-Layern für reine Textähnlichkeit ähnliche Fortschritte gegeben hat.
Deshalb gibt es diesen Boom an Embedding-Datenbanken aller Art, aber ich sehe kaum Belege, die das stützen.
Der Link sollte auf das Paper-PDF https://aclanthology.org/2023.findings-acl.426.pdf verweisen.
Kompressionsalgorithmen sind das Einsparen bzw. Komprimieren von Raum, also von Bits und Bytes. Machine-Learning-Modelle, insbesondere generative Modelle, sparen bzw. komprimieren menschlichen Ausdruck und menschliches Denken.
Textklassifikation ist eine Form der Kompression über menschlichem Ausdruck. Könnte es grundlegende Eigenschaften menschlicher Sprache und Daten geben, die erklären, welches von beiden bei einer Machine-Learning-Aufgabe besser sein wird?
Wenn sich so eine Theorie eines Tages herausbildet, wäre es vielleicht gar nicht überraschend, dass die Kodierung komprimierter Bits/Bytes und komprimierter menschlicher Ausdruck in irgendeinem Raum eng miteinander verwandt sind und auf irgendeine Weise verbunden sein könnten. Tatsächlich könnten solche Theorien, etwa entropiebasierte oder physikbasierte Theorien, dabei helfen zu entscheiden, ob man für bestimmte Arten der Kompression menschlichen Ausdrucks einen Kompressionsalgorithmus oder ein Machine-Learning-Modell verwenden sollte.
Datenzentriert betrachtet: Was wären schwierige negative Beispiele, die solche Algorithmen schlecht aussehen lassen? Im Moment kann man sich dieser Theorie vielleicht nur aus der Perspektive verschiedener Arten menschlicher Textdaten annähern. Zum Beispiel funktioniert das Vorhersagen von Mischungen mit statistischen Themenmodellen bei wissenschaftlichen Texten gut, stößt aber bei Internettexten auf Schwierigkeiten.
Gibt es außer Wolfram Physics noch jemanden, der so eine Theorie erforscht?
https://www.newyorker.com/tech/annals-of-technology/chatgpt-...
Ergibt völlig Sinn. Kompression hat mit „Verstehen“ zu tun, also damit, die Eingabe auf eine Weise darzustellen, in der man sie erkennen und labeln kann.
Wenn die erkannten Bits größer sind als das Label, voilà, dann hat man Kompression. Dass gzip bei dieser Aufgabe besser sein kann als ein DNN, ist nicht überraschend.
Ich nenne es eine Teilmenge, weil Verstehen allgemeiner ist. Ein bestimmter Kompressionsalgorithmus kann bei Gleitkommazahlen gut funktionieren. Das Gehirn und künstliche neuronale Netze könnten dagegen vielleicht jedes beliebige Eingabemuster komprimieren, auch wenn ihre Leistung dabei schlechter ist.
Ich verstehe nicht, wie gzip mit Wörtern wie „not“ umgehen kann, die die Bedeutung eines ganzen Satzes umkehren.
Versteht das jemand?