Технологія Word2Vec
Автор: Денис Аксьонов • Июнь 22, 2022 • Реферат • 1,085 Слов (5 Страниц) • 165 Просмотры
Білет №18
- Технологія Word2Vec
Word2vec – технологія, розроблена Google, для знаходження семантичних зв'язків між словами.
Word2Vec включає набір алгоритмів для розрахунку векторних уявлень слів, припускаючи, що слова, які використовуються в схожих контекстах, означають схожі речі, тобто семантично близькі.
Технологія Word2Vec використовує два різні методи:
- CBOW - пророцтво слова на підставі прилеглих слів.
- Skip-gram – передбачення прилеглих слів на підставі одного слова.
При розрахунку використовуються штучні нейронні мережі.
Під час навчання алгоритм формує оптимальний вектор кожного слова за допомогою CBOW або skip-gram.
[pic 1]
w(t) – це слово
w(t-2), w(t-1) тощо. – прилеглі слова
Метод неперервного мішка слів (Continuous Bag of Words – CBOW) передбачає центральне слово контексту в межах вікна заданого розміру. Модель намагається передбачити цільове слово, намагаючись зрозуміти контекст оточуючих слів. Розглянемо речення «It is a pleasant day». Модель перетворює це речення на пари слів у формі (контекстне слово, цільове слово). Користувачеві доведеться встановити розмір вікна. Якщо вікно для контекстного слова дорівнює 2, то пари слів виглядатимуть так: ([it, a], is), ([is, pleasant], a),([a, day], pleasant). За допомогою цих пар слів модель намагається передбачити цільове слово, яке розглядається як контекстні слова.
Для простоти припустимо, що наш словник складається з шести слів, тобто V = 6, і містить слова cat, rat, chased, garden, the і was.
Нехай їх пряме кодування використовує інтекси по порядку, так що вони можуть бути подані в наступному вигляді:
[pic 2]
Припустимо, вхідна матриця вкладень слів, в якій вектори для кожного слова мають розмірність 5, подана у наступному вигляді:
[pic 3]
[pic 4]
Помноживши матрицю вкладень слів на вектор слова в поданні прямого кодування, отримуємо вектор вкладень для даного слова. Отже, помноживши вхідну матрицю вкладень слів WI на кодований вектор для слова cat (тобто [pic 6]), отримаємо перший стовпець матриці WI, який відповідає слову cat:[pic 5]
[pic 7]
[pic 8]
Таким чином, можемо знайти всі вектори вкладень для вхідних слів, і їх середнє значення стане виходом прихованого шару.
Модель Skip-gram є в основному зворотною моделі CBOW. Вхідним є центральне слово, а модель прогнозує контекстні слова. Скажімо, у нас є такий текст: “i like natural language processing”. Після попередньої обробки ми перетворимо текст у список токенізованих слів: [“i”, “like”, “natural”, “language”, “processing”]. Тепер, щоб підготувати навчальні дані для багатослівної моделі Skipgram, ми визначаємо «контекстне слово» як слово, яке слідує за даним словом у тексті (яке буде нашим «цільовим словом»). Це означає, що ми будемо передбачати навколишнє слово для даного слова.
Тепер давайте побудуємо наші навчальні приклади, сканування тексту за допомогою вікна підготує контекстне слово та цільове слово, наприклад:
[pic 9]
Наприклад, для контекстного слова «i» та «natural» цільовим словом буде «like». Для нашого прикладу текстові повні навчальні дані виглядатимуть так:
[pic 10]
Далі потрібно перетворити текст у одиничне кодування, оскільки алгоритм може розуміти лише числові значення.
[pic 11]
Тож давайте подивимося на загальний набір слів, націлених на контекст, в одиничній формі:
[pic 12]
- Навчання ознакам за допомогою автокодувальників
Автокодери — це специфічний тип нейронних мереж із прямим зв’язком, де вхідні дані збігаються з виходом. Вони стискають вхідні дані в код нижчого виміру, а потім відновлюють вихідні дані з цього представлення. Код є компактним «зведенням» або «стисненням» вхідних даних, яке також називають представленням латентного простору.
Автокодер складається з 3 компонентів: кодера, коду та декодера. Кодер стискає вхід і виробляє код, декодер потім відновлює вхід лише за допомогою цього коду.
...