Какво е negative sampling при обучението на word2vec и защо е необходим?
sobes.tech AI
Отговор от AI
Отрицателното семплиране е техника за оптимизация, използвана при обучението на модела word2vec за ефективно обучение при задачи с много голям речник. Вместо да изчислява вероятността за всички думи в речника (което е много скъпо), отрицателното семплиране избира няколко "негативни" примера (думи, които не са част от контекста на дадената дума) и обучава модела да различава реалните двойки думи (положителни примери) от случайните (негативните).
Това позволява значително ускоряване на обучението и намаляване на изчислителните разходи, като същевременно запазва качеството на получените вграждания. В крайна сметка моделът учи да увеличава вероятността на близките думи и да намалява вероятността на случайните думи.
Пример: за двойка (дума, контекст) — положителен пример — се избират няколко случайни думи от речника като негативни, и моделът се учи да ги различава.
# Псевдокод за отрицателно семплиране
for target_word, context_word in corpus:
positive_pair = (target_word, context_word)
negative_samples = sample_negative_words(k) # k — брой негативни примери
update_model(positive_pair, negative_samples)