Cos'è il negative sampling nell'addestramento di word2vec e a cosa serve?
sobes.tech AI
Risposta dell'AI
Il campionamento negativo è una tecnica di ottimizzazione utilizzata nell'addestramento del modello word2vec per un apprendimento efficiente in compiti con vocabolari molto grandi. Invece di calcolare la probabilità per tutte le parole nel vocabolario (cosa molto costosa), il campionamento negativo seleziona alcuni esempi "negativi" (parole che non fanno parte del contesto della parola data) e addestra il modello a distinguere tra coppie di parole reali (esempi positivi) e casuali (negativi).
Questo permette di accelerare significativamente l'addestramento e ridurre i costi computazionali, mantenendo la qualità degli embedding ottenuti. Alla fine, il modello impara ad aumentare la probabilità di parole vicine e a diminuire quella di parole casuali.
Esempio: per una coppia (parola, contesto) — esempio positivo — vengono selezionate diverse parole casuali dal vocabolario come negative, e il modello impara a distinguerle.
# Pseudocodice di campionamento negativo
for target_word, context_word in corpus:
positive_pair = (target_word, context_word)
negative_samples = sample_negative_words(k) # k — numero di esempi negativi
update_model(positive_pair, negative_samples)