Ağustos'tan Aralık 2018'e kadar Meituan Dianping, İnovasyon Atölyesi, Sogou ve Meitu'nun ortak sponsorluğunu yaptığı "AI Challenger 2018 Küresel AI Mücadelesi" üç aydan fazla süren şiddetli bir rekabet yaşadı. Şampiyon takım 81 ülke ve 1.000'den geldi Pek çok üniversite ve şirketten 10.000'den fazla katılımcı ekip öne çıktı. Bunlar arasında, Pekin Üniversitesi'nden mezun olan (şimdi Meituan Dianping'e katıldı) Cheng Huige'den oluşan "Houchang Köyü Sessiz" takımı, "İnce Kullanıcı Yorumları Duygu Sınıflandırması" pistinin şampiyonluğunu kazandı. Bu makale, Cheng Huige'nin bu yarışma için düşüncelerinin ve deneyim paylaşımlarının bir özetidir.Umarım herkes için faydalı ve aydınlatıcı olur.
arka fon
2018 Küresel Yapay Zeka Mücadelesi'nde Meituan Dianping, temel olarak iki zorlu ana soru sorusundan sorumluydu: ayrıntılı kullanıcı yorumu duyarlılık analizi ve sürücüsüz görsel algı. Bunların arasında, NLP merkezinden sorumlu ayrıntılı kullanıcı yorumu duyarlılık analizi yolu en popüler olanıdır ve katılan ekiplerin sayısı en büyük olanıdır ve tüm kayıt ekibinin yaklaşık beşte birini oluşturur.
Ayrıntılı kullanıcı yorumu duyarlılık analizi izi, 6 kategori ve 20 alt kategoriye ayrılmış Çince duygu yorumu verisi sağlar. Etiketlemenin zorluğu o kadar büyüktür ki, NLP külliyatında, özellikle de metin sınıflandırmasıyla ilgili külliyatta oldukça nadirdir. Bu veriler oldukça fazladır. Önemli bilimsel araştırma ve endüstriyel uygulama değeri (Şu anda, Dianping Uygulamasında 20 duygusal etiket kategorisi görülebilir).
1. Araç tanıtımı
Bu yarışmada, TensorFlow ve PyTorch modellerini eşit şekilde işlemek için kendi geliştirdiğim bir eğitim çerçevesi kullanıldı. Model kodu uygulaması açısından, esas olarak Hong Kong Bilim ve Teknoloji Üniversitesi'nin açık kaynağına dayanan RNet ve MnemonicReader, buna göre değiştirildi. Yarışmanın sonraki aşamasında, bazı entegrasyon etkilerini iyileştirmek için BERT tabanlı bir model de eklendi.
2. Genel düşünme
Bir bütün olarak, bu problem 20 Unsurun duygusal çoklu sınıflandırma problemi olarak kabul edilir.Geleneksel metin sınıflandırma yöntemi, LSTM modelleme metnine ve End2End multi-Aspect birleşik eğitimine dayalı olarak benimsenmiştir.
Metin sınıflandırması, sektörde nispeten olgun bir sorundur. Şubat 2018'de Kaggle'nin "Hile Metin Sınıflandırması" yarışmasına katıldım. O zamanki şampiyon ekip, başarıya ulaşmak için esas olarak çeviri tabanlı veri geliştirme yöntemlerine güveniyordu. 2018'deki hile karşıtı çalışmalardaki bazı pratik deneyimler, verilerin metin sınıflandırmasının etkinliğini artırmanın ilk anahtarı olduğunu anlamamı sağladı. Bu nedenle, internette ilk kez geniş çaplı bir kamuya açık yorum külliyatına rastladım.Kaggle yarışması sırasında, NLP'nin dil modeli ön eğitimi henüz ortaya çıkmadı.ELMo gibi modellerin başarısıyla, denemeyi de dört gözle bekliyorum. Önceden eğitilmiş dil modelinin bu veri seti üzerindeki genel etkisine bir göz atalım.
3. Temel model fikirleri
Her şeyden önce, önceden eğitilmiş bir dil modeli kullanmayan temel bir model denedim.Kaggle Toxic yarışmasının deneyimine dayanarak, temel model olarak en iyi performans gösteren LSTM Encode + Pooling'i doğrudan kullandım. Kaggle yarışmasında, herkesin deneyinin genel sonucu, orta ve uzun metinlerin sınıflandırma görevi için en iyi tek modeldir. Bunların tümü RNN (LSTM / GRU) veya kısmen RCNN, Capsule + RNN gibi RNN modellerine dayanmaktadır. Saf CNN yapısı gibi diğer modeller nispeten zayıf performansa sahipken, esas olarak RNN modeli nispeten uzun mesafeli dizi bilgilerini daha iyi yakalayabildiği için.
4. Model düzeyinde optimizasyon
Temel model temelinde, okuduğunu anlamanın yaygın uygulamasını taklit etmek, bir Öz Dikkat katmanı eklemek (metnin kendisine yönelik Dikkat ağırlığını hesaplamak) ve Çıktıyı Dikkat ve orijinal LSTM'den sonra Gate (RNet) veya Anlamsal Füzyon ( MnemonicReader).
5. Model ayrıntılarının işlenmesi
Daha geniş parametreler ve daha fazla model daha iyi performans gösterir
Buradaki spekülasyonun ana nedeni, bu veri setinde 20 yönün bulunması ve her bir yönün görece çok sayıda parametre gerektiren 4 farklı kategoriye ayrılmasıdır.
Üçgen öğrenme oranı ayarlama etkisi en iyisidir
Word + Char kelime modelleme yöntemini kullanma
Mümkün olan en geniş kelime dağarcığını kullanın
Diğer takımlarla karşılaştırıldığında, daha geniş bir kelime dağarcığını destekleyebilen fastText ön eğitim kelime vektörlerine dayanan harici kamuya açık yorum verilerine dayanarak 14,4 W (Jieba kelime segmentasyonu), 19,8 W (Cümle Parçası Unigram kelime segmentasyonu) kullanıyorum . Aynı zamanda, aşırı uydurma eğitiminden kaçınmak için, Finetune eğitiminde sadece yüksek frekanslı kelimeler, düşük frekanslı kelimelerin sabit kelime vektörleri ile işlenir.
Başlangıçta, nispeten az duygu ile ilgili kelime dağarcığı olması ve daha geniş bir kelime haznesine ihtiyaç duyulmaması beklenir, ancak deney sırasında, eğitimi daha iyi karakterize etmek için daha fazla dış verinin kullanılması şartıyla, daha geniş bir kelime dağarcığının performansı görece iyileştirebileceği bulunmuştur. Verilerdeki düşük frekanslı kelimelerin vektörü. Teoride, UNK varlığını olabildiğince azaltmak için tahmin sürecinde olabildiğince geniş bir kelime dağarcığı kullanabiliriz (makalenin sonucu, UNK'ya karşılık gelen farklı kelimelere sabit bir UNK vektöründen daha iyi olan farklı rastgele vektör efektleri verildiğidir. Bu benzerdir, denetimsiz dış verilere dayalı bir vektör atarsak, dil modeli eğitimi ile elde edilen vektör daha iyidir).
6. Önceden eğitilmiş dil modeli
Bu kısım, model etkisinin iyileştirilmesinin anahtarıdır ve burada ELMo Loss kullanılır. Sadece ELMo'nun resmi versiyonunu denedikten sonra, hızın nispeten yavaş olduğunu hissettim.Bu nedenle, uyguladığım ELMo'nun basitleştirilmiş bir versiyonunu benimsedim ve esasen sadece ELMo'nun Loss kısmını kullandım.
Mevcut iki katmanlı LSTM Kodlayıcı temelinde, minimum maliyetli ELMo tanıtımı benimsenmiştir, yani mevcut modelin ilk katman LSTM'si ELMo Kaybına dayalı olarak önceden eğitilmiştir.Finetune'da, model yapısı öncekiyle tamamen aynıdır, ancak LSTM'nin ilk katmanında ve kelime vektörü bölümünde kullanılan ELMo ön eğitiminin başlatma sonucu.Ayrıca, ELMo eğitim sürecinde, fastText'e dayalı kelime vektörü parametre başlatma da kullanılır. Bu tasarım, ELMo eğitimi ve Finetune eğitiminin yakınsamasını hızlandırır.Aşağıdaki görevlerde önemli faydalar sağlamak için yalnızca yaklaşık 1 saatlik ELMo eğitimi gerekir. ELMo ve Self Attention kombinasyonunun bu veri setinde çok iyi çalıştığını belirtmekte fayda var.
7. Model entegrasyonu
Daha iyi model çeşitliliği elde etmek için, çeşitli granüler kelime segmentasyon yöntemleri benimsenmiştir.Jieba kelime segmentasyonunun ana modeline dayalı olarak, Cümle Parçasına dayalı çeşitli granüler kelime segmentasyonu tanıtılmıştır. Cümle Parçası kelime bölütleme daha kısa bir cümle uzunluğu getirebilir, ancak sözcük bölütleme hatası Jieba'dan biraz daha fazladır ve üstünü örtmek kolaydır.Bu nedenle, aşırı uydurmayı önlemek için sadece Finetune Char vektörü ve sabit sözcük vektörü stratejisi kullanılır. Word + Char modelleme yöntemiyle birleştirilen çok taneli kelime segmentasyonu, iyi model çeşitliliği sağlar.
Ek olarak, model boyutlarının çeşitliliği, RNet yapısı ve MnemonicReader yapısının yanı sıra BERT modelinin yapısındaki farklılıktan kaynaklanmaktadır.
Model seçiminde en iyi ortalama F1 değerine sahip yuvarlak model seçilir ve entegrasyonun görünüş etkisine göre ayrılması ve ağırlıklandırılması için entegrasyon yöntemi kullanılır (ağırlık, Geçerli verilerin F1 puan sıralamasından gelir). Yukarıdaki çeşitlilik stratejisine dayanarak, yalnızca 7 tek modelli entegrasyon daha iyi sonuçlar sağlayabilir.
8. BERT Hakkında
Deneyde, Char temelli BERT tekli modeli bu yarışmada ELMo'dan daha iyi sonuçlar elde edememiştir.Sadece 512 uzunluğu ve sadece Char temelli sınırlaması ile sınırlıdır.BERT modelinin bu veri setinde geçirilmesi daha kolay görünmektedir. Takıldığında, tren kaybı daha hızlı düşer ve karşılık gelen Geçerli Kayıp etkisi daha da kötüleşir. BERT modelinin uygun şekilde optimize edilmesiyle daha iyi sonuçların elde edilebileceğine inanıyorum.
9. Takip optimizasyonu
AI Challenger 2018 şampiyonuyla diyalog: Cheng Huige
S: Bu rekabet hakkında ne düşünüyorsunuz?
Cheng Huige: Uzun yıllardır bir algoritma uygulayıcısı olarak, AI çağında teknolojinin çok hızlı bir şekilde güncellendiğini gerçekten hissediyorum.Örneğin, elimden geçmiş ELMo ve BERT gibi önceden eğitilmiş dil modellerinin sektörde büyük etkisi var. Meituan da dahil olmak üzere birçok şirket hızlı bir şekilde takip etti ve çevrimiçi oldu ve iyi getiri elde etti.Bu nedenle, teknisyenlerin her zaman bir öğrenme tutumunu sürdürmesi çok önemlidir.
Rekabet ve iş arasında büyük bir fark var. Rekabet görece basit ve net. Yarışma, bazı yeni teknolojileri en kısa sürede incelememe ve doğrulamama olanak tanıyor ve standart veri setindeki geçerli model stratejilerinin çoğu zaman pratik çalışmaları var. değer. Yarışma ve çalışma sırasındaki model geliştirme için bence daha önemli olan nokta önce detaylı bir model doğrulama bölümü yapmak, ardından bu temelde aşamalı olarak yinelemeli modeller geliştirmek mantıklı geliyor. Örneğin, bu yarışmada F1, AUC, Loss vb. Dahil olmak üzere çeşitli göstergeleri baştan bütün ve her yönü dahil olmak üzere izledim.
S: Algoritmaları öğrenen yeni öğrenciler için ne gibi tavsiyeleriniz var?
Cheng Huige: Vaktiniz varsa, ünlü okullardan sistematik olarak bazı derin öğrenme ile ilgili dersleri öğrenebilirsiniz.Diğer önemli bir nokta ise pratiktir.Okul projelerine veya büyük şirketlerde stajlara katılabiliriz.Elbette AI Challenger ve Kaggle gibi yarışmaları da kullanabiliriz. Uygulama platformu.
S: Neden ayrıntılı kullanıcı yorumu duyarlılığı sınıflandırma yoluna katılmayı seçtiniz?
Cheng Huige: Daha önce benzer yarışmalara katıldığım ve metin sınıflandırması ile ilgili çalışmalar yaptığım için bu parkurun problemleriyle de daha çok ilgileniyorum.
S: Bu yarışmada en tatmin edici şey nedir?
Cheng Huige: Etkinin getirdiği başarı duygusunu, özellikle de ELMo'nun basitleştirilmiş sürümünün getirdiği efekt iyileştirmesini yinelemeye ve iyileştirmeye devam edin.
S: Yarışma sırasındaki kazançlar ve büyüme nedir?
Cheng Huige: Yoğun bir TensorFlow kullanıcısı olarak PyTorch'u kullanmayı öğrendim ve PyTorch'un getirdiği zarafet ve verimliliği deneyimledim. Önceden eğitilmiş dil modellerinin gücünü deneyimleyin. Yarışma sırasında ve sonrasında, aynı fikirde olan birçok arkadaş edindim ve onlarla alışveriş ve öğrenme çok gelişmeme yardımcı oldu.
Daha da önemlisi, bu rekabet nedeniyle Meituan Dianping'in büyük ailesine katıldım.Katılım sırasında, Meituan Dianping'in kullanıcı deneyimini iyileştirmek, kullanıcıların daha iyi yemesi ve daha iyi yaşamasını sağlamak için olduğunu hissediyorum. , Teknolojiye çok yatırım yaptı.