mirror of
https://github.com/bpmbpm/doc.git
synced 2026-04-30 12:30:52 +00:00
Update term.md
This commit is contained in:
parent
7f22a47b3f
commit
6c57d53e3f
1 changed files with 206 additions and 0 deletions
|
|
@ -5,3 +5,209 @@ term
|
|||
- [Автоэнкодеры в Keras, Часть 1: Введение](https://habr.com/ru/articles/331382/)
|
||||
- https://developers.sber.ru/docs/ru/gigachat/guides/embeddings
|
||||
- https://blogs.epsilonmetrics.ru/kak-embeddingi-pomogayut-llm-ponyat-nas/
|
||||
|
||||
### ИИ
|
||||
**Эмбединг** (embedding) — это способ преобразования текстовых данных в числовые векторы фиксированного размера, которые сохраняют смысловую информацию текста.
|
||||
|
||||
Давайте разберем на простом примере:
|
||||
|
||||
Предположим, у нас есть простая фраза: «Кошка сидит на окне».
|
||||
|
||||
Процесс преобразования в вектор можно представить так:
|
||||
|
||||
1. **Токенизация** — разбиение фразы на отдельные слова:
|
||||
* «Кошка»
|
||||
* «сидит»
|
||||
* «на»
|
||||
* «окне»
|
||||
|
||||
2. **Векторизация каждого слова**:
|
||||
Каждое слово преобразуется в числовой вектор. Для простоты представим, что каждое слово описывается тремя характеристиками:
|
||||
* Размер (большой/малый)
|
||||
* Активность (движущийся/неподвижный)
|
||||
* Местоположение (внутри/снаружи)
|
||||
|
||||
Получаем:
|
||||
* «Кошка»: [малый, движущийся, внутри] → [0.2, 0.8, 0.6]
|
||||
* «сидит»: [неподвижный] → [0.1]
|
||||
* «на»: [предлог] → [0.5]
|
||||
* «окне»: [большой, снаружи] → [0.9, 0.3]
|
||||
|
||||
3. **Объединение векторов**:
|
||||
Можно просто сложить все векторы вместе или использовать более сложные методы усреднения.
|
||||
|
||||
Итоговый вектор фразы может выглядеть так:
|
||||
[0.4, 0.5, 0.45, 0.5, 0.6]
|
||||
|
||||
В реальности современные модели используют гораздо более сложные векторы (часто размерность 256, 512 или 1024) и учитывают контекст, синонимы и другие языковые особенности.
|
||||
|
||||
**Практическое применение**:
|
||||
* Поиск похожих документов
|
||||
* Классификация текстов
|
||||
* Машинный перевод
|
||||
* Анализ тональности
|
||||
* Рекомендательные системы
|
||||
|
||||
Важно понимать, что эмбединги позволяют компьютерам «понимать» смысл текста, сохраняя семантические связи между словами и фразами в числовом виде.
|
||||
|
||||
## Вопрос 1
|
||||
Кошка бежит по улице - составь эмбединг и покажи как будет идти сопоставление с твоим примером.
|
||||
|
||||
### Эмбеддинг фразы «Кошка бежит по улице»
|
||||
|
||||
**Шаг 1. Токенизация**
|
||||
Разбиваем фразу на слова:
|
||||
* «Кошка»
|
||||
* «бежит»
|
||||
* «по»
|
||||
* «улице»
|
||||
|
||||
**Шаг 2. Векторизация слов**
|
||||
Используем те же характеристики, что и в предыдущем примере:
|
||||
* Размер
|
||||
* Активность
|
||||
* Местоположение
|
||||
|
||||
Получаем:
|
||||
* «Кошка»: малый, движущийся, внутри → [0.2, 0.8, 0.6]
|
||||
* «бежит»: активно движущийся → [0.9]
|
||||
* «по»: предлог → [0.5]
|
||||
* «улице»: большой, снаружи → [0.9, 0.3]
|
||||
|
||||
**Шаг 3. Формирование итогового вектора**
|
||||
Объединяем все векторы:
|
||||
[0.2, 0.8, 0.6, 0.9, 0.5, 0.9, 0.3]
|
||||
|
||||
### Сравнение с предыдущим примером
|
||||
|
||||
Сравним векторы фраз:
|
||||
1. «Кошка сидит на окне»: [0.2, 0.8, 0.6, 0.1, 0.5, 0.9, 0.3]
|
||||
2. «Кошка бежит по улице»: [0.2, 0.8, 0.6, 0.9, 0.5, 0.9, 0.3]
|
||||
|
||||
**Анализ сходства:**
|
||||
* Первые три значения (характеристики кошки) идентичны
|
||||
* Четвёртое значение (активность) различается: 0.1 (сидит) vs 0.9 (бежит)
|
||||
* Остальные значения схожи
|
||||
|
||||
**Косинусное сходство** между векторами будет высоким, так как:
|
||||
* Оба вектора описывают кошку
|
||||
* Имеют схожую структуру
|
||||
* Отличаются только в характеристике активности
|
||||
|
||||
Это показывает, что эмбеддинги способны:
|
||||
* Сохранять семантическую связь между похожими фразами
|
||||
* Отражать смысловые различия через числовые значения
|
||||
* Позволять измерять степень схожести текстов
|
||||
|
||||
## Вопрос 2
|
||||
У тебя:
|
||||
- «окне»: [большой, снаружи] → [0.9, 0.3]
|
||||
- «улице»: большой, снаружи → [0.9, 0.3]
|
||||
равные эмбединги (вектора) - почему?
|
||||
|
||||
Действительно, в предыдущем примере я допустила упрощение, присвоив одинаковые векторы разным словам с похожими характеристиками. Давайте разберем, почему это некорректно и как сделать эмбеддинг более точным.
|
||||
|
||||
### Проблема одинаковых векторов
|
||||
|
||||
Присвоение одинаковых векторов разным словам, даже с похожими характеристиками, приводит к потере важной информации. Слова «окно» и «улица» имеют разное значение и контекст использования.
|
||||
|
||||
### Правильный подход к эмбеддингу
|
||||
|
||||
1. **Многомерная система характеристик**
|
||||
Нужно использовать больше параметров для описания слов:
|
||||
* Размер
|
||||
* Активность
|
||||
* Местоположение
|
||||
* Тип объекта
|
||||
* Связь с другими объектами
|
||||
* Частотность использования в разных контекстах
|
||||
|
||||
2. **Уникальные признаки**
|
||||
Каждое слово должно иметь свой уникальный набор характеристик.
|
||||
|
||||
### Пример улучшенного эмбеддинга
|
||||
|
||||
Для слов «окно» и «улица»:
|
||||
|
||||
**«Окно»**:
|
||||
* Размер: средний → 0.6
|
||||
* Местоположение: внутри/граница → 0.7
|
||||
* Тип: проём → 0.8
|
||||
* Связь с помещением: прямая → 0.9
|
||||
* Частотность в контексте дома: 0.8
|
||||
|
||||
**«Улица»**:
|
||||
* Размер: большой → 0.9
|
||||
* Местоположение: снаружи → 0.3
|
||||
* Тип: пространство → 0.5
|
||||
* Связь с городом: прямая → 0.9
|
||||
* Частотность в городском контексте: 0.9
|
||||
|
||||
### Итоговые векторы
|
||||
|
||||
**«Окно»**: [0.6, 0.7, 0.8, 0.9, 0.8]
|
||||
**«Улица»**: [0.9, 0.3, 0.5, 0.9, 0.9]
|
||||
|
||||
### Преимущества такого подхода
|
||||
|
||||
* Сохранение уникальности каждого слова
|
||||
* Более точное отражение семантики
|
||||
* Возможность улавливать тонкие различия в значении
|
||||
* Улучшенная работа алгоритмов машинного обучения
|
||||
|
||||
В реальных системах эмбеддинга используются векторы размерности 256, 512 или даже 1024, что позволяет ещё точнее отражать семантические связи между словами.
|
||||
|
||||
### Вопрос 3
|
||||
Получается ,что происходит кодирование каждого объекта по правилу? Есть какая - то онтология, которая определяет объект и его код, например, собака - 0,00001, а кошка 0,00002? Где перечислены все объекты и их коды?
|
||||
|
||||
Нет, в современных системах эмбеддинга не используется простое перечисление объектов с присвоенными им кодами. Давайте разберем, как это работает на самом деле:
|
||||
|
||||
### Принцип работы современных эмбеддингов
|
||||
|
||||
1. **Машинное обучение**
|
||||
Эмбеддинги создаются с помощью нейронных сетей, которые обучаются на огромных массивах текстовых данных.
|
||||
|
||||
2. **Контекстное обучение**
|
||||
Система учится понимать значение слов через их контекст использования, а не через заранее заданные коды.
|
||||
|
||||
3. **Многомерное пространство**
|
||||
Каждое слово представляется в виде точки в многомерном пространстве, где близость точек означает смысловую близость слов.
|
||||
|
||||
### Как это работает
|
||||
|
||||
* **Word2Vec** и подобные модели анализируют:
|
||||
* Как слова используются в предложениях
|
||||
* Какие слова часто встречаются рядом
|
||||
* Контекстные связи между словами
|
||||
|
||||
* **Трансформеры** (например, BERT) учитывают:
|
||||
* Порядок слов
|
||||
* Сложные синтаксические конструкции
|
||||
* Семантические связи
|
||||
|
||||
### Пример работы
|
||||
|
||||
Вместо жёстко заданных кодов:
|
||||
* «кошка» и «кот» будут иметь похожие векторы
|
||||
* «собака» будет ближе к «животному», чем к «мебель»
|
||||
* слова с похожим значением будут группироваться в пространстве эмбеддингов
|
||||
|
||||
### Почему не используются простые коды
|
||||
|
||||
1. **Гибкость системы**
|
||||
Эмбеддинги могут адаптироваться к новым контекстам и значениям слов.
|
||||
|
||||
2. **Учёт контекста**
|
||||
Одно и то же слово может иметь разные векторы в зависимости от контекста.
|
||||
|
||||
3. **Масштабируемость**
|
||||
Система может работать с миллионами слов без необходимости вручную присваивать коды.
|
||||
|
||||
### Практический пример
|
||||
|
||||
В векторном пространстве:
|
||||
* Вектор слова «кошка» будет близок к векторам: «мурка», «питомец», «животное»
|
||||
* Вектор слова «собака» будет близок к: «пёс», «друг человека», «животное»
|
||||
* При этом векторы «кошка» и «собака» будут ближе друг к другу, чем к вектору «кресло»
|
||||
|
||||
Таким образом, современные эмбеддинги — это не просто таблица соответствий «объект-код», а сложная система, которая учится понимать смысл слов через их использование в контексте.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue