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