En clasificación de texto, Gzip y KNN superan a los Transformers.
(twitter.com/LukeGessler)- Se propone un método no paramétrico de clasificación de texto que combina un compresor simple como gzip con un clasificador k-vecinos más cercanos (kNN)
- No tiene ningún parámetro de entrenamiento y, aun así, es ligero y de propósito general, con una menor carga de costo computacional que las DNN
- Frente a métodos de aprendizaje profundo sin preentrenamiento, logra resultados competitivos en 6 datasets in-distribution
- Supera a BERT en los 5 datasets OOD (out-of-distribution), incluidos 4 de idiomas de bajos recursos
- También muestra un gran desempeño en entornos few-shot, donde la escasez de datos etiquetados dificulta entrenar DNN
Contexto y planteamiento del problema
- Las DNN se usan ampliamente en clasificación de texto por su alta precisión
- Sin embargo, requieren millones de parámetros y grandes volúmenes de datos etiquetados, por lo que su costo computacional es alto
- Esto hace que su uso, optimización y la transferencia a escenarios OOD (out-of-distribution) sean tareas costosas en la práctica
Método propuesto
- Se presenta un método no paramétrico simple, ligero y de propósito general como alternativa a las DNN
- La estructura combina un compresor simple como gzip con un clasificador k-vecinos más cercanos
- Su característica clave es que no tiene ningún parámetro de entrenamiento
Resultados experimentales
- En 6 datasets in-distribution, alcanza un nivel de desempeño competitivo frente a métodos de aprendizaje profundo sin preentrenamiento
- Supera a BERT en los 5 datasets OOD, incluidos 4 de idiomas de bajos recursos
- También destaca en entornos few-shot, donde hay tan pocos datos etiquetados que resulta difícil entrenar DNN de forma efectiva
1 comentarios
Comentarios de Hacker News
Enlace directo al artículo: https://aclanthology.org/2023.findings-acl.426.pdf
Intuitivamente, la idea central es que, si tenemos los documentos x1, x2 y un documento nuevo x, entonces si la regularidad estadística de x se parece más a x1 que a x2, se cumple que
len(compress(cat(x1,x))) - len(compress(x)) < len(compress(cat(x2,x))) - len(compress(x)). Aquí,catsignifica concatenar ycompresses un compresor como gzip.Literalmente,
len(compress(cat(x1,x))) - len(compress(x))es la cantidad adicional de bytes necesaria para comprimir la regularidad estadística de x1 dado que ya se conoce la regularidad estadística de x. Cuanto más parecidos sean x1 y x, menos bytes adicionales se necesitan para comprimircat(x1,x)que para comprimir solo x.Los autores usan una función de distancia llamada distancia de compresión normalizada (NCD) basada en esta idea y aplican k-vecinos más cercanos (kNN) a los documentos comprimidos. También tratan la relación entre NCD, la información, la entropía de Shannon y la complejidad de Kolmogorov.
Sorprendentemente, este método simple e intuitivo supera a BERT en varias tareas de clasificación zero-shot. Pero eso no significa necesariamente que también supere a Transformers más grandes y modernos.
La idea sería comparar el tamaño comprimido cuando se usa un documento como diccionario de compresión frente a cuando no se usa. Como zstd, al menos en niveles 20+, logra tasas de compresión mucho mejores que gzip, si la razón por la que gzip funciona bien aquí es que aproxima la complejidad de Kolmogorov, podría funcionar aún mejor.
Si x1 está en inglés y x es la traducción al hebreo del mismo documento, me da la impresión de que un LLM lo haría mejor.
Hace poco estuve trabajando con imágenes e intentando generar JPEG, y vi que incluso con los mismos píxeles base pueden salir imágenes muy distintas. También es interesante que, cuanto más ruidosa y aleatoria es una imagen, más grande se vuelve el archivo JPG, y al revés, cuanto más parece una foto, más pequeño tiende a ser.
Si te interesa la equivalencia entre IA y compresión, vale la pena ver el Hutter Prize :) http://prize.hutter1.net/
También vale la pena revisar el Large Text Compression Benchmark http://mattmahoney.net/dc/text.html - actualmente el mejor compresor del mundo es una red neuronal de Fabrice Bellard, famoso por haber creado ffmpeg y QEMU.
También me gusta mucho el estilo solo texto apropiado de estas páginas.
Como ajustan la codificación aritmética (https://en.wikipedia.org/wiki/Arithmetic_coding) según el contexto del byte/bit que se va a predecir, cuanto más exactamente predigan lo que sigue, más eficiente se vuelve la codificación. La tarea en sí es muy parecida a la de un Transformer como GPT.
Una predicción perfecta no reduce el intervalo aritmético, así que casi no hay costo adicional de almacenamiento y, por lo tanto, no se guardan bits. Pero para hacer un benchmark justo, también habría que contar el tamaño del descompresor.
Es una idea bastante antigua; se pueden ver [1,2]. Es vieja, pero sigue siendo muy útil, como el perceptrón.
[1] Li and Vitanyi. An Introduction to Kolmogorov Complexity and Its Applications
[2] Clustering by compression. https://arxiv.org/pdf/cs/0312044
Una teoría se parece a una historia que explica muchas cosas con los mismos “personajes”. Aquí los personajes se parecen más a conceptos; por ejemplo, los átomos encajan en esa idea.
Quiero señalar que este método es más fuerte solo en noticias.
En Yahoo Questions no logra el mejor rendimiento. No parece forzado pensar que las noticias se escriben de forma parecida y que a veces incluso se copian partes, así que comparten muchas palabras.
Yahoo Questions es un foro, así que probablemente haya más variación en las palabras, pero sigue habiendo similitud semántica entre ellas.
O sea, gzip es fuerte cuando hay mucha superposición de palabras (porque el aumento de tamaño al comprimir con gzip es pequeño), y cuando importa la similitud semántica, una DNN siempre gana.
Los resultados son interesantes, pero no creo que sean tan interesantes como suenan.
Es muy importante notar que este resultado proviene de datos fuera de distribución. Por ejemplo, son noticias en idiomas como “Kinyarwanda, Kirundi, pinyin”.
En configuraciones más generales, BERT sigue ganando de manera aplastante.
Es genial que un método tan simple pueda ser muy efectivo, pero no habría que venderlo exagerándolo.
Pero viendo las condiciones citadas, en realidad resulta bastante intuitivo. ¿Qué significa clasificar texto de un idioma completamente desconocido? Si te piden clasificar texto en kirundi, no entiendes en absoluto el significado, y lo mejor que puedes hacer es buscar la frecuencia de secuencias de palabras o caracteres y agrupar entre sí los textos que tengan huellas de frecuencia parecidas.
Sigues sin conocer el significado real, pero puedes hacerlo mejor que al azar, y en efecto eso es lo que pasa. La buena noticia es que eso es exactamente lo que hace gzip+kNN, su trabajo principal y su razón de existir.
Intentar leer y entender ese texto o predecir el siguiente carácter no aporta mucho. Una persona normal ni siquiera lo intentaría, porque no conoce el idioma. Desafortunadamente, BERT hace exactamente eso. Porque es lo único que sabe hacer. Aun así, hay que felicitarlo por sacarle más provecho que un humano promedio, y quizá incluso que un humano no promedio.
En realidad es muy ingenioso y se entiende de forma intuitiva.
Si unes dos fragmentos de texto parecidos, se van a comprimir mejor que si unes dos fragmentos de texto distintos.
Esto parece menos una victoria de ese método y más una señal negativa sobre la similitud basada en deep learning.
En medio del furor por los LLM, está claro que los LLM son impresionantes, pero da la impresión de que mucha gente asume que hubo avances similares también en las capas de embedding para pura similitud de texto.
De ahí salió el boom de toda clase de bases de datos de embeddings, pero yo veo muy poca evidencia que lo respalde.
El enlace debería apuntar al PDF del paper: https://aclanthology.org/2023.findings-acl.426.pdf
Un algoritmo de compresión consiste en ahorrar/comprimir espacio, es decir, bits y bytes. Un modelo de machine learning, especialmente uno generativo, consiste en ahorrar/comprimir la expresión y el pensamiento humanos.
La clasificación de texto es un tipo de compresión sobre la expresión humana. ¿Habrá alguna propiedad fundamental del lenguaje humano y de los datos que explique cuál de los dos debería funcionar mejor en tareas de machine learning?
Si algún día una teoría así toma forma, quizá no sería sorprendente que la codificación de bits/bytes comprimidos y la expresión humana comprimida estén estrechamente relacionadas en algún espacio, de modo que ambas queden conectadas de alguna manera. De hecho, una teoría así —por ejemplo, una basada en entropía o en física— podría ayudar a elegir si conviene usar un algoritmo de compresión o un modelo de machine learning para cierto tipo de compresión de expresión humana.
Visto desde los datos, ¿cuáles serían los ejemplos negativos difíciles que hacen que este tipo de algoritmo funcione mal? Por ahora quizá solo podamos aproximar esa teoría desde la perspectiva de los distintos tipos de datos textuales humanos. Por ejemplo, predecir mezclas con modelos estadísticos de temas funciona bien en textos académicos, pero tiene dificultades con texto de internet.
¿Alguien está investigando una teoría así aparte de Wolfram Physics?
https://www.newyorker.com/tech/annals-of-technology/chatgpt-...
Tiene todo el sentido. La compresión trata sobre “entender”, es decir, representar la entrada de una manera que permita reconocerla y etiquetarla.
Si los bits reconocidos terminan siendo más pequeños que la etiqueta, listo, hay compresión. No me sorprende que gzip pueda ser mejor que una DNN en esta tarea.
Digo que es un subconjunto porque el entendimiento es más general. Un algoritmo de compresión específico puede funcionar bien con números de punto flotante. En cambio, el cerebro y las redes neuronales artificiales quizá puedan comprimir cualquier patrón de entrada, aunque su desempeño sea peor.
No entiendo cómo gzip podría manejar palabras como “not”, que invierten por completo el significado de una oración.
¿Alguien lo entiende?