nlp natural language processing word2vec glove rnn lstm gru encoder decoder attention

NLP (Natural Language Processing) – Doğal Dil İşleme Üzerine Mimari Yaklaşımlar [3]

İstatistiksel NLP’den Sinirsel Temsillere Geçiş

Dağıtımsal Sözcük Temsilleri ve Word Embeddings

One-Hot Gösterimden Yoğun Vektörlere

E∈ℝ10000×100E \in \mathbb{R}^{10\,000 \times 100}

Anlamsal Yakınlık Nasıl Ölçülür?

cos⁡(u,v)=u⋅v‖u‖‖v‖\cos(u, v) = \frac{u \cdot v}{\lVert u \rVert \, \lVert v \rVert}

Word2Vec: CBOW ve Skip-Gram Mimarileri

L=1T∑t=1T∑−c≤j≤cj≠0log⁡P(wt+j|wt)L = \frac{1}{T} \sum_{t=1}^{T} \sum_{\substack{-c \le j \le c \\ j \neq 0}} \log P\left(w_{t+j} \mid w_t\right)
L=∑t∑−c≤j≤c,j≠0log⁡P(wt+j|wt)L = \sum_{t} \sum_{-c \le j \le c,\; j \neq 0} \log P\left(w_{t+j} \mid w_t\right)

Temsili Python örneği / Skip-Gram eğitim çiftlerinin oluşturulması;

words = ["yeni", "ekran", "kartı", "yüksek", "performans", "sağlıyor"]
window = 2
pairs = []

for i, center in enumerate(words):
    left = max(0, i - window)
    right = min(len(words), i + window + 1)
    for j in range(left, right):
        if i != j:
            pairs.append((center, words[j]))

print([pair for pair in pairs if pair[0] == "kartı"])

Beklenen çıktı:
[('kartı', 'yeni'), ('kartı', 'ekran'), ('kartı', 'yüksek'), ('kartı', 'performans')]

GloVe: Küresel Eş-Oluşum Bilgisini Kullanmak

J=∑i,j=1Vf(Xij)(wi⊤w~j+bi+b~j−log⁡Xij)2J = \sum_{i,j=1}^{V} f\left(X_{ij}\right) \left( w_i^{\top} \tilde{w}_j + b_i + \tilde{b}_j – \log X_{ij} \right)^2

Feed-Forward Sinirsel Dil Modelleri

Önceki n sözcük → Embedding katmanı → Birleştirme → Tam bağlantılı katman → Softmax → Sonraki sözcük olasılıkları

h=tanh⁡(Wh[E(wt−n),…,E(wt−1)]+bh)h = \tanh\left( W_h \left[ E(w_{t-n}), \ldots, E(w_{t-1}) \right] + b_h \right)
P(wt|bağlam)=softmax⁡(Woh+bo)P\left(w_t \mid \text{bağlam}\right) = \operatorname{softmax}\left( W_o\, h + b_o \right)

RNN: Dilin Sıralı Yapısını Öğrenmek

ht=tanh⁡(Wxxt+Whht−1+b)h_t = \tanh\left( W_x\, x_t + W_h\, h_{t-1} + b \right)

LSTM ve GRU: Uzun Süreli Bağımlılıkları Modellemek

ct=ft⊙ct−1+it⊙gtc_t = f_t \odot c_{t-1} + i_t \odot g_t

Encoder-Decoder: Bir Diziden Başka Bir Diziye

Attention: Her Çıktı Adımında Kaynağa Yeniden Bakmak

et,i=va⊤tanh⁡(Wsst−1+Whhi)e_{t,i} = v_a^{\top} \tanh\left( W_s\, s_{t-1} + W_h\, h_i \right)
αt,i=exp⁡(et,i)∑jexp⁡(et,j)\alpha_{t,i} = \frac{\exp\left(e_{t,i}\right)}{\sum_{j} \exp\left(e_{t,j}\right)}
ct=∑iαt,ihic_t = \sum_{i} \alpha_{t,i}\, h_i
from math import exp

scores = [1.0, 2.0, 0.0]  # Örnek uygunluk skorları
shifted = [exp(s - max(scores)) for s in scores]
total = sum(shifted)
weights = [value / total for value in shifted]

print([round(weight, 3) for weight in weights])

Beklenen çıktı: [0.245, 0.665, 0.09]

Mimarilerin Karşılaştırılması ve Türkçe NLP Açısından Değerlendirme

YaklaşımTemel Öğrenme AmacıBağlam YapısıBelirgin Sınır
Word2VecMerkez sözcük ve yakın bağlamı tahmin etmekYerel pencereStatik sözcük vektörü; bağlamdan bağımsız çok anlamlılık
GloVeKüresel eş-oluşum ilişkilerini vektöre aktarmakDerlem genelindeki eş-oluşumlarStatik temsil; veri ve eş-oluşum kalitesine bağımlılık
Feed-Forward LMGeçmiş sözcüklerden sonraki sözcüğü tahmin etmekSabit uzunluklu girişUzak geçmişe doğrudan erişim yok
RNNÖnceki gizli durumla diziyi modellemekAdım adım taşınan durumKaybolan/patlayan gradyan ve sıralı hesaplama
LSTM / GRUKapılarla ilgili bilgiyi koruyarak diziyi modellemekKapılı gizli durum / hücre durumuUzun dizilerde bellek ve eğitim maliyeti; sınırsız bağlam garantisi yok
Encoder–Decoder + AttentionKaynak diziden hedef dizi üretirken ilgili konumları ağırlıklandırmakÇıktı adımına özgü kaynak bağlamıMimari ve veri bağımlılığı; dikkat ağırlıklarının yorum sınırları

***

***

Blogdaki BölümAkademik Kaynak
Dağıtımsal Yaklaşım – Zellig Harris (1954)Distributional Structure
Feed-Forward – Yoshua Bengio (2003)A Neural Probabilistic Language Model
Word2Vec – Tomas Mikolov (2013)Efficient Estimation of Word Representations
Skip-Gram ve Negative Sampling (2013)Distributed Representations of Words and Phrases
GloVe – Pennington, Socher, Manning (2014)GloVe: Global Vectors for Word Representation
RNN – Jeffrey Elman (1990)Finding Structure in Time
LSTM – Hochreiter ve Schmidhuber (1997)Long Short-Term Memory
Unutma Kapısı – Gers ve arkadaşları (2000)Learning to Forget
GRU ve Encoder-Decoder – Cho (2014)Learning Phrase Representations using RNN Encoder–Decoder
GRU–LSTM Karşılaştırması – Chung (2014)Empirical Evaluation of Gated Recurrent Neural Networks
Seq2Seq – Sutskever, Vinyals, Le (2014)Sequence to Sequence Learning with Neural Networks
Attention – Bahdanau, Cho, Bengio (2014/2015)Neural Machine Translation by Jointly Learning to Align and Translate
Transformer – Vaswani ve arkadaşları (2017)Attention Is All You Need
Attention’ın Yorumlanması – Jain ve Wallace (2019)Attention is not Explanation

, , ,

İlgili Yazılar