• Search
  • Lost Password?

Fastext model

FastText je knjižnica za učinkovito učenje reprezentacija riječi i klasifikaciju rečenica koju je razvio laboratorij za istraživanje umjetne inteligencije Facebooka. Koristi metodu koja proširuje popularni pristup Word2Vec kako bi učinkovito uzela u obzir morfološku strukturu, što je čini posebno korisnom za jezike s bogatim infleksijama.

Kako FastText pretvara riječi u brojeve

FastText započinje razdvajanjem teksta na manje jedinice zvane tokeni. To mogu biti riječi ili podriječi (n-grami). Na primjer, u riječi “friendly”, osim cijele riječi, mogao bi se uzeti u obzir i podriječi poput “frien”, “riend”, “iendly” itd. To pomaže u hvatanju morfologije riječi, posebno u aglutinativnim jezicima poput turskog ili finskog.

Vektorska reprezentacija:

Svaki token predstavljen je kao vektor u prostoru visoke dimenzije. Ti vektori su u početku nasumični, ali se iterativno prilagođavaju tijekom treninga na tekstualnom korpusu. Cilj je da semantički slični tokeni na kraju imaju slične vektore.

Korištenje N-grama:

FastText dodaje značajke n-grama osnovnom modelu ugrađivanja riječi. To znači da ne gleda samo cijelu riječ, već uzima u obzir i fiksne dijelove riječi. To pomaže u boljem razumijevanju konteksta, kao i u rješavanju riječi izvan vokabulara tijekom zadataka klasifikacije.

Pregled ugrađivanja i agregacija:

Prilikom klasifikacije tekstova, FastText računa prosjek svih vektorskih reprezentacija tokena i n-grama u rečenici ili dokumentu. Taj prosječni vektor efikasno predstavlja semantičko značenje ulaznog teksta.

Klasifikacija:

Taj agregirani vektor zatim se unosi u jednostavan linearni klasifikator (poput logističke regresije) kako bi se predvidjela kategorija teksta. Budući da FastText uključuje informacije o podriječima, otporan je na tipfelere i različite oblike riječi, što povećava njegovu točnost i fleksibilnost.

Mogućnost FastText-a da rukuje riječima izvan riječnika , njegova brzina i učinkovitost s minimalnim računalnim resursima čine ga popularnim izborom za zadatke klasifikacije teksta, posebno kada se radi s jezicima koji imaju koristi od informacija o podriječima. Distribuiran je kao unaprijed obučeni vektorski modeli riječi za 157 jezika, obučeni na Common Crawl i Wikipediji pomoću fastText-a. Ti modeli su obučeni koristeći CBOW s pozicijskim težinama, u dimenziji 300, s karakter n-gramima dužine 5, prozorom veličine 5 i 10 negativa.

Za treniranje modela rabila se inačica fastext modela koja je obučena za hrvatski jezik.

Rezultati koje vidimo nakon 100 epoha treniranja AI modela odnose se na performanse modela na treniranju i validacijskom skupu podataka. Evo objašnjenja svakog od tih mjera:

Loss (Gubitak): 0.0815 –

Ova vrijednost predstavlja prosječni gubitak modela na skupu za treniranje. Gubitak je mjera koliko su predikcije modela daleko od stvarnih oznaka. Manja vrijednost gubitka ukazuje na bolje performanse modela. U ovom slučaju, gubitak od 0.0815 sugerira da model prilično dobro predviđa točne oznake na treniranom skupu.

Binary Accuracy: 0.9705

– Ova mjera točnosti pokazuje postotak slučajeva u kojima je model točno klasificirao ishod kao pozitivan ili negativan na treniranom skupu podataka. Vrijednost od 97.05% ukazuje na vrlo visoku razinu točnosti, što znači da je model uspješan u identificiranju i klasificiranju binarnih oznaka.

Val Loss (Validacijski gubitak): 0.0971

– Ovo je prosječni gubitak modela na validacijskom skupu, koji se koristi za testiranje modela na novim, neviđenim podacima. Validacijski gubitak koji je nešto veći od gubitka na treniranju (0.0971 naspram 0.0815) može ukazivati na to da model nešto slabije performira na neviđenim podacima, što je često znak blage prenaučenosti (overfitting).

Val Binary Accuracy: 0.9660 –

Slično kao točnost na treniranju, ovo pokazuje postotak slučajeva u kojima je model točno klasificirao ishode na validacijskom skupu. Točnost od 96.60% također je vrlo visoka i blizu je točnosti na treniranju, što ukazuje na to da je model generalno dobro generaliziran, iako postoji mala razlika između točnosti na treniranju i validaciji.

Ukratko, model pokazuje vrlo dobre performanse na treniranju i validaciji s visokom točnošću i relativno niskim gubitkom. Razlika između treniranja i validacijskih performansi nije značajno velika, što je dobar znak da model nije značajno prenaučen, ali uvijek postoji prostor za daljnje podešavanje kako bi se minimizirala razlika između treniranja i validacijskih performansi.

Model ima  10 000 vijesti po  kategoriji, od kojih se 90% rabi za trening a 10% za testiranje.

Rezultati testiranja su:

KategorijaPrecisionRecallF1-ScoreBroj  uzoraka
Pristranost0.510.290.37830
Mamac0.940.710.811370
Zavjera0.880.620.72910
Lažna vijest0.950.700.801030
Mržnja0.870.730.801230
Pseudoznanost0.820.640.72440
Politika0.670.500.571130
Pouzdano1.000.920.961070
Glasina0.960.790.86890
Satira0.780.710.75910
Nepoznato1.000.760.861070
Nepouzdano1.000.810.89730
Micro avg0.880.690.7711610
Macro avg0.870.680.7611610
Weighted avg0.870.690.7711610
Samples avg0.690.690.6911610

Rezultati validacije ovog AI modela za klasifikaciju pokazuju različite metrike preko različitih kategorija ili klasa, što može pružiti uvide u snage i slabosti modela. Hajde da raspravimo ključne metrike i ukupne performanse:

Pregled preciznosti, odziva i F1-rezultata:
Preciznost odražava točnost pozitivnih predikcija za svaku klasu. Visoka preciznost znači da većina stavki označenih kao pripadajuće klasi zaista pripada toj klasi.
Odziv mjeri sposobnost modela da detektira sve stvarne pozitive klase. Visok rezultat odziva pokazuje da je model dobar u detektiranju pozitivnih slučajeva.
F1-rezultat je harmonijska sredina preciznosti i odziva, pružajući jedinstveni rezultat koji balansira i odziv i preciznost.

Analiza po Kategorijama:
Kategorije s visokom preciznošću, ali nižim odzivom: “Pouzdano” (Reliable), “Nepoznato” (Unknown) i “Nepouzdano” (Unreliable) sve pokazuju visoku preciznost (1.00), što ukazuje da je model vrlo točan kada predviđa ove kategorije. Međutim, njihovi rezultati odziva su niži, što sugerira da model propušta značajan broj stvarnih slučajeva.

Uravnotežene kategorije : “Mamac” (Bait) i “Lažna vijest” (Fake News) pokazuju dobar balans između preciznosti i odziva, što znači da su ove kategorije točno predviđene i sveobuhvatno detektirane.

Problematične kategorije : “Pristranost” (Bias) ima izrazito nisku preciznost (0.51) i odziv (0.29), što ukazuje na to da model ima problema i u točnom predviđanju i u potpunom detektiranju ove kategorije.

Opća zapažanja:

Ukupne performanse:

“Macro prosjek” preciznosti (0.87), odziva (0.68) i F1-rezultata (0.76) sugerira da iako je model općenito precizan, manje je efikasan u odzivu. To bi moglo značiti da je model oprezan pri dodjeljivanju oznaka, dajući prednost sigurnosti nad pokrivenošću.

Metrike ponderiranog prosjeka:

Uzimajući u obzir ponderirani prosjek koji uzima u obzir podršku klase, ukupni rezultati su nešto bolji od macro prosjeka, pokazujući da model bolje performira na klasama s više uzoraka.

Mikro prosjek naspram prosjeka uzoraka:

“Mikro prosjek” i “prosjek uzoraka” su jednaki za sve metrike (0.69 za preciznost, odziv i F1), što ukazuje na konzistentne prosječne performanse preko svih pojedinačnih predikcija kada se agregacija obavlja globalno preko svih klasa.

ROC_AUC

Rezultat ROC-AUC (površina ispod krivulje operativnih karakteristika prijemnika) od 0.965742 za ovaj AI model je izuzetno visok, što ukazuje na odličnu sposobnost modela da razlikuje između klasa. ROC-AUC skor je statistička mjera koja se koristi za procjenu performansi klasifikacijskih modela na svim pragovima klasifikacije. Skor blizu 1.0 sugerira da model ima visoku sposobnost preciznog klasificiranja pozitivnih i negativnih primjera bez miješanja. Visoki ROC-AUC skor znači da postoji jasna distinkcija između distribucija predviđenih vjerojatnosti za pozitivne i negativne slučajeve, što model čini pouzdanim u predviđanju i smanjuje šansu za lažno pozitivne i lažno negativne rezultate.

U praksi, rezultat od 0.965742 implicira da model može efikasno i sa velikom točnošću identificirati relevantne klase u datasetu, što ga čini iznimno korisnim za primjene gdje su preciznost i pouzdanost kritične. Ovako visok ROC-AUC također može ukazivati na to da su podaci dobro pripremljeni i da je model dobro podešen tijekom procesa treniranja. Međutim, važno je provjeriti kako se model ponaša na novim, neviđenim podacima, kako bi se osigurala njegova generalizabilnost i smanjili rizici od preprilagodbe (overfitting). Također je korisno usporediti ovaj rezultat s drugim modelima istog zadatka, kako bi se stekao bolji uvid u relativnu efikasnost i moguća područja za poboljšanje.