Negative Sampling

Wprowadzenie

Negative Sampling to technika przybliżania funkcji straty, która pozwala efektywnie trenować modele na bardzo dużych słownikach lub zbiorach danych. Zamiast obliczać prawdopodobieństwo dla wszystkich możliwych klas (co jest bardzo kosztowne), losowo wybieramy tylko kilka „negatywnych” przykładów.

Dlaczego Negative Sampling jest potrzebny?

W modelach takich jak Skip-Gram (Word2Vec) przy słowniku 1 miliona słów softmax wymagałby obliczenia gradientów dla wszystkich słów przy każdym kroku. Negative Sampling redukuje ten koszt do obliczeń dla 5–20 negatywnych próbek.

Jak działa Negative Sampling?

Dla pary kontekst-słowo (positive pair) losujemy kilka słów, które nie pojawiają się w kontekście (negative samples). Model uczy się odróżniać prawdziwe pary od fałszywych za pomocą lossu sigmoid (Binary Cross Entropy).

Główne warianty Negative Sampling

  • Uniform Negative Sampling – losowanie z równomiernym rozkładem
  • Unigram + Noise Distribution – klasyczna metoda z Word2Vec (prawdopodobieństwo proporcjonalne do częstości występowania0.75)
  • Hard Negative Sampling – wybieranie najtrudniejszych (najbardziej mylących) negatywnych przykładów
  • In-batch Negatives – popularne w Contrastive Learning (np. SimCLR, Sentence-Transformers)
  • InfoNCE Loss – uogólnienie Negative Sampling w self-supervised learning

Zalety Negative Sampling

  • Znaczne przyspieszenie treningu
  • Niższe zużycie pamięci
  • Skuteczne przy bardzo dużych słownikach i grafach
  • Prosta implementacja

Zastosowania

  • Word Embeddings (Word2Vec – Skip-Gram)
  • Graph Embeddings (Node2Vec, DeepWalk)
  • Systemy rekomendacyjne (Matrix Factorization)
  • Contrastive Learning (tekst, obraz, audio)
  • Modele dwuwieżowe (Bi-Encoders) w wyszukiwaniu semantycznym

Najlepsze praktyki (2026)

  • Używaj 5–15 negatywnych próbek dla Word2Vec
  • W Contrastive Learning stosuj large batch + in-batch negatives
  • Łącz z Hard Negative Mining dla lepszej jakości
  • Wykorzystuj temperaturę w InfoNCE Loss
  • Monitoruj jakość negatywnych przykładów

Powiązane pojęcia

Skip-Gram • Word2Vec • Contrastive Learning • InfoNCE • Hard Negatives • Self-Supervised Learning • Embedding Learning • Hierarchical Softmax