Taal + wiskunde. Word Embeddings
Er zijn verschillende technieken ontwikkeld en beschikbaar in de wereld van taalverwerking en taalbegrip (language Processing and language understanding). Veel heeft te maken met architectuur, dat betekent dat er vele componenten zijn in een grote geheel die samenwerken en elk een eigen functie uitoefenen.
Word Embeddings is een bijzondere daarvan. In eenvoudige termen is een word-embedding: is een numerieke representatie van een woord. Numeriek betekent hier een vector of matrix-vertegenwoordiging, dus het nummer is een samengesteld nummer. Als voorbeeld:
- "het witte paard eet," kan vertaald worden in "het" [1,0,0,0], "witte" [0,1,0,0], "paard" [0,0,1,0] en "eet" [0,0,0,1]
Word2Vec
- Doel: Word2VEC is een techniek voor het leren van woordinbedding, die dichte vectorrepresentaties van woorden zijn.
- Types: er zijn twee hoofdarchitecturen:
- Continue bag of words (Cbow): voorspelt een doelwoord uit een context van omliggende woorden. [dus het doelwoord is de variabele en de context van het voorliggende- en achterliggende woord zijn de constanten]
- Skip-gram: voorspelt de contextwoorden die een doelwoord krijgen [precies andersom dan bij cBoW dus].
- Training: het is getraind op een groot corpus van tekst om semantische en syntactische overeenkomsten tussen woorden vast te leggen.
- Uitgang: het produceert een vector met een vaste grootte voor elk woord in de vocabulaire.
- Doel: Glove is een andere techniek voor het leren van woordinnings.
- Als benadering combineert het de voordelen van wereldwijde matrixfactorisatie en lokale contextvenstermethoden.
- Training: het wordt getraind op een wereldwijd woord-woord-co-optreden van een groot corpus afgeleid van een groot corpus.
- Output: het produceert woordvectoren die zowel globale als lokale woord-woord-co-op-voorkomen statistieken vastleggen.
- Doel: T-SNE is een dimensionaliteitsreductietechniek die wordt gebruikt voor het visualiseren van hoog-dimensionale gegevens.
- Benadering: het vermindert de dimensionaliteit van gegevens met behoud van de lokale structuur, waardoor het nuttig wordt voor het visualiseren van clusters en patronen in hoog-dimensionale ruimtes.
- Training: het is niet specifiek ontworpen voor woordinbedding, maar kan worden gebruikt om inbeddings te visualiseren die worden geproduceerd door andere technieken zoals Word2VEC of Glove.
- Output: het produceert een 2D- of 3D-weergave van hoog-dimensionale gegevenspunten, die kunnen worden uitgezet om relaties te visualiseren.
- Belangrijke verschillen
- Primair gebruik: Word2Vec en Glove worden voornamelijk gebruikt voor het genereren van woordinbedings. T-SNE wordt gebruikt voor dimensionaliteitsvermindering en visualisatie.
- Uitvoer: Word2Vec en Glove produceren dichte vectorrepresentaties van woorden. T-SNE produceert een laag-dimensionale weergave van hoog-dimensionale gegevenspunten.
- Trainingsgegevens: Word2Vec en Glove zijn getraind op grote tekst corpora. T-SNE kan worden toegepast op eventuele hoog-dimensionale gegevens, inclusief woordinbedding.
- Samenvattend, terwijl Word2VEC en Glove vergelijkbaar zijn omdat ze allebei Word Inbeddings genereren, is T-SNE een ander type techniek dat wordt gebruikt voor dimensionaliteitsvermindering en visualisatie.
Je ziet dat er vele functies zijn, maar soms met een heel eigen doel. Word2Vec en Glove lijken op elkaar, qua functie en gebruik. t-SNE is echt iets anders. Andere modellen zijn (wederom voorgesteld door de Aigent, Mistral):
Er zijn verschillende andere woorden insluitingtechnieken naast Word2Vec en handschoen*. Hier zijn enkele opmerkelijke:
- 1. FastText
- Ontwikkeld door: Facebook's AI Research (Fair) Lab.
- Doel: een uitbreiding van Word2Vec die woorden vertegenwoordigt als N-grammen van tekens.
- Voordelen: bevat subwoordinformatie, wat handig is voor het omgaan met woorden buiten de vocabulaire en morfologisch rijke talen.
- Training: vergelijkbaar met Word2VEC, met behulp van CBOW- of Skip-Gram-architecturen.
- 2. ELMO (Embeddings from Language Models)
- Ontwikkeld door: Allennlp.
- Doel: genereert contextgevoelige woordinbedding met behulp van een diepe bidirectionele LSTM.
- Voordelen: legt verschillende betekenissen vast van een woord op basis van de context.
- Training: getraind op een grote tekstcorpus om het volgende woord in een zin te voorspellen.
- 3. Bert (bidirectionele encoderrepresentaties van transformatoren)
- Ontwikkeld door: Google.
- Doel: genereert contextgevoelige woordverbanden met behulp van een transformator-gebaseerde architectuur.
- Voordelen: legt bidirectionele context vast, wat betekent dat het zowel de linker- als de juiste context van een woord beschouwt.
- Training: vooraf getraind op een groot corpus met behulp van gemaskerde taalmodellering en voorspellingstaken van de volgende zin.
- 4. Roberta (een robuust geoptimaliseerde Bert -aanpak)
- Ontwikkeld door: Facebook AI.
- Doel: een geoptimaliseerde versie van Bert met verbeterde trainingsprocedures.
- Voordelen: betere prestaties op verschillende NLP -taken vanwege verbeterde trainingstechnieken.
- Training: vergelijkbaar met Bert maar met meer gegevens en verschillende trainingsstrategieën.
- 5. Wordpiece (gebruikt in Bert en andere modellen)
- Ontwikkeld door: Google.
- Doel: een methode voor subword tokenisatie gebruikt in BERT en andere transformator-gebaseerde modellen.
- Voordelen: verwerkt buitengewone woorden door ze te breken in subword-eenheden.
- Training: onderdeel van het pre-trainingsproces van modellen zoals Bert.
- 6. Zin-Bert (Sbert)
- Ontwikkeld door: NLP Group aan de Universiteit van Erlangen-Nuremberg.
- Doel: genereert zinsverbanden met behulp van een gewijzigde Bert -architectuur.
- Voordelen: produceert zinvolle insluitingen in de zin die kunnen worden gebruikt voor taken zoals semantische tekstuele gelijkenis.
- Training: verfijnd bij taken op zinniveau.
- 7. Universele zin Encoder
- Ontwikkeld door: Google.
- Doel: genereert zinsverbanden die kunnen worden gebruikt voor verschillende NLP -taken.
- Voordelen: kan zowel korte als lange teksten verwerken en worden getraind op een gevarieerde set taken.
- Training: getraind op verschillende NLP -taken, waaronder classificatie, regressie en gelijkenisstaken.
- 8. GPT (generatieve pre-getrainde transformator)
- Ontwikkeld door: OpenAI.
- Doel: genereert contextgevoelige woordverbanden met behulp van een transformator-gebaseerde architectuur.
- Voordelen: legt afhankelijkheden van lange afstand vast en kan coherente tekst genereren.
- Training: vooraf getraind op een groot corpus met behulp van een doelstelling voor taalmodellering.
- 9. T5 (tekst-naar-tekstoverdrachttransformator)
- Ontwikkeld door: Google.
- Doel: een transformatormodel dat elke NLP-taak behandelt als een tekst-naar-tekstprobleem.
- Voordelen: veelzijdig en kan een breed scala aan NLP -taken verwerken.
- Training: vooraf getraind op een groot corpus met behulp van een tekst-naar-tekstdoelstelling.
- 10. Flair
- Ontwikkeld door: Zalando Research.
- Doel: Genereert contextgevoelige woordinbedding met behulp van een combinatie van teken LSTM's en woordinbedding.
- Voordelen: legt zowel informatie op karakterniveau als op woordniveau vast.
- Training: vooraf getraind op een groot corpus en verfijnd op specifieke NLP-taken.
- Elk van deze technieken heeft zijn eigen sterke punten en is geschikt voor verschillende soorten NLP -taken. De keuze van de inbeddingstechniek hangt vaak af van de specifieke vereisten van de toepassing, zoals de behoefte aan contextgevoelige insluitingen, het omgaan met woorden buiten de vocabulaire, of de mogelijkheid om afhankelijkheden van lange afstand te vangen.
Uitleg.
Zeker! Laten we het op een eenvoudige manier opsplitsen:Wat zijn woordinbedding? -- Stel je voor dat je een enorm woordenboek hebt, maar in plaats van alleen definities wordt elk woord weergegeven door een unieke reeks cijfers. Deze getallen leggen de betekenis en relaties tussen woorden vast op een manier die computers kunnen begrijpen. Dit is in wezen wat woordinbedden doet.Waarom zijn ze nuttig? --
- Betekenis vastleggen: Woordverbanden helpen computers de betekenis van woorden te begrijpen. De woorden "koning" en "koningin" kunnen bijvoorbeeld soortgelijke inbedding hebben omdat ze in betekenis gerelateerd zijn.
- Behandelingscontext: sommige geavanceerde woordverbanden kunnen begrijpen dat het woord "bank" in "bank van een rivier" anders is dan "bank" in "bankrekening".
- Efficiënte opslag: in plaats van enorme woordenboeken op te slaan, kunnen computers deze numerieke representaties opslaan, die veel efficiënter en gemakkelijker te verwerken zijn.
Hoe werken ze?
- Training op tekst: Word-insluitingen worden gemaakt door een computermodel te trainen op een grote hoeveelheid tekst. Het model leert woorden te associëren met hun numerieke representaties op basis van hoe ze in de tekst worden gebruikt.
- Vectorrepresentatie: elk woord wordt omgezet in een vector, wat een lijst met nummers is. Deze vectoren worden in een hoog-dimensionale ruimte geplaatst, waar vergelijkbare woorden dicht bij elkaar liggen.
- Wiskundige bewerkingen: zodra woorden als vectoren zijn weergegeven, kunt u deze wiskundige bewerkingen uitvoeren. U kunt bijvoorbeeld de vector vinden voor "King" en "Queen" en zien hoe dichtbij ze zijn in de hoog-dimensionale ruimte.
- Echte voorbeeld
- Denk aan een woordwolk waar woorden dichter bij elkaar worden geplaatst als ze meer op elkaar lijken in betekenis. Word-inbedden doen iets soortgelijks, maar in een hoog-dimensionale ruimte waarmee computers kunnen werken.
Waarom het ertoe doet? -- Woordverbanden zijn een fundamenteel onderdeel van vele moderne technologieën, waaronder:
- Zoekmachines: u helpen relevante informatie te vinden door de context van uw zoekopdracht te begrijpen.
- Chatbots: gesprekken natuurlijker en zinvoller maken.
- Taalvertaling: het verbeteren van de nauwkeurigheid van vertalingen door de nuances van taal te begrijpen.
Samenvattend zijn woordinbedding als een geheime code die computers helpt om menselijke taal effectiever te begrijpen en te verwerken. Ze veranderen woorden in getallen die hun betekenis en relaties vastleggen, waardoor het voor machines gemakkelijker wordt om met tekst te werken.
- Statische woordinbedding:
- Word2Vec, Glove: deze modellen genereren een enkele vector voor elk woord, ongeacht de context. Voor het woord 'appel' zal de vector een mix zijn van zijn betekenissen als zowel een fruit als een bedrijf. De resulterende vector kan meer worden beïnvloed door één betekenis als die context vaker voorkomt in de trainingsgegevens, maar het zal nog steeds een enkele vector zijn.
- Contextuele inbeddings:
- Bert, Elmo, Roberta: Deze modellen genereren inbedding die contextafhankelijk zijn. Dit betekent dat de inbedding voor "Apple" zal variëren op basis van de zin waarin het verschijnt. Bijvoorbeeld:
- In de zin "Ik hou van Apple Products", zal de inbedding voor "Apple" worden beïnvloed door woorden als "producten" en "liefde", neigen naar het bedrijf dat betekent.
- In de zin "Ik hou van appeltaart", zal de inbedding voor "appel" worden beïnvloed door woorden als "taart" en "liefde", neigend naar de betekenis als vrucht (Mistral).
Reacties