Fanteziden vazgeçin ve Transformer'ı kucaklayın: Doğal dil işleme (CNN / RNN / TF) için üç ana özellik çıkarıcısının karşılaştırması (Bölüm 1)

Leifeng.com AI teknolojisi inceleme basını: Bu makalenin yazarı, öğretmen Zhang Junlin, Çin Çin Bilgi Toplumu'nun direktörü ve Çin Bilimler Akademisi Yazılım Enstitüsü'nden doktora derecesi. Şu anda Sina Weibo Yapay Zeka Laboratuvarı'nda kıdemli bir algoritma uzmanı. Bundan önce, Bay Zhang Junlin, Alibaba'da kıdemli teknik uzman olarak görev yaptı ve yeni teknik ekipten sorumluydu, ayrıca Baidu ve UFIDA'da teknik müdür ve teknik direktör olarak görev yaptı. Aynı zamanda, "This is Search Engine: Detailed Explanation of Core Technology" (bu kitap 12. Ulusal Mükemmel Kitap Ödülü'nü kazandı) ve "Big Data Daily Knowledge: Architecture and Algorithms" adlı teknik kitapların yazarıdır. Bu makale ilk olarak Zhihu'da (https://zhuanlan.zhihu.com/p/54743941) yayınlandı ve yazarın izni ile Leifeng.com AI Technology Review tarafından yeniden basıldı.

Eskiyi terk edip yeniyi karşılama anında herkes geçen yılın sonuçlarını gözden geçirmekle (ya da sobanın önünde gözyaşlarıyla saksıları saymakla) ve 2019 için planlar yapmakla meşgul. Elbette birçok arkadaşın icra ve iş verimliliği yüksek. Sadece 2018'in başında yapılan planı kopyalayın ve 2019 planı 3 saniyede tamamlanabilir. Tebrikler. Ekonomik açıdan, 2018 herkes için üzücü bir yıl olabilir, ancak doğal dil işleme alanı için 2018 kuşkusuz çok ödüllendirici bir yıl ve eğer birçok teknolojik ilerlemeden sadece birini seçebilirseniz Öyleyse, o zaman Bert modeli olmalıdır. Bert hakkında bir önceki makalede, "Kelime Gömmeden Bert Modeline Doğal Dil İşlemede Ön Eğitim Teknolojisinin Tarihi" (https://zhuanlan.zhihu.com/p/49271699), açık bir şekilde şunları beyan ettim: İki kişisel yargı: Birincisi, Bert'in iki aşamalı modunun (ön eğitim + İnce ayar) NLP alanındaki araştırma ve endüstriyel uygulamalar için popüler bir yöntem haline geleceği; ikincisi ise NLP alanındaki özellik çıkarıcılar açısından Transformer'in En yaygın özellik çıkarıcı olmak için yavaş yavaş RNN'yi değiştirin. Özellik çıkarıcının yargısı ile ilgili olarak, yukarıdaki makalenin uzunluğu sınırlıdır, ancak cazip bir açıklama yapmadan yalnızca bir sonuç verir. Makalemi okuyan herkes bilir ki, benim gelişigüzel sonuçlara varan bir kişi (ekleyen kişi) Bir sonraki cümle: "Rasgele kalkmazsınız ..." öğrenciler lütfen durun, lütfen devlet sırlarını açıklamayın, uyumaya devam edebilirsiniz, diğer öğrenciler gürültülü olsanız da önemli değil, haha), ama o zaman neden bu sonuca vardım? Bu makale yukarıdakilerin bir söylenti olarak kabul edilebilir ve daha önce verilen sonuçları desteklemek için daha ayrıntılı kanıtlar verecektir.

Mevcut NLP'deki üç ana özellik çıkarıcısının gelecekteki eğilimleri hakkında bir makro yargıya varırsam, benim düşüncem şu: RNN temelde tarihsel misyonunu tamamladı ve gelecekte tarihi aşamadan kademeli olarak çekilecektir; CNN uygun şekilde dönüştürülürse Gelecekte NLP alanında hala bir yer edinme umudu var.Dönüşümdeki başarı derecesi beklentileri aşarsa, hayatta kalmaya ve büyümeye devam etmek için ayrı bir parti olabilecek bir savaş ağası olacaktır. Elbette bu umudun harika olmadığını düşünüyorum. Song Xiaobao ile basketbol oynayabilirsiniz. Ağlama olasılığı oldukça benzer; ve Xinhuan Transformer açık bir şekilde yakında NLP'deki en yaygın özellik çıkarıcı olacak. Gelecekte yeni bir özellik çıkarıcı olup olmayacağına gelince, Tranformer tek atışla indirilecek ve ardından yeni özellik çıkarma dağ kralıyla değiştirilecek? Bu tür bir endişe aslında oldukça gerekli. Ne de olsa, Li Shangyin bin yıl önce bizi uyardı: "Jun'un lütfu doğuya doğru akan su gibidir ve iyiliğinizi kaybetmeniz ve endişelenmeniz gerekir. Çiçeklerin önsözünü yapma, serin esinti sarayın sadece batısında. Head. Elbette, bu şiir şu anda RNN için daha uygun görünüyor, çünkü gelecekte Transformer gözden düşecek? Bu sorunun cevabı temelde olumlu olabilir, bu anın 3 yıl sonra mı yoksa 1 yıl sonra mı gelmesinden başka bir şey değildir. Tabii ki, umarım bu makaleyi okuyan sen veya ben olursam, ileride bir gün sıradan görünümlü bir bayanı sokaktan çekip kozmetik cerrahi için Kore'ye göndereceğim, yanlışlıkla montaj hattı kozmetik endüstrisinin güzellik şablonundan saparak. Transformer'ı soğuk saraya kırmak için Tianxiang ülkesinin çarpıcı güzelliğini ortaya çıkarmak en iyisidir. Ancak mevcut durumda, dürbünle bile, görüş alanımızda bu niteliğe sahip bir adayın belirdiğini görmedik gibi görünüyor.

Biliyorum, eğer titiz bir Ar-Ge personeli iseniz, mevcut durum o kadar net olmadığında biraz keyfi görünen net sonuçlar vermemelisiniz, bu nedenle bu açıklama tartışmalara neden olabilir. Ama bu gerçekten benim şu anki gerçek düşüncelerim Neye dayalı yukarıdaki yargıya gelince? Bu kararın bir temeli var mı? Temel yeterli mi? Bu makaleyi okuduktan sonra kendi sonucuna varabileceğine inanıyorum.

Bundan bahsetmişken, genellikle daha az acı çeken ve diken koparmayı seven bazı öğrenciler şu soruyu soracaklar: NLP'nin tipik özellik çıkarıcılarının bu üçü olduğunu neden söylüyorsunuz? Yinelemeli NN gibi diğer iyi bilinen özellik çıkarıcıları nereye koyuyorsunuz? Evet, NLP'deki önemli gelişmeleri tanıtan pek çok makale Yinelemeli NN'yi NLP'de büyük bir gelişme olarak görüyor. Buna ek olarak, Bellek Ağı gibi diğerleri de var. Ayrıca bakanlık düzeyindeki bu onurlu muamelenin tadını çıkarın. Ancak bu iki teknoloji konusunda çok iyimser olmadım ve uzun yıllardır bu iki teknoloji konusunda iyimser olmadım, mevcut durum bu görüşü güçlendirdi. Ve size ücretsiz tavsiye ederim, bu iki teknolojiyle zaman kaybetmeye gerek yok, nedense, bu makalenin konusu ile hiçbir ilgisi olmadığı için, daha sonra detaylandırma fırsatım olacak.

Yukarıdaki sonuç, aşağıda resmen ispat aşamasına giriyoruz.

Savaş alanı keşfi: NLP görevlerinin özellikleri ve türleri

NLP görevinin özellikleri görüntüden çok farklıdır. Yukarıdaki şekil bir örnek göstermektedir. NLP'nin girdisi genellikle bir cümle veya bir makaledir, bu nedenle birkaç özelliği vardır: Birincisi, girdi, anlaşılması kolay, tek boyutlu doğrusal bir dizidir İkincisi, girdi değişken uzunluktadır, bazıları uzun ve bazıları kısadır ve bu aslında model işlemeye biraz sorun katacaktır; yine, kelimelerin veya cümleciklerin göreceli konum ilişkisi çok önemlidir ve iki kelimenin konumları birbiriyle değiştirilir. Tamamen farklı bir anlama yol açabilir. "Bana borçlu olduğun on milyonu geri ödemek zorunda değilsin" ve "Sana borçlu olduğum on milyonu geri ödemek zorunda değilsin" dediğimi duyarsanız, duyduğunuzda nasıl hissediyorsunuz? İkisi arasındaki farkı anlamak için; ayrıca cümledeki uzun mesafe özellikleri de anlambilimin anlaşılması için çok önemlidir.Örneğin, kırmızı simgeli kelimelere bakın.Özellik çıkarıcının uzun mesafe özelliklerini yakalayıp yakalayamayacağı da NLP görevlerini çözmek için çok kullanışlıdır. Önemli.

Lütfen yukarıdaki özellikleri hatırlayın: Bir özellik çıkarıcının problem etki alanının özelliklerine uyum sağlayıp sağlamadığı, bazen başarısını veya başarısızlığını belirler ve birçok model geliştirmesinin yönü, onu etki alanı probleminin özelliklerine daha uygun hale getirmektir. Bu nedenle, RNN, CNN ve Transformer gibi özellik çıkarıcıları tanıtmadan önce bu içerikleri açıklıyorum.

NLP, düzinelerce alt alanı içeren çok geniş bir alandır Teorik olarak, dil işleme ile ilgili olduğu sürece bu aralığa dahil edilebilir. Ancak çok sayıda NLP görevini soyutlarsak, çoğu NLP görevinin birkaç görev kategorisinde özetlenebileceğini görürüz. Görünüşte çok farklı olan iki görev, görevi çözmenin model noktası açısından tamamen aynı olabilir.

Genel olarak konuşursak, çoğu NLP problemi yukarıdaki şekilde gösterilen dört görev türünde sınıflandırılabilir: Birincisi, Çince kelime segmentasyonu, konuşma parçası etiketleme, adlandırılmış varlık tanıma ve anlamsal rol etiketleme gibi en tipik NLP görevi olan dizi etiketlemedir. Ve böylece bu problem kategorisine sınıflandırılabilir, özelliği cümledeki her kelimenin bağlama göre bir sınıflandırma kategorisi vermesini modelin gerektirmesidir. İkinci kategori, ortak metin sınıflandırmamız, duyarlılık hesaplama vb. Gibi sınıflandırma görevleri bu kategoriye ayrılabilir. Karakteristik özelliği, makale ne kadar uzun olursa olsun, genel olarak bir sınıflandırma kategorisi verilebilmesidir. Üçüncü görev türü, Entalasyon, QA, anlamsal yeniden yazma, doğal dil çıkarımı ve diğer görevler gibi cümle ilişkisi yargısıdır, tüm bu moddur, özelliği iki cümle verildiğinde, model iki cümlenin belirli bir anlamsal ilişkiye sahip olup olmadığını yargılar; Dördüncü kategori, makine çevirisi, metin özetleme, şiir yazma ve cümle kurma, resimlere bakma ve konuşma gibi üretken görevler bu kategoriye aittir. Karakteristik özelliği, metin içeriğini girdikten sonra, başka bir metin paragrafının bağımsız olarak oluşturulması gerektiğidir.

Bu farklı görevleri çözmek için, model perspektifinden en önemli olan nedir? Özellik çıkarıcının yeteneğidir. Özellikle derin öğrenmenin popülaritesinden sonra bu nokta daha da öne çıkıyor. Çünkü derin öğrenmenin en büyük avantajı "uçtan uca". Tabii ki bu, istemciden buluta anlamına gelmiyor. Bu, geçmişte geliştiricilerin tasarımda hangi özellikleri çıkaracaklarını düşünmek zorunda kaldıkları anlamına geliyor. Hiç endişelenmeyin, orijinal girdiyi iyi bir özellik çıkarıcıya atın ve yararlı özellikleri kendi başına çıkaracaktır.

Kıdemli bir hata oluşturucu ve algoritma mühendisi olarak, şimdi yapmanız gereken şey: iyi bir özellik çıkarıcı seçin, iyi bir özellik çıkarıcı seçin, iyi bir özellik çıkarıcı seçin ve çok sayıda eğitim verisi verin, Kayıp işlevini ayarlayın ve ona ne yapmasını istediğinizi söyleyin ... O zaman sonucu beklemek zorunda olmadığınızı düşünüyorsunuz, değil mi? O zaman tüm evrende gördüğüm en iyimser insansın ... Aslında ayarlama için çok zaman harcıyorsun ... Bu süreçten, eğer güçlü bir özellik çıkarıcımız varsa, genç algoritma mühendisinin bir ayar adamı olmasının kaçınılmaz olduğu görülebilir.AutoML (otomatik o) çağında, bir ayarlama olmak isteyebilirsiniz. Şövalyeye katılamıyorum, Li Si, "Sarı köpekle kurnaz tavşanı kovalamak için Cai Dongmen'e gitmek istiyorum, onu nasıl alabilirim!" Dedi. Öyleyse lütfen gecenin ortasında süper parametrelerinizi ikide ayarladığınız günlerinizin kıymetini bilin, çünkü sizin için iyi ve kötü haberler var.İyi haber şu ki, sizin için çok zor günler olmayabilir! Kötü haber şu: Sizin için bu kadar zor günler olmayabilir! ! ! Peki nasıl bir algoritma ustası olabilirsiniz? Daha güçlü bir özellik çıkarıcı tasarlarsınız.

Üç özellik çıkarıcı aşağıdaki kategorilere ayrılmıştır.

Savaş alanındaki emektar RNN: Lian Po yaşlı ve hala yemek yiyebilir

Sanırım herkes RNN modeline aşinadır, bu yüzden onu ayrıntılı olarak tanıtmayacağım. Model yapısı için yukarıdaki şekle bakın. Çekirdek, her bir girişin gizli bir katman düğümüne karşılık gelmesi ve gizli katman düğümleri arasında doğrusal bir sıra oluşturulması ve bilginin önden arkaya gizli katmanda olmasıdır. Yavaş yavaş geriye doğru geçin. Doğrudan konuşmak istediğim konuya gidelim.

RNN, NLP problemlerini çözmek için neden ana akım özellik çıkarıcı olabilir?

RNN'nin NLP dünyasına girişinden bu yana hızla göz alıcı bir yıldız modeli haline geldiğini ve çeşitli NLP görevlerinde yaygın olarak kullanıldığını biliyoruz. Bununla birlikte, orijinal RNN'nin de sorunları vardır.Önden arkaya sürekli olarak girdi bilgisi toplamak için doğrusal bir sıra yapısı benimser Ancak, bu doğrusal sıra yapısı, geri yayılma sırasında optimizasyonda zorluklar yaşar, çünkü geri yayılma yolu çok uzun olduğundan, kolaylıkla ciddi sorunlara yol açabilir. Gradyan kaybolur veya gradyan patlar. Bu sorunu çözmek için, LSTM ve GRU modelleri daha sonra tanıtıldı. Gradyan kaybolması sorununu hafifletmek için doğrudan geriye doğru ilerlemek için ara durum bilgisi eklenerek iyi sonuçlar elde edildi.Böylece LSTM ve GRU yakında RNN'nin standart modeli haline geldi. Aslında, görüntü alanında, HighwayNet / Resnet vb. Tarafından model devrimine yol açan orijinal atlama bağlantısı fikri, LSTM'nin gizli katman aktarım mekanizmasından ödünç alınmıştır. Sürekli optimizasyondan sonra, NLP daha sonra görüntü alanından ödünç aldı ve dikkat mekanizmasını tanıttı (bu iki işlemden, karşılıklı teknik referans ve farklı alanların tanıtımını görebilirsiniz), overlay ağı katmanları derinleştirir ve Encoder-Decoder çerçevesi tanıtıldı. Bu teknolojik gelişmeler, RNN'nin yeteneklerini ve uygulama etkilerini büyük ölçüde genişletmiştir. Aşağıdaki şekilde gösterilen model, NLP görevlerini çözmek için RNN kullanan çok tipik bir genel çerçeve teknolojisi hediye paketidir.Yeni teknoloji ortaya çıkmadan önce, bu teknoloji hediye paketini NLP'nin çeşitli alanlarında görebilirsiniz.

Yukarıdaki içerik kısaca RNN'nin NLP alanındaki genel teknolojik evrimini tanıtır. Öyleyse neden RNN popüler hale geldi ve NLP'de bu kadar hızlı hakim oldu? Ana neden, RNN'nin yapısının doğal olarak NLP problemini çözmek için uyarlanmış olmasıdır.NLP'nin girdisi genellikle belirsiz uzunlukta doğrusal bir dizi cümlesi ve RNN'nin yapısının kendisi, belirsiz uzunlukta girişi kabul edebilen ve bilgiyi önden arkaya doğrusal olarak iletebilen bir ağ yapısıdır. , Ve LSTM'de üç kapının tanıtılması da uzun mesafeli özellikleri yakalamak için çok etkilidir. Bu nedenle, RNN, NLP'nin doğrusal dizi uygulama senaryosu için özellikle uygundur ve bu, RNN'nin NLP dünyasında bu kadar popüler olmasının temel nedenidir.

Yeni çağda RNN'nin karşılaştığı iki ciddi sorun

RNN, NLP endüstrisinde uzun yıllardır popüler olmuştur (2014-2018?). 2018'den önce, State of Art'ın çeşitli alt alanlardaki sonuçlarının çoğu RNN tarafından elde edilmiştir. Ancak geçtiğimiz yıl, 3-5 yıldır birbirinin sözde lideri olan RNN lideri Qunlun'un statüsünün sarsıldığını görünce, İnternet ünlü modeli bir istisna değil gibi görünüyor.

Öyleyse neden bu? İki ana neden var.

İlk sebep, özel olarak modifiye edilmiş CNN modeli ve son zamanlarda özellikle popüler olan Transformer gibi bazı gelecek vaat eden yeni modellerin yükselişinde yatmaktadır.Bu gelecek vaat eden yıldızlar, özellikle Transformer, uygulama etkileri açısından RNN'ye kıyasla bariz avantajlara sahiptir. Esas neden budur, eğer yaşlı insanlar yeni gelenler yapamazlarsa, kendilerini yeniden icat etme ve devrim yapma yetenekleri yoksa, bilinçli veya istemsiz olarak tarih sahnesinden doğal olarak çekilirler, bu doğal bir kanun. Zayıf RNN yeteneklerinin spesifik kanıtlarına gelince, bu makalenin ilerleyen bölümlerinde bundan bahsedeceğim ve burada tartışmayacağım. Tabii ki, teknik personel arasındaki RNN kralcılarının boyutu hala oldukça büyük olmalı.O kadar popüler olan trafik yıldızlarından kolayca vazgeçmeyecekler, bu nedenle RNN'nin ömrünü uzatmaya çalışmak için bazı iyileştirme yöntemleri de düşünüyorlar veya düşünüyorlar. Bu yöntemlerin ne olduğuna ve etkili olup olmadığına gelince, bunları daha sonra tartışmaya devam edeceğiz.

RNN'nin gelecekteki popülaritesini ciddi şekilde engelleyen bir başka sorun da, RNN'nin sıra bağımlılık yapısının, büyük ölçüde paralel hesaplama için oldukça dostça olmamasıdır. Layman'ın terimleriyle, RNN'lerin verimli paralel hesaplama yeteneklerine sahip olması zordur.Bu ilk bakışta büyük bir sorun gibi görünmeyebilir, ancak aslında çok ciddi. Yalnızca RNN'yi değiştirerek bir makale göndermekten memnunsanız, o zaman bu gerçekten büyük bir sorun değildir, ancak endüstri teknolojiyi seçerse, çok daha hızlı bir model mevcutsa, bu kadar yavaş seçme olasılığı düşüktür. Modelin. Varoluş değerini destekleyecek pratik bir uygulaması olmayan bir model, beklentileri sorusu, beyincikte düşünmenin de cevabı alabileceği tahmin ediliyor.

Soru şu: RNN'nin paralel hesaplama gücü neden zayıf? Buna ne sebep oldu?

RNN'nin neden RNN olduğunu biliyoruz, onu diğer modellerden ayıran en tipik işaret: T anında gizli katman durumunun hesaplanması iki girişe bağlıdır, biri T zamanında Xt cümle giriş kelimesi, bu bir özellik değil , Tüm modeller bu orijinal girdiyi almalıdır; anahtar başka bir girdidir, T zamanında gizli katman durumu St ayrıca T-1 zamanında gizli katman durumu S (t-1) çıktısına bağlıdır, bu da RNN'nin özünü en iyi yansıtır. Karakteristik nokta, RNN'nin geçmiş bilgisinin daha sonra bu bilgi iletim kanalı yoluyla iletilmesidir Şematik için yukarıdaki şekle bakın. Öyleyse neden RNN'nin paralel hesaplama gücü iyi değil? Sorun burada yatıyor. T zamanındaki hesaplama, T-1 zamanındaki gizli katmanın hesaplama sonucuna ve T-1 zamanındaki hesaplama, T-2 zamanındaki gizli katmanın hesaplama sonucuna bağlı olduğundan ... Bu, sözde sıra bağımlılığını oluşturur. Yani, ikinci zaman adımı sonucu hesaplanmadan önce yalnızca ilk zaman adımı hesaplanabilir.Bu, RNN'nin bu bakış açısına göre paralel olarak hesaplama yapamamasına neden olur ve zaman adımını yalnızca kelime başına bir kelime dürüstçe takip edebilir. Kelime geriye gidiyor.

CNN ve Transformer'da bu tür bir sıra bağımlılığı sorunu yoktur, bu nedenle paralel hesaplama gücü her ikisi için de sorun değildir ve her zaman adımındaki işlemler paralel olarak birlikte hesaplanabilir.

Öyleyse, paralel hesaplama yeteneklerini geliştirmek için RNN değiştirilebilir mi? Eğer öyleyse, etkisi nedir? Bu konuyu aşağıda tartışalım.

RNN, paralel hesaplama yeteneklerine sahip olacak şekilde nasıl dönüştürülür?

Yukarıda bahsedildiği gibi, RNN'nin paralel hesaplama gerçekleştirememesinin temel noktası, T zamanında T zamanındaki hesaplama sonucunun, gizli katmanlar arasındaki tam olarak bağlı ağda yansıtılan bağımlılığında yatmaktadır. İşin özü burada olduğundan, sorunu çözmek istiyorsanız, bu bağlantıdan başlamalısınız. RNN'nin paralel hesaplama gücünü artırmak için bu bağlantıda ne yapılabilir? Bunun hakkında düşünebilirsin.

Aslında, size çok fazla seçenek kalmadı. Geliştirilecek iki ana fikriniz olabilir: biri, herhangi bir sürekli zaman adımı (T-1'den T'ye) arasındaki gizli bağlantıyı hala korumaktır; diğeri ise Ardışık zaman adımları arasındaki gizli katman bağlantısını kısmen kesin (T-1 ila T zamanı).

İlk önce ilk yönteme bakalım. Şimdi sorunumuz şuna dönüştü: herhangi bir sürekli zaman adımı (T-1'den T'ye kadar) arasındaki gizli bağlantıyı hala korumalıyız, ancak bu öncül altında, yapabilmeliyiz Paralel bilgi işlemle nasıl başa çıkılır? Çünkü ardışık iki zaman adımının gizli katman bağlantısı korunduğu sürece, bu, T zamanında gizli katman sonucunun hesaplanması gerektiği ve T-1 zamanındaki gizli katman sonucunun ilk olarak hesaplanması gerektiği anlamına gelir, bu da sıra bağımlılığı tuzağına düşmez. ? Doğru, ama neden farklı zaman adımlarındaki girişler arasında paralel olması gerekiyor? Hiç kimse RNN'nin paralel hesaplamasının farklı zaman adımlarında gerçekleşmesi gerektiğini söylemiyor, bir düşünün, gizli katman da birçok nöron içeriyor mu? Öyleyse gizli nöronlar arasında paralel olarak yapılabilir mi? Bunun ne anlama geldiğini anlamadıysanız, lütfen aşağıdaki resme bakın.

Yukarıdaki şekil sadece her bir zaman adımının gizli katman düğümlerini gösterir.Her zaman adımının gizli katmanı 3 nöron içerir. Bu, RNN'nin gizli katman düğümlerine yukarıdan aşağıya bakan bir üstten görünümdür. Ek olarak, iki ardışık zaman adımının gizli katmanındaki nöronlar arasında hala bağlantılar vardır.Yukarıdaki şekil basitlik amacıyla gösterilmemiştir. Şimdi anlamalısınız. 3 gizli katman nöronu olduğunu varsayarsak, 3 paralel hesaplama oluşturabiliriz (kırmızı ok üç yola ayrılmıştır) ve her yolda hala sekans bağımlılığı sorunu vardır, yani her yol Hala seri. Büyük fikir net olmalı, değil mi? Bununla birlikte, RNN'nin yapısını anlayan öğrenciler, hala bir problemin kaldığını göreceklerdir: Gizli katman nöronları arasındaki bağlantılar tamamen bağlıdır, yani T zamanında gizli bir katman nöronu, T-1 zamanında tüm gizli katman nöronlarına bağlanır. Eğer durum böyleyse, nöronlar arasında paralel hesaplamalar yapmak imkansızdır, nedenini düşünebilirsiniz, bu basit.Bunu çözme yeteneğiniz olduğunu varsayıyorum. Peki ne yapmalı? Çok basit, T ve T-1 zamanındaki gizli katman nöronları arasındaki bağlantı ilişkisinin, önceki tam bağlantıdan karşılık gelen pozisyondaki nörona (yukarıdaki resimde kırmızı okla ayrılmış aynı sıradaki nöron) değiştirilmesi gerekir. Arasında) bağlıdır, ancak diğer nöronlarla bağlantılı değildir. Bu şekilde bu problem çözülebilir ve farklı yollardaki gizli nöronlar arasında paralel hesaplamalar yapılabilir.

RNN'nin paralel hesaplama yeteneğini dönüştürmenin ilk yöntemi fikri kabaca yukarıda açıklandığı gibidir Bu yöntemin temsilcisi, "Yüksek Derecede Paralelleştirilebilir Tekrarlama İçin Basit Tekrarlayan Birimler" makalesinde önerilen SRU yöntemidir. En önemli iyileştirmesi, gizli katmanları birleştirmektir. Nöron bağımlılığı, tamamen bağlı durumdan Hadamard ürününe değiştirilir, böylece T zamanındaki gizli katman birimi, orijinal olarak T-1 zamanında tüm gizli katman birimlerine bağlıdır, ancak T-1 zamanında yalnızca karşılık gelen birime bağlı olacak şekilde değiştirilir, böylece gizlenebilir Katman birimleri arasında paralel hesaplamalar yapılır, ancak bilgi toplama hala zaman serileri halinde gerçekleştirilir. Dolayısıyla paralellik, farklı zaman adımları arasında değil, gizli birimler arasında gerçekleşir.

Bu aslında zekice bir yöntemdir, ancak sorunu paralellik derecesinin üst sınırının sınırlı olmasıdır.Paralellik derecesi gizli katmandaki nöronların sayısına bağlıdır ve genellikle bu değer çok büyük değildir ve paralelliği artırmak artık mümkün değildir. Bu çok mümkün. Ek olarak, her paralel devrenin sıralı hesaplamaya ihtiyacı vardır, bu da genel hızı da yavaşlatacaktır. SRU'nun test hızı şudur: metin sınıflandırmasının hızı orijinal CNN'ninkine eşdeğerdir (Kim 2014) Makale, CNN'in paralel bir eğitim yöntemini benimseyip benimsemediğini söylememektedir. Diğerleri sadece karmaşık görevler, okuduğunu anlama ve MT görevleri üzerinde etki değerlendirmeleri yaptılar ve hızı CNN ile karşılaştırmadı. Bunun bir nedeni var, çünkü karmaşık görevler genellikle derin ağlar gerektirir ve diğerleri tahmin yürütmez.

İkinci tipik iyileştirme fikri şudur: Farklı zaman adımlarında girdiler arasında paralel hesaplamalar yapabilmek için, gizli katmanlar arasındaki bağlantıyı kesmenin tek bir yolu vardır, ancak hepsi değil, çünkü bu temelde Birleşik özellikler yakalanamaz, bu nedenle seçilebilecek tek strateji, her 2 zaman adımında bir kesinti gibi kısmi kesintidir, ancak biraz daha uzak olan özellikler nasıl yakalanır? Yalnızca katman derinliğini derinleştirebilir ve katman derinliği aracılığıyla uzun mesafeli özellikler arasında bağlantı kurabilir. Temsili bir model, yukarıdaki şekilde gösterilen Dilimlenmiş RNN'dir. Bu modeli ilk gördüğümde, yardım edemedim ama bir halter gibi güldüm. Kendimi tutamadım ama öne çıktım ve ona merhaba dedim: Merhaba, CNN modeli. Sert bir adam olarak bir gün onu giymenizi beklemiyordum. RNN gibi giyinmiş pembe elbise önümde çıktı haha. CNN modelini bilen öğrenciler yukarıdaki cümlenimi gördüklerinde gülümseyecekler: Bu CNN'in basitleştirilmiş bir versiyonu değil mi? CNN'i bilmeyen öğrenciler, CNN bölümünü daha sonra okuduktan sonra geriye dönüp bakıp bunun anlamı olup olmadığına bakmalarını önerir.

Bu dönüşümden sonra RNN'nin hız iyileştirmesine ne dersiniz? Makale bir hız karşılaştırma deneyi vermektedir Özet olarak, SRNN hızı GRU modelinden 5 ila 15 kat daha hızlıdır.Etki iyidir, ancak karşılaştırma modeli DC-CNN model hızı ile karşılaştırıldığında, yine de ortalama olarak CNN modelinden yaklaşık 3 kat daha yavaştır. Bu normaldir, ancak biraz fazla bunaltıcıdır. Bu normaldir çünkü başlangıçta RNN'yi CNN benzeri bir yapıya dönüştürüyordu ve parçada RNN dizi modeli hala kullanılıyor, bu nedenle kaçınılmaz olarak yavaşlayacak ve CNN'den daha yavaş olması normaldir. . "Mantıksız" demek şu anlama gelir: Temelde CNN olduğu ve hızı CNN'den daha yavaş olduğu için, bu değişikliğin önemi nedir? Neden doğrudan CNN kullanmıyorsunuz? değil mi? Daha az yiyecekten muzdarip olduğu için davranmayı seven bir önceki sınıf arkadaşı tekrar söyleyecektir: Belki de etkisi özellikle iyidir. Peki, bu yapının etki mekanizmasına bakılırsa, pek olası değil. Makalenin deneysel kısmının bu noktayı kanıtladığını söylediniz, deneysel kısımdaki karşılaştırmalı deneyin yeterli olmadığını düşünüyorum.Karşılaştırmak için DC-CNN dışında başka CNN modellerini eklemeniz gerekiyor. Tabii ki, bu tamamen kişisel bir görüş, ciddiye alma, çünkü konuşurken sık sık başımı sallıyorum Bu zamanda, insanlar bana genellikle şaşkınlıkla geri bildirimde bulunacaklar: Konuşurken neden su sesini duyuyorum?

Yukarıda, RNN'lerin paralel hesaplama yeteneklerini geliştirmek için iki ana fikir listelenmiştir: Şahsen, RNN'lerin paralel hesaplama yetenekleri konusunda kötümserim, çünkü esas olarak RNN'lerin temel özellikleri çok az seçeneğimiz olduğunu belirler. Gizli katman bağlantısını kesmeyi veya kesmemeyi seçme sorunundan başka bir şey değildir. Kesmeyi seçerseniz, yukarıdaki sorunlarla karşılaşacaksınız, artık bir RNN modeli olmayabileceğini göreceksiniz.Bir RNN gibi görünmesi için, RNN yapısı hala kesintiye uğramış segmentte benimseniyor, bu da şüphesiz hızı yavaşlatacak. Yani bu bir ikilemdir.Başka bir modele geçmek yerine, kesintiye uğratmamayı seçersek, sadece gizli nöronlar arasında paralellik yapabiliriz gibi görünüyor.Bunun dezavantajı, paralelliğin üst sınırının çok yüksek olmasıdır. Düşük; Öte yandan, içinde hala var olan sıra bağımlılığı tahmini hala bir problemdir. Karamsarlığın nedeni budur, çünkü büyük bir umut yoktur.

General CNN: Battlefield PlayerUnknown's Battlegrounds'ı Canlandırmak

Bir yıldan daha uzun bir süre önce, CNN, RNN dışında doğal dil işlemede en yaygın derin öğrenme modeliydi. Burada, RNN'den daha ayrıntılı olacak olan CNN özellik çıkarıcısının tanıtımı, esas olarak herkesin buna aşinalığının RNN olmayabilir. Çok yüksek.

NLP'de erken nostaljik CNN modeli

CNN'i NLP'ye ilk getiren, Kim'in 2014'teki çalışmasıydı. Kağıt ve ağ yapısı için yukarıdaki şekle bakın. Genel olarak, giriş kelimesi veya kelimesi Kelime Gömme'de ifade edilir, böylece orijinal tek boyutlu metin bilgisi girişi iki boyutlu bir giriş yapısına dönüştürülür. X girişinin n karakter içerdiğini ve her karakterin Kelime Gömmesinin Uzunluk d ise, girdi iki boyutlu bir d * n vektörüdür.

Evrişimli katman, esasen bir özellik çıkarma katmanıdır ve hiperparametre F, evrişimli katmanın kaç evrişim çekirdeği (Filtre) içerdiğini belirtmek için ayarlanabilir. Bir Filtre için, giriş matrisinin ilk kelimesinden başlayıp geriye doğru hareket eden d * k boyutunda hareketli bir pencere olması düşünülebilir, burada k, Filtre tarafından belirtilen pencere boyutudur ve d, Kelime Gömme uzunluğudur. Belirli bir andaki bir pencere için, sinir ağının doğrusal olmayan dönüşümü yoluyla, bu penceredeki giriş değeri belirli bir öz değere dönüştürülür.Pencere geriye doğru hareket etmeye devam ettikçe, bu Filtreye karşılık gelen özdeğer sürekli olarak üretilerek filtre oluşturulur. Özellik vektörü. Bu, evrişim çekirdeği ile öznitelikleri çıkarma işlemidir. Evrişimli katmandaki her Filtre, farklı bir özellik dizisi oluşturmak için bu şekilde çalışır. Havuzlama katmanı, nihai özellikleri oluşturmak için Filtre unsurlarında boyut azaltma işlemleri gerçekleştirir. Genel olarak, tamamen bağlı katman sinir ağı, son sınıflandırma sürecini oluşturmak için Havuzlama katmanından sonra bağlanır.

Bu, ilk olarak NLP alanında uygulanan CNN modelinin çalışma mekanizmasıdır.NLP'de cümle sınıflandırma görevini çözmek için kullanılmış ve çok kısa görünmüştür ve bundan sonra bu temelde geliştirilmiş modeller arka arkaya ortaya çıkmıştır. Bu nostaljik CNN modelleri aynı zamanda bazı görevlerde o zamanki nostaljik RNN modellerine eşdeğer olabilir, bu nedenle NLP'nin çeşitli alanlarında çılgınca büyüyebilirler, ancak daha fazla NLP alanında, RNN modeli tarafından depresyonun erken aşamasına kadar bastırılırlar. Utanç verici durum. Öyleyse, görüntü alanında yenilmez olan CNN, NLP sitesine koştuğunda, görüntü alanında yaşlı Jiangdong'u görmek için neden RNN gibi yılan tarafından bastırılıyor? Bu, CNN'in bu versiyonunun hala birçok sorunu olduğunu gösteriyor.Aslında en temel püf noktası, eski devrimin yeni sorunlarla karşılaşmış olmasıdır.Başlıca nedeni, yeni ortamın yeni ortamın özelliklerinde hedefe yönelik değişiklikler yapmaması, dolayısıyla yetersizlik sorunu ile karşı karşıya kalmasıdır. .

CNN, RNN'nin çeşitli NLP görev ortamlarında hayatta kalabilir mi? Cevap açıklanmak üzere.

CNN'in Evrimi: Doğal Seleksiyonun Kolezyumu

Önce CNN'in nostaljik versiyonunun sorunlarına bir göz atalım ve sonra NLP uzmanlarımızın CNN'i nasıl dönüştürdüğünü görelim, şimdiye kadar CNN'nin iyi görünen modern bir versiyonu gibi görünüyor.

Her şeyden önce net olmalıyız: CNN tarafından hangi özellikler yakalanıyor? CNN evrişim katmanının yukarıda bahsedilen nostaljik versiyonundan, anahtarın evrişim çekirdeğinin kapladığı kayan pencerede olduğunu muhtemelen görebilirsiniz.CNN'nin yakalayabileceği özellikler temelde bu kayan pencerede yansıtılmaktadır. K boyutundaki kayan pencere cümlenin sözcüklerini ve dalgaları nazikçe geçer, bu yüzden neyi yakalar? Aslında, sözcüğün k-gram parça bilgisini yakalar ve bu k-gram parçaları CNN'dir. Yakalanan özellikler için k boyutu, özelliklerin ne kadar uzakta yakalanabileceğini belirler.

Bunu söyledikten sonra, Kim'in CNN versiyonunun ilk problemine bakalım: sadece bir evrişimli katmana sahip. Yüzeyde yetersiz derinlik sorunu gibi görünüyor, değil mi? Size geri soracağım: CNN neden derin olsun? Aslında derinlik kazanmak bir amaç değil bir araçtır. Tek bir evrişimli katmanla ilgili sorun, uzun mesafeli özellikler için tek katmanlı bir CNN'nin onu yakalayamamasıdır.Kayan pencere k en fazla 2 ise ve 5 mesafe ile uzun mesafe özelliği varsa, o zaman kaç hacim açık olursa olsun Ürün çekirdeği girişi 5 mesafeyle kapatamaz, bu nedenle uzun mesafeli özellikleri yakalayamaz.

Peki, uzun mesafeli özellikleri nasıl yakalayabiliriz? İki tipik iyileştirme yöntemi vardır: Birincisi, hala tek bir evrişimli katman kullandığımızı ve kayan pencere boyutunun k 3 olarak kabul edildiğini, yani yalnızca üç giriş kelimesi alındığını varsaymaktır, ancak 5 mesafeli özellikleri yakalamak istiyoruz. Bunu nasıl yapabiliriz? ? Açıktır ki, evrişim çekirdek penceresi hala sürekli bir alanı kaplarsa, bu kesinlikle görevi tamamlayamayacaktır. Hatırlatma: Hiç Jump oynadın mı, değil mi? Benzer bir strateji benimsenebilir mi? Evet, zıplayıp saklanabilirsin, değil mi? Bu, Dilate evrişimin temel fikridir ve gerçekten de bir çözümdür.

İkinci yöntem, derinliği yapmaktır. Kayar pencere boyutunun k 3 olduğu varsayılarak, kayan pencere boyutunun da 3 olduğu, ancak ikinci pencere katmanının birinci pencere katmanının çıktı özelliklerini kapsadığı varsayılarak, kayan pencere boyutunun k 3 olduğu varsayılarak birinci katmanı, bu nedenle Aslında giriş mesafesini 5'e kadar kapsayabilir. Evrişim katmanını üst üste yığmaya devam ederseniz, girdiyi kapatmak için evrişim çekirdeğinin uzunluğunu artırmaya devam edebilirsiniz.

Yukarıdakiler, CNN'nin uzun mesafe özelliği yakalama yeteneklerine iki tipik çözümdür. Genişletilmiş CNN biraz karmaşıktır ve evrişimli katmanları üst üste bindirirken hiperparametrelerin nasıl ayarlanacağına dair bazı bilgiler vardır. Sürekli atlamalar bazı özellik kombinasyonlarını gözden kaçırabileceğinden, dikkatlice ayarlanması gerekir Parametre eşleştirme, tüm olası kombinasyonların kapsanmasını sağlar. Nispeten konuşursak, CNN'yi derinleştirmek ana akım kalkınma yönüdür. Yukarıdaki nedenin anlaşılması kolaydır Aslında, CNN'in gelişinden bu yana insanlar CNN'in derinliğini elde etmek için çeşitli yöntemler denediler, ancak gerçek çoğu zaman acımasızdır.CNN'nin NLP'sindeki problem derin olmamasıdır. 3 katmanlı evrişimli katman yapılamaz ve daha derin ağ, görev etkisine yardımcı olmaz (lütfen karşı örnek olarak CharCNN kullanmayın. Daha sonraki çalışmalar, kelimeler kullanan 2 katmanlı CNN'nin CharCNN'den daha etkili olduğunu gösterdi). Şu anda, bu soruna derin ağ parametresi optimizasyonunun yetersiz araçlarından kaynaklandığı görülüyor, katman derinliği işe yaramaz. Daha sonra Resnet gibi görüntü alanında yeni teknolojilerin ortaya çıkmasından sonra, insanların CNN ağının derinliğini yavaşça inşa etmek için Skip Connection ve çeşitli Norm ve diğer parametre optimizasyon teknolojilerini tanıtmayı düşünmesi doğaldır.

Yukarıdakiler, CNN'in Kim versiyonunun ilk problemi, uzun mesafeli özellikleri yakalayamama problemi ve daha sonra araştırmacılar tarafından önerilen ana çözümdür. CNN'in Kim versiyonuna dönüp baktığımızda, başka bir sorun daha var, yani Max Pooling katmanı, bu aslında CNN'in giriş cümlesindeki kelimelerin konum bilgilerini koruyup koruyamayacağıyla ilgili. Öncelikle bir soru sormak istiyorum: RNN doğrusal bir dizi yapısı olduğu için, konum bilgisini doğal olarak kodlar; o zaman CNN, orijinal girdinin göreceli konum bilgisini tutabilir mi? Daha önce konum bilgilerinin NLP sorunları için çok yararlı olduğunu söylemiştik. Aslında, CNN evrişim çekirdeği özellikler arasındaki göreceli konumu koruyabilir. Nedeni çok basittir.Kayan pencere soldan sağa kayar ve yakalanan özellikler de bu sıraya göre düzenlenmiştir, bu nedenle göreli konum bilgilerini yapıya zaten kaydetmiştir. . Ancak Havuzlama katmanı, evrişimli katmana hemen bağlanırsa, Max Pooling'in işlem mantığı: Evrişim çekirdeğinden elde edilen özellik vektöründen yalnızca en güçlü özellik seçilir ve tutulur, dolayısıyla Havuzlama katmanına gelince, konum bilgisi Atın, bu aslında NLP'deki bir bilgi kaybıdır. Bu nedenle, NLP alanında, CNN'nin mevcut gelişme eğilimlerinden biri, Havuzlama katmanını terk etmek ve ağ derinliğini kaplamak için tamamen evrişimli katmana güvenmektir.Bunun arkasında bir neden var (tabii ki görüntü alanı da bu eğilimdir).

Yukarıdaki şekil, NLP alanında kullanılabilen modern bir CNN'nin ana yapısını göstermektedir. Bu genellikle derinliği üst üste bindirmek için bir 1-D evrişimli katmandır ve optimizasyona yardımcı olmak için Atlama Bağlantısı kullanılır. Dilate CNN de eklenebilir. Örneğin, ConvS2S'nin ana gövdesi yukarıdaki şekilde gösterilen yapıdır.Kodlayıcı 15 evrişimli katman içerir, evrişim çekirdek boyutu = 3 ve kapsama girdi uzunluğu 25'tir. Elbette ConvS2S için, evrişim çekirdeğine GLU kapılı doğrusal olmayan fonksiyonun eklenmesi de önemli bir yardımdır. Alan sınırlamaları nedeniyle burada genişletmeyeceğim. GLU, NLP'deki CNN modelinin önemli bir bileşeni gibi görünüyor ve ustalaşmaya değer. Diğer bir örnek TCN'dir (Paper: An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling), birkaç teknolojiyi entegre eder: Tek bir evrişimli katmanın giriş kapsama uzunluğunu genişletmek için Genişletilmiş CNN kullanarak, tam evrişimli katman istifleme derinliğini kullanarak Bağlantıyı atla destekli optimizasyon ve ağ yapısını T zaman adımından sonra verilere görünmez hale getirmek için Casual CNN'i tanıttı. Bununla birlikte, TCN'nin deneylerinin iki bariz sorunu vardır: Bir problem, görevin dil modelleri dışında tipik bir NLP görevi değil, sentetik bir veri görevi olmasıdır, bu nedenle makalenin sonucunun doğrudan NLP alanı için uygun olduğunu söylemek zordur; başka bir nokta, kullanır Etkileri karşılaştırmak için kullanılan karşılaştırma yöntemi o sırada iyi çalışan modelleri kullanmıyordu ve karşılaştırma ölçütü düşüktü. Bu nedenle, TCN'nin model etkisi yeterince ikna edici değildir. Aslında, getirmesi gereken unsurlar temelde tanıtıldı ve deney yeterince inandırıcı değil, GLU eksikliğine çarptığını düşünüyorum.

Ek olarak, kısaca CNN'in konum kodlama problemi ve paralel hesaplama yeteneklerinden bahsedin. Yukarıda belirtildiği gibi, CNN'nin evrişimli katmanı gerçekte göreceli konum bilgilerini tutar. Modeli tasarlarken ellerinizi kullanmadığınız ve havuz katmanını orta katmana yerleştirmediğiniz sürece, sorun büyük değildir ve giriş kısmında konum özel olarak ayarlanmamıştır. Kodlama iyidir. Ancak, ConvS2S gibi giriş kısmındaki her kelimeye gömülü bir konum ekleyebilir ve bir kelime girişi oluşturmak için kelimenin yerleştirme konumunu ve kelime vektörü yerleştirmeyi üst üste koyabilirsiniz.Bu da mümkündür ve aynı zamanda normal bir uygulamadır.

CNN'in paralel hesaplama kabiliyetine gelince, çok güçlü ve aslında anlaşılması çok kolay. Tek katmanlı bir evrişim katmanı düşünüyoruz.Birincisi, belirli bir evrişim çekirdeği için, her bir kayan pencerenin konumu arasında bir bağımlılık yoktur, bu nedenle paralel olarak hesaplanabilir; ayrıca, farklı evrişim çekirdekleri arasında karşılıklı bir etki yoktur, bu nedenle Paralel olarak da hesaplanabilir. CNN'in paralelliği çok özgür ve çok yüksek, bu da CNN'in çok iyi bir avantajı.

Yukarıdaki içerik, CNN'in nostaljik versiyonunun NLP Shura Alanında kendi kendine evrim yoluyla adım adım nasıl hayatta kaldığını açıklıyor. CNN'in evrim yönü, bin kelime ve bir cümle ile özetlenirse, şu: CNN'in derinliğini yapmak için her yolu deneyin, derinlik arttıkça, görünüşte alakasız birçok problem çözülecektir. Ülkemizin son 40 yılda ana teması ekonomik kalkınma olduğu gibi, ekonomi iyi gelişirse pek çok sorun sorun olmayacaktır. Son yıllarda herkesin çeşitli açılardan zor hissetmesinin nedeni ekonominin iyi işlememesi, bu nedenle pek çok sorunun ekonomik sürüşle çözülememesi, bu nedenle görünüşte çeşitli zorlukların ortaya çıkması bir gerçek.

Peki, bu kadar çok şeyi tanıttıktan sonra, CNN'in modern versiyonu ne kadar etkili? RNN ve Transforme ile nasıl karşılaştırılır? Merak etmeyin, bu konuyu daha sonra özellikle tartışacağız.

White Knight Transformer: Dünyanın Kahramanları Sahnede

Transformer, Google tarafından 2017'de makine çevirisi görevleriyle ilgili "İhtiyacınız olan tek şey dikkat" başlıklı makalede önerildi ve dikkate değer bir tepki uyandırdı. NLP araştırma ve geliştirme ile uğraşan her meslektaşım Transformer'ı iyice anlamalı, önemi şüphesiz, özellikle makalemi okuduktan sonra, aciliyet duygunuzun daha acil olacağına inanıyorum, ben böyle bir insanım Kaygı yaratmada iyi olan bir uzman. Ancak, burada buna odaklanmayacağım.Transformer ile başlamak istiyorsanız, aşağıdaki üç makaleye başvurabilirsiniz: Biri, Jay Alammar'ın Transformer'ı görsel olarak tanıtan The Illustrated Transformer blog yazısı. Tüm mekanizmayı anlamak çok kolay.Bu makaleyle başlamanız önerilir. Çince çeviri sürümü (https://zhuanlan.zhihu.com/p/54356280); ikincisi Calvo'nun blogu: Dissecting BERT Part 1: The Encoder (https://medium.com/dissecting-bert/dissecting- bert-part-1-d3c3d495cdb3), Bert ayrıştırdığı söylense de, Bert's Encoder Transformer olduğu için aslında Transformer'ı ayrıştırıyor.İçinde verilen örnekler çok iyi; o zaman daha ileri gidebilirsiniz, Harvard Üniversitesi NLP araştırmasına bakın Grup tarafından yazılan "Açıklamalı Transformatör." (Http://nlp.seas.harvard.edu/2018/04/03/attention.html), kod ilkesi iki yönlüdür ve açıklama çok açıktır.

Aşağıda sadece bu makalenin konusu ile ilgili içerikten bahsedilmektedir.

Burada açıklığa kavuşturmak için, bu makalede bahsedilen Transformer özellik çıkarıcısı, orijinal belgenin bahsettiği şey değildir. "Tek ihtiyacınız olan dikkat" belgesinde bahsedilen Transformatörün, tüm Encoder-Decoder çerçevesine atıfta bulunduğunu biliyoruz ve ben özellik çıkarıcıların bakış açısından konuşuyorum.Kağıtın Kodlayıcı kısmı olarak basitçe anlayabilirsiniz. Kodlayıcı kısmının amacı görece basit olduğu için, Kod Çözücü kısmı görece daha fazla işleve sahipken orijinal cümleden öznitelikler çıkarmaktır.Özellik çıkarma işlevine ek olarak, dikkat mekanizması ile ifade edilen dil modeli işlevi ve çeviri modeli işlevini de içerir. Bu nedenle, kavramın sonraki anlayışında karışıklığı önlemek için lütfen buraya dikkat edin.

Transformatörün Kodlayıcı kısmı (yukarıdaki resimde kodlayıcı olarak işaretlenen modüller değil, kırmızı kutudaki tümü. Yukarıdaki resim Resimli Transformatördendir. Jay Alammar, geleneksel adla uyumlu olmayan her bloğu Kodlayıcıyı çağırır). Birkaç özdeş Transformer Bloğu yığını. Bu Transformer Bloğu aslında Transformer'in en kritik parçasıdır ve temel formül burada. Peki neye benziyor?

Yukarıdaki resme bakın. Bir Android robotu gibi sevimli görünüyor, değil mi? Burada, Transformer'in orijinal makalesi her zaman Öz Dikkat üzerine odaklanmış olsa da, şu anda Transformer efektini daha iyi hale getirebilecek sadece Öz dikkat değil, Çok başlı öz ilgi, Atlama bağlantısı da dahil olmak üzere bu Bloktaki tüm unsurların vurgulanması gerekir. LayerNorm ve FF birlikte çalışıyor. Neden öyle diyorsun? Bunu daha sonra göreceksiniz.

NLP görevlerinin özelliklerine dayanarak, Transformer'in karşılık gelen çözümlerinden bahsedelim. Her şeyden önce, doğal dil genellikle değişken uzunlukta bir cümledir, peki bu değişken uzunluk problemi nasıl çözülür? Transformatörün yaklaşımı CNN'ye benzer.Genel olarak maksimum giriş uzunluğu belirlenir.Cümle o kadar uzun değilse, tüm model girişi en azından sabit uzunlukta görünecek şekilde Dolgu ile doldurulur. Ek olarak, NLP cümlelerindeki sözcükler arasındaki göreceli konum pek çok bilgi içerir Yukarıda bahsedildiği gibi, RNN'nin yapısı doğrusal bir dizi olduğundan, konum bilgisini modele doğal olarak kodlayacaktır ve CNN'nin evrişimli katmanı aslında konumu korur. Nispeten bilgilendirici, bu yüzden hiçbir şey yapmamak büyük bir sorun değil. Ancak Transformer için, giriş cümlesindeki sözcükler arasındaki göreceli konum bilgilerini koruyabilmek için bir şeyler yapılmalıdır. Neden bir şey yapmak zorunda? Giriş ağının ilk katmanı Çok başlı öz dikkat katmanı olduğu için, Öz dikkatin mevcut giriş sözcüğünü ve cümledeki herhangi bir sözcüğün bir ilişkisi olacağını ve daha sonra bunu bir gömme vektörüne entegre edeceğini biliyoruz, ancak tüm bilgiler gömüldüğünde, konum Bilgiler kodlanmamıştır. Bu nedenle, Transformer RNN veya CNN gibi değildir.Girişteki Positionon bilgilerini açıkça kodlamalıdır.Transformer, pozisyonu kodlamak için bir pozisyon fonksiyonu kullanırken, Bert gibi modeller her kelimeye, kelime gömmeye karşılık gelen bir Pozisyon gömme verir. Konum gömme, yukarıda bahsedilen ConvS2S yaklaşımına benzer şekilde kelime girişi gömme oluşturmak için eklenir. NLP cümlelerindeki uzun mesafeli bağımlı özellikler problemi ile ilgili olarak, Öz dikkat bu sorunu doğal olarak çözebilir, çünkü bilgiyi bütünleştirirken cümledeki mevcut kelime ve herhangi bir kelime birbirine bağlanır, bu yüzden bu tek adımda yapılır. . Gizli bir katman düğüm dizisi aracılığıyla geri iletilmesi gereken RNN ve uzun mesafe özelliklerini yakalamak için ağ derinliğini artırması gereken CNN'den farklı olarak, Transformer çözümü bu noktada nispeten basit ve sezgiseldir. Bunların, Transformer'in NLP görevlerinin çeşitli kilit noktalarını nasıl çözdüğünü ayrı ayrı tanıtmak olduğunu söyledi.

Transformer'ın iki versiyonu vardır: Transformer base ve Transformer Big. İkisinin yapısı aslında aynıdır.Başlıca fark, dahil edilen Trafo Bloklarının sayısının farklı olmasıdır.Transformer tabanı 12 Blok yığını içerirken, Büyük Transformatör 24 Blok içerecek şekilde ikiye katlanır. Şüphesiz, Transformer Big, Transformer tabanına kıyasla ağın derinliğini, parametre miktarını ve hesaplama miktarını iki katına çıkarmıştır, bu nedenle nispeten ağır bir modeldir, ancak etkisi de en iyisidir.

Tıklamak Orijinali okuyun , Görüntüle [Kağıt Notları] BERT: Dil Anlamak için Derin Çift Yönlü Transformatörlerin Ön Eğitimi (BERT modelini anlama)

Dongfeng Qichen yeni araba planı: Yeni T70 / T 90 yıl içinde piyasaya sürülecek
önceki
Kugou Music'in APP pazarlama savaşına girmesi hakkında ne düşünüyorsunuz?
Sonraki
Sıcak nokta Sık sık motor arızalarıyla ilgili şikayetler, Dongfeng Peugeot'nun iyileşmesi başka bir engelle karşılaşıyor
G-Dragon bu sefer ne zaman kalkacak? % 99 x SEDITIONARIES açıklandı!
Aynı X kişilik grubu olan Lei Jiayin neden "her gün oynamayı seviyor", bu kadar tatlı
Tarım + Turizm + Bilişim + Nesnelerin İnterneti = Akıllı Tarım Turizmi
Yeni BMW 5 Serisi, fiyat eşiğini düşürerek 525Li modellerini zorlayacak
Netizenler tarafından saldırıya uğrayan ve intihal edilen Tang Qi, neden güvenle hukuki bir değerlendirme yaptı?
JD Xin Lijun: JD Home, çevrimiçi ve çevrimdışı entegrasyon çağına girdi
Yeni küçük araba Kaiyi E3 konfigürasyon pozu: hayattan şüphe duymanıza neden olacak kadar zengin
İki boyutlu insan-bilgisayar aşk üçgeni, "My Girlfriend's Boyfriend" yerli dizilere aşık olmanızı sağlar
Love Crazy X kolayca geldi mi? Ama bu araba yerel bir zorba olsa bile bir yıl beklemek zorunda
Marka Yeni motor fabrikası açıldı, Chery Jaguar Land Rover'ın yerelleştirme stratejisi yavaş yavaş ortaya çıktı
Bu ISUZU sertifikalı ve modifiye edilmiş kutupsal manyetik, ülkedeki tek manyetiktir!
To Top