Metin Sınıflandırmada Gzip ve KNN, Transformers’ı Geride Bırakıyor
(twitter.com/LukeGessler)- gzip gibi basit bir sıkıştırıcı ile k-en yakın komşu (kNN) sınıflandırıcısını birleştiren parametrik olmayan (non-parametric) bir metin sınıflandırma yöntemi öneriliyor
- Hiçbir eğitim parametresi olmamasına rağmen hafif ve genel amaçlı; DNN’lere kıyasla hesaplama maliyeti daha düşük
- Önceden eğitilmemiş derin öğrenme yöntemleriyle karşılaştırıldığında 6 in-distribution veri kümesinde rekabetçi sonuçlar elde ediyor
- 4 düşük kaynaklı dili içeren 5 OOD (out-of-distribution) veri kümesinin tamamında BERT’i geride bırakıyor
- Etiketli verinin yetersizliği nedeniyle DNN eğitiminin zor olduğu few-shot ortamlarda da güçlü performans gösteriyor
Arka Plan ve Problemin Ortaya Konması
- DNN’ler, yüksek doğrulukları sayesinde metin sınıflandırmada yaygın olarak kullanılıyor
- Ancak milyonlarca parametre ve büyük miktarda etiketli veri gerektirdikleri için hesaplama maliyetleri yüksek
- Bu nedenle kullanım, optimizasyon ve OOD (out-of-distribution) durumlarına aktarım pratikte maliyetli işler haline geliyor
Önerilen Yöntem
- DNN’lere alternatif olarak kolay, hafif ve genel amaçlı parametrik olmayan bir yöntem sunuluyor
- gzip gibi basit bir sıkıştırıcı ile k-en yakın komşu sınıflandırıcısını birleştiren bir yapı
- Temel özelliği hiç eğitim parametresine sahip olmaması
Deney Sonuçları
- 6 in-distribution veri kümesinde, önceden eğitilmemiş derin öğrenme yöntemleriyle rekabet edebilecek düzeyde performans
- 4 düşük kaynaklı dili içeren 5 OOD veri kümesinin tamamında BERT’i geride bırakıyor
- Etiketli verinin DNN’leri etkili biçimde eğitmek için çok az olduğu few-shot ortamlarda da avantajlı
1 yorum
Hacker News yorumları
Makaleye doğrudan bağlantı: https://aclanthology.org/2023.findings-acl.426.pdf
Sezgisel olarak ana fikir şu: x1, x2 belgeleri ve yeni bir x belgesi olduğunda, x’in istatistiksel düzenliliği x2’den çok x1’e daha yakınsa
len(compress(cat(x1,x))) - len(compress(x)) < len(compress(cat(x2,x))) - len(compress(x))olur. Buradacatbirleştirme,compressise gzip gibi bir sıkıştırıcıdır.Kelimenin tam anlamıyla
len(compress(cat(x1,x))) - len(compress(x)), x’in istatistiksel düzenlilikleri verildiğinde x1’in istatistiksel düzenliliklerini sıkıştırmak için ek olarak gereken bayt sayısıdır. x1 ile x ne kadar benzerse, yalnızca x’i sıkıştırmaya kıyaslacat(x1,x)i sıkıştırmak için gereken ek bayt sayısı o kadar azalır.Yazarlar, bu fikre dayanan normalleştirilmiş sıkıştırma mesafesi (NCD) adlı bir mesafe fonksiyonunu kullanarak sıkıştırılmış belgelere k-en yakın komşu (kNN) uyguluyor. NCD ile bilgi, Shannon entropisi ve Kolmogorov karmaşıklığı arasındaki ilişkiyi de ele alıyorlar.
Şaşırtıcı biçimde bu basit ve sezgisel yöntem, çeşitli zero-shot sınıflandırma görevlerinde BERT’i geride bırakıyor. Ancak bu, daha büyük ve daha yeni Transformer’ları da mutlaka yendiği anlamına gelmiyor.
Bir belgeyi sıkıştırma sözlüğü olarak kullanırken ve kullanmazken ortaya çıkan sıkıştırılmış boyutları karşılaştırmak gibi. zstd, en azından 20+ seviyelerinde gzip’ten çok daha yüksek sıkıştırma oranı sağlıyor; dolayısıyla gzip’te işe yaramasının nedeni Kolmogorov karmaşıklığına yaklaşım ise daha iyi çalışabilir.
x1 İngilizceyse ve x aynı belgenin İbranice çevirisiyse, sanırım LLM daha iyi yapardı.
Yakın zamanda görüntülerle uğraşırken JPEG çıktıları denedim; aynı temel piksellerden bile çok çeşitli görüntüler çıkabiliyor. Görüntü ne kadar gürültülü ve rastgeleye yakınsa JPG dosya boyutunun o kadar büyümesi, buna karşılık fotoğrafa ne kadar benziyorsa JPG boyutunun o kadar küçülmesi ilginç.
Yapay zeka ile sıkıştırmanın eşdeğerliği ilginizi çekiyorsa Hutter Prize’a bakmak iyi olur :) http://prize.hutter1.net/
Large Text Compression Benchmark da görülmeye değer: http://mattmahoney.net/dc/text.html - şu anda dünyanın en iyi sıkıştırıcısı, ffmpeg ve QEMU’yu yapan ünlü Fabrice Bellard’ın sinir ağı.
Bu tür sayfaların uygun salt metin stili de gerçekten hoşuma gidiyor.
Tahmin edilecek bayt/bit’in bağlamına göre aritmetik kodlama (https://en.wikipedia.org/wiki/Arithmetic_coding) ayarlandığı için, devamında ne geleceğini ne kadar doğru tahmin ederseniz kodlama o kadar verimli olur. Görevin kendisi GPT gibi Transformer’lara çok benziyor.
Kusursuz tahminde aritmetik aralık küçülmediğinden ek depolama maliyeti neredeyse yoktur; dolayısıyla bit de saklanmaz. Ancak adil bir benchmark için sıkıştırma açıcı programın boyutunu da hesaba katmak gerekir.
Oldukça eski bir fikir; [1,2]’ye bakılabilir. Eski ama perceptron gibi hâlâ çok kullanışlı.
[1] Li and Vitanyi. An Introduction to Kolmogorov Complexity and Its Applications
[2] Clustering by compression. https://arxiv.org/pdf/cs/0312044
Teori, aynı “karakterlerle” çok şeyi açıklayan bir hikâyeye benzer. Buradaki karakterler daha çok kavramlara yakındır; örneğin atomlar buna uyar.
Bu yöntemin daha güçlü olmasının haberler ile sınırlı olduğuna dikkat çekmek isterim.
Yahoo Questions’ta en iyi performansı vermiyor. Haberler benzer biçimde yazılır ve bazen bazı kısımlar kopyalanır; bu yüzden ortak kelimelerin çok olduğunu varsaymak abartı olmaz.
Yahoo Questions bir forum olduğu için kelime çeşitliliği daha fazla olabilir, ama kelimeler arasında anlamsal benzerlikler vardır.
Yani gzip, kelime örtüşmesi fazla olduğunda güçlüdür (gzip sıkıştırmasında boyut artışı küçük olur); anlamsal benzerlik önemliyse DNN her zaman kazanır.
Sonuçlar ilginç, ama kulağa geldiği kadar ilginç olmadığını düşünüyorum.
Bu sonucun dağılım dışı verilerden geldiğini çok önemli görmek gerekiyor. Örneğin “Kinyarwanda, Kirundi, Pinyin” gibi dillerdeki haberler
Daha genel bir düzende BERT hâlâ ezici biçimde kazanıyor
Bu kadar basit bir yöntemin çok etkili olabilmesi harika, ama bunu fazla abartarak pazarlamamak gerek
Ama alıntılanan koşullara bakınca durum aslında oldukça sezgisel. Hiç bilmediğiniz bir dildeki metni sınıflandırmak ne demek? Kirundi metinlerini sınıflandırmanız istenirse anlamı hiç bilmezsiniz; yapabileceğiniz en iyi şey kelime ya da karakter dizisi sıklıklarını bulup benzer sıklık parmak izlerine sahip metinleri bir araya getirmektir
Gerçek anlamı hâlâ bilmezsiniz, ama rastgele tahminden daha iyi sonuç alabilirsiniz; nitekim öyle oluyor. İyi haber şu ki gzip+kNN’in yaptığı şey tam olarak bu; asıl işi ve varlık nedeni de bu
Bu metni okuyup anlamaya ya da bir sonraki karakteri tahmin etmeye çalışmaktan pek bir şey kazanılmaz. Normal bir insan dili bilmediği için zaten baştan denemezdi. Ne yazık ki BERT’in yaptığı şey tam olarak bu. Çünkü BERT’in yapabildiği tek şey bu. Yine de sıradan bir insandan, hatta muhtemelen sıradan olmayan bir insandan bile daha fazla işe yarar sonuç çıkardığı için tebrik etmek gerekir
Gerçekten çok zekice ve sezgisel olarak anlaşılır
Birbirine benzeyen iki metin parçasını uç uca eklerseniz, birbirinden farklı iki metin parçasını uç uca eklediğiniz duruma göre daha iyi sıkıştırılır
Bu, ilgili yöntemin zaferinden çok derin öğrenme tabanlı benzerlik için olumsuz bir sinyal gibi görünüyor
LLM çılgınlığı içinde, LLM’lerin gerçekten etkileyici olduğu doğru ama birçok kişi saf metin benzerliği için kullanılan embedding katmanlarında da benzer bir ilerleme olduğunu varsayıyor gibi
Bu yüzden her türden embedding veritabanı patlaması yaşandı, ama bana göre bunu destekleyen çok az kanıt var
Bağlantı, makale PDF’i olan https://aclanthology.org/2023.findings-acl.426.pdf adresini göstermeli
Sıkıştırma algoritmaları uzamın, yani bit ve baytların tasarrufu/sıkıştırılmasıdır. Makine öğrenmesi modelleri, özellikle üretici modeller, insan ifadelerini ve düşüncesini tasarruflu/sıkıştırılmış hâle getirir
Metin sınıflandırma, insan ifadesi üzerinde bir tür sıkıştırmadır. Makine öğrenmesi görevlerinde hangisinin daha iyi çalışacağını açıklayan, insan dili ve verinin temel bir özelliği olabilir mi?
Bir gün böyle bir teori şekil kazanırsa, sıkıştırılmış bit/bayt kodlaması ile sıkıştırılmış insan ifadelerinin bir uzamda yakından ilişkili olması ve ikisinin bir şekilde bağlantılı çıkması şaşırtıcı olmayabilir. Gerçekten de böyle bir teori, örneğin entropi temelli ya da fizik temelli bir teori, belirli türden insan ifadesi sıkıştırmalarında sıkıştırma algoritması mı yoksa makine öğrenmesi modeli mi kullanılacağına karar vermeye yardımcı olabilir
Veri merkezli bakınca, bu tür algoritmaları kötü yapan zor negatif örnekler neler olabilir? Şimdilik bu teoriyi ancak çeşitli insan metin verisi türleri açısından yaklaşık olarak kurabiliyor olabiliriz. Örneğin istatistiksel konu modeliyle karışımı tahmin etmek akademik metinlerde iyi çalışırken internet metinlerinde zorlanır
Wolfram Physics dışında böyle bir teori üzerinde çalışan biri var mı?
https://www.newyorker.com/tech/annals-of-technology/chatgpt-...
Tamamen mantıklı. Sıkıştırma “anlama” ile, yani girdiyi tanıyıp etiketleyebilecek şekilde temsil etmekle ilgilidir
Tanınan bitler etiketten büyük hâle gelince işte, sıkıştırma olur. gzip’in bu görevde DNN’den daha iyi olabilmesi şaşırtıcı değil
Alt küme dememin nedeni, anlamanın daha genel olması. Belirli bir sıkıştırma algoritması kayan noktalı sayılarda iyi çalışabilir. Buna karşılık beyin ve yapay sinir ağları, performansı daha kötü olsa bile, herhangi bir girdi kalıbını sıkıştırabiliyor olabilir
gzip’in bir cümlenin tüm anlamını tersine çeviren “not” gibi kelimeleri nasıl ele alabildiğini bilmiyorum
Anlayan var mı?