Загрузка 3D-лаборатории…
Загрузка урока…
← Как работает ИИМир 1 · урок 3 из 4Все уроки ↓

Эмбеддинги: список чисел для каждого токена
Преподаёте это? Открыть режим проектора
ID токенов — это всего лишь метки. ID 4821 не является «близким по смыслу» к ID 4822. Чтобы вычислять закономерности, похожие на смысловые, модели нужно представление, в котором сходство — это число, которое можно вычислить.
Это представление называется эмбеддингом: для каждого токена это список чисел, который называется вектором. Векторы находятся в большой таблице. Изначально их значения случайны, а во время обучения они корректируются. В настоящих моделях для каждого токена используются сотни и тысячи чисел.
Что делает вектор полезным? Токены, которые встречаются в похожих контекстах, в итоге получают похожие векторы. Эту идею в большом масштабе продемонстрировали Миколов и его коллеги (2013, «word2vec»), и она перекликается с высказыванием лингвистов: слово характеризуется своим окружением. «Кошка» и «собака» встречаются рядом со словами вроде «питомец», «кормят» и «ветеринар», поэтому их векторы оказываются близкими. А «кошка» и «карбюратор» — нет.
Измерение сходства: косинусное сходство. Для двух векторов a и b:
cos = (a · b) / (|a| × |b|)
где a · b — сумма произведений соответствующих элементов, а |a| — квадратный корень из суммы квадратов. Результат всегда находится между −1 и 1: 1 означает, что векторы направлены одинаково, 0 — что они перпендикулярны, а −1 — что они направлены в противоположные стороны.
Простой пример с двумя числами в каждом векторе (условный): кошка = (3, 4), а собака = (4, 3). Скалярное произведение равно 3×4 + 4×3 = 24. Длины обоих векторов равны 5. Значит, косинус = 24 / 25 = 0,96. Теперь возьмём машину = (4, −3): скалярное произведение с кошкой равно 12 − 12 = 0, поэтому косинус = 0.
300 измерений невозможно нарисовать. Чтобы показать карту, векторы сжимают до 3 (или 2) измерений с помощью метода вроде PCA или t-SNE; в AI Lab, в мире «От шести признаков к облаку точек», показано, как они работают и где искажают расстояния. При сжатии всегда что-то искажается: два слова, которые на карте выглядят соседями, в полном пространстве могут находиться дальше друг от друга.
У статических векторных представлений есть предел. Если каждому токену соответствует один фиксированный вектор, то у слова «банк» будет один и тот же вектор в выражениях «берег реки» и «банковский счёт». Один вектор должен передавать оба значения. Позже в этой лабораторной работе (в Мире 2) вы увидите, как механизм внимания позволяет числам токена зависеть от слов вокруг него.
Два вектора слов направлены совершенно одинаково. Чему равна их косинусная близость?
Почему на 3D-карте векторов слов два слова могут оказаться рядом, хотя в полном пространстве они находятся далеко друг от друга?
Почему один постоянный вектор для слова «bank» — это проблема?
Если кот = (3, 4), а собака = (4, 3), чему равно косинусное сходство?