Векторні представлення: простір векторного представлення й статичні векторні представлення

Векторне представлення – це спосіб відображення даних в умовному просторі за допомогою векторів. Модель шукає потенційні векторні представлення, проєктуючи високовимірний простір векторів початкових даних у більш низьковимірний простір. Докладніше про високовимірні й низьковимірні дані можна прочитати в модулі Категорійні дані.

Ця методика полегшує машинне навчання на великих векторних представленнях ознак, таких як розріджені вектори, що представляють страви. Про ці вектори ми говорили в попередньому розділі. Іноді відносні позиції об’єктів потенційно мають семантичний зв’язок, проте часто людині складно зрозуміти, як визначається більш низьковимірний простір і відносні позиції в ньому, а також важко розібратися в отриманих векторних представленнях.

Однак щоб ви отримали уявлення про те, як вектори представлень виражають інформацію, розгляньмо одновимірне представлення таких страв, як хот-дог, піца, салат, шаурма й борщ. Їх буде розміщено на шкалі від "найменше схоже на бутерброд", до "найбільше схоже на бутерброд". Цей єдиний вимір стане уявною мірою "бутербродності".

Рисунок 3. Страви, розміщені на осі від найменше до найбільше схожої на бутерброд: борщ, салат, піца, хот-дог, шаурма.
Рисунок 3. Страви, розміщені на осі уявного виміру "бутербродність".

Де на цій шкалі опинився би яблучний струдель? За логікою, його можна розмістити між такими стравами, як hot dog і shawarma. Однак яблучний струдель також має додатковий вимір солодкість або десертність, який відрізняє його від інших. На рисунку, наведеному нижче, це візуалізували, додавши вимір "десертність".

Рисунок 4. Те саме зображення, що й раніше, але з вертикальною віссю десертності. Яблучний струдель розташовано між хот-догом і шаурмою над горизонтальною віссю, але вище за інші страви на осі десертності.
Рисунок 4. Страви, розподілені за вимірами "бутербродність" і "десертність".

Векторне представлення задає кожен елемент в n-вимірному просторі за допомогою n чисел із рухомою комою (зазвичай у діапазоні від –1 до 1 або від 0 до 1). На рисунку 3 векторне представлення подає кожну страву в одновимірному просторі з однією координатою, а у двовимірному просторі на рисунку 4 – з двома координатами. На рисунку 4 "яблучний струдель" розташовано у верхньому правому квадранті графіка в точці з координатами (0,5, 0,3), а "хот-дог" – у нижньому правому квадранті графіка в точці з координатами (0,2, –0,5).

У векторному представленні відстань між будь-якими двома об’єктами можна обчислити математично й інтерпретувати як міру їх відносної подібності. Два об’єкти, які розташовано близько один до одного (наприклад, shawarma і hot dog на рисунку 4), тісніше пов’язані в представленні даних моделі, ніж два об’єкти, віддалені один від одного (наприклад, apple strudel і borscht).

Зауважте також, що у двовимірному просторі на рисунку 4 apple strudel розташовано набагато далі від таких страв, як shawarma і hot dog, ніж це було б в одновимірному просторі. Це інтуїтивно зрозуміло: apple strudel має не так багато спільного з хот-догом чи шаурмою, як хот-доги із шаурмою.

А тепер розгляньмо борщ, який набагато рідкіший за інші страви. Це означає, що потрібний третій вимір – рідкість (він показуватиме, наскільки страва рідка). Додавши цей вимір, об’єкти можна візуалізувати в тривимірному просторі так:

Рисунок 5. Те саме зображення, що й раніше, але додано третю вісь рідкості, ортогональну двом іншим, і борщ перемістився далеко вздовж цієї осі.
Рисунок 5. Страви, розташовані за вимірами "бутербродність", "десертність" і "рідкість".

Яке місце в цьому тривимірному просторі займала б страва тан’юань? Вона схожа на суп, як і борщ, але також є солодким десертом, як яблучний струдель, і точно зрозуміло, що це не бутерброд. Ось де її можна розташувати:

Рисунок 6. Те саме зображення, що й раніше, але зі стравою тан’юань, яку розміщено далеко від нуля на осях десертності й рідкості та близько до нуля на осі бутербродності.
Рисунок 6. До попереднього зображення додано тан’юань. Його розміщено далеко від нуля на осях "десертності" й "рідкості" та близькр до нуля на осі "бутербродності".

Зверніть увагу на те, скільки інформації дають ці три виміри. Ви можете уявляти й додавати нові виміри, наприклад, "м’ясна страва" чи "випічка", проте чотири- чи п’ятивимірні або більш високовимірні простори важче візуалізувати.

Простори векторного представлення в реальному світі

Насправді простори векторного представлення d-вимірні, де d значно більше за 3, але менше, ніж розмірність даних, а зв’язок між точками даних не обов’язково такий інтуїтивно зрозумілий, як на зображенні вище. (Для векторних представлень слів d зазвичай становить 256, 512 чи 10241.)

На практиці спеціаліст із машинного навчання визначає певне завдання й кількість вимірів для створення векторного представлення. Після цього модель намагається розташувати навчальні приклади якомога ближче одне до одного в просторі векторного представлення з визначеною кількістю вимірів або самостійно підлаштовує кількість вимірів, якщо d не вказано. Окремі виміри рідко бувають настільки зрозумілими, як "десертність" чи "рідкість". Іноді можна здогадатися, що вони означають, але це не завжди так.

Векторні представлення зазвичай залежать від конкретного завдання й змінюються разом із ним. Наприклад, векторні представлення, створені моделю, яка класифікує страви як вегетаріанські й невегетаріанські, відрізнятимуться від векторних представлень моделі, яка пропонує страви за часом доби чи порою року. Так "вівсянка" й "ковбаски на сніданок", імовірно, будуть поряд у просторі векторного представлення моделі, що пропонує страви за годиною дня, але далеко одне від одного в просторі моделі класифікації вегетаріанських і невегетаріанських страв.

Статичні векторні представлення

Хоча векторні представлення відрізняються залежно від завдання, у них є одне спільне застосування: передбачення контексту слова. Моделі, навчені передбачати це, припускають, що слова, вжиті в схожих контекстах, семантично пов’язані. Наприклад, якщо в навчальних даних є речення "вони спустилися у Великий каньйон верхи на віслюку" і "вони спустилися в каньйон верхи на коні", модель визначить, що слова "кінь" і "віслюк" зустрічаються в схожих контекстах. Як з’ясувалося, векторне представлення на основі семантичної схожості добре підходить для багатьох загальних мовних завдань.

Хоча модель word2vec створена достатньо давно і вже майже не використовується, вона все ще може бути корисною для ілюстрації. word2vec навчається на корпусі документів, щоб отримати єдине глобальне векторне представлення для кожного слова. Коли у слова чи точки даних є тільки один вектор представлення, це називається статичним векторним представленням. У відео нижче показано процес навчання моделі word2vec в спрощеному вигляді.

Дослідження показує, що ці статичні векторні представлення після навчання певною мірою кодують семантичну інформацію, особливо щодо зв’язків між словами. Тобто слова, що використовуються в схожих контекстах, розміщуються ближче одне до одного в просторі векторного представлення. Окремі згенеровані вектори представлення залежать від корпусу, який використовувався для навчання. Докладнішу інформацію про це можна знайти в роботі T. Mikolov et al (2013) Efficient estimation of word representations in vector space (Ефективне оцінювання представлень слів у векторному просторі).


  1. Франсуа Шолле, Глибинне навчання на Python (Шелтер-Айленд, Нью-Йорк: Manning, 2017), 6.1.2.