📚Makale okumaları-volm.2

Başak Buluz Kömeçoğlu
7 min readMay 11, 2020

Multiple-Attribute Text Style Transfer

Metinlerde Çok-Nitelikli Stil Transferi

Görüntüler üzerinde stil transferi uygulamalarının yarattığı şahanelerle mutlaka karşılaşmışsınızdır. — Henüz karşılaşmamış olanları Ayyüce Kızrak hocanın blog yazısına doğru alayım🤗 — Çok da beğenmediğiniz bir çiziminizin çok sevdiğiniz bir ressamın en ünlü eserinin stiline bürünmesi fazlasıyla harika değil mi 🤩 Ama bu yetenek yalnızca görüntü işleme ile sınırlı kalmasa ve doğal dildeki metinler üzerinde de yapılabilse daha da hayranlık yaratıcı olmaz mı 😇

Çalışmada önerilen modelin, sosyal medya verileri üzerine uygulanmasıyla elde edilen sonuçlardan bazı örnekler. Her bir kutudaki ilk satır, orijinal özniteliğe sahip veriyi ve ikinci satır verilen yeni özniteliğe göre üretilen metni gösterir.

Bu görev aslında Doğal Dil İşleme alanında daha önce pek çok araştırmacının ilgi odağı oldu ancak bu hafta incelediğim ICLR 2019'da sunulmuş olan “Multiple-Attribute Text Style Transfer” isimli konferans bildirisi yaş, cinsiyet, duygu gibi birden fazla öznitelik için metinler üzerinde stil transferi yapabilmesi yönüyle oldukça ses getirdi 🎃

📝Metni Kontrollü Olarak Tekrar Yazma

Var olan bir metnin farklı özelliklere göre tekrar yazılması görevi, bu çalışmanın temel amacını oluşturmakla beraber doğal dil işleme alanının ilginç görevlerinden de biridir.

Nasıl ki telefonunuzla çektiğiniz sıradan bir fotoğrafa Picasso’nun Dora Maar au Chat tablosunun stilini transfer ederek, deyim yerindeyse fotoğrafı baştan yaratıyorsak; bu kez de yazılan bir metnin farklı cinsiyette, farklı yaşta veya farklı bir duyguyla yazılmış olması durumunda metnin nasıl baştan başa değişiklik göstereceğini gözlemleme görevi ile karşı karşıyayız 🤩

Bu zorlu görevi gerçekleştirmek üzere tasarlanan modellerin başarımının değerlendirilmesinde 3 kriter önem arz eder:

  • Üretilen metnin akıcı olması
  • Belirtilen transfer edilecek öznitelikleri yansıtması
  • Girdinin özniteliklerden etkilenmeyen kısımlarının korunması

Çalışmada önerilen ve yukarıda sıralanan kriterlere göre oldukça başarılı sonuçlar üreten algoritmanın ayrıntılarına bakalım ✌🏻

🛠️ Araştırmacıların Yaklaşımı

Çalışmada kullanılan eğitim kümesi n tane cümlenin her birinin x ve cümleye ait özniteliğin y ile temsil edildiği D(x,y) ikililerinden oluşmaktadır. Görev ise her bir x girdi cümlesini (özniteliği y olan), (x,y’) çiftine haritalayacak bir F: X x YX modeli öğrenmektir.

Önerilen mimaride haritalama, öncelikle x cümlesinin — z=e(x) şeklinde kodlandığı ve ardından x’=d(z,y’) şeklinde kodun çözüldüğü — sequence-to-sequence bir oto kodlayıcı-kod çözücü (auto encoder-decoder) ile gerçekleştirilmiştir. Ayrıca model tarafından üretilen yeni x’ cümlesi de şifreleyiciye girdi olarak verilerek, ideal olan orjinal x cümlesini elde etmek için orjinal y’i kullanarak kodun çözülmesini sağlamak üzere eğitilmiştir. Bir nevi tersine mühendislik yaklaşımı olarak görülebilecek bu yöntem back- translation (BT) olarak isimlendirilmektedir. Bu ilginç yaklaşımın 2 faydası görülmüştür. İlk fayda, oto-kodlayıcı-kod çözücü iyi eğitilememesi durumunda x’ orjinal x cümlesinin içeriğini kaybettiğinde göze çarpar. Bu durumda kod çözücüye sağlanan tek yararlı bilgi y özniteliğidir ve bu sebeple kod çözücü özniteliklerinden maksimum düzeyde faydalanmaya teşvik edilir. Bir diğer fayda ise, eğitimin başarılı olduğu durumlarda; istenen görevde BT sequence-to-sequence eğitim yapılmasına yardımcı olur.

Genel olarak,

değeri minimize edilir. Burada pd kod çözücü tarafından indüklenen x sekansı üzerindeki olasılık dağılımı ve e(xc) ise x girdisinin bozuk bir xc sürümü ile beslendiğindeki kodlayıcı çıktısıdır. Diğer taraftan d(e(x),y’), rastgele örneklenmiş y’ öznitelik kümesiyle yazılmış x girdi cümlesinin bir varyasyonudur.

Aslında bu model, büyük ölçüde 2018 yılında yayınlanan “Phrase-based & neural unsupervised machine translation” isimli makine çevirisi çalışmasındaki mimariden beslenmiştir. Fakat ele alınan problemin doğası gereği, kod çözücünün ürettiği çıktının makine çevirisinde olduğu gibi girdi metninden bambaşka bir formda olması değil; girdi cümlesinin üzerine ilgili özniteliğin ayırt edici kısımlarının yansıtılmış olması beklenmektedir. Ayrıca bu yapı, sistemde ikili öznitelik değişiminin yapılması ile sınırlı kalmaktadır ve içeriğin korunması ile özniteliğin değişimi arasındaki ödünleşim konusunda araştırmacılara yeterince kontrol vermemektedir. Bu sınırlamaları gidermek için ise çalışmada aşağıdaki bileşenler sunulmuştur :

  • Öznitelik koşullandırma : Birden fazla özniteliği işlemek için, her bir hedef öznitelik değeri ayrı ayrı işlenir ve daha sonra onların gömmelerinin (embeddings) ortalaması alınır. Ardından ortalama gömmeler bir sembol dizisinin başlangıcı şeklinde kod çözücüye verilir. Ayrıca kod çözücünün çıktı katmanının her bir öznitelik için farklı bir önyargı (bias) kullandığı bir yaklaşım da denenmiştir. Bu yaklaşımla, öğrenilen ön yargıların temsil ettikleri özniteliklerin etiketlerini yansıtma eğiliminde olduğunu gözlenmiştir. Öğrenilen ön yargı örnekleri aşağıdaki tabloda görülebilir.
Yelp veri kümesindeki duygu ve restoran kategorileri için öğrenilen öznitelik önyargılarına (bias) örnekler.
  • Gizli temsil havuzu : Her girdi sözcüğünün başına bir gizli vektör temsili hesaplayan modeller daha çok tek tek kelime değiştirme yaklaşımını benimserken, dikkat (attention) kullanmayan modeller daha çok içeriği kaybetme eğilimindedir. Bu nedenle kodlayıcının üstüne birbiri ile örtüşmeyen genişlik pencereleri (w) olan bir temporal max-pooling katmanı eklenerek, daha iyi kontrol sağlanması önerilmiştir. w’nin ara değerleri (1'den ve sekans uzunluğundan farklı değerler) girdi cümlesi hakkındaki bilgilerin korunması ile kod çözücünün kelimeleri tek tek kopyalamaya daha az eğilimli hale getirilmesi arasında farklı dengelemeyi sağlar.
  • Model Mimarisi : Dikkat mekanizması ile güçlendirilmiş 2 katmanlı çift yönlü LSTM ve 2 katmanlı kod çözücü LSTM ile parametrelenen bir kodlayıcı kullanılmıştır. Hem LSTM’ler hem de kelime gömme arama tabloları sıfırdan eğitilmiş ve 512 gizli üniteye (hidden unit) sahiptir. Her özellik değerini gömmek için ise 512 gizli birim içeren başka bir gömme arama tablosu kullanılmıştır.

🧩 Veri Kümeleri

Literatürde benzer konuda yapılan çalışmalarda sıklıkla kullanılan Yelp Restaurant (Yelp Reviews) ve Amazon Ürün Yorumları (Amazon Reviews) veri kümeleri bu çalışma da tercih edilmiştir. Diğer taraftan açık olarak yayınlanan sosyal medya içeriği ile oluşturulan bir diğer veri kümesi de çalışma kapsamında kullanılmıştır.

📍 Yelp Reviews : Bu veri kümesi Yelp Dataset Challenge‘da oluşturulan restoran ve iş yorumlarından oluşmaktadır. Bu veriler doğrudan kullanılmayarak 4 temel ön işlemden geçirilerek, veri kümesi tekrar düzenlenmiştir.

🔸 FastText sınıflandırıcısına göre İngilizce yazılmamış yorumlar silinmiştir.

🔸Restoranlar hakkında olmayan yorumlar silinmiştir.

🔸 3/5 yıldıza sahip ve bu sebeple duygu olarak nötr olarak kabul edilen yorumlar silinmiştir.

🔸 Cinsiyet bilgisinin sağlıklı olmadığı yorumlar silinmiştir.

Tüm bu adımların ardından hem duygular hem de cinsiyet etiketlerinin ikili olarak ifade edilmesi sağlanmıştır (1/0). Diğer taraftan restoran kategorileri Asya, Amerikan, Meksika, Barlar ve Tatlı olmak üzere 5 sınıf şeklinde düzenlenmiştir.

📍 Amazon Reviews : Amazon ürünlerinin tüketicileri tarafından yazılan incelemelerden oluşan bir veri kümesidir. Profiline cinsiyet bilgisini de ekleyen az sayıda kullanıcı bulunduğu için, cinsiyet etiketlerinin toplanması hariç, Yelp veri kümesindeki ile aynı ön işleme adımlarını izlenmiştir. İncelemeler Kitaplar, Giyim, Elektronik, Filmler, Müzik olmak üzere 5 ürün kategorisi ile etiketlenmiştir.

📍 Sosyal Medya İçeriği : Diğer veri kümelerinin yanı sıra farklı kategorilerdeki örneklerdeki yaklaşımı göstermek için, İngilizce konuşan kişilerin herkese açık olarak yaptığı sosyal medya paylaşlaşımlarından oluşturulan veri kümesidir. İçerik hakkında 3 bağımsız bilgi parçası kullanılmıştır; cinsiyet (erkek/kadın), yaş grubu (18–24 veya 65+) ve yazar-açıklamalı duygu (rahat veya rahatsız). Verilerdeki gürültünün azaltılması için, her öznitelik için bir fastText sınıflandırıcısı eğitilmiş ve yalnızca belirli bir güven eşiğinin üzerindeki veriler dahil edilmiştir.

Çalışmada kullanılan farklı veri kümeleri için her bir özniteliğe bağlı inceleme sayısı

💥 Başarımın Değerlendirilmesi

Metin üreten modellerin değerlendirilmesi hala açık bir araştırma problemidir. Bu çalışmada amaçlanan 3 temel hedef olduğu için, önerilen modeller de 3 farklı boyutta değerlendirilmesinin daha doğru olacağı düşünülmüştür.

Önerilen sistemin 3 temel hedefi:

1) önceden belirlenmiş nitelikler kümesine uyan cümleler üretmek,

2) girdinin yapısını ve içeriğini korumak ve

3) akıcı bir dil kullanmaktır.

3 farklı değerlendirme kriteri :

🔹 Öznitelik kontrolü: Farklı öznitelikleri tahmin etmek için veri kümeleri üzerinde eğitilmiş FastText sınıflandırıcıları kullanılarak, özniteliklerin ne kadar doğru yansıtıldığı ölçülmüştür.

🔹Akıcılık: Akıcılık, önceden eğitilmiş bir Kneser — Ney 5 gramlık dil modeli tarafından, üretilen metin dizilerinde karmaşıklık (perplexity) değeri ile ölçülmüştür.

🔹 İçerik koruma: Üretilen metin ile orjinal girdi arasındaki BLEU puanı ölçülerek, n- gram istatistiklerini kullanarak orjinal girdinin mevcut içeriğini ne ölçüde koruduğu ile ölçülmektedir. İnsan referansı sağlandığı durumda ise, sadece girdilerden hesaplanan BLEU skoru farklı hesaplanmıştır. Bu makalede “BLEU” skor olarak adlandırılan metrik, tüm olası öznitelik değerlerine göre kuşaklar arası ortalama insan referanslarının ortalaması alınarak hesaplanmıştır.

🌻 SONUÇLAR

Çalışma kapsamında önerilen farklı yaklaşımların, diğer çalışmalarla kıyasının yapıldığı tabloları orjinal makaleden inceleyebilirsiniz. Ben işin en heyecanlı kısmını burada kaleme alıyor olacağım🤩

Çalışmanın çıktıları gerçekten şaşkınlık verici düzeyde! Buyrun inceleyelim 🤗

📌Öncelikle tek bir özniteliğe göre orjinal metinlerin yeniden oluşturulması örneklerine bakalım 🥳

📌 Peki ya biraz işleri karıştırsak ve birden fazla özniteliğe göre stil transferi yapmasını istesek?

📌Daha bitmedi! Sosyal medya içerikleri için de elbette sonuçları görmek istiyoruz 🤩

🍁 Çalışmada kullanılan veri kümelerini oluşturmak için araştırmacılar tarafından paylaşılan PyTorch uygulamasına buradan ulaşabilirsiniz. Modelleri eğitmek ve çalıştırmak için ise yine aynı repodan paylaşım yapılacağı duyuruldu, takipte kalınız ✌🏻

🍁 Konu ilginizi çektiyse metinlerde stil transferi konulu makalelerin derlendiği bu repoya göz atabilirsiniz 🤓

Keyifli okumalar ☕

--

--

Başak Buluz Kömeçoğlu

Research Assistant at Information Technologies Institute of Gebze Technical University | Phd Candidate at Gebze Technical University