Embedding (NLP) (SV)
Embedding (från engelskans embedding — "inbäddning") — är en grundläggande teknik inom Machine Learning och naturlig språkbehandling som omvandlar diskreta eller komplexa objekt (såsom ord, meningar, bilder) till numeriska vektoriella representationer med fast dimensionalitet. Dessa vektorer, eller embeddings, placeras i ett flerdimensionellt rum på ett sådant sätt att semantiskt liknande objekt befinner sig nära varandra.
Definition och koncept
Formellt sett är ett embedding en avbildningsfunktion , där är det ursprungliga objektrummet (till exempel ett ordförråd), och är ett flerdimensionellt vektorrum (embedding-rymden) med dimensionalitet . Dimensionaliteten är betydligt lägre än dimensionaliteten hos det ursprungliga rummet, vilket gör dessa representationer täta (dense).
Den teoretiska grunden för vektoriella ordrepresentationer är distributionell semantik, som hävdar att ett ords betydelse bestäms av det sammanhang i vilket det används. Det vill säga, ord som förekommer i liknande sammanhang har likartade betydelser och följaktligen nära vektoriella representationer.
Grundläggande principer för embeddings
- Fast dimensionalitet: Alla objekt avbildas på vektorer med samma längd, oavsett storleken på ursprungsdata (till exempel meningslängd).
- Semantisk närhet: Avståndet mellan vektorer (ofta mätt via cosine-likhet) återspeglar den semantiska närheten hos de ursprungliga objekten.
- Stöd för matematiska operationer: Vektorer bevarar semantiska relationer, vilket möjliggör algebraiska operationer på dem. Ett klassiskt exempel: .
Historia och utveckling
Tidiga metoder (1980–2000-tal)
De första idéerna om vektoriella representationer uppkom på 1980-talet inom ramen för forskning om neurala nätverk. Tidiga metoder byggde på statistisk analys av samlokalisering av ord.
Word2Vec-eran (2013)
En revolutionerande händelse var utvecklingen av Word2Vec av ett team på Google under ledning av Tomáš Mikolov år 2013. Word2Vec presenterade två effektiva och beräkningsmässigt billiga arkitekturer för träning av ord-embeddings:
- CBOW (Continuous Bag of Words): Förutsäger det centrala ordet utifrån det omgivande sammanhanget.
- Skip-gram: Förutsäger kontextord utifrån det centrala ordet.
Word2Vec blev den första populära implementationen av vektoriella representationer, till stor del tack vare öppen källkod och hög bearbetningshastighet.
Utveckling av alternativa metoder
Efter Word2Vec uppkom även andra betydelsefulla modeller för statiska embeddings:
- GloVe (2014): En modell utvecklad vid Stanford University som använder global statistik för samlokalisering av ord för att träna vektorer.
- FastText (2015): En modell från Facebook som tar hänsyn till ords morfologi genom att representera varje ord som summan av vektorer för dess teckens n-gram. Detta gör det möjligt att skapa embeddings även för ord som inte fanns i träningsvokabulären (Out-of-Vocabulary-ord).
Transformers-eran och kontextuella embeddings (2018–nutid)
Ett genombrott skedde med introduktionen av transformer-arkitekturen och modellen BERT (2018). Detta ledde till uppkomsten av kontextuella embeddings, där en ords vektoriella representation beror på det sammanhang i vilket det används. Till skillnad från statiska representationer, där ordet "nyckel" skulle ha samma vektor i meningarna "dörrnyckel" och "violinnyckel", genererar kontextuella modeller olika embeddings för varje fall.
Typer av embeddings
Efter representationsnivå
- Ord-embeddings: Den grundläggande typen, där varje ord representeras av en separat vektor (Word2Vec, GloVe).
- Mening- och dokument-embeddings: Representerar hela fraser, meningar eller dokument med en enda vektor (PV-DM, PV-DBOW).
- Användar- och objekt-embeddings: Används i rekommendationssystem för att representera användares intressen och produkters egenskaper.
Efter kontextualitet
- Statiska embeddings: Varje ord tilldelas en fast vektor, oberoende av sammanhanget (Word2Vec, GloVe, FastText).
- Kontextuella embeddings: Genererar olika representationer för samma ord beroende på dess omgivning. Huvudsakliga representanter:
- BERT: En dubbelriktad transformer-baserad modell.
- ELMo: En dubbelriktad LSTM-modell.
- RoBERTa, DistilBERT, ALBERT: Förbättrade varianter av BERT.
Efter modalitet
- Textuella embeddings: Den vanligaste typen, som inkluderar representationer av ord, meningar och dokument.
- Visuella embeddings: Representationer av bilder för uppgifter inom datorseende.
- Multimodala embeddings: Kombinerar olika typer av data (text, bilder, ljud) i ett gemensamt vektorrum. Ett exempel är ImageBind, som kan koppla samman data från sex modaliteter.
Arkitekturer och träningsmetoder
Klassiska metoder
- One-hot-kodning: Den enklaste metoden, där varje ord kodas med en vektor av ordförrådets storlek med en etta på motsvarande position. Nackdelar: hög gleshet och avsaknad av semantisk information.
- Matrisfaktorisering: Metoder för dimensionsreduktion (till exempel LSA), tillämpade på matriser för samlokalisering av ord.
Neurala nätverksarkitekturer
- Grunda neurala nätverk: CBOW- och Skip-gram-arkitekturerna i Word2Vec använder tvålagriga neurala nätverk för effektiv träning.
- Transformers: En arkitektur som revolutionerade området tack vare attention-mekanismen.
Moderna metoder
- Maskerad självträning: BERT använder uppgiften att förutsäga maskerade ord för att träna kontextuella representationer.
- Kontrastiv inlärning: Metoder som maximerar likheten hos semantiskt närstående (positiva) par och minimerar likheten hos avlägsna (negativa) par.
Tillämpningar av embeddings
Embeddings används brett inom en rad olika områden:
Naturlig språkbehandling
- Sökning och informationssökning: Förbättring av kvaliteten på semantisk sökning, vilket möjliggör att hitta dokument baserat på mening snarare än nyckelord.
- Textklassificering: Vektoriella representationer används som indata för klassificerare och höjer deras träffsäkerhet.
- Sentimentanalys: Bestämning av texters känslomässiga ton med hänsyn till sammanhanget.
- Maskinöversättning: Förbättrad förståelse av semantiken i käll- och målspråken.
Rekommendationssystem
Embeddings för användare och produkter utgör grunden för personaliserade rekommendationssystem, inklusive:
- Kollaborativ filtrering: baserad på embeddings av användarbeteende.
- Innehållsbaserad filtrering: med användning av embeddings för produktegenskaper.
Datorseende
- Bildklassificering och bildsökning: Faltningsneurala nätverk och Vision Transformers skapar bild-embeddings för klassificering och sökning efter visuellt liknande bilder.
Bioinformatik och medicin
- Analys av medicinska data: Analys av kliniska journaler och sjukdomsdiagnostik.
- Molekylära representationer: Skapande av embeddings för att förutsäga egenskaper hos kemiska föreningar.
Tekniska aspekter och optimering
- Metoder för dimensionsoptimering: Matryoshka Representation Learning (MRL) — ett innovativt tillvägagångssätt som möjliggör generering av embeddings med olika dimensionalitet från en enda modell, med koncentration av viktig information i början av vektorn.
- Kvantisering av embeddings: Minskning av talrepresentationsprecisionen (till exempel till 8 eller 4 bitar) för att påskynda beräkningar och spara minne.
- Integration med databaser: Moderna vektordatabaser (till exempel Milvus, Pinecone) och tillägg för traditionella databashanteringssystem (till exempel pgvector för PostgreSQL) möjliggör effektiv lagring och sökning av embeddings.
Externa länkar
- Vektoriell ordrepresentation — Wikipedia
- Vektoriell ordrepresentation — NEERC
Litteratur
- 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.