Onvoldoende trainingsgegevens is misschien wel het meest uitdagende probleem van natuurlijke taalverwerking, beter bekend als NLP. Voor degenen die het niet weten, is NLP een ongelooflijk divers gebied met verschillende verschillende taken. In de meeste gevallen bestaan taakspecifieke datasets uit honderden of duizenden trainingsvoorbeelden (met een mensenlabel).
Daarbij profiteren moderne deep learning natuurlijke taalverwerkingsmodellen van aanzienlijke hoeveelheden gegevens. Ze vereisen miljoenen, zo niet miljarden opleidingsvoorbeelden met aantekeningen. Onderzoekers zijn hard aan het werk geweest om een oplossing te vinden om deze gegevenskloof te dichten. Ze hebben verschillende technieken ontwikkeld om GPL (general-purpose language) modellen te trainen met behulp van tonnen en tonnen geannoteerde tekst, ook wel pre-training genoemd.
Programmeurs kunnen dan de voorgetrainde modellen op NLP-taken fine-tunen met kleine data zoals sentimentanalyse en vraagbeantwoording, wat resulteert in ongelooflijk nauwkeurige verbeteringen die significant beter zijn dan het trainen van datasets vanaf het begin.
Wat is BERT?
BERT, kort voor Bidirectional Encoder Representations van Transformers, maakt enorme golven in het machineleer-landschap. Een groep onderzoekers werkzaam bij Google AI language publiceerde onlangs BERT. BERT zorgt voor opschudding vanwege de ongelooflijk nauwkeurige resultaten in verschillende natuurlijke taal programmeertaken zoals MNLI (natural language inference), Squad V1.1 (vraag beantwoording), en diverse andere.
De implementatie van de Transformer training is een belangrijke reden waarom de machine learning community BERT als een essentiële technische innovatie beschouwt. BERT’s taalmodellering belooft het machinaal leren naar nieuwe hoogten te brengen. Het is tegengesteld aan de eerdere inspanningen die zich richtten op tekstsequenties die beginnen bij de training van rechts naar links of van links naar rechts.
De resultaten geven aan dat bidirectioneel getrainde taalmodellen een diepgaand begrip hebben van flow en taalcontext in vergelijking met op één richting gebaseerde taalmodellen. De onderzoekers van Bert AI bespreken een uitgebreid nieuwe techniek genaamd MLM (Masked LM.) De methode zorgt voor bidirectionele training in de modellen die voorheen onmogelijk te trainen waren.
Hoe BERT werkt
BERT maakt uitgebreid gebruik van Transformer. Het is een attentiemechanisme dat in staat is om contexten te leren tussen de woorden van een tekst en zelfs de subwoorden voor degenen die het niet weten. In zijn zuiverste vorm bestaat een Transformer uit twee verschillende mechanismen: een encoder en een decoder. Het eerste leest de invoer, terwijl het tweede de voorspelling van de taak creëert.
Verrassend genoeg heeft BERT alleen het coderingsmechanisme nodig, omdat het primaire doel is om een efficiënt taalmodel te creëren. Een gedetailleerde paper van Google’s onderzoekers laat zien hoe de Transformer werkt.
In tegenstelling tot directionele modellen die de invoer van de tekst in een volgorde begrijpen (van rechts naar links of van links naar rechts), zijn de Transformer encoders enorm verschillend. Waarom? Omdat ze een sequentie in één keer kunnen lezen, vandaar de term bidirectioneel. Hoewel, sommigen zouden beweren dat niet-directioneel een nauwkeuriger pasvorm zou zijn. Door gebruik te maken van deze eigenschap kan het model de context van een woord leren, afhankelijk van zijn omgeving.
Hoewel er genoeg uitdagingen zijn bij het trainen van modellen, is het bepalen van een voorspellingsdoel misschien wel het grootste gedoe. Zoals eerder besproken, voorspellen de meeste modellen woorden achtereenvolgens. Natuurlijk is het al een tijdje nuttig, maar deze aanpak heeft zijn beperkingen. Waarom? Omdat het de leercontexten beperkt. BERT overwint deze uitdaging door gebruik te maken van de volgende trainingsstrategieën:
Gemaskerde LM aka MLM
Voor het invoeren van woordreeksen in BERT, vervangt een token dat bekend staat als [MASK] vijftien procent van de instructies van elke string. Het model probeert dan de oorspronkelijke waarde van het gemaskerde woord te voorspellen aan de hand van de context die door niet-gemaskerde termen wordt gegeven. Technisch gezien zijn er voor de voorspellingen van de outputwoorden vereisten:
- Het implementeren van een classificatielaag boven de uitvoer van de encoder
- Het gebruik van de inbedmakingsmatrix om de outputvectoren te vermenigvuldigen en om te zetten in de woordenschatdimensie van de taal
- Het berekenen van de waarschijnlijkheid van elk woord in de woordenschat door gebruik te maken van softmax
Vergeet niet dat de verliesfunctie van BERT alleen rekening houdt met de gemaskerde waardevoorspellingen en de niet-gemaskerde woordvoorspellingen negeert. Het model verenigt dus langzamer dan gewone directionele modellen, een eigenschap die ontstaat door hypercontext-bewustzijn.
Bij de implementatie van BERT moet je uitgebreider zijn, omdat het niet elk gemaskerd woord vervangt.
Volgende zin Voorspelling aka NSP
Het model in de trainingsprocedure van BERT krijgt verschillende paren invoerzinnen. Het leert te voorspellen of de tweede zin in de string de volgende zin is. Vijftig procent van de trainingsinputs is een paar waarbij de tweede zin vaak de volgende is in het eerste document. De overige vijftig procent bevat daarentegen willekeurige woorden als tweede zin. Volgens de aannames maken willekeurige zinnen zich los van de eerste.
Om het model te helpen bij het bepalen van het verschil tussen twee zinnen tijdens de training, is dit wat er gebeurt voordat er in het model wordt ingegaan:
- Een CLS-token komt aan het begin van de eerste zin binnen, en het [SEP]-token komt aan het eind van elke zin binnen.
- Een zinsvolgorde die de toevoeging van zin A of B aan elke penning suggereert. U zult enorme overeenkomsten zien tussen de inbedding van zinnen en de woordenschat twee inbeddingen
- Er is een toevoeging van positionele inbedding aan elke token om de specifieke positie aan te geven. U kunt het idee en de integratie van positie-inbedding in dit transformatorpapier begrijpen.
Hoe de tweede zin te voorspellen
Hier is een lijst met stappen die u moet uitvoeren als u wilt zien of er een verband is tussen de tweede en de eerste zin:
- De totale invoersequentie ondergaat het Transformer-model
- De CLS-uitvoertoken verandert in een twee-bij-een-vormige vector, met behulp van een gewone classificatielaag
- Softmax gebruiken om IsNextSequence waarschijnlijkheid te berekenen
Het is de moeite waard om op te merken dat Next Sentence Prediction, Masked LM, en BERT model samen trainen in het BERT model. Het helpt de totale verliesfunctie die door de twee strategieën wordt gecreëerd tot een minimum te beperken.
Gebruik van BERT
U kunt BERT gebruiken voor verschillende taaltaken. Bovendien heeft het kernmodel maar een klein laagje nodig…
- Het uitvoeren van sentimentanalyse en andere classificatietaken zijn vergelijkbaar met Next Sentence groepering. Voeg een classificatielaag toe over de Transformer-uitvoer om de CLS-token te verkrijgen.
- U kunt een BERT gebruiken om een Q- en A-model te trainen door nog twee vectoren te implementeren die het begin en het einde van het antwoord markeren
- U kunt BERT ook gebruiken om een Named Entity Recognition-model te trainen door de uitvoervector van elke token in een classificerende laag te voeren om het Name Entity Recognition Label te voorspellen.
De BERT-tijd maakte gebruik van deze techniek om buitengewone resultaten te bereiken op verschillende gecompliceerde natuurlijke taaltaken.