Sobes.tech
Middle — Senior

Czym jest negative sampling w treningu word2vec i do czego służy?

sobes.tech AI

Odpowiedź od AI

Negatywne próbkowanie to technika optymalizacji stosowana podczas treningu modelu word2vec, która pozwala na efektywne uczenie się w zadaniach z bardzo dużym słownikiem. Zamiast obliczać prawdopodobieństwo dla wszystkich słów w słowniku (co jest bardzo kosztowne), negatywne próbkowanie wybiera kilka "negatywnych" przykładów (słów, które nie są częścią kontekstu danego słowa) i uczy model rozróżniać rzeczywiste pary słów (przykłady pozytywne) od losowych (negatywne).

Pozwala to znacznie przyspieszyć trening i zmniejszyć koszty obliczeniowe, zachowując jednocześnie jakość uzyskiwanych osadzeń. Ostatecznie model uczy się zwiększać prawdopodobieństwo sąsiednich słów i zmniejszać prawdopodobieństwo losowych słów.

Przykład: dla pary (słowo, kontekst) — przykład pozytywny — wybiera się kilka losowych słów ze słownika jako negatywne, a model uczy się je rozróżniać.

# Pseudokod negatywnego próbkowania
for target_word, context_word in corpus:
    positive_pair = (target_word, context_word)
    negative_samples = sample_negative_words(k)  # k — liczba przykładów negatywnych
    update_model(positive_pair, negative_samples)