МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
____________________________
Кафедра ____________________________
РЕФЕРАТ
на тему: «Методы векторного представления слов в задачах обработки текста»
Выполнил(а): ____________________________
Группа: ____________________________
Проверил(а): ____________________________
2026
Содержание
- 3
- 5
- 8
- 10
- 12
1. Эволюция представления слов в NLP
До конца XX века компьютеры воспринимали текст как последовательность символов. Для машинной обработки любое слово требовалось превратить в число или набор чисел, и самым прямолинейным решением был подход one-hot encoding. Слово кодировалось вектором, длина которого равна размеру словаря. Единица стояла только в позиции, соответствующей данному слову. Словарь из десяти тысяч слов порождал десятитысячномерные разреженные векторы, а каждый вектор состоял из одной единицы и множества нулей.
Такая модель обладала двумя фатальными недостатками. Первый: она полностью игнорировала смысл. Векторы слов «кот» и «кошка» не имели ничего общего, как и векторы «кот» и «паровоз». Расстояние между любыми двумя one-hot векторами было одинаковым, что делало невозможными какие-либо семантические операции. Второй недостаток называли проклятием размерности: рост словаря приводил к взрывному увеличению пространства признаков, замедляя обучение и требуя колоссальных вычислительных ресурсов. Метод bag-of-words, представлявший документ как сумму one-hot векторов входящих в него слов, лишь частично решал задачу. Он терял порядок слов и всё ещё оставался в разреженном пространстве.
Выход предложила гипотеза распределённой семантики, сформулированная ещё в 1950-х годах лингвистом Джоном Фёрсом. Её суть лаконична: смысл слова определяется его окружением. Слова, встречающиеся в схожих контекстах, имеют близкие значения. Эта идея, известная также как «дистрибутивная семантика», легла в основу всех современных методов векторного представления. Вместо того чтобы присваивать каждому слову уникальный индекс, исследователи начали строить компактные плотные векторы фиксированной длины, обычно от 50 до 300 измерений.
Переход к плотным векторам стал переломным моментом в развитии NLP. В таком пространстве семантическая близость выражается геометрически: чем
меньше угол между двумя векторами, тем ближе значения соответствующих слов. Для измерения этой близости используется косинусное расстояние, которое вычисляется как косинус угла между векторами и не зависит от их длины. Например, в модели, обученной на корпусе Википедии, вектор слова «автомобиль» окажется ближе к вектору «машина», чем к вектору «яблоко». Это свойство открыло дорогу для решения практических задач: кластеризации документов, информационного поиска и автоматического определения синонимов.
Плотные представления решили проблему разреженности, но главное их преимущество в другом. Они позволяют выполнять арифметические операции с понятиями. Уже в ранних работах по распределённой семантике было замечено, что отношения между словами кодируются разностью векторов. Так, разность между векторами «столица» и «страна» оказывается примерно одинаковой для разных пар слов. Это значит, что модель усваивает не просто частотные закономерности, а структуру языка, что принципиально отличает её от наивных частотных методов.
Разумеется, плотные векторы не были изобретением одного дня. Идея использования низкоразмерных пространств для представления лингвистических единиц обсуждалась в когнитивной науке и статистике задолго до появления доступных вычислительных мощностей. Однако именно переход от дискретных символов к непрерывным векторным координатам позволил применять к текстам мощный аппарат линейной алгебры и машинного обучения. Без этого шага последующие модели, включая нейросетевые архитектуры, были бы невозможны. Сегодня векторные представления слов считаются стандартом де-факто: они используются как входные данные для практически любой современной системы обработки текста, от поисковых движков до чат-ботов.
2. Word2Vec: архитектуры и обучение
В 2013 году Томаш Миколов и его коллеги из Google представили модель word2vec. Она предложила принципиально иной подход к векторному представлению слов. Вместо громоздких матриц совместной встречаемости модель обучает нейронную сеть предсказывать слова на основе их контекста. На выходе получается компактный плотный вектор для каждого слова, причем семантическая близость напрямую отражается в геометрической близости этих векторов.
Word2Vec включает две архитектуры. Они решают одну задачу, но заходят с разных сторон. Первая, CBOW (Continuous Bag-of-Words), получает на вход несколько окружающих слов и пытается предсказать центральное. Например, имея контекст «кот», «на», «коврике», модель должна выдать слово «спит». Архитектура усредняет векторы контекстных слов и пропускает их через скрытый слой. Такой подход хорошо работает для частотных слов и обучается быстрее.
Вторая архитектура, skip-gram, работает наоборот. Она берет центральное слово и предсказывает окружающие его слова. Skip-gram показывает лучшие результаты на редких словах, поскольку каждое вхождение слова в корпус дает больше обучающих примеров. Если CBOW для каждого окна контекста обновляет веса один раз, то skip-gram генерирует несколько обучающих пар из одного окна. На практике исследователи часто выбирают skip-gram для небольших корпусов и редкой лексики.
Обучение обеих архитектур упирается в вычислительную проблему. Финальный слой нейронной сети использует softmax, который требует вычисления вероятностей для всех слов словаря. При словаре в сотни тысяч слов это становится узким местом. Решение предложил Миколов в 2013 году: метод negative sampling. Вместо полного softmax модель обучается отличать реальное слово из контекста от нескольких случайно выбранных «отрицательных» слов. Для каждого
положительного примера берется, например, пять отрицательных, и сеть учится давать высокую оценку правильному слову и низкую шумовым. Вычислительная сложность падает с размера словаря до небольшой константы.
Существует и альтернативный способ ускорения: иерархический softmax. Он строит бинарное дерево Хаффмана, где каждый лист соответствует слову из словаря. Частотные слова получают короткие пути от корня, редкие уходят глубже. Вместо вычисления вероятности по всему словарю модель проходит путь от корня до нужного листа, принимая на каждом узле бинарное решение. Это превращает задачу классификации на N классов в последовательность из log N бинарных классификаций. Метод особенно эффективен для очень больших словарей, но negative sampling на практике проще реализовать и он лучше масштабируется на параллельное обучение.
Главное свойство word2vec, которое сделало модель знаменитой, это линейность векторного пространства. В работе Миколова 2013 года, где он описал word2vec, был показан известный пример: вектор «king» минус вектор «man» плюс вектор «woman» дает вектор, очень близкий к «queen». Эта операция работает не только для родственных связей. Аналогичные закономерности выявляются для столиц стран, форм глаголов и других семантических отношений. Причина в том, что модель, обучаясь на миллионах предложений, улавливает регулярные паттерны употребления слов.
Обучение word2vec требует больших корпусов. Миколов обучал свою модель на Google News, содержащем около 100 миллиардов слов. Размерность векторов обычно выбирают от 100 до 300, а окно контекста от 5 до 10 слов. Интересная деталь: порядок слов внутри окна для CBOW не важен, отсюда и название «мешок слов». Skip-gram, напротив, использует позиционную информацию, что частично объясняет его преимущество на малых данных. Word2vec не учитывает морфологию: слова «кот» и «кота» получают разные векторы, даже если их значения почти идентичны. Это ограничение позже было
преодолено в fastText, но в рамках исходной модели оно остается принципиальным.
3. GloVe и fastText: альтернативные подходы
Word2vec открыл эпоху плотных векторных представлений, однако его архитектура опиралась исключительно на локальные контексты. Модель скользящим окном проходила по корпусу и обновляла векторы, не используя общую картину частотности слов во всём тексте. Этот пробел закрыли в 2014 году Джеффри Пеннигтон и его коллеги из Стэнфорда, представив модель GloVe (Global Vectors).
Название говорит само за себя: алгоритм работает с глобальной статистикой. Вместо того чтобы пробегать по предложениям, GloVe строит матрицу совместной встречаемости, где каждая ячейка показывает, сколько раз слово i появляется рядом со словом j в пределах фиксированного окна. На основе этой матрицы модель вычисляет векторы так, чтобы их скалярные произведения отражали логарифмы вероятностей совместной встречаемости. Обучение идёт методом взвешенных наименьших квадратов: модель минимизирует разницу между предсказанным и фактическим значениями, причём редким парам слов присваивается меньший вес, чтобы они не создавали шум. Такой подход позволяет улавливать семантические закономерности, которые видны только при анализе всего корпуса, а не отдельных фрагментов.
Спустя два года, в 2016-м, исследователи Facebook AI Research во главе с Пиотром Бояновым предложили fastText. Эта модель развила идею word2vec, но добавила принципиально новое измерение: учёт морфологии. Ключевая идея fastText в том, что слово представляется не как единый вектор, а как сумма векторов его n-грамм. Например, слово «бегущий» разбивается на последовательности символов длиной от трёх до шести: «бег», «егу», «гущ», «ущи», «щий» и так далее. Вектор самого слова получается суммированием векторов всех этих фрагментов.
Такое устройство даёт два важных преимущества. Во-первых, редкие слова перестают быть проблемой: даже если слово встретилось в корпусе один
раз, его n-граммы наверняка встречались в составе других слов, поэтому вектор получается осмысленным. Во-вторых, fastText способен строить векторы для слов, которых вообще не было в обучающих данных. Достаточно разбить неизвестное слово на n-граммы и сложить их векторы. Архитектура обучения при этом напоминает word2vec: используется либо предсказание слова по контексту, либо наоборот, но на уровне n-грамм.
Выбор между GloVe и fastText зависит от задачи и языка. Для языков с богатой морфологией, таких как русский, немецкий или турецкий, fastText оказывается заметно эффективнее. Окончания, приставки и суффиксы несут огромную смысловую нагрузку, и игнорировать их структуру значит терять значительную часть информации. GloVe, в свою очередь, показывает лучшие результаты там, где важна глобальная семантика: выявление тематических кластеров, анализ логических аналогий, работа с крупными тематическими корпусами. При этом обе модели остаются статическими: они присваивают слову один вектор независимо от контекста, и это их общее ограничение.
4. Применение и сравнительный анализ
Плотные векторы, полученные при обучении на больших корпусах текстов, давно вышли за рамки хрестоматийных примеров вроде «король минус мужчина плюс женщина». Наиболее показательны две сферы их применения: анализ тональности и машинный перевод.
В задаче определения тональности векторное представление помогает модели различать не только наличие эмоционально окрашенной лексики, но и её смысловые оттенки. Скажем, слово «старый» в одном контексте звучит нейтрально, а в другом приобретает пренебрежительный оттенок. Классические частотные методы такую тонкость, как правило, упускают. Вектор, который вобрал в себя окружение слова, смещает «старый» в сторону негативных координат, если модель обучалась на корпусе, где это слово часто соседствует с «ветхий», «уставший» или «бесполезный». В результате точность классификации отзывов заметно растёт, особенно когда речь идёт о сарказме или скрытой оценке.
В машинном переводе векторные представления помогли решить проблему выравнивания слов. Раньше системы переводили текст по частям и нередко теряли порядок слов и грамматические связи. Теперь векторные пространства разных языков можно спроецировать друг на друга, и слова со сходным значением оказываются в соседних областях общего пространства. Модель находит соответствия не по словарю, а по смыслу. Испанское «casa» и английское «house» получают близкие координаты, что упрощает поиск перевода и сохранение структуры предложения.
Вместе с тем сравнительный анализ моделей показывает, что универсального решения здесь нет. Выбор алгоритма зависит от языка и конкретной задачи. Word2vec, обученный на больших данных, даёт отличные результаты для английского языка в общих задачах (поиск синонимов, кластеризация, базовая семантическая близость). Его сильная сторона, скорость обучения и относительная простота. GloVe,
благодаря использованию глобальной статистики по всему корпусу, лучше справляется с редкими словами и устойчивыми выражениями, для которых важна общая картина текста. А для языков с богатой морфологией, таких как русский, финский или турецкий, fastText оказывается вне конкуренции: он разбивает слово на n-граммы, и модели не нужно встречать слово целиком, чтобы понять его значение. Даже незнакомое слово, состоящее из знакомых морфем, получает осмысленный вектор.
Эта вариативность подводит к главной тенденции последних лет: переходу от статических векторов к контекстуальным моделям. Архитектуры вроде ELMo и BERT берут за основу идею плотных представлений, но делают вектор слова зависимым от его окружения в конкретном предложении. Слово «ключ» в фразе «он потерял ключ от квартиры» и в фразе «родник бьёт ключом» получает разные векторы. Это стало возможным потому, что модели обучаются на гигантских корпусах с использованием механизма внимания, а не просто предсказывают соседние слова. По сути, BERT и ELMo развивают те же идеи, что заложены в word2vec, но выводят их на новый уровень абстракции. Они не отбрасывают векторные представления, а надстраиваются над ними, позволяя учитывать многозначность и синтаксические связи. Для сложных текстов и диалоговых систем это особенно важно. Дальнейшее развитие NLP, скорее всего, будет связано именно с совершенствованием таких контекстуальных архитектур, которые уже сейчас задают стандарты качества в анализе тональности и машинном переводе.
СПИСОК ЛИТЕРАТУРЫ
1. Word2vec – применение векторных семантических моделей — https://sysblok.ru/knowhow/obuchaem-word2vec-praktikum-po-sozdaniju-vektornyh-modelej-jazyka/
2. Общее описание и реализация Word2Vec с помощью Python — https://habr.com/ru/articles/801807/
3. Автоматическая обработка текстов на естественном языке — https://www.hse.ru/data/2017/08/12/1174382135/NLP_and_DA.pdf
4. Векторное представление слов — Викиконспекты — https://neerc.ifmo.ru/wiki/index.php?title=%D0%92%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%BB%D0%BE%D0%B2
5. Векторные представления текстовых данных — https://wiki.pmifi.ru/disciplines/nlp/lectures/vectorization
6. Векторное представление слов русского языка посредством word2vec — https://top-technologies.ru/article/view?id=38954
7. Векторное представление слов с семантическими отношениями — https://www.mathnet.ru/php/getFT.phtml?jrnid=mais&paperid=659&what=fullt
8. Эмбеддинги для начинающих — https://habr.com/ru/companies/otus/articles/787116/
Нужна такая же работа по своей теме? Соберём структуру, текст и источники в этом же оформлении.