Embedding (NLP) (BG)
Embedding (от англ. embedding — „вграждане") — това е фундаментална технология в областта на Machine Learning и обработката на естествен език, която преобразува дискретни или сложни обекти (като думи, изречения, изображения) в числови векторни представяния с фиксирана размерност. Тези вектори, или embedding-и, се разполагат в многомерно пространство по такъв начин, че семантично сходните обекти се оказват близо един до друг.
Определение и концепция
Формално, embedding — това е функция на изображението , където — изходното пространство на обектите (например речник от думи), а — многомерното векторно пространство (пространство на embedding-ите) с размерност . Размерността е значително по-малка от размерността на изходното пространство, което прави тези представяния плътни (dense).
Теоретична основа за векторните представяния на думите служи дистрибутивната семантика, която твърди, че значението на дадена дума се определя от контекста на нейната употреба. Тоест думите, които се срещат в сходни контексти, имат близки значения и следователно — близки векторни представяния.
Основни принципи на embedding-ите
- Фиксирана размерност: Всички обекти се изобразяват във вектори с еднаква дължина, независимо от размера на изходните данни (например дължината на изречението).
- Семантична близост: Разстоянието между векторите (често измервано чрез косинусово сходство) отразява семантичната близост на изходните обекти.
- Поддръжка на математически операции: Векторите запазват семантичните отношения, което позволява извършването на алгебрични операции върху тях. Класически пример: Failed to parse (syntax error): {\displaystyle ext{вектор}( ext{«король»}) - ext{вектор}( ext{«мужчина»}) + ext{вектор}( ext{«женщина»}) \approx ext{вектор}( ext{«королева»})} .
История и развитие
Ранни подходи (1980–2000-те)
Първите идеи за векторни представяния се появяват през 1980-те години в рамките на изследванията на невронни мрежи. Ранните методи се основават на статистически анализ на съвместната поява на думи.
Епохата на Word2Vec (2013)
Революционен момент е разработването на Word2Vec от екипа на Google под ръководството на Томаш Миколов през 2013 година. Word2Vec предложи две ефективни и изчислително евтини архитектури за обучение на embedding-и на думи:
- CBOW (Continuous Bag of Words): Предсказва централната дума въз основа на обкръжаващия я контекст.
- Skip-gram: Предсказва контекстните думи по централната дума.
Word2Vec се превърна в първата популярна реализация на векторни представяния — до голяма степен благодарение на отворения изходен код и високата скорост на работа.
Развитие на алтернативни подходи
След Word2Vec се появиха и други значими модели на статични embedding-и:
- GloVe (2014): Модел, разработен в Станфордския университет, който използва глобална статистика на съвместната поява на думи за обучение на вектори.
- FastText (2015): Модел от Facebook, който отчита морфологията на думите, представяйки всяка дума като сума от вектори на нейните n-грами от символи. Това позволява създаването на embedding-и дори за думи, които не са присъствали в обучителния речник (Out-of-Vocabulary думи).
Ерата на transformer-ите и контекстуалните embedding-и (2018–до момента)
Пробив настъпи с появата на архитектурата на transformer-ите и модела BERT (2018). Това доведе до появата на контекстуални embedding-и, при които векторното представяне на дадена дума зависи от контекста на нейната употреба. За разлика от статичните представяния, при които думата „ключ" би имала един и същ вектор в изреченията „врата с ключ" и „цигулков ключ", контекстуалните модели генерират различни embedding-и за всеки от случаите.
Типове embedding-и
По ниво на представяне
- Embedding-и на думи: Базов тип, при който всяка дума се представя с отделен вектор (Word2Vec, GloVe).
- Embedding-и на изречения и документи: Представят цели фрази, изречения или документи с единен вектор (PV-DM, PV-DBOW).
- Embedding-и на потребители и обекти: Използват се в препоръчителни системи за представяне на интересите на потребителите и характеристиките на стоките.
По контекстуалност
- Статични embedding-и: На всяка дума се присвоява един фиксиран вектор, независимо от контекста (Word2Vec, GloVe, FastText).
- Контекстуални embedding-и: Генерират различни представяния за една и съща дума в зависимост от нейното обкръжение. Основни представители:
- BERT: Двупосочен модел на основата на transformer-и.
- ELMo: Двупосочен LSTM-модел.
- RoBERTa, DistilBERT, ALBERT: Подобрени варианти на BERT.
По модалност
- Текстови embedding-и: Най-разпространеният тип, включващ представяния на думи, изречения и документи.
- Визуални embedding-и: Представяния на изображения за задачи от областта на компютърното зрение.
- Мултимодални embedding-и: Обединяват различни типове данни (текст, изображения, аудио) в единно векторно пространство. Пример за такъв подход е ImageBind, която е способна да свързва данни от шест модалности.
Архитектури и методи на обучение
Класически методи
- One-hot кодиране: Най-простият метод, при който всяка дума се кодира с вектор с размер на речника и единица в съответната позиция. Недостатъци: висока разреденост и липса на семантична информация.
- Матрична факторизация: Методи за намаляване на размерността (например LSA), прилагани към матрици на съвместна поява на думи.
Невронни архитектури
- Плитки невронни мрежи: Архитектурите CBOW и Skip-gram в Word2Vec използват двуслойни невронни мрежи за ефективно обучение.
- Transformer-и: Архитектура, която революционизира областта благодарение на механизма на attention.
Съвременни подходи
- Самообучение с маски: BERT използва задачата за предсказване на маскирани думи за обучение на контекстуални представяния.
- Контрастивно обучение: Методи, които максимизират сходството на семантично близки (положителни) двойки и минимизират сходството на отдалечените (отрицателни) двойки.
Приложения на embedding-ите
Embedding-ите намират широко приложение в различни области:
Обработка на естествен език
- Търсене и информационно извличане: Подобряване на качеството на семантичното търсене, позволявайки намирането на документи по смисъл, а не по ключови думи.
- Класификация на текстове: Векторните представяния служат като входни данни за класификатори, повишавайки тяхната точност.
- Анализ на тоналността: Определяне на емоционалната окраска на текстовете с отчитане на контекста.
- Машинен превод: Подобряване на разбирането на семантиката на изходния и целевия език.
Препоръчителни системи
Embedding-ите на потребители и стоки стоят в основата на системите за персонализирани препоръки, включително:
- Колаборативна филтрация: на основата на embedding-и на потребителско поведение.
- Контентна филтрация: с използване на embedding-и на характеристиките на стоките.
Компютърно зрение
- Класификация и търсене на изображения: Свиващи невронни мрежи и Vision Transformers създават embedding-и на изображения за тяхната класификация и търсене на визуално сходни.
Биоинформатика и медицина
- Анализ на медицински данни: Анализ на клинични записи и диагностика на заболявания.
- Молекулярни представяния: Създаване на embedding-и за предсказване на свойствата на химични съединения.
Технически аспекти и оптимизация
- Методи за оптимизация на размерността: Matryoshka Representation Learning (MRL) — иновативен подход, позволяващ получаването на embedding-и с различна размерност от един модел, концентрирайки важната информация в началото на вектора.
- Квантизация на embedding-ите: Намаляване на точността на числовото представяне (например до 8 или 4 бита) с цел ускоряване на изчисленията и икономия на памет.
- Интеграция с бази данни: Съвременните векторни бази данни (например Milvus, Pinecone) и разширенията за традиционни СУБД (например pgvector за PostgreSQL) позволяват ефективното съхранение и търсене на embedding-и.
Връзки
- Векторно представяне на думи — Уикипедия
- Векторно представяне на думи — NEERC
Литература
- Mikolov, T. et al. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.
- Mikolov, T. et al. (2013). Distributed Representations of Words and Phrases and their Compositionality. arXiv:1310.4546.
- Pennington, J.; Socher, R.; Manning, C. (2014). GloVe: Global Vectors for Word Representation. PDF.
- Bojanowski, P. et al. (2017). Enriching Word Vectors with Subword Information. arXiv:1607.04606.
- Joulin, A. et al. (2017). Bag of Tricks for Efficient Text Classification. arXiv:1607.01759.
- Peters, M. E. et al. (2018). Deep Contextualized Word Representations. ACL Anthology.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Reimers, N.; Gurevych, I. (2019). Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. arXiv:1908.10084.
- Kusupati, A. et al. (2022). Matryoshka Representation Learning. arXiv:2205.13147.
- Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. PMLR 139.
- Girdhar, R. et al. (2023). ImageBind: One Embedding Space To Bind Them All. CVPR 2023.