У цьому розділі розглядаються два найпоширеніші способи, якими можна створити векторне представлення.
- Зниження розмірності
- Вилучення векторного представлення з більшої моделі нейронної мережі
Методи зниження розмірності
Існує багато математичних методів для того, щоб відобразити важливу структуру простору високої розмірності в просторі низької розмірності. Теоретично, щоб створити векторне представлення для системи машинного навчання, можна використати будь-який із цих методів.
Наприклад, щоб створити векторні представлення слів, використовувався метод аналізу головних компонентів (PCA). Маючи набір екземплярів, наприклад вектори мішка слів, PCA намагається знайти висококорельовані виміри, які можна звести до одного.
Навчання векторного представлення як частини нейронної мережі
Векторне представлення можна створити, коли ви навчаєте нейронну мережу для свого цільового завдання. Так ви отримаєте векторне представлення, налаштоване для вашої конкретної системи, але це може зайняти більше часу, ніж якби ви навчали його окремо.
Ви можете створити прихований шар із розміром d в нейронній мережі й визначити його як шар векторного представлення (d – це як кількість вузлів у прихованому шарі, так і кількість вимірів у просторі векторного представлення). Цей шар векторного представлення можна комбінувати з будь-якими іншими функціями й прихованими шарами. Як і в будь-якій глибинній нейронній мережі, параметри оптимізуватимуться під час навчання, щоб звести до мінімуму втрати на вузлах вихідного шару мережі.
Повернімося до прикладу з рекомендаціями щодо їжі. Мета – спрогнозувати нові страви, які сподобаються користувачу, спираючись на його нинішню улюблену їжу. По-перше, ми можемо зібрати додаткові дані про п’ять найулюбленіших страв наших користувачів. Тоді можна змоделювати це завдання як задачу керованого навчання. Ми визначили чотири із цих п’яти улюблених харчових продуктів як ознаки, а потім випадковим чином виокремили п’ятий продукт як позитивну мітку, яку має прогнозувати наша модель, і оптимізували прогнози моделі за допомогою функції втрат softmax.
Під час навчання модель нейронної мережі дізнається оптимальні значення ваги для вузлів у першому прихованому шарі, який слугує шаром векторного представлення. Наприклад, якщо в першому прихованому шарі моделі є три вузли, вона може визначити, що три найважливіші виміри харчових продуктів – це "бутербродність", "десертність" і "рідкість". На рисунку 12 показано вхідне значення з прямим кодуванням, яке відповідає слову "хот-дог", перетвореному на тривимірний вектор.
Під час навчання значення ваги для шару векторного представлення оптимізуватимуться так, щоб вектори представлень для схожих прикладів були розташовані ближче один до одного. Окремі виміри шару векторного представлення (їх позначає кожен вузол такого шару) рідко бувають настільки зрозумілими, як "десертність" чи "рідкість". Іноді можна здогадатися, що вони означають, але це не завжди так.
Векторні представлення зазвичай залежать від конкретного завдання й змінюються разом із ним. Наприклад, векторні представлення, створені за допомогою моделі класифікації вегетаріанських і не вегетаріанських продуктів, можуть мати два виміри: "вміст м’яса" й "вміст молочних продуктів". Водночас векторні представлення, створені за допомогою класифікатора сніданків і вечер американської кухні, можуть мати дещо інші виміри: "калорійність", "вміст зернових" і "вміст м’яса". Значення "вівсянка" й "бутерброд із яйцем і беконом" можуть перебувати близько одне до одного в просторі векторних представлень класифікатора сніданків і вечер, але далеко в просторі векторних представлень класифікатора вегетаріанських і не вегетаріанських страв.
Навчання векторного представлення слів
З попереднього розділу ви дізналися про візуалізацію семантичних зв’язків у просторі векторного представлення word2vec.
Word2vec – це один із багатьох алгоритмів, які використовуються, щоб навчати векторні представлення слів. Спираючись на дистрибутивну гіпотезу, він зіставляє семантично схожі слова з геометрично близькими векторами представлень. Дистрибутивна гіпотеза стверджує, що слова, які часто вживаються разом з однаковими сусідніми словами, як правило, семантично схожі. Слова "собака" й "кіт" часто вживаються поруч зі словом "ветеринар", що свідчить про їх семантичну схожість. Цей принцип підсумував у 1957 році лінгвіст Джон Ферт, сказавши: You shall know a word by the company it keeps (Ви впізнаєте слово за його оточенням).
У відео, наведеному нижче, пояснюється ще один метод, яким можна створити векторне представлення слів під час навчання нейронної мережі, використовуючи простішу модель.
Статичне й динамічне векторне представлення
Одне з обмежень векторних представлень слів, подібних до того, про яке йдеться у відео вище, полягає в тому, що вони статичні. У векторному просторі кожне слово представлене однією точкою, хоча в нього може бути безліч різних значень залежно від того, як воно вживається в реченні. В останній вправі ви стикнулися зі складністю, яка зазвичай виникає, коли потрібно підібрати семантично схожі мовні одиниці до такого слова, як orange (помаранчевий/апельсин), що може означати як колір, так і тип фруктів.
Щоб усунути ці недоліки, розробили контекстні векторні представлення. Вони дають змогу створити кілька варіантів представлення одного слова, кожне з яких містить інформацію про контекст, у якому слово використовується. Якщо використовується контекстне векторне представлення, слово orange може мати два окремих варіанти: одне для вживання в значенні "колір", тобто в реченнях на кшталт My favorite sweater has orange stripes (На моєму улюбленому светрі є помаранчеві смуги); а друге – у значенні "фрукт", тобто в таких реченнях, як The orange was plucked from the tree before it had fully ripened (Апельсин зірвали з дерева ще до того, як він повністю дозрів).