У цьому розділі описано кілька способів, як можна отримати векторні представлення, а також перетворити статичні векторні представлення на контекстні.
Методи зниження розмірності
Існує багато математичних методів, які переносять важливі структури з високовимірного простору в низьковимірний. Теоретично, щоб створити векторне представлення для системи машинного навчання, можна використати будь-який із цих методів.
Наприклад, щоб створити векторні представлення слів, використовувався метод головних компонент (PCA). Маючи набір екземплярів, наприклад вектори мультимножини слів, PCA намагається знайти тісно пов’язані виміри, які можна об’єднати в один.
Навчання моделі векторного представлення як частини нейронної мережі
Векторне представлення можна створити, коли ви навчаєте нейронну мережу для свого цільового завдання. Так ви отримаєте векторне представлення, налаштоване для вашої конкретної системи, але це може зайняти більше часу, ніж якби ви навчали окрему модель.
Загалом ви можете створити в нейронній мережі прихований шар із розмірністю d й визначити його як шар векторного представлення (d тут – це і кількість вузлів у прихованому шарі, і кількість вимірів у просторі векторного представлення). Цей шар векторного представлення можна комбінувати з будь-якими іншими ознаками й прихованими шарами. Як і в будь-якій глибинній нейронній мережі, параметри оптимізуватимуться під час навчання, щоб звести до мінімуму втрати на вузлах у вихідному шарі мережі.
Повернімося до прикладу з рекомендаціями їжі. Мета – спрогнозувати нові страви, які сподобаються користувачу, на основі інформації про страви, які він любить зараз. По-перше, ми можемо зібрати додаткові дані про п’ять найулюбленіших страв наших користувачів. Тоді можна змоделювати це завдання як завдання навчання з учителем. Ми визначили чотири із цих п’яти улюблених страв як ознаки, а потім випадковим чином виокремили п’яту страву як позитивну мітку, яку має прогнозувати наша модель, і оптимізували прогнози моделі за допомогою функції softmax.
Під час навчання модель нейронної мережі дізнається оптимальні ваги для вузлів у першому прихованому шарі, який слугує шаром векторного представлення. Наприклад, якщо в першому прихованому шарі моделі є три вузли, вона може визначити, що три найважливіші виміри страв – це "бутербродність", "десертність" і "рідкість". На рисунку 12 показано вхідне значення з унітарним кодуванням, яке відповідає слову "хот-дог", перетвореному на тривимірний вектор.
![Рисунок 12. Нейронна мережа для унітарного кодування слова "хот-дог". Перший шар – вхідний, він містить 5 вузлів. На кожному з них розміщено значок страви, яку представляє вузол (борщу, хот-дога, салату, …, шаурми). Ці вузли мають значення [0, 1, 0, …, 0] відповідно і є унітарним кодуванням слова "хот-дог". Вхідний шар з’єднується з 3-вузловим шаром векторного представлення, вузли якого мають значення 2,98, –0,75 і 0 відповідно. Шар векторного представлення з’єднано з 5-вузловим прихованим шаром, який з’єднано з 5-вузловим вихідним шаром.](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/one_hot_hot_dog_embedding.png?hl=uk)
hot dog
" подається як вхідні дані для глибинної нейронної мережі. Шар векторного представлення перетворює унітарне кодування в тривимірний вектор представлення [2.98, -0.75, 0]
.
Під час навчання ваги для шару векторного представлення оптимізуватимуться так, щоб вектори представлень для схожих прикладів були розташовані ближче один до одного. Як згадувалося раніше, виміри, які фактична модель обирає для своїх векторних представлень, навряд чи будуть такими інтуїтивно зрозумілими, як у цьому прикладі.
Контекстні векторні представлення
Одним з обмежень статичних векторів представлення у моделі word2vec
є те, що слова можуть означати різні поняття в різних контекстах. Слово "Так", вжите окремо, має одне значення, але у фразі "Як би не так" це значення змінюється на протилежне. Слово "ключ" може означати "предмет для відкривання замків", "джерело води", "музичний символ", "код або спосіб розгадування", "інструмент для загвинчування або відкручування", "зграя птахів у польоті" тощо.
Однак у випадку статичних векторів представлення у векторному просторі кожне слово представлене однією точкою, хоча в нього може бути безліч різних значень.
В останній вправі ви зіткнулися з обмеженнями статичних векторів представлення такого слова, як orange (помаранчевий/апельсин), що може означати як колір, так і тип фруктів. Якщо статичний вектор представлення лише один, слово orange завжди буде ближчим до інших кольорів, ніж до слова juice (сік) під час навчання на наборі даних word2vec
.
Щоб усунути це обмеження, розробили контекстні векторні представлення. У цьому випадку слово можна представити кількома векторними представленнями, які містять інформацію про сусідні слова, а також про саме слово. Слово orange матиме різне векторне представлення для кожного унікального речення, що містить це слово в наборі даних.
Деякі методи створення контекстних векторних представлень, зокрема ELMo (векторні представлення з мовних моделей), використовують статичне векторне представлення прикладу, наприклад вектор word2vec
для певного слова в реченні, і перетворюють його за допомогою ознаки, яка містить інформацію про слова навколо нього. У результаті створюється контекстне векторне представлення.
Натисніть тут, щоб дізнатися більше про контекстні векторні представлення
- Зокрема, для моделей ELMo статичне векторне представлення об’єднується з векторними представленнями, узятими з інших шарів, які кодують читання речення з початку до кінця й із кінця до початку.
- Моделі BERT маскують частину послідовності, яку модель приймає як вхідні дані.
- Моделі-трансформери використовують шар самоуваги, щоб зважити релевантність інших слів у послідовності відносно кожного окремого слова. Вони також додають відповідний стовпець із матриці позиційного векторного представлення (див. позиційне кодування) до кожного попередньо вивченого векторного представлення для токена. Це здійснюється елемент за елементом, щоб отримати вхідне векторне представлення, який далі подається в модель для виведення результатів. Таке векторне представлення вхідних даних, унікальне для кожної окремої текстової послідовності, є контекстним векторним представленням.
Хоча моделі, описані вище, є мовними моделями, контекстні векторні представлення корисні також в інших генеративних завданнях, наприклад у зображеннях. Векторне представлення піксельних значень RGB у фотографії коня дасть більше інформації для моделі, якщо додатково до нього використати позиційну матрицю, у якій для кожного пікселя наведено дані про сусідні пікселі в певному кодуванні.