word2vec: негативна вибірка (непросто)?


Відповіді:


164

Ідея word2vecполягає в тому, щоб максимізувати схожість (крапковий добуток) між векторами для слів, які в тексті виглядають близько (в контексті один одного), і мінімізувати схожість слів, яких немає. У рівнянні (3) статті, на яку ви посилаєтесь, на мить ігноруйте степенування. Ти маєш

      v_c * v_w
 -------------------
   sum(v_c1 * v_w)

Чисельник - це, в основному, подібність між словами c(контекст) та w(цільове) слово. Знаменник обчислює подібність усіх інших контекстів c1і цільового слова w. Максимізуючи це співвідношення, слова, які в тексті з’являються ближче, мають більше схожих векторів, ніж слова, яких немає. Однак обчислення цього може бути дуже повільним, оскільки існує багато контекстів c1. Негативна вибірка - це один із способів вирішення цієї проблеми - просто c1довільно виберіть пару контекстів . Кінцевим результатом є те, що якщо catз’являється у контексті food, то вектор foodis більше схожий на вектор catas (як міри за їх крапковим добутком), ніж вектори кількох інших довільно вибраних слів(Наприклад democracy, greed, Freddy), а всі інші слова в мові . Це word2vecнабагато швидше тренується.


15
спасибі чи приємне пояснення. Я думаю, це просто вибірки. але чи знаєте ви, чому це названо "негативним"?
HappyCoding

46
Термінологія запозичена з класифікації, загального застосування нейронних мереж. У вас є купа позитивних і негативних прикладів. З word2vec, для будь-якого даного слова у вас є список слів , які повинні бути схожі на нього (позитивний класі) , але негативний клас (слова , які не схожі на targer слово) складаються шляхом відбором проб.
mbatchkarov

38

Обчислення Softmax (функція для визначення слів, подібних до поточного цільового слова) є дорогим, оскільки вимагає підсумовування всіх слів у V (знаменник), яке, як правило, дуже велике.

введіть тут опис зображення

Що можна зробити?

Запропоновано різні стратегії для наближення програмного макс. Ці підходи можна згрупувати у підходи на основі softmax та вибірки . Підходи на основі Softmax - це методи, які зберігають рівень softmax незмінним, але модифікують його архітектуру, щоб підвищити ефективність (наприклад, ієрархічний softmax). З іншого боку, підходи на основі вибірки повністю ліквідують шар softmax і замість цього оптимізують якусь іншу функцію втрат, яка наближає softmax (вони роблять це, апроксимуючи нормування у знаменнику softmax з деякими іншими втратами, які дешево обчислити, як негативна вибірка).

Функція втрат у Word2vec виглядає приблизно так:

введіть тут опис зображення

Який логарифм може розкластися на:

введіть тут опис зображення

За допомогою певної математичної та градієнтної формул (див. Докладніше на 6 ) він перетворений у:

введіть тут опис зображення

Як ви бачите, він перетворений у завдання двійкової класифікації (y = 1 позитивний клас, y = 0 негативний клас). Оскільки нам потрібні мітки для виконання нашої двійкової класифікаційної задачі, ми позначаємо всі контекстні слова c як справжні мітки (y = 1, позитивна вибірка), а k випадково вибрані з корпусів як помилкові мітки (y = 0, негативна вибірка).


Подивіться на наступний абзац. Припустимо, що нашим цільовим словом є " Word2vec ". З вікном 3, наші контекстні слова: The, widely, popular, algorithm, was, developed. Ці контекстні слова розглядаються як позитивні позначення. Нам також потрібні деякі негативні мітки. Ми випадковим чином вибрати кілька слів з корпусу ( produce, software, Collobert, margin-based, probabilistic) і розглядати їх як негативні зразки. Цей прийом, який ми вибрали випадковим прикладом із корпусу, називається негативною вибіркою.

введіть тут опис зображення

Довідково :


1
Привіт @amir, моє початкове запитання полягає в тому, що я маю певні проблеми, розуміючи концепцію негативної вибірки ...
Andy K

1
Дуже добре пояснені та трохи технічніші, ніж прийнята відповідь. Отже, ідеальна ситуація з SO: прочитайте прийняту відповідь, щоб отримати ідею, а потім цю відповідь, щоб зрозуміти її детально.
Урсін Бруннер,

21

Я написав підручник статті про негативну вибірці тут .

Чому ми використовуємо негативну вибірку? -> зменшити обчислювальні витрати

Функція витрат для ванільного Skip-Gram (SG) та Skip-Gram негативного відбору проб (SGNS) виглядає так:

введіть тут опис зображення

Зверніть увагу, що Tце кількість усіх вокабів. Це еквівалентно V. В інших словах, T= V.

Розподіл ймовірності p(w_t+j|w_t)в SG обчислюється для всіх Vвокабів в корпусі з:

введіть тут опис зображення

Vможе легко перевищити десятки тисяч при навчанні моделі Skip-Gram. Ймовірність потрібно обчислювати в Vрази, що робить її обчислювально дорогою. Крім того, коефіцієнт нормування у знаменнику вимагає додаткових Vобчислень.

З іншого боку, розподіл ймовірностей в SGNS обчислюється з:

введіть тут опис зображення

c_posє вектором слів для позитивного слова і W_negє вектором слів для всіх Kвід’ємних зразків у вихідній матриці ваги. Для SGNS ймовірність потрібно обчислювати лише K + 1разів, де Kзазвичай становить від 5 до 20. Крім того, для обчислення коефіцієнта нормалізації в знаменнику не потрібні додаткові ітерації.

За допомогою SGNS для кожної навчальної вибірки оновлюється лише частка ваг, тоді як SG оновлює всі мільйони ваг для кожної навчальної вибірки.

введіть тут опис зображення

Як SGNS досягає цього? -> шляхом перетворення багатокласифікаційного завдання в двійкове завдання класифікації.

У SGNS вектори слів більше не засвоюються, передбачаючи контекстні слова центрального слова. Він вчиться диференціювати фактичні контекстні слова (позитивні) від випадково намальованих слів (негативні) від розподілу шуму.

введіть тут опис зображення

У реальному житті ви зазвичай не спостерігаєте regressionза випадковими словами типу Gangnam-Style, або pimples. Ідея полягає в тому, що якщо модель зможе розрізнити ймовірні (позитивні) пари від малоймовірних (негативні) пари, будуть вивчені хороші вектори слів.

введіть тут опис зображення

На наведеному малюнку поточною позитивною парою слово-контекст є ( drilling, engineer). K=5негативні зразки випадковим чином звертається від розподілу шуму : minimized, primary, concerns, led, page. Коли модель повторює навчальні зразки, ваги оптимізуються таким чином, що виводиться ймовірність для позитивної пари p(D=1|w,c_pos)≈1, а для негативних - p(D=1|w,c_neg)≈0.


1
T - кількість лексем (кількість слів у тексті). V для лексики (унікальних слів) я б сказав.
Адам

Якщо ми встановимо Kяк V -1, то негативна вибірка така ж, як і модель ванільного скіп-граму. Чи правильно розумію моє розуміння?
Шашват,

@Shashwat кількість оновлюваних векторів слів для кожної навчальної вибірки однакова, але функція цілей навчання все одно буде принципово іншою
Ерік Кім,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.