Sözcük tabanlı ve karakter tabanlı metin oluşturma RNN'leri arasındaki fark nedir?


15

Tekrarlayan Sinir Ağları ile metin oluşturma hakkında okurken, nedenini belirtmeden , kelime kelime ve diğerleri karakter karakter üretmek için bazı örnekler uygulandığını fark ettim .

Peki, kelime başına metni temel alan RNN modelleri ile karakter başına metni temel alan modeller arasındaki fark nedir? Kelime tabanlı RNN daha büyük bir boyut gerektirir mi? Karakter bazlı RNN daha iyi genelleme yapar mı? Belki de tek fark girdi temsilidir (tek-sıcak kodlama, kelime düğünleri)? Metin oluşturmak için hangisini seçmelisiniz?

Yanıtlar:


15

İşte son zamanlarda öğrendiklerim.

Açıkçası, metin üretimi RNN'lerden bahsederken, RNN dil modellerinden bahsediyoruz. Hakkında soran kelime / karakter tabanlı metin nesil RNNs, biz Sorduğunuz kelime / karakter tabanlı RYSA dil modelleri (LM).

Kelime tabanlı LMS görüntüler daha yüksek doğruluk ve daha az hesaplama maliyeti daha karakter tabanlı İcracı.

Bu performans düşüşü olduğu olası da uzun Kısa süreli bellek (LSTM) tekrarlayan ağlar daha iyi bir kelime bazlı girdi çalışmak beri nedeniyle yakalama uzun kısa süreli belleğe karakter seviyesi modeli için zorluk.

Bunun nedeni, char tabanlı RNN LM'lerin uzun vadeli bağımlılıkları başarılı bir şekilde modellemek için çok daha büyük gizli katman gerektirmesidir, bu da daha yüksek hesaplama maliyetleri anlamına gelir.

Bu nedenle şunu söyleyebiliriz:

kelime seviyesi ve karakter seviyesi modelleri arasındaki temel farklılıklardan biri , RNN'nin eğitim ve test sırasında erişmesi gereken parametre sayısıdır . RNN'nin giriş ve çıkış katmanı ne kadar küçükse, modelin eğitimini pahalı hale getiren tam bağlı gizli katman olması gerekir.

Ancak, karakter tabanlı kullanma vb Finish, Türkçe, Rusça olarak zengin bir morfolojiye sahip RYSA LMS daha iyi bir model dilleri kelime bazlı bu tür dilleri modellemek için RYSA LMS hiç mümkünse zordur ve tavsiye edilmez.

Yukarıdaki analiz, özellikle char tabanlı RNN'ler tarafından üretilen çıktı metnine baktığınızda mantıklıdır:

Yatırımcıların şaşırtması para toplamayacaktı. Ben hızla ilginç olan zamanla şirket değilim, aynı programcılardan kurtulmak zorunda değilsiniz.

13 karakterlik pencereye sahip basit karakter tabanlı Maksimum Olabilirlik LM bunu sağlar:

Ve birçok sağlam tuğla yaptığında. Onları üst üste yığdı ve ayaklarını çaldı. Doktor ona bir yarasa teşhisi koydu. Kız ve erkek arkadaşı ona çıkma teklif etti.

Tabii ki örneği aldım (aslında ML LM örneklerinin çoğu şimdiye kadar okuduğum RNN tarafından üretilen herhangi bir metinden daha iyi görünüyordu) ve bu küçük ML LM daha basit bir corpus üzerinde eğitildi, ancak fikri anladınız: doğrudan koşullu olasılık daha iyi üretir metinler çok daha karmaşık karakter tabanlı RNN'den daha fazla .

Karakter tabanlı RNN LM'ler, çok çeşitli diller için dizileri dilbilgisel olarak düzeltebilir, daha büyük gizli katman ve hesaplamalı olarak daha pahalı gerektirirken, kelime tabanlı RNN LM'ler daha hızlı antrenman yapar ve daha tutarlı metinler oluşturur ve yine de bu üretilen metinler bile gerçek anlamda anlamlı olmaktan uzaktır .


1
Mükemmel yorum. Bazı problemler için, hesaplama sorunlarından bağımsız olarak birinin veya diğerinin daha anlamlı olabileceği de eklenmelidir. Örneğin, hedefiniz kelimeler arasındaki ilişkileri bulmak için kelime vektörlerini incelemekse veya bir kelime konusuna dayalı bir metin oluşturmak istiyorsanız, kelime tabanlı RNN ile gitmeniz gerekir. Ve tersine, muhtemelen char tabanlı RNN'nin gitmenin yolu olduğu problemler vardır. Ayrıca kullanıcının ne yapmaya çalıştığına da bağlıdır.
Ricardo Cruz

Son yorumunuzu anlamadım: "Char tabanlı RNN LM (...) söz konusu olduğunda mantıklı gelmiyor." Ben de Word tabanlı bir RNN mantıklı görmedim. Neden char tabanlı modelleri burada ayırdınız?
Ricardo Cruz

Belirsiz sonunu güncelledim.
mineraller

Mükemmel cevap! Gerçekten de, kolayca ilgili göreve, veri kümenizin boyutuna, dillere ve yapmak istediğiniz ön işleme seviyesine bağlı olduğunu kolayca ekleyebilir. Örneğin, daha zengin morfoloji dillerini işlemek ve kelime dağarcığı (OOV) kelimesini yönetmek için, kelime biçimlendirme, poz etiketleme ve önek, sonek vb. İçeren sözcük modeli de kullanabilirsiniz.
Claude COULOMBE

5

Dil kelimesi bir milyar kelime modelleme hakkında güzel bir yazı var . Aşağıda bazı alıntılar bulunmaktadır:

Kelime seviyesi modeller, karakter seviyesi modeller üzerinde önemli bir avantaja sahiptir.
Aşağıdaki sırayı örnek olarak alalım (Robert A. Heinlein'den bir alıntı):

İlerleme erken kalkanlar tarafından yapılmaz. Bir şey yapmanın daha kolay yollarını bulmaya çalışan tembel erkekler tarafından yapılır.

Tokenizasyondan sonra, kelime seviyesi modeli bu diziyi 22 jeton içeriyor olarak görebilir. Öte yandan, karakter seviyesi bu diziyi 102 jeton içerecek şekilde görecektir. Bu daha uzun dizi karakter modelinin görevini kelime modelinden daha zor hale getirir, çünkü daha fazla zaman adımında daha fazla jeton arasındaki bağımlılıkları hesaba katmalıdır. Karakter dili modelleri ile ilgili bir başka sorun da, sözdizimi, anlambilim vb. Ek olarak yazımları öğrenmeleri gerektiğidir. Her durumda, kelime dili modelleri genellikle karakter modellerinden daha düşük hataya sahip olacaktır.

Karakterin kelime dili modellerine göre ana avantajı, gerçekten küçük bir kelime dağarcığına sahip olmalarıdır. Örneğin, GBW veri kümesi 800.000 kelimeye kıyasla yaklaşık 800 karakter içerecektir (düşük frekanslı belirteçleri budadıktan sonra). Pratikte bu, karakter modellerinin kelime muadillerinden daha az bellek gerektireceği ve daha hızlı çıkarımlara sahip olacağı anlamına gelir. Diğer bir avantaj, ön işleme adımı olarak belirteç gerektirmemesidir.


1

Bence, karakter tabanlı RNN'ler de daha iyi performans gösterecek, ancak kelime tabanlı modellerin ve karakter tabanlı modellerin çok daha uzun bir süre için eğitmesi gerekenden çok daha fazla veriye ihtiyaç duyuyorlar. Ben daha çok deneme yanılma yanı sıra mevcut veri ve hesaplama gücü arasında bir denge olduğunu söyleyebilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.