Tensorflow Karar Ormanı modelleriyle metni tüketme yolları

Bu bir dokümantasyon Markdown sayfasıdır. Daha fazla bilgi için Markdown Referansına (go/documentation-reference) ve stil kılavuzuna (go/documentation-style) bakın.

Arka plan

Karar ormanı öğrenme algoritmaları, sinir ağları veya doğrusal tahminciler gibi gradyan iniş tabanlı modellerden farklı şekilde çalışır. Bu farklılıklar, çeşitli modelleme kararlarında kendini gösterir, ancak özellikle bir veri kümesi, mimariye özgü özellik mühendisliği gerektiren simgeleştirilmiş metin özellikleri gibi değişken uzunluklu kategorik özellikler içerdiğinde özellikle belirgindir. Bu kılavuz, karar ormanı modellerindeki metin özelliklerine yönelik farklı özellik mühendisliği stratejileri arasındaki dengeleri özetlemektedir.

Aşağıdaki bölümlerde bu özelliklere sahip bir veri kümesinden bahsedeceğiz ve bir kullanıcının belirli bir ürünü satın alıp almayacağını tahmin ettiğimizi varsayacağız:

Özellik Kullanıcı kimliği Önceki Satın Almalar Ürün Başlığı Ürün Açıklaması
Örnek veriler 1234 [“TV”, “Vakum”] “WiFi Yönlendirici” “Bu yönlendirici…”


Bu örnekte, "Önceki Satın Almalar" bir seyrek metin özelliğidir (veya bir dizi kategorik öğedir). “Ürün Başlığı” da aynı şekildedir ancak bu örnekte belirtilmiş değildir. “Ürün Açıklaması”, diğer özelliklerden farklı özelliklere sahip bir doğal dil özelliğidir; çünkü sözcük dağarcığının geniş (veya sınırsız) olmasını, sözcük sırasının önemli olmasını ve ürünün doğasında bulunan diğer anlamsal ve sözcüksel özelliklere sahip olmasını bekleriz. dil. Aşağıda tanımladığımız stratejiler bu özelliklerin tümü için uygundur ancak her biri için farklı ödünleşimler olacaktır.

Hızlı Referans

Eğitim ve çıkarım maliyeti önemli değilse en iyi çözüm, her metin özelliği için hem kategorik kümeleri hem de önceden eğitilmiş yerleştirmeleri kullanmaktır çünkü bunların tamamlayıcı güçlü ve zayıf yönleri vardır. Aşağıda belirtilen kısıtlamalardan biri mevcut olmadığı sürece bunu öneririz.

Çıkarım Hızı Eğitim Hızı Belirteç <> etiket ilişkilerini ezberleme yeteneği Genelleme
Çoklu Kategoriler En hızlı (++) En hızlı (++) Sınırlı Sınırlı (+)
çok sıcak Hızlı (+) Hızlı (nispeten küçük kelime büyüklüğü varsayılarak) (++) İyi Sınırlı (+)
Kategorik kümeler En hızlı (+++) Daha yavaş (+) En iyi Sınırlı (++)
gömme En yavaş (matris çarpımları gibi önemsiz kodlayıcı işlemleri varsayıldığında) (+ ila +++) En hızlı (kelime boyutu >> yerleştirme boyutu varsayılarak) (+++) Kötü İyi (++ ila +++)

N-Gram

N-gramlar (örneğin {"the", "cat", " is", "mavi"} -> {"<start> the", "the cat", "cat is", " is blue", "mavi < end>"}) birçok durumda yararlı olabilir ve yerel sözcüksel bilgileri yakalayabilir. Aşağıdaki yöntemlerin tümü tarafından desteklenirler, ancak çok daha büyük bir kelime dağarcığı boyutuna mal olurlar, bu da eğitim maliyeti nedeniyle onları kullanışsız hale getirebilir.

Cesareti Kırılan Stratejiler

Tek-hot / Çoklu-hot kodlama / Kelime Torbası

Tek geçişli kodlama, seyrek metni yoğunlaştırmaya yönelik klasik bir stratejidir. Burada seyrek metin özelliğinin çoklu sıcak (içerilen tüm belirteçler için 1'ler) veya sayım tabanlı vektörleştirme (sözlükteki her belirtecin sayısı) ile temsil edildiği bir uzantıyı varsayıyoruz.

Örneğin, kelime dağarcığı 4 öğeden oluşuyorsa ve [“TV”, “Vakum”, “Wifi”, “Yönlendirici”] gibi indekslenmişse, “Önceki Satın Almalar” özelliği <1, 1, 0, 0 yoğun bir vektör olacaktır. >. Sayımlar dikkate alınsaydı ve özellik [“TV”, “TV”, “Vakum”] olsaydı <2, 1, 0, 0> olurdu.

Artıları

  • Karar ormanı bölünmeleri bireysel özelliklere göre öğrenildiğinden, eğitim sırasında bu, kategorik kümelere göre daha ucuzdur.
  • Öncekinin aksine, herhangi bir kırpma veya dolguya ihtiyaç duymaz ve belirteçler örnekler arasında aynı anlambilime sahiptir (yani "TV" konumdan bağımsız olarak bölmeler boyunca sabit olacaktır).

Eksileri

  • Bu strateji genellikle oldukça dengesiz ve seyrek bölünmelere yol açar ve bu da DF öğrenme algoritmalarının yakınsamasını daha yavaş veya ortalamanın altında hale getirebilir. Bunun nedeni:
    • Aynı bilgiyi öğrenmek için daha fazla bölünmeye ihtiyaç vardır
    • Oldukça seyrek ağaçlar, dengeli ağaçlardan daha kötü genelleme yapar ve genellikle daha az doğru bir modelle sonuçlanır.
  • Konum bilgisini dikkate almaz. Bu, doğal dil özelliklerinin performansına zarar verebilir.
  • Kategorik verilerdeki sayısal bölünmeleri öğrenmek optimalin altındadır; Burada kullanılmayan kategorik bölünmeleri bulmaya yönelik optimizasyonlar vardır.
  • Eğitimin hesaplama karmaşıklığı, kelime öğelerinin (her biri sayısal bir özellik olarak tüketilecek) sayısıyla doğrusal olarak ölçeklenir. Uygulamada, veri kümesi çok küçük olmadığı sürece (bu durumda büyük sözcük dağarcığı aşırı uyumu teşvik edebilir), bu durum 5 binden fazla öğeden oluşan sözcük dağarcığının eğitilmesini çok yavaş hale getirir.
  • Eğitim hafızası tüketimi örnek başına kelime öğesi başına 1 bayt (tek sıcak için) veya 4 bayt (sayımlar için) olacaktır, çünkü indeksleme zamanında veriler seyrek verilerin yoğun bir versiyonu olarak depolanacaktır. Bu, daha büyük kelime dağarcığı ve veri kümeleri için engelleyici derecede büyüyebilir.

Sabit uzunlukta Çoklu Kategorik Özellikler

Kategorik özellikler karar ormanı algoritmaları tarafından verimli bir şekilde öğrenilebildiğinden, seyrek belirteçleri tüketmenin doğal bir yolu, örnek başına sabit sayıda giriş belirteci olacak ve her belirteç konumu ayrı ve bağımsız bir özellik olacak şekilde doldurmak/kırpmaktır. Yukarıdaki örnekte, "Önceki Satın Almalar" en fazla 5 jetona sahipse, 1-5 arasındaki jetonları temsil eden f1...f5 özelliklerini oluşturabilir ve > 5 olan jetonları atabilir ve < 5 olan örnekler için eksik değerleri ekleyebiliriz.

Artıları

  • Bu eğitmek için etkilidir.
  • Örnek başına jeton sayısında düşük bir fark varsa ve jetonlar bağımsızsa bu, model kalitesine zarar vermeyebilir.
  • Bu, ek anlambilimi (örnekteki satın alma siparişi gibi) diğer yöntemlere göre daha doğal bir şekilde yakalayabilir.

Eksileri

  • Modelde gürültü görevi görecek "eksik" dolgulu belirteçlere anlambilim ekler. Bu durum, örneğin "Ürün Açıklaması" özelliğinde meydana gelebilecek şekilde, örnek başına token sayısında büyük bir farklılık varsa özellikle belirgin olacaktır.
  • Öğrenilen ağaçlar sıralamaya karşı son derece duyarlı olacaktır, yani eğer özellik [“A”, “B”] ise tahmin, [“B”, “A”] için yapılan tahminden farklı olacaktır ve eğer ikincisi hiç görülmemişse verilerde model öncekinden genelleme yapamayacaktır. Genel olarak bu, konum değişmezliğini öğrenmek için çok daha fazla veri gerektirecektir.
  • Varsayılan olarak her token, farklı bir kelime dağarcığına sahip bir özellik tarafından temsil edilecektir. Uygulamayı özellik başına aynı kelime dağarcığı kümesini dikkate almaya zorlasanız bile, f1=”TV”, f2=”TV”den farklı bir kelime öğesi olacaktır. Bu, algoritmanın token "TV" ile etiket arasındaki ilişkiyi öğrenmede daha az verimli olacağı anlamına gelir; her token konumu için bunu ayrı ayrı öğrenmesi gerekecektir.

Daha İyi Stratejiler

Kategorik Setler

Kategorik Kümeler ( https://arxiv.org/pdf/2009.09991.pdf ), seyrek metin için TF-DF'nin varsayılan özellik gösterimidir. Kategorik bir küme, kopyaları ve sıralamayı göz ardı eden, etkili bir şekilde bir kelime torbasıdır. Örneğin, "TV en iyisidir" özelliği, {"en iyi", "dir", "the", "TV} kategorik kümesiyle temsil edilir.

Yerel kategorik küme ayırıcı, çeşitli görevlere ilişkin kıyaslamalara göre (kağıda bakın), genellikle çoklu sıcak ve sabit uzunluklu kategorik özelliklerden daha iyi performans gösterir. Teorik olarak, tek sıcak kodlanmış özelliklerdeki hem kategorik küme bölmeleri hem de boole bölmeleri aynı bilgiyi öğrenebilir. Ancak ağacın aşağıdaki işlevi öğrenmeye çalıştığı aşağıdaki örneği ele alalım:

if description contains “high” AND “speed” AND “gaming”:
  return True

Bu durumda, yerel kategorik küme ayırıcı 1 bölmeyi öğrenecektir; burada {“yüksek”, “hız”, “oyun”} => Doğru.

Tek bir sıcak temsil, "yüksek", "bölünmüş" ve "oyun" olmak üzere 3 bölme gerektirecektir ve bu kategorilerin tüm olası ayrımları için (yani "yüksek" ve "hız" değil) makul yaprak düğümleri bulması gerekecektir. Uygulamada, tek sıcak kodlama, en iyi performansa sahip karar ormanı öğrenme algoritmaları tarafından verimli bir şekilde optimize edilemeyen, oldukça dengesiz ağaçlara yol açar.

Artıları

  • Karar ormanları için kelime dolusu bilgiyi öğrenmede en iyisi.
  • Hizmet vermesi son derece verimlidir (büyük ağaçlara örnek başına mikrosaniyenin altında bir sürede hizmet verebilen QuickScorer ile sunulabilir). Sunum süresi karmaşıklığı, her bir örneğin kategorik kümesindeki öğe sayısında doğrusaldır; bu da pratikte sözcük dağarcığından çok daha küçüktür.
  • Özellik başına tek bir kelime dağarcığını optimize ederek anlambilimin paylaşılmasını sağlar.

Eksileri

  • Num_examples * kelime hazinesi boyutuna sahip kategorik bir set bölünmüş ölçekleri eğitmenin maliyeti, tek sıcak algoritmaya çok benzer, eğitilebilir kelime dağarcığı boyutu pratik ortamlarda oldukça küçük (N bin) olabilir. Bu eğitim hızının, açgözlü algoritmanın örnekleme fraksiyonunun ayarlanmasıyla artırılabileceğini, ancak optimumun altında kaliteye ulaşabileceğini unutmayın.

Gömmeler

Sinir Ağları, çeşitli NLP görevlerinde en gelişmiş performansı sergilemiştir ve deneysel olarak sayısal özellikler olarak tüketilen önceden eğitilmiş yerleştirmeler, özelliklerin dahili olarak çok farklı kullanılmasına rağmen karar ormanı algoritmalarıyla da iyi çalışır. Burada "gömme" terimini herhangi bir sinir ağı kodlaması olarak adlandırdığımızı unutmayın; örneğin transformatör/evrişimsel/tekrarlayan katmanların çıkışı.

Önceden eğitilmiş yerleştirmelerin kullanılması, sinir ağlarında kısmen işe yarar çünkü öklit uzayında benzer belirteçlerin veya cümlelerin yakın olduğu bir vektör uzayının başlatılmasının, NLP görevleri arasında iyi bir aktarım sağladığı gösterilmiştir ve bu başlatmadan kaynaklanan gradyanlar daha küçük ve yakınsama için daha hızlıdır. tamamen rastgele bir başlatmadan daha iyidir. Ancak karar ağaçları, yerleştirmeleri bireysel sayısal özellikler olarak kullanır ve bu bireysel özelliklerin eksene göre hizalanmış bölümlerini öğrenir 1 . Bu, aynı anlamsal bilgiyi kullanmanın neredeyse imkansız olduğu anlamına gelir; örneğin bir nokta çarpımı veya matris çarpımı, bir dizi eksen hizalı bölmeyle temsil edilemez. Ayrıca, eğitim sırasında yerleştirmeleri gradyan iniş yoluyla güncelleyebilen sinir ağlarının aksine, varsayılan karar ormanı öğrenme algoritmaları farklılaştırılamaz; bu da yerleştirmelerin donmuş kalması gerektiği anlamına gelir. Türevlenebilir karar ormanları üzerine çalışmaların (örneğin https://arxiv.org/pdf/2007.14761.pdf ) olduğunu unutmayın. Bununla birlikte, belki de kısmen, pratikte bir yerleştirmedeki tüm bilgi parçalarının aslında sinir ağları tarafından bile kullanılmamasından dolayı, bu strateji hala karar ormanlarında iyi çalışmaktadır.

Artıları:

  • Çok daha büyük kelime dağarcığı boyutlarıyla başa çıkabilir; yerleştirme, az sayıda yerleştirme boyutuna etkili bir şekilde yoğunlaşma olduğundan, karar ormanına yönelik girdi özelliklerinin sayısının önemli ölçüde artması pek olası değildir.
  • Benzer yerleştirmeler bölüm kümelerini paylaşabildiğinden, teoride daha iyi genelleme yapılabilir. Burada önemli bir uyarı, yukarıda bahsedildiği gibi, vektör uzayındaki temel dönüşümlerin veya rotasyonların, karar ormanları için eksen hizalı bölümlenmiş uzayda tamamen farklı iki benzer yerleştirmeye sahip olabileceğidir.
  • Örneğin kodlayıcının evrişimler, dikkat veya bir RNN içermesi durumunda yinelemeyi/kelime sırasını doğal olarak kapsülleyebilir.
  • Başka bir veri kümesindeki bilgilerden yararlanabilir (transfer öğrenimi için ön eğitim).

Eksileri

  • Bilgiyi ezberlemede iyi değil - bölünmeler bulanık sınıflandırmalara veya ifadelerde yüksek hassasiyete neden olabilir (örneğin, "yönlendirici harika" vs "harika bir yönlendirici") farklı yerleştirmeler üretecektir; bunlar öklit uzayına yakın olabilir ancak benzer olması gerekmeyebilir sayısal özellikler.
  • Servis için en yavaş olanıdır çünkü tam kodlayıcı ileri geçişinin çıkarım zamanında yapılması gerekir. Gerçek gecikme büyük ölçüde yerleştirmeleri üreten mimariye bağlıdır; yani bir transformatör kodlayıcı tipik olarak ortalama havuzlamalı bir ham yerleştirme tablosu aramasından çok daha yavaş olacaktır.

Notlar


  1. Eğik bölmelerin etkinleştirilmesi, eksen dışı hizalanmış bilgilerin öğrenilmesine olanak sağlayabilir, ancak bu yine de boyut bazında olacaktır.