
Эмбеддинги простыми словами: как нейросеть превращает смысл в числа
Как нейросеть понимает слова? Не так, как человек. Она не знает словарных определений и не оперирует словами напрямую. Чтобы что-нибудь сделать с текстом, ей нужно сначала превратить его в числа.
Самый простой вариант — дать каждому слову произвольный код: например, «кот» обозначить числом 17, а «собака» — числом 93. Компьютер поймёт только то, что это два разных слова. По числам 17 и 93 нельзя догадаться, что оба слова обозначают животных, а «котёнок» по смыслу ближе к «коту», чем к «экскаватору».
Поэтому нужен другой способ перевода в числа — такой, который сохраняет связи между словами.
Представьте трёхмерную карту. Каждое слово получает на ней свои координаты. «Кот» и «котёнок» оказываются совсем рядом. «Собака» — немного дальше, потому что это другое животное. А глаголы «летать» и «прыгать» лежат уже в другой области карты.
Список координат слова на такой карте и называется эмбеддингом. На практике у карты не три, а сотни или тысячи измерений. Человек не может её увидеть целиком, зато компьютер может сравнить координаты и найти ближайшие точки.
Благодаря этому интернет-магазин находит «компактную двухместную софу», когда человек ищет «небольшой диван для маленькой комнаты». Одинаковых слов почти нет, но смысл похож — значит, запрос и описание товара окажутся рядом.
Что такое эмбеддинг простыми словами
Эмбеддинг можно построить не только для слова. Точкой на карте может стать целый текст, картинка, песня, товар или пользователь. Что именно означает близость, зависит от задачи: похожий смысл, внешний вид, музыкальный вкус или поведение покупателей.
У современных текстовых моделей часто сотни или тысячи координат, хотя конкретное количество зависит от модели и задачи. Количество чисел называется размерностью: вектор из 768 чисел имеет 768 измерений.
Размерность задаёт сама готовая модель. Больше измерений не означает автоматически лучший результат: важнее, на каких данных и для какой задачи модель обучалась.
Вектор — любой упорядоченный список чисел. Температуру воздуха за семь дней тоже можно записать вектором. Эмбеддинг — векторное представление объекта, построенное или обученное так, чтобы полезные для задачи связи отражались в геометрии пространства.
Поэтому любой эмбеддинг является вектором, но не каждый вектор является эмбеддингом.
У этой карты сотни измерений, поэтому нарисовать её целиком нельзя. На экране её сжимают до двух измерений: так становятся видны группы и соседи, хотя часть расстояний меняется.
Одну координату нельзя перевести на человеческий язык: смысл хранит весь вектор целиком. Это же ограничение отмечает учебный курс Google по эмбеддингам.
Как нейросеть превращает слово в числа
Возьмём фразу «Кот спит на диване». Сначала токенизатор режет её на токены — кусочки текста. Частое короткое слово может стать одним токеном, редкое слово иногда распадается на несколько.
У каждого токена есть номер в словаре — ID. Сам номер ничего не говорит о смысле и служит адресом в таблице.
Читайте такжеЧто такое токены в нейросети и зачем они нужныКак нейросеть режет текст на кусочки, почему токен не равен слову и что происходит с текстом дальше.Внутри модели хранится матрица эмбеддингов — большая таблица чисел. Каждому ID соответствует строка этой таблицы. Модель получает номер токена, открывает нужную строку и забирает из неё начальный вектор.
Когда модель только начинает обучение, числа в таблице почти случайные. Вектор «кота» ничем не лучше вектора «экскаватора». Полезное расположение появляется позже, когда модель много раз ошибается, исправляет свои параметры и постепенно передвигает точки.
ID служит индексом строки, а строка даёт нейросети числовое представление, с которым могут работать следующие слои. Эти числа модель меняет во время обучения вместе с остальными настройками.
Как обучаются эмбеддинги и откуда в числах появляется смысл
Чтобы понять незнакомое слово, человеку часто хватает окружения. Если «бариста» раз за разом появляется рядом с кофе, чашкой, молоком и стойкой, довольно быстро становится понятно, о какой профессии речь.
Один из классических способов увидеть этот принцип — Word2Vec. Модель много раз угадывает соседние слова или слово в середине фразы. Когда два слова помогают давать похожие ответы, их векторы постепенно сближаются.
Word2Vec команда Томаша Миколова опубликовала в 2013 году. После обучения слова из похожих контекстов оказываются рядом.
Современная языковая модель не запускает внутри себя отдельный Word2Vec. Она обновляет таблицу начальных эмбеддингов вместе со всей сетью, когда учится предсказывать токены. Поисковые модели могут учиться ещё иначе: например, сближать подходящие пары текстов и раздвигать неподходящие. Общий принцип тот же — учебная задача определяет геометрию.
В начале точки разбросаны. Обучение сближает слова, которые встречаются в похожих контекстах.
Здесь легко сделать лишний вывод: будто модель нашла единственно правильную карту русского языка. Такой карты нет.
Пространство зависит от данных и задачи. Модель рекомендаций еды может поставить хлопья рядом с сосисками: оба продукта часто едят на завтрак.
Модель для вегетарианского меню разнесёт их далеко. Обе карты правильные для своих задач.
Отдельное число в эмбеддинге расшифровывать бессмысленно. Важны отношения между векторами внутри конкретной модели.
Почему одно слово может иметь разные эмбеддинги
У Word2Vec есть неудобство: каждому слову достаётся один постоянный вектор. «Ключ» будет одной точкой и в предложении «ключ лежит у двери», и во фразе «нашли ключ к задаче». Модель вынуждена усреднить разные значения.
Современная языковая модель меняет представление каждого кусочка текста с учётом доступного контекста и порядка слов. Поэтому один и тот же «ключ» получает разные контекстные представления.
В архитектуре Transformer это делает механизм внимания. Оригинальную схему с входными эмбеддингами и позиционным кодированием авторы описали в статье Attention Is All You Need.
Главную работу здесь делает механизм внимания: модель оценивает, какие части фразы важны для каждого токена. Рядом с «дверью» у ключа одно значение, рядом с «задачей» — другое. Модель учитывает и порядок слов, иначе «собака укусила человека» и «человек укусил собаку» выглядели бы одинаково.
Тут легко спутать три разные вещи:
- модель берёт начальный эмбеддинг из таблицы по ID токена;
- слои нейросети заново рассчитывают контекстное представление для каждой фразы;
- отдельная поисковая модель превращает целое предложение или документ в один вектор.
Во всех трёх случаях модель получает вектор. Но склеивать их в одну волшебную коробку с надписью «нейросеть поняла смысл» не стоит.
Молянов
Каждый день я использую нейронки в бизнесе, разработке, маркетинге и пиаре. Собираю с их помощью разные прикольные штуки — например, этот самый сайт. О своем опыте рассказываю в телеграм-канале. Будет здорово, если вы подпишетесь!
Как компьютер сравнивает эмбеддинги
Когда два объекта превратились в векторы из одного пространства, можно измерить, насколько они близки. Сравнивать векторы только потому, что в них одинаковое количество чисел, нельзя.
В текстовом поиске часто используют косинусное сходство. Если вы строите такой поиск сами, берите способ сравнения, который рекомендует автор выбранной модели, и не меняйте его наугад.
Представьте два вектора как стрелки из одной точки: чем меньше угол между ними, тем выше косинусное сходство.
Длина стрелок здесь отходит на второй план. Важнее направление.
Формулу знать не обязательно. Для работы поиска достаточно цепочки:
- заранее посчитать эмбеддинги документов;
- превратить запрос пользователя в вектор той же моделью;
- быстро найти несколько ближайших документов;
- показать их в порядке близости.
Поэтому поиск по эмбеддингам называют семантическим: он ловит похожие формулировки без точного совпадения слов. Но «семантический» не означает безошибочный. Если модель плохо знает предметную область или запрос двусмысленный, ближайшей может оказаться не та точка.
Близость также не равна синонимии. «Врач» и «больница» часто оказываются рядом, хотя это разные вещи. То же бывает с антонимами вроде «горячий» и «холодный»: они встречаются в похожих фразах.
Геометрия хранит связи между словами, а не готовый словарь русского языка.
Как поиск по эмбеддингам находит синонимы
Представьте, что на сайте есть страница «Как вернуть деньги за отменённый рейс». Запрос «как вернуть деньги» целиком встречается в её заголовке, поэтому поиск по точной фразе находит страницу.
Но человек может сформулировать ту же мысль иначе: «как получить компенсацию». Нужная страница всё ещё лежит в базе, однако такой фразы нет ни в одном заголовке.
Векторный поиск сравнивает не слова, а эмбеддинги. Пять страниц уже находятся на карте в виде точек. Запрос «как получить компенсацию» получает собственный эмбеддинг и становится шестой точкой. Ближайшей к нему оказывается страница про возврат денег за отменённый рейс.
В больших рабочих базах, где могут лежать миллионы документов, поиск обычно ускоряют индексом ближайших соседей.
Где используют эмбеддинги
Сначала простое правило выбора:
- Точный поиск подходит для артикула, номера договора, фамилии или цитаты.
- Поиск по эмбеддингам нужен, когда одну мысль формулируют разными словами.
- Гибридный поиск совмещает оба подхода, если важны и смысл, и точные названия или числа.
Поиск по смыслу. По такому принципу работают поиск по документам, подбор похожих товаров и поиск изображений по текстовому описанию. Для поиска по картинкам нужна одна мультимодальная модель, обученная связывать оба типа данных. Она сближает изображения с подходящими подписями, поэтому запрос «красный велосипед у моря» можно сравнить прямо с векторами фотографий.
Отдельную модель картинок и случайную текстовую модель склеить не получится: они построят разные системы координат.
RAG и ответы по базе знаний. RAG — это связка поиска и языковой модели. В распространённом варианте с векторным поиском система сначала разбивает документы на фрагменты и считает для них эмбеддинги. Затем находит несколько кусков, ближайших к вопросу пользователя, и передаёт их языковой модели вместе с запросом.
Эмбеддинги здесь ничего не сочиняют. Их работа — достать подходящий контекст. Ответ уже формирует большая языковая модель, или LLM.
Если нужного факта нет в базе или поиск выбрал плохие фрагменты, вероятность правильного и подтверждённого базой ответа снижается. Модель может опереться на собственные параметры, но источник уже не гарантирован.
Поэтому в RAG важна не только языковая модель. На результат влияют размер фрагментов, модель эмбеддингов и правила поиска.
Проверять такую систему лучше не впечатлением от пары удачных ответов. Соберите 15–20 реальных вопросов, для каждого отметьте фрагмент с правильным ответом и проверьте, попадает ли он в первые результаты поиска. Если нет — меняйте по одному элементу: размер фрагментов, модель или правила поиска — и прогоняйте тот же набор снова.
Рекомендации. В рекомендательной системе вектора можно дать не только фильмам, песням или товарам, но и пользователям. Если вектор человека оказывается рядом с вектором сериала, система считает, что сериал может понравиться.
Система учится на конкретном действии: просмотре, покупке, добавлении в избранное или дослушивании песни. Поэтому она сближает не внешне похожие товары, а те, которые человек выбирает в похожих ситуациях.
Группировка и классификация. Система может превратить тысячу обращений в эмбеддинги и собрать похожие сообщения в группы. В одной окажутся проблемы с оплатой, в другой — доставкой, в третьей — входом в аккаунт. Сотруднику не придётся заранее перечислять все возможные формулировки.
Если категории известны заранее, программа может научиться автоматически относить новый текст к одной из них: спам или обычное письмо, положительный или отрицательный отзыв, договор или счёт.
Тексты, изображения и звук. Объектом необязательно бывает слово. Модель может создать один вектор для предложения, страницы документа, фотографии, фрагмента аудио, товара или пользователя.
Обучение задаёт, что считать похожим. Для музыкального сервиса важен вкус слушателя, для магазина — вероятность покупки, для поиска — смысл запроса.
Как эмбеддинги работают внутри ChatGPT
Когда вы отправляете сообщение в ChatGPT, Claude или Gemini, происходят три шага:
- модель режет текст на токены и заменяет каждый токен начальным вектором;
- на каждой новой позиции учитывает уже прочитанные токены и их порядок;
- по текущему состоянию рассчитывает вероятности следующего токена.
Сравним фразы «У двери лежит ключ» и «Для задачи найден ключ». К моменту, когда модель доходит до слова «ключ», весь контекст слева уже известен. В первой фразе он связывает ключ с дверью и замком, во второй — с задачей и решением. Поэтому продолжения тоже получаются разными.
Затем программа выбирает продолжение из распределения вероятностей, добавляет его к последовательности и повторяет расчёт. Настройки генерации определяют, всегда ли брать самый вероятный вариант или иногда выбирать менее очевидный.
Читайте такжеЦепи Маркова: как предсказывают следующий элементКак из вероятностей следующего элемента вырастает генерация текста и чем современная модель отличается от простой цепи Маркова.У чат-бота может быть и второй набор эмбеддингов — поисковый. Например, сервис сначала превращает ваш вопрос в вектор, находит подходящие страницы в интернете или корпоративной базе, а затем отдаёт их LLM. Внутренние представления токенов помогают модели писать ответ; внешние эмбеддинги документов помогают найти материал для ответа.
Это два разных этапа, хотя в обоих используются векторы. Поэтому фраза «ChatGPT хранит все знания в базе эмбеддингов» неверна.
Знания ChatGPT не лежат в отдельном каталоге эмбеддингов — они закрепились внутри самой обученной нейросети. Отдельное хранилище векторов может появиться, например, когда к чат-боту подключают поиск по документам или сайтам.
Что такое эмбеддинги — коротко
Эмбеддинг — это числовое представление слова, текста, изображения или другого объекта. Модель превращает объект в список координат и размещает его в многомерном пространстве. Объекты с похожим смыслом или назначением обычно оказываются рядом, поэтому компьютер может сравнивать их не по буквам, а по положению на этой карте.
Такие векторы используются в поиске по смыслу, рекомендательных системах, группировке данных и RAG. Например, благодаря эмбеддингам поиск может связать запрос «как получить компенсацию» со страницей «Как вернуть деньги за отменённый рейс», хотя формулировки почти не совпадают.
При этом эмбеддинг не содержит готового словарного определения и не сохраняет все свойства объекта. Один вектор хорошо передаёт общий смысл короткого фрагмента, но может потерять важные детали длинного документа. Поэтому большие тексты при поиске обычно делят на части и строят эмбеддинг для каждой из них.
Векторы можно корректно сравнивать только внутри одной системы координат: документы и запросы должны быть обработаны одной моделью эмбеддингов. Близость тоже не гарантирует достоверность. Поиск способен найти текст, который точно подходит по теме, но содержит ошибку. Если такой источник попадёт в контекст языковой модели, она может построить на его основе убедительный неправильный ответ. Это один из примеров того, почему правдоподобный текст нейросети не всегда оказывается верным; подробнее об этом — в статье про галлюцинации нейросетей.
Иными словами, эмбеддинги помогают нейросетям переводить связи между объектами на язык чисел. После этого слова, документы, изображения или товары можно искать, сравнивать и группировать по их близости в пространстве модели.

Паша Молянов
Автор блога
Основатель агентства «Сделаем» и Нейроцеха. Руковожу двумя удалёнными командами, запускаю соло-проекты без сотрудников. Нейроэнтузиаст — каждый день пытаюсь что-нибудь автоматизировать с помощью ИИ. Написал книгу про менеджмент. Рассказываю про свой опыт в Телеграм-канале.
Молянов
Каждый день я использую нейронки в бизнесе, разработке, маркетинге и пиаре. Собираю с их помощью разные прикольные штуки — например, этот самый сайт. О своем опыте рассказываю в телеграм-канале. Будет здорово, если вы подпишетесь!


