Взято з цього допису: https://stats.stackexchange.com/a/245452/154812
Питання
Існують деякі проблеми з вивченням векторів слів за допомогою «стандартної» нейронної мережі. Таким чином, вектори слова вивчаються, поки мережа вчиться передбачати наступне слово, задане вікно слів (вхід мережі).
Прогнозувати наступне слово - це ніби передбачити клас. Тобто така мережа - це просто «стандартний» багаточленний (багатокласний) класифікатор. І ця мережа повинна мати стільки вихідних нейронів, скільки там класів. Коли заняття - це фактичні слова, кількість нейронів, ну, величезна.
"Стандартна" нейронна мережа зазвичай навчається з функцією витрат на перехресну ентропію, яка вимагає, щоб значення вихідних нейронів представляли ймовірності - це означає, що вихідні "бали", обчислені мережею для кожного класу, повинні бути нормалізовані, перетворені в фактичні ймовірності для кожного класу. Цей крок нормалізації досягається за допомогою функції softmax. Softmax дуже дорого коштує, коли застосовується до величезного вихідного шару.
(А) рішення
Для вирішення цього питання, тобто дорогого обчислення софмаксу, Word2Vec використовує методику, яку називають шумо-контрастною оцінкою. Ця методика була введена [A] (переформульована [B]), а потім використана в [C], [D], [E] для вивчення вбудовування слів із тексту без маркіровки на природній мові.
Основна ідея полягає в перетворенні задачі мультиноміальної класифікації (оскільки це проблема передбачення наступного слова) у бінарну проблему класифікації. Тобто, замість того, щоб використовувати softmax для оцінки справжнього розподілу ймовірності вихідного слова, натомість використовується двійкова логістична регресія (двійкова класифікація).
Для кожного навчального зразка розширеного (оптимізованого) класифікатора подається справжня пара (центральне слово та інше слово, що з’являється в його контексті) та кілька кк випадково зіпсованих пар (що складається з центрального слова та випадково вибраного слова з лексика). Навчившись відрізняти справжні пари від зіпсованих, класифікатор в кінцевому підсумку вивчить слова вектори.
Це важливо: замість прогнозування наступного слова ("стандартної" методики навчання) оптимізований класифікатор просто передбачить, чи є пара слів хорошим чи поганим.
Word2Vec трохи налаштовує процес і називає його негативним вибіркою. У Word2Vec слова для негативних зразків (які використовуються для зіпсованих пар) черпають із спеціально розробленого розподілу, який надає перевагу менш рідкісним словам.
Список літератури
[A] (2005) - Контрастна оцінка: Навчання лінійно-лінійних моделей на немаркованих даних
[B] (2010) - Шум-контрастна оцінка: новий принцип оцінки для ненормалізованих статистичних моделей
[C] (2008) - Уніфікована архітектура для обробки природних мов: глибокі нейронні мережі з багатозадачністю навчання
[D] (2012) - швидкий і простий алгоритм для навчання нейронних імовірнісних моделей мови .
[E] (2013) - Ефективне вкладання вбудованих слів із шумопомітною оцінкою .