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)