Embedding (NLP) (PL)
Embedding (od ang. embedding — „osadzanie") — to fundamentalna technologia w dziedzinie uczenia maszynowego i przetwarzania języka naturalnego, która przekształca dyskretne lub złożone obiekty (takie jak słowa, zdania, obrazy) w liczbowe reprezentacje wektorowe o stałej wymiarowości. Wektory te, zwane embeddingami, rozmieszczone są w przestrzeni wielowymiarowej w taki sposób, że semantycznie podobne obiekty znajdują się blisko siebie.
Definicja i koncepcja
Formalnie, embedding to funkcja odwzorowania , gdzie — wyjściowa przestrzeń obiektów (np. słownik wyrazów), a — wielowymiarowa przestrzeń wektorowa (przestrzeń embeddingów) o wymiarowości . Wymiarowość jest znacznie mniejsza niż wymiarowość przestrzeni wyjściowej, co sprawia, że reprezentacje te są gęste (dense).
Teoretyczną podstawą wektorowych reprezentacji słów jest semantyka dystrybucyjna, która głosi, że znaczenie słowa wyznaczone jest przez kontekst jego użycia. Oznacza to, że słowa występujące w podobnych kontekstach mają zbliżone znaczenia, a co za tym idzie — zbliżone reprezentacje wektorowe.
Podstawowe zasady embeddingów
- Stała wymiarowość: Wszystkie obiekty odwzorowywane są na wektory jednakowej długości, niezależnie od rozmiaru danych wejściowych (np. długości zdania).
- Bliskość semantyczna: Odległość między wektorami (często mierzona przez podobieństwo cosinusowe) odzwierciedla bliskość semantyczną wyjściowych obiektów.
- Obsługa operacji matematycznych: Wektory zachowują relacje semantyczne, co umożliwia wykonywanie na nich operacji algebraicznych. Klasyczny przykład: Failed to parse (syntax error): {\displaystyle ext{вектор}( ext{«король»}) - ext{вектор}( ext{«мужчина»}) + ext{вектор}( ext{«женщина»}) \approx ext{вектор}( ext{«королева»})} .
Historia i rozwój
Wczesne podejścia (lata 1980–2000)
Pierwsze koncepcje wektorowych reprezentacji pojawiły się w latach 80. XX wieku w ramach badań nad sieciami neuronowymi. Wczesne metody opierały się na statystycznej analizie współwystępowania słów.
Epoka Word2Vec (2013)
Przełomowym momentem było opracowanie Word2Vec przez zespół Google pod kierownictwem Tomáša Mikolova w 2013 roku. Word2Vec zaproponował dwie efektywne i obliczeniowo niedrogie architektury do uczenia embeddingów słów:
- CBOW (Continuous Bag of Words): Przewiduje centralne słowo na podstawie otaczającego je kontekstu.
- Skip-gram: Przewiduje słowa kontekstowe na podstawie słowa centralnego.
Word2Vec stał się pierwszą popularną implementacją wektorowych reprezentacji, w dużej mierze dzięki otwartemu kodowi źródłowemu i wysokiej szybkości działania.
Rozwój alternatywnych podejść
Po Word2Vec pojawiły się inne znaczące modele statycznych embeddingów:
- GloVe (2014): Model opracowany na Uniwersytecie Stanforda, który wykorzystuje globalną statystykę współwystępowania słów do uczenia wektorów.
- FastText (2015): Model od Facebook, który uwzględnia morfologię słów, reprezentując każde słowo jako sumę wektorów jego n-gramów znakowych. Pozwala to tworzyć embeddingi nawet dla słów nieobecnych w słowniku treningowym (słowa Out-of-Vocabulary).
Era transformerów i kontekstualnych embeddingów (2018–obecnie)
Przełom nastąpił wraz z pojawieniem się architektury transformerów i modelu BERT (2018). Doprowadziło to do powstania kontekstualnych embeddingów, w których wektorowa reprezentacja słowa zależy od kontekstu jego użycia. W odróżnieniu od reprezentacji statycznych, gdzie słowo „zamek" miałoby ten sam wektor w zdaniach „zamek w drzwiach" i „zamek rycerski", modele kontekstualne generują różne embeddingi dla każdego przypadku.
Typy embeddingów
Ze względu na poziom reprezentacji
- Embeddingi słów: Podstawowy typ, w którym każde słowo reprezentowane jest oddzielnym wektorem (Word2Vec, GloVe).
- Embeddingi zdań i dokumentów: Reprezentują całe frazy, zdania lub dokumenty za pomocą jednego wektora (PV-DM, PV-DBOW).
- Embeddingi użytkowników i obiektów: Stosowane w systemach rekomendacyjnych do reprezentowania zainteresowań użytkowników i cech produktów.
Ze względu na kontekstualność
- Statyczne embeddingi: Każdemu słowu przypisywany jest jeden stały wektor, niezależnie od kontekstu (Word2Vec, GloVe, FastText).
- Kontekstualne embeddingi: Generują różne reprezentacje dla tego samego słowa w zależności od jego otoczenia. Główni przedstawiciele:
- BERT: Dwukierunkowy model oparty na transformerach.
- ELMo: Dwukierunkowy model LSTM.
- RoBERTa, DistilBERT, ALBERT: Ulepszone warianty BERT.
Ze względu na modalność
- Embeddingi tekstowe: Najpowszechniejszy typ, obejmujący reprezentacje słów, zdań i dokumentów.
- Embeddingi wizualne: Reprezentacje obrazów dla zadań widzenia komputerowego.
- Embeddingi multimodalne: Łączą różne typy danych (tekst, obrazy, dźwięk) w jedną wspólną przestrzeń wektorową. Przykładem jest ImageBind, zdolny do łączenia danych z sześciu modalności.
Architektury i metody uczenia
Klasyczne metody
- Kodowanie one-hot: Najprostsza metoda, w której każde słowo kodowane jest wektorem o rozmiarze słownika z jedynką na odpowiedniej pozycji. Wady: wysoka rzadkość i brak informacji semantycznej.
- Faktoryzacja macierzowa: Metody redukcji wymiarowości (np. LSA) stosowane do macierzy współwystępowania słów.
Architektury neuronowe
- Płytkie sieci neuronowe: Architektury CBOW i Skip-gram w Word2Vec wykorzystują dwuwarstwowe sieci neuronowe do efektywnego uczenia.
- Transformery: Architektura, która zrewolucjonizowała dziedzinę dzięki mechanizmowi uwagi (attention).
Nowoczesne podejścia
- Samouczenie z maskowaniem: BERT wykorzystuje zadanie przewidywania zamaskowanych słów do uczenia kontekstualnych reprezentacji.
- Uczenie kontrastywne: Metody maksymalizujące podobieństwo semantycznie bliskich par (pozytywnych) i minimalizujące podobieństwo par odległych (negatywnych).
Zastosowania embeddingów
embeddingi znajdują szerokie zastosowanie w różnych dziedzinach:
Przetwarzanie języka naturalnego
- Wyszukiwanie i wyszukiwanie informacji: Poprawa jakości wyszukiwania semantycznego, umożliwiająca znajdowanie dokumentów według sensu, a nie słów kluczowych.
- Klasyfikacja tekstów: Reprezentacje wektorowe służą jako dane wejściowe dla klasyfikatorów, zwiększając ich dokładność.
- Analiza wydźwięku: Określanie zabarwienia emocjonalnego tekstów z uwzględnieniem kontekstu.
- Tłumaczenie maszynowe: Poprawa rozumienia semantyki języka źródłowego i docelowego.
Systemy rekomendacyjne
Embedingi użytkowników i produktów stanowią podstawę systemów spersonalizowanych rekomendacji, w tym:
- Filtrowanie kolaboratywne: oparte na embeddingach zachowań użytkowników.
- Filtrowanie treściowe: z wykorzystaniem embeddingów cech produktów.
Widzenie komputerowe
- Klasyfikacja i wyszukiwanie obrazów: Konwolucyjne sieci neuronowe i Vision Transformers tworzą embeddingi obrazów do ich klasyfikacji i wyszukiwania wizualnie podobnych.
Bioinformatyka i medycyna
- Analiza danych medycznych: Analiza zapisów klinicznych i diagnozowania chorób.
- Reprezentacje molekularne: Tworzenie embeddingów do przewidywania właściwości związków chemicznych.
Aspekty techniczne i optymalizacja
- Metody optymalizacji wymiarowości: Matryoshka Representation Learning (MRL) — innowacyjne podejście pozwalające uzyskiwać embeddingi różnej wymiarowości z jednego modelu, koncentrując ważne informacje na początku wektora.
- Kwantyzacja embeddingów: Obniżenie precyzji reprezentacji liczb (np. do 8 lub 4 bitów) w celu przyspieszenia obliczeń i oszczędności pamięci.
- Integracja z bazami danych: Nowoczesne wektorowe bazy danych (np. Milvus, Pinecone) oraz rozszerzenia dla tradycyjnych systemów DBMS (np. pgvector dla PostgreSQL) umożliwiają efektywne przechowywanie i wyszukiwanie embeddingów.
Odnośniki
- Wektorowa reprezentacja słów — Wikipedia
- Wektorowa reprezentacja słów — NEERC
Literatura
- 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.