Я беру за приклад обробку мови, тому що я маю більше досвіду, тому я закликаю інших поділитися своєю думкою в інших сферах, таких як Комп'ютерне бачення, біостатистика, часовий ряд тощо. Я впевнений, що в цих галузях є подібні приклади.
Я погоджуюся, що іноді моделювання візуалізацій може бути безглуздим, але я думаю, що основна мета подібних візуалізацій полягає у тому, щоб допомогти нам перевірити, чи справді модель стосується інтуїції людини чи якоїсь іншої (не обчислювальної) моделі. Крім того, на даних може бути проведений дослідницький аналіз даних.
Припустимо, у нас є модель вбудовування слів, побудована з корпусу Вікіпедії за допомогою Gensim
model = gensim.models.Word2Vec(sentences, min_count=2)
Тоді ми маємо 100 розмірних векторів для кожного слова, представленого в тому корпусі, який присутній щонайменше двічі. Отже, якби ми хотіли візуалізувати ці слова, нам доведеться зменшити їх до 2 або 3 розмірів за допомогою алгоритму t-sne. Тут виникають дуже цікаві характеристики.
Візьмемо приклад:
вектор ("король") + вектор ("чоловік") - вектор ("жінка") = вектор ("королева")
Тут кожен напрямок кодує певні смислові ознаки. Те ж саме можна зробити в 3d
(джерело: tensorflow.org )
Подивіться, як у цьому прикладі минуле час знаходиться у певному положенні відповідно до його дієприкметників. Те саме для статі. Те саме з країнами та столицями.
У слові вбудовування світу, старіші та наївніші моделі не мали цього властивості.
Дивіться цю лекцію Стенфорда для більш детальної інформації.
Просте слово векторні уявлення: word2vec, GloVe
Вони обмежувалися лише кластеризацією подібних слів разом без урахування семантики (стать або час дієслова не кодувались як вказівки). Не дивно, що моделі, які мають семантичне кодування як напрямки нижчих розмірів, є більш точними. І що ще важливіше, вони можуть бути використані для вивчення кожної точки даних більш відповідним чином.
У цьому конкретному випадку я не думаю, що t-SNE не використовується для класифікації як такої, це скоріше як перевірка обґрунтованості для вашої моделі, а іноді і для розуміння конкретного корпусу, який ви використовуєте. Що стосується проблеми того, що вектори вже не знаходяться в оригінальному просторі функцій. У лекції (посилання вище) Річард Сочер пояснює, що низькомірні вектори поділяють статистичні розподіли з власним більшим представленням, а також інші статистичні властивості, які дозволяють правдоподібно візуально проаналізувати вкладення векторів менших розмірів.
Додаткові ресурси та джерела зображення:
http://multithreaded.stitchfix.com/blog/2015/03/11/word-is-worth-a-thousand-vectors/
https://www.tensorflow.org/tutorials/word2vec/index.html#motivation_why_learn_word_embeddings%3F
http://deeplearning4j.org/word2vec.html
https://www.tensorflow.org/tutorials/word2vec/index.html#motivation_why_learn_word_embeddings%3F