Noise Contrastive Estimation (Gürültü Karşıtlıklı Kestirim)

Noise Contrastive Estimation (NCE), normalizasyon sabiti hesaplanamayan olasılık modellerini gerçek veri ile yapay gürültü örneklerini ayırt eden ikili sınıflandırma görevine dönüştürerek eğiten, Word2Vec Negative Sampling ve InfoNCE'nin temelini oluşturan istatistiksel kestirim yöntemidir.

Noise Contrastive Estimation (NCE), Türkçesiyle gürültü karşıtlıklı kestirim, normalizasyon sabitinin hesaplanması pratik olmayan olasılık modellerinin parametrelerini öğrenmek için geliştirilmiş istatistiksel bir kestirim ilkesidir. Michael Gutmann ve Aapo Hyvärinen tarafından 2010 yılında AISTATS konferansında önerilen yöntem, zor bir yoğunluk kestirimi problemini basit bir ikili sınıflandırma görevine çevirir: model, gerçek veri dağılımından gelen örneklerle bilinen bir gürültü dağılımından çekilen yapay örnekleri birbirinden ayırt etmeyi öğrenir. Bu ayrımı iyi yapan bir model, dolaylı olarak gerçek veri dağılımının şeklini de öğrenmiş olur. Yöntemin çözdüğü temel sorun, normalize edilmemiş modellerde ortaya çıkan bölüşüm fonksiyonu (partition function) hesabıdır. Maksimum olabilirlik kestirimi, her parametre güncellemesinde tüm olası çıktılar üzerinden toplam almayı gerektirir. Kelime dağarcığı yüz binlerce token içeren bir dil modelinde softmax katmanının her adımda tüm dağarcık üzerinden hesaplanması, eğitim süresinin büyük bölümünü tek başına tüketir. NCE bu toplamı hiç hesaplamaz; normalizasyon sabitini ya öğrenilebilir bir parametre olarak modele ekler ya da Mnih ve Teh'in 2012'de gösterdiği gibi pratikte 1'e sabitler. Her gerçek örnek için k adet gürültü örneği çekildiğinden, adım başına maliyet dağarcık boyutundan bağımsız hale gelir ve yalnızca k ile orantılı kalır. NCE'nin teorik cazibesi tutarlılığından gelir: gürültü örneği sayısı k arttıkça kestirici maksimum olabilirlik çözümüne yaklaşır. Bu özellik, yöntemi enerji tabanlı modellerin ve yoğunluk kestiriminin eğitimi için de çekici kılar. Uygulama tarafında ise NCE, 2013'te Mikolov ve ekibinin Word2Vec için tasarladığı Negative Sampling yaklaşımının doğrudan öncülüdür. Negative Sampling, NCE'deki gürültü dağılımı terimini atarak daha basit bir amaç fonksiyonu kullanır; olasılık kestirimi için tutarlı olmasa da kaliteli kelime gömmeleri üretir. 2018'de van den Oord ve arkadaşlarının Contrastive Predictive Coding çalışmasıyla tanıttığı InfoNCE kaybı, aynı ilkeyi temsil öğrenimine taşıdı. Pozitif çifti k negatif arasından seçmeye dayanan bu kayıp, SimCLR, MoCo ve CLIP gibi öz-denetimli modellerin ve modern gömme modellerinin eğitiminde standart hale geldi. Günümüz büyük dil modelleri çıkış katmanında tam softmax kullansa da NCE ailesi, geri getirim, öneri sistemleri ve çok modlu öğrenme alanlarında yaygın biçimde kullanılmaya devam ediyor.

Noise Contrastive Estimation Nedir?

Noise Contrastive Estimation (NCE), normalize edilmemiş bir olasılık modelini eğitmek için gerçek veri örneklerini bilinen bir gürültü dağılımından çekilen yapay örneklerle karşılaştıran istatistiksel bir kestirim ilkesidir. Michael Gutmann ve Aapo Hyvärinen'in 2010 tarihli çalışmasında önerilen yöntem, yoğunluk kestirimi problemini bir lojistik regresyon görevine indirger: her örnek için model, "bu örnek gerçek veriden mi yoksa gürültüden mi geldi" sorusuna cevap verir. Bu soruya doğru cevap verebilmek için modelin gerçek veri dağılımının biçimini öğrenmesi gerekir; dolayısıyla sınıflandırma başarısı arttıkça parametreler gerçek dağılımı temsil etmeye yaklaşır. NCE'yi özel kılan şey, bu süreçte bölüşüm fonksiyonunun hiç hesaplanmamasıdır. Yöntem, dil modellemeden enerji tabanlı modellere kadar geniş bir alanda kullanılır ve modern karşıtlıklı öğrenmenin matematiksel temelini oluşturur.

Neden Gerekli? Normalizasyon Sabiti Sorunu

Bir olasılık modeli p(x) = f(x; θ) / Z(θ) biçiminde yazıldığında Z(θ) bölüşüm fonksiyonu, f'nin tüm olası x değerleri üzerindeki toplamı ya da integralidir. Dil modellerinde bu toplam kelime dağarcığındaki her token için bir skor hesaplamak anlamına gelir; 100 bin kelimelik bir dağarcıkta her eğitim adımı 100 bin çarpım gerektirir ve softmax katmanı hesaplamanın büyük kısmını tek başına yutar. Sürekli uzaylarda çalışan enerji tabanlı modellerde ise integralin kapalı biçimi çoğu zaman yoktur. NCE bu sabiti hesaplamak yerine ya öğrenilebilir bir parametre olarak modele ekler ya da 1'e sabitler. Mnih ve Teh'in 2012'de gösterdiği gibi, sinirsel dil modellerinde sabitleme yaklaşımı performansı bozmaz; model kendini normalize etmeyi öğrenir ve çıktıları toplamı 1'e yakın kalır.

Nasıl Çalışır? Gürültü ile İkili Sınıflandırma

NCE'de her gerçek veri örneği için gürültü dağılımından k adet örnek çekilir. Model, verilen bir örneğin gerçek veriden gelme olasılığını p_m(x) / (p_m(x) + k · p_n(x)) biçiminde hesaplar; burada p_m modelin normalize edilmemiş skoru, p_n ise gürültü dağılımının bilinen olasılığıdır. Amaç fonksiyonu, gerçek örnekler için bu olasılığı, gürültü örnekleri için ise tersini büyütmeye çalışan standart ikili çapraz entropi kaybıdır. Gürültü dağılımı seçimi kritik önem taşır: gerçek veriye çok uzak bir dağılım ayrımı fazla kolaylaştırır ve öğrenme sinyali zayıflar; çok yakın bir dağılım ise ayrımı zorlaştırıp eğitimi yavaşlatır. Dil modellerinde unigram dağılımı ya da Word2Vec'teki gibi unigram dağılımının 3/4 kuvveti yaygın tercihtir. Gutmann ve Hyvärinen'in kanıtladığı gibi k büyüdükçe NCE kestiricisi maksimum olabilirlik çözümüne yakınsar; k sonsuza giderken iki yöntem eşdeğer hale gelir.

NCE Ailesi ve Türevleri

  • check_circle Orijinal NCE (2010): Gutmann ve Hyvärinen'in yoğunluk kestirimi için önerdiği çerçeve; normalizasyon sabitini öğrenilebilir parametre olarak modele katar ve tutarlı bir kestirici sunar.
  • check_circle Negative Sampling (2013): Mikolov ve ekibinin Word2Vec için tasarladığı basitleştirilmiş sürüm; gürültü dağılımı terimi amaç fonksiyonundan atılır, her hedef için 5 ile 20 arası negatif kelime örneklenir.
  • check_circle InfoNCE (2018): van den Oord ve arkadaşlarının Contrastive Predictive Coding ile tanıttığı kayıp; pozitif çifti k negatif arasından seçen çok sınıflı bir softmax biçimi alır ve karşılıklı bilginin alt sınırını büyütür.
  • check_circle Sampled Softmax: Jean ve arkadaşlarının 2015'te çeviri modelleri için popülerleştirdiği yaklaşım; softmax'ı rastgele seçilmiş bir alt küme üzerinde hesaplar ve örnekleme sapmasını logQ düzeltmesiyle giderir.
  • check_circle Ranking NCE ve Conditional NCE: Sıralama temelli ve koşullu dağılımlar için uyarlanmış varyantlar; öneri sistemlerinde ve yapılandırılmış tahmin problemlerinde kullanılır.

Word2Vec ve Dil Modellerindeki Rolü

NCE'nin yaygın benimsenmesi sinirsel dil modelleriyle başladı. Mnih ve Teh 2012'de NCE ile eğitilen dil modellerinin tam softmax'a kıyasla çok daha hızlı öğrendiğini ve kalite kaybı yaşamadığını gösterdi. Bir yıl sonra Word2Vec'in Skip-gram mimarisi, NCE'yi Negative Sampling adıyla sadeleştirerek milyarlarca kelimelik derlemlerin tek bir işlemcide saatler içinde işlenmesini mümkün kıldı. Bu yaklaşım "kral eksi erkek artı kadın eşittir kraliçe" gibi analojik ilişkileri yakalayan 300 boyutlu kelime vektörlerini üretti. Günümüz büyük dil modelleri, GPU belleğinin ve füzyonlu çekirdeklerin gelişmesiyle 32 bin ile 256 bin arası token içeren dağarcıklarda tam softmax hesaplayabildiğinden NCE'ye ihtiyaç duymaz. Ancak dağarcık yerine milyonlarca ürün ya da belge üzerinde çalışan öneri ve geri getirim modellerinde NCE ve sampled softmax hâlâ standarttır.

Karşıtlıklı Öğrenme ve Gömme Modellerinde NCE

NCE ilkesi, InfoNCE kaybı aracılığıyla modern temsil öğreniminin merkezine yerleşti. SimCLR ve MoCo, aynı görüntünün iki farklı artırılmış halini pozitif çift, mini-batch'teki diğer görüntüleri negatif olarak kullanarak etiketsiz veriden güçlü görsel temsiller öğrenir. CLIP aynı yapıyı görüntü ve metin çiftlerine uygular; 400 milyon çift üzerinde eğitilen model sıfır atışlı sınıflandırma yapabilir. Metin gömme modellerinde Sentence-Transformers kütüphanesinin MultipleNegativesRankingLoss kaybı ve E5, BGE gibi geri getirim modellerinin eğitimi de InfoNCE temeline dayanır. Bu modellerde sıcaklık parametresi ve batch içi negatiflerin sayısı, NCE'deki k ve gürültü dağılımı seçiminin doğrudan karşılığıdır; büyük batch'ler daha fazla negatif içerdiğinden genellikle daha iyi temsiller üretir.

Sık Sorulan Sorular

  • check_circle NCE ile Negative Sampling arasındaki fark nedir? NCE, gürültü dağılımının olasılığını sınıflandırıcıya dahil eder ve normalizasyon sabitini öğrenir; bu yüzden tutarlı bir olasılık kestiricisidir. Negative Sampling gürültü terimini atar ve yalnızca sigmoid skorlarla çalışır; olasılık kestirimi için tutarlı değildir ama kelime gömmesi öğrenmek için yeterlidir ve daha hızlıdır.
  • check_circle Gürültü örnekleri nasıl seçilir? En yaygın tercih, kelime frekanslarından türetilen unigram dağılımıdır. Word2Vec bu dağılımın 3/4 kuvvetini kullanarak nadir kelimelere daha fazla şans verir. Karşıtlıklı öğrenmede ise negatifler genellikle aynı mini-batch'teki diğer örneklerden alınır; MoCo gibi yöntemler bunu bir bellek kuyruğuyla genişletir.
  • check_circle Kaç gürültü örneği (k) kullanmalıyım? Teorik olarak k arttıkça kestirim iyileşir, ancak maliyet k ile doğru orantılı büyür. Word2Vec küçük veri kümelerinde 5 ile 20, büyük derlemlerde 2 ile 5 negatif önerir. InfoNCE tabanlı modellerde negatif sayısı batch boyutuna bağlıdır; SimCLR 4096'lık, CLIP 32768'lik batch'lerle eğitilmiştir.
  • check_circle NCE günümüz büyük dil modellerinde kullanılıyor mu? Çıkış katmanında hayır. GPT, Llama ve benzeri modeller tam softmax ile eğitilir çünkü modern GPU'lar 100 binlik dağarcıkları verimli işleyebilir. NCE ailesi ise gömme modelleri, geri getirim sistemleri, öneri motorları ve CLIP gibi çok modlu modellerde InfoNCE biçiminde aktif olarak kullanılır.
  • check_circle NCE'yi kodda nasıl uygularım? TensorFlow'da tf.nn.nce_loss ve tf.nn.sampled_softmax_loss hazır fonksiyonları vardır. PyTorch'ta yerleşik bir NCE kaybı bulunmaz; model skorları ile gürültü örneklerinin log olasılıklarını birleştirip BCEWithLogitsLoss ile ikili sınıflandırma kaybı yazmak yeterlidir. InfoNCE için ise benzerlik matrisi üzerinde CrossEntropyLoss kullanmak yaygın yaklaşımdır.