1. От слов к числам: векторные представления и семантическое пространство
От слов к числам: векторные представления и семантическое пространство
Как объяснить компьютеру разницу между кошкой и собакой? Процессоры не понимают ни шерсти, ни лая, ни букв — они умеют только складывать и умножать числа. Главный парадокс искусственного интеллекта заключается в том, что вся красота и сложность человеческого языка должна быть сведена к математическим операциям. Чтобы нейросеть «поняла» текст, нам нужно превратить слова в числа так, чтобы при этом не потерять их смысл.
Наивный подход: словарь как массив нулей
Самый простой способ оцифровать язык — составить словарь всех известных слов и присвоить каждому уникальный номер. Допустим, в нашем словаре слов. Тогда каждое слово можно представить как длинный список (вектор) из ста тысяч элементов, где все значения — нули, и только в одной позиции стоит единица.
Этот метод называется One-hot encoding (унитарное кодирование).
Например:
В этих формулах означает позицию конкретного слова в словаре, а — отсутствие всех остальных слов.
С технической точки зрения мы перевели слова в числа, но для нейросети этот подход катастрофически неэффективен.
Во-первых, это требует огромных вычислительных ресурсов: векторы получаются гигантскими и почти полностью состоят из пустоты (нулей). Во-вторых, и это главное, такие векторы не содержат смысла.
В математике векторы One-hot encoding ортогональны друг другу. Это значит, что расстояние между векторами «яблоко» и «абрикос» точно такое же, как между «яблоко» и «автомобиль». Компьютер не видит, что первые два слова — это фрукты, а третье — машина. Для него это просто три независимые точки, равноудаленные друг от друга.
Эмбеддинги: сжатие смыслов
Современные языковые модели используют совершенно другой подход — эмбеддинги (embeddings, или плотные векторные представления).
Вместо того чтобы выделять каждому слову свою личную размерность в массиве из элементов, мы описываем каждое слово набором из нескольких сотен или тысяч чисел (обычно от до в современных моделях, таких как GPT-3). Каждое число в этом векторе — это координата слова на определенной «смысловой оси».
Представьте, что мы вручную оцениваем слова по трем воображаемым шкалам от до : «Королевственность», «Женственность» и «Съедобность».
| Слово | Королевственность | Женственность | Съедобность | | :--- | :--- | :--- | :--- | | Король | | | | | Королева | | | | | Яблоко | | | |
Здесь числа , и так далее — это координаты, отражающие выраженность конкретного признака от (полное отсутствие) до (максимальная выраженность).
Теперь слова — это точки в трехмерном пространстве. И в этом пространстве «Король» и «Королева» находятся очень близко друг к другу (у них похожие координаты), а «Яблоко» лежит совершенно в другой стороне.
> Эмбеддинг — это перевод слова в вектор фиксированной длины, где геометрическое положение вектора отражает смысл слова.
В реальных LLM (Large Language Models) эти оси никто не задает вручную. Нейросеть в процессе обучения сама формирует многомерное семантическое пространство. Мы не знаем, что именно означает координата №142 в векторе модели, но математически она может отвечать за абстрактные концепции: множественное число, сарказм, принадлежность к IT-терминологии или эмоциональную окраску.
Математика смыслов: алгебра над словами
Когда слова становятся координатами в многомерном пространстве, смысл подчиняется законам геометрии. Близость двух слов можно измерить через угол между их векторами: чем острее угол, тем ближе смысл.
Но самое поразительное свойство качественного семантического пространства — это возможность применять к смыслам обычную арифметику.
Самый знаменитый пример в области обработки естественного языка (NLP) выглядит так:
Как это работает? Здесь (от англ. vector) обозначает векторное представление соответствующего слова в семантическом пространстве.
Точно так же работают другие семантические сдвиги (где — вектор соответствующего слова):
Что дальше?
Перевод слов в эмбеддинги — это фундамент. Мы научили машину понимать, что слова имеют вес, координаты и смысловые связи. Теперь весь словарь языка представляет собой гигантскую звездную карту, где синонимы образуют созвездия, а антонимы разнесены по разным галактикам.
Однако язык — это не просто набор изолированных слов. Это поток, где каждое следующее слово зависит от предыдущих. То, как нейросеть использует эти координаты, чтобы угадывать продолжение фразы, мы разберем на следующем этапе.