Word2Vec (Kelime-Vektör Gömme Modeli)

Word2Vec, ham metinden CBOW veya Skip-gram mimarisiyle düşük boyutlu kelime vektörleri öğrenen, anlamsal ilişkileri geometrik uzayda kodlayan Mikolov ve ark. (2013) modelidir.

Word2Vec, 2013 yılında Google'dan Tomas Mikolov ve ekibi tarafından geliştirilen, büyük metin korpuslarından kelime vektörleri öğrenen sinir ağı tabanlı bir gömme modelidir. Temel fikir, anlamsal açıdan birbirine yakın kelimelerin yüksek boyutlu uzayda da birbirine yakın noktalara karşılık gelmesidir; bu ilke dağılımsal anlam hipotezi olarak bilinir. Model iki farklı mimariyle eğitilebilir. CBOW (Continuous Bag of Words) mimarisinde bağlam kelimeleri girdi olarak alınır ve merkez kelime tahmin edilir; bu yaklaşım hızlı eğitim ve sık kelimelerde iyi performans sunar. Skip-gram mimarisinde ise tek bir merkez kelimeden yola çıkılarak çevresindeki bağlam kelimeleri tahmin edilir; bu yöntem nadir kelimeler için daha iyi temsiller üretir. Her iki mimari de negatif örnekleme (negative sampling) veya hiyerarşik softmax teknikleriyle milyonlarca parametreyi verimli biçimde optimize eder. Word2Vec'in en çarpıcı özelliği vektör aritmetiğine olanak tanımasıdır. 'Kral − Erkek + Kadın ≈ Kraliçe' örneği, modelin yalnızca birlikte geçme istatistiklerinden cinsiyet, rütbe ve meslek gibi soyut ilişkileri kodladığını göstermektedir. Bu ilişkiler çeviri, anlam genişlemesi ve metafor tespitinde kullanılmaktadır. Word2Vec'in sınırlılıkları da belirgindir: her kelime için tek bir sabit vektör üretir; bu nedenle 'banka' gibi çok anlamlı (polysemous) kelimelerde bağlama göre anlam ayrımı yapılamaz. ELMo (2018) bu sorunu LSTM tabanlı bağlama duyarlı temsiliyle çözmeye başladı; ardından gelen BERT ve GPT gibi transformer tabanlı modeller ise dinamik gömme anlayışını endüstri standardına taşıdı. Buna karşın Word2Vec, hesaplamalı maliyetinin son derece düşük olması nedeniyle kaynak kısıtlı ortamlarda, öneri sistemlerinde ve belge sınıflandırmasında hâlâ tercih edilmektedir. GloVe (Global Vectors for Word Representation) ve FastText, Word2Vec'in temellerini genişleten önemli alternatiflerdir: GloVe küresel birlikte geçme istatistiklerini kullanırken, FastText alt kelime parçalarını (subword) modelleyerek bilinmeyen kelimeleri de temsil edebilir.

CBOW ve Skip-gram Mimarileri

Word2Vec'in iki temel mimarisi farklı tahmin yönleriyle çalışır. CBOW (Continuous Bag of Words) bağlam penceresindeki komşu kelimelerden merkez kelimeyi tahmin eder; pencere genişliği genellikle ±2 ila ±5 arasında ayarlanır. Küçük veri kümelerinde ve sık kelimelerde daha iyi performans verir. Skip-gram ise merkez kelimeden yola çıkarak bağlam kelimelerini tahmin eder; seyrek kelimelerin ve özel isimlerin temsilinde üstündür. Negatif örnekleme (NCE) ile Skip-gram, her parametre güncellemesinde tüm kelime dağarcığı yerine yalnızca k adet (genellikle 5-20) negatif örnek kullanarak hesaplama maliyetini dramatik biçimde düşürür. Her iki mimari de çıktı olarak N boyutlu (tipik 100-300) yoğun vektörler üretir; bu vektörler benzer anlamdaki kelimeler için geometrik olarak yakın konumlardadır.

Vektör Aritmetiği ve Anlamsal İlişkiler

Word2Vec'in en dikkat çekici keşfi, öğrenilen vektörlerin anlamsal ilişkileri doğrusal dönüşümlerle kodlamasıdır. En ünlü örnek: vec(kral) − vec(erkek) + vec(kadın) ≈ vec(kraliçe). Bu çıkarım, modelin cinsiyeti bir vektör farkı olarak öğrendiğini gösterir. Benzer örüntüler sözdizimsel ilişkilerde de geçerlidir: vec(koşmak) + vec(geçmiş) ≈ vec(koştu). Cosine benzerliği, iki kelime vektörü arasındaki anlamsal mesafeyi ölçer (1 = özdeş yön, 0 = dik, -1 = zıt anlam). Bu özellik, anlamsal arama, kelime ilişkisi tahmini ve çeviri görevleri için güçlü bir temel oluşturur.

Kullanım Alanları

  • check_circle Anlamsal Arama ve Öneri: E-ticaret platformları Word2Vec ile benzer ürün gömmeleri oluşturur; kullanıcının baktığı ürüne yakın vektörlü ürünler önerilir. Haber siteleri benzer makale öneri motorlarında kullanır.
  • check_circle Duygu Analizi: Kelime vektörleri, duygu analizi modellerinde özellik (feature) olarak kullanılır. Ön eğitimli Word2Vec gömmeleri, küçük etiketli veri setlerinde bile yüksek doğruluk sunar.
  • check_circle Makine Çevirisi Öncesi: Word2Vec, farklı diller arasında hizalanmış çok dilli gömmeler için kullanılmıştır. Ortogonal dönüşümle iki dil uzayı hizalandığında kelime çevirisi sıfır örnekle (zero-shot) yapılabilir.
  • check_circle Biyomedikal NLP: Med2Vec ve BioWordVec, tıbbi metinler üzerinde Word2Vec uygulayarak ilaç-hastalık ilişkilerini ve klinik terim benzerliklerini modellemekte kullanılır.

Sonraki Nesil Gömme Modelleri

  • check_circle GloVe (2014, Stanford): Küresel eş-oluşum istatistiklerini kullanır; Word2Vec'in lokal bağlam penceresini tüm külliyat matrisine genişletir. Genellikle nadir kelimelerde daha tutarlı sonuçlar verir.
  • check_circle FastText (2016, Facebook): Karakterden oluşan alt-sözcük (subword) birimlerini öğrenir; bu sayede sözcük dağarcığı dışı (OOV) kelimeler için de vektör üretebilir. Morfolojik açıdan zengin dillerde üstündür.
  • check_circle BERT ve Transformer Gömmeleri: Word2Vec statik vektörler üretirken BERT her bağlamda farklı vektör üretir (dinamik gömme). 'banka' kelimesi finans cümlesinde farklı, dere kenarında farklı temsil edilir.

📝 Word2Vec Eğitim ve Kullanım İpuçları

  • check_circle Skip-gram büyük veri setinde anlamsal ilişkileri iyi öğrenir; CBOW hız için tercih edilir
  • check_circle Pencere boyutu 5-10; büyük pencere sözdizimsel, küçük pencere semantik ilişkilere odaklanır
  • check_circle Negatif örnekleme (ns=5-20): tüm kelime dağarcığı yerine rastgele örnekleme ile hız artışı
  • check_circle Alt örnekleme (sample=1e-3): sık kelimeleri seyreltmek öğrenme kalitesini artırır
  • check_circle Gensim kütüphanesi: Python'da Word2Vec eğitimi için standart araç; online eğitim desteği

Sık Sorulan Sorular

  • check_circle Word2Vec ile BERT arasındaki temel fark nedir? Word2Vec statik gömme üretir: 'banka' kelimesi her bağlamda aynı vektörü alır. BERT ise dinamik gömme üretir; aynı kelime farklı cümlelerde farklı vektör alır. Bu, Word2Vec'in bağlam belirsizliğini çözememesi anlamına gelir. Buna karşın Word2Vec çok daha hafif ve hızlıdır.
  • check_circle Vektör boyutu (dimensions) nasıl seçilmeli? Tipik seçimler 100, 200 veya 300 boyuttur. Küçük boyutlar (50-100) hızlı eğitim ve düşük bellek kullanımı sunar; büyük boyutlar (300+) daha fazla anlam kapasitesi verir ama fazla uyum (overfitting) riski taşır. Pratik kural: külliyat büyüklüğü arttıkça boyutu artır.
  • check_circle Türkçe için Word2Vec nasıl kullanılır? Türkçe morfolojik açıdan zengin bir dil olduğu için ham Word2Vec yerine FastText veya BPEmb tercih edilebilir. Ancak büyük Türkçe külliyatlarla (Wikipedia, OSCAR) eğitilen Word2Vec modelleri Gensim üzerinde yüklenebilir. HuggingFace'te Türkçe ön eğitimli modeller mevcuttur.
  • check_circle Python'da Word2Vec nasıl kullanılır? Gensim kütüphanesiyle: from gensim.models import Word2Vec; model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4). Eğitim tamamlandığında model.wv['kral'] ile vektör, model.wv.most_similar('kral') ile benzer kelimeler alınır.
  • check_circle Word2Vec hâlâ geçerli bir seçim midir? Evet, kaynak kısıtlı ortamlarda. BERT çok daha güçlü ama saniyede binlerce token işlemek için büyük GPU gerektirir. Word2Vec CPU üzerinde milisaniyelerde çalışır ve küçük bellek kullanır. Öneri sistemleri ve üretim ortamları için hâlâ pratik bir seçimdir.