Sunteți pe pagina 1din 51

UNIVERSITATEA POLITEHNICA BUCUREȘTI

FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE


DEPARTAMENTUL CALCULATOARE

PROIECT DE DIPLOMĂ
Identificarea și analiza de știri false

Ana Ivan

Coordonator științific:
Prof. dr. ing. Mihai Dascălu

BUCUREŞTI

2021
CUPRINS

SINOPSIS .......................................................................................................................................... 6
ABSTRACT ........................................................................................................................................ 6
INTRODUCERE.......................................................................................................................... 7
1.1 MOTIVAȚIE ....................................................................................................................... 7
1.2 OBIECTIVE ......................................................................................................................... 9
1.3 STRUCTURA TEZEI............................................................................................................. 9
METODE EXISTENTE PENTRU DETECȚIA DE ȘTIRI FALSE ....................................................... 10
2.1 Identificarea știrilor false ............................................................................................... 10
2.2 Rețele neurale ................................................................................................................ 12
2.2.1 Funcții de activare ................................................................................................... 13
2.3 Arhitecturi de tip Transformer ....................................................................................... 17
2.3.1 Arhitectura .............................................................................................................. 17
2.3.2 Mecanismul de atenție ........................................................................................... 18
2.3.3 Comparație cu alte modele..................................................................................... 20
METODA PROPUSĂ ................................................................................................................ 22
3.1 Seturile de date .............................................................................................................. 22
3.1.1 FNC-1 ....................................................................................................................... 22
3.1.2 COVID-19 Fake News Dataset ................................................................................. 24
3.1.3 Fakenews Classification Dataset ............................................................................. 24
3.2 Arhitectura Neurală........................................................................................................ 25
3.2.1 Statul de tip Transformer ........................................................................................ 26
3.2.2 Stratul de tip Dropout ............................................................................................. 31
3.2.3 Stratul Dens pentru predicția finală........................................................................ 32
3.2.4 Hiperparametrii specifici modelului ....................................................................... 32
3.3 Procesarea datelor ......................................................................................................... 33
3.3.1 BertTokenizer .......................................................................................................... 34
3.3.2 LongformerTokenizer.............................................................................................. 35

2
EXPERIMENTE ȘI REZULTATE ................................................................................................. 37
4.1 Stance detection ............................................................................................................ 37
4.2 Clasificarea știrilor .......................................................................................................... 41
4.3 Transfer learning ............................................................................................................ 44
CONCLUZII ȘI DIRECȚII ULTERIOARE ...................................................................................... 47
REFERINȚE.............................................................................................................................. 49

3
LISTA DE FIGURI

Figura 2.1 - Schema de bază a unui perceptron ........................................................................... 12


Figura 2.2 - Graficul funcției ReLU ................................................................................................ 14
Figura 2.3 - Graficul funcției LeakyReLU ....................................................................................... 15
Figura 2.4 – Graficul funcției sigmoid ........................................................................................... 16
Figura 2.5 – Graficul funcției tangenta hiperbolică ..................................................................... 16
Figura 2.6 - arhitectura modelului Transformer .......................................................................... 18
Figura 2.7 - Scaled Dot-Product Attention .................................................................................... 19
Figura 2.8 - Multi-Head Attention ................................................................................................ 20
Figura 3.1 - Dimensiunile testelor din corpusul FNC-1 ................................................................. 23
Figura 3.2 - Arhitectura rețelei de detecție a știrilor false folosind BERT ................................... 25
Figura 3.3 - Arhitectura BERT ........................................................................................................ 28
Figura 3.4 - reprezentarea intrării modelului BERT ...................................................................... 29
Figura 3.5 -Mecanismele de atenție din modelul Longformer ..................................................... 31
Figura 4.1 - Evoluția acurateței și a pierderii pentru primul experiment ..................................... 38
Figura 4.2 - Evolutia acurateței și a pierderii ................................................................................ 38
Figura 4.3 - Acuratețea și pierderea pe setul de testare .............................................................. 39
Figura 4.4 - Rezultatele obținute în experimentul III .................................................................... 40
Figura 4.5 - Rezultatele modelului Longformer pe setul de date FNC-1 ...................................... 40
Figura 4.6 - Modelul BERT antrenat cu optimizatorul SGD.......................................................... 42
Figura 4.7 - Performanțele modelului BERT cu optimizatorul Adam ........................................... 42
Figura 4.8 - Acuratețea și pierdere pe parcursul antrenării ......................................................... 43
Figura 4.9 - Modelul BERT cu optimizatorul SGD,......................................................................... 45

4
LISTA DE TABELURI

Tabelul 2.1 - Analiza complexității pentru diferite tipuri de straturi, după lungimile maxime ale
căii, complexitatea per strat și numărul minim de operații secvențiale. ..................................... 21
Tabelul 3.1 - Distribuția claselor în setul de date ........................................................................ 23
Tabelul 4.1 - Comparația modelelor prezentate ......................................................................... 44
Tabelul 4.2- Rezultatele experimentului de transfer learning pe cele două modele .................. 45

5
SINOPSIS
Importanța rețelelor de socializare a crescut exponențial în ultima perioadă, și, odată cu ea, a
crescut și răspândirea de știri false, o problemă cu nu mai poate fi ignorată. Scopul acestei teze
constă în realizarea unui instrument pentru diferențierea știrile false de cele reale, utilizareând
tehnicilor de învățare automată și prelucrare a limbajului natural. În vederea rezolvării acestei
probleme, s-a proiectat o rețea neuronală, folosindu-se modele bazate pe arhitecura
Transformer, state-of-the-art în problemele de NLP. Dintre aceste s-a ales modelul clasic BERT și
modelul Longformer, deoarece poate procesa intrări de dimensiuni mari.
S-au realizat experimente pe trei seturi de date diferite. Experimentele includ: Stance detection,
cu antrenarea și testarea ambelor modele, rezultate mai bune obținându-se pentru Longformer;
clasificarea știrilor în două clase, adevărate și false, pe un corpus de știri despre COVID-19, cu
compararea celor două modele, compararea optimizatoarelor Adam și SGD, dar și compararea
cu modelele state-of-the-art pe acest set de date; la final, un experiment de învătare prin
transfer. Acestă lucrare demonstrează, prin experimentele realizate, abilitatea acestor
mecanisme de învățare automată de a rezolva acestă sarcină.

ABSTRACT

The influence of social networks has grown exponentially lately, and with it the spread of fake
news, a problem that can no longer be ignored. The goal of this thesis is to create a tool to
differentiate between fake and real news, using machine learning and natural language
processing techniques. In order to solve this problem, a neural network was designed, using
models based on the Transformer architecture, which is state-of-the-art in solving NLP problems.
The chose models were the classic BERT model and the Longformer model, because it can process
large inputs.
Experiments were performed on three different data sets. Experiments include: Stance
detection, training and testing both models, with better results for Longformer; classifying the
news into two classes, true and false, on a corpus of news about COVID-19, comparing the two
models, the Adam and SGD optimizers, and also comparing with the state-of-the-art models on
this data set; at the end, a transfer learning experiment was executed. This paper demonstrates,
through experiments, the ability of these machine learning mechanisms to solve this task.

6
INTRODUCERE

MOTIVAȚIE

Știrile false sunt informații înșelătoare prezentate ca știri. De obicei, acestea sunt scrise pentru a
afecta reputația unei persoane sau entități, precum și din interese economice, politice (Allcott &
Gentzkow, 2017) sau financiare. Cu toate acestea, acest concept de “știri false” nu este fix definit,
și, aplicat pe domeniu mai larg, include orice tip de informație falsă, inclusiv cele neintenționate
sau inconștiente. Știrile false dispun adesea de titluri senzaționale sau chiar nerelevante pentru
conținutul articolului în scopul creșterii numărului de cititori și răspândirii în mediul online.

Creșterea apariției știrilor false în ultima perioada a evidențiat nu doar pericolele efectelor știrilor
false, ci și provocările prezentate atunci când se încearca separea știrile false de cele reale. Știrile
false, deși pot fi considerate relativ un termen nou, nu este neapărat un fenomen nou (O'brian,
2018). Acestea există tehnic cel puțin de la apariția și popularizarea ziarele din secolul al XIX-lea.
Cu toate acestea, progresele tehnologice și răspândirea știrile prin diferite tipuri de mass-media
au sporit răspândirea știrilor false în ziua de azi. Ca atare, efectele știrilor false au crescut
exponențial în trecutul recent și trebuie luate măsuri pentru a împiedica ca acest lucru să
continue în viitor.

De-a lungul timpului, s-a observat ca oamenii nu au o capacitate foarte mare de a discerne între
știrile false și cele reale. Un ghid menit sa ajute cititorii să deosebească știrile false a fost publicat
de International Federation of Library Associations (IFLA)1. Recomandările includ următoarele
principii: verificarea sursei articolului, pentru a înțelege atât misiunea cât și scopul articolului;
citirea dincolo de titlu, cu scopul înțelegerii întregii povești; verificarea autorilor, pentru testarea
credibilitatii acestora; evaluează sursele auxiliare, pentru a ne asigura că acestea sprijină
mesajele articolului; și, în cele din urma, adresarea către un expert.

În continuare vor fi menționate cele mai frecvente trei motivații pentru scrierea de știri false
(O'brian, 2018). Prima motivație pentru scrierea de știri false este să influențeze opinia publică,

1
https://www.ifla.org/

7
specifică ziarele de partid unilaterale și datând de la începutul apariției acestora. Cel de-al doilea
este utilizarea titlurilor false ca clickbait pentru a strânge bani, apărut mai recente pentru că
necesită progresele din tehnologie. Cea de-a treia motivație este scrisul satiric. Deși este la fel de
răspândit, este considerat mai puțin periculoas. Această lucrare nu se va concentra pe satiră,
care se dorește a fi plină de umor și nu înșelătoare pentru cititori. Satira poate fi deja clasificată,
prin tehnici de învățare automată (T. Ahmad, 2014). Așadar, scopul acestei lucrări presupune
depășirea acestei realizări și folosirea învățării automată pentru a clasifica știrile reale și cele
false, cel puțin la fel de bine ca oamenii.

O alta problema ridicată de abundenta știrilor false nu este doar faptul ca îi face pe oameni să
creadă lucruri false - un nou studiu sugerează că îi face și mai puțin susceptibili să accepte
informații (David A. Graham2). C. Domonoske (Domonoske, 2016) oferă dovezi cum că oamenii
sunt nu prea buni la detectarea știrilor false, probabil la fel de bine ca și cum s-ar decide aleatoriu.
Ca atare, întrebarea rămâne dacă procesele automate pot face o treabă mai bună sau nu. Există
două metode prin care mașinile ar putea încerca să rezolve problema știrilor false mai bine decât
oamenii. Primul este că mașinile sunt mai bune la detectare și la ținerea evidenței statisticilor. În
plus, mașinile pot fi mai eficiente în supravegherea bazelor de cunoștințe pentru a găsi toate
articolele și răspunsurile relevante pe baza surselor. Deși aceste metode s-ar putea dovedi utile
în detectarea știrilor false, aceasta lucrare se concentrează pe felul în care o mașină poate rezolva
problema știrilor false folosind învățarea automată care extrage caracteristici ale limbajului și
conținutului numai din sursa în cauză, fără a utiliza nici un “fact checker” sau o bază de
cunoștințe.

Ca urmare, în continuare, pentru detectarea știrilor false, cu o probabilitate cat mai mare, s-a
creat un model de rețea neuronală, care se bazează pe tehnici de NLP și învătare automată. În
prezent, majoritatea modalitaților automate de detectare a știrilor false sunt bazate pe crearea
unei “liste negre” a autorilor sau a surselor care sunt clasificate ca a fi producătoare de știri false
(O'brian, 2018). Daca totusi o știre falsa ar fi publica de o sursa considerata de incredere, atunci
aceasta abordare nu ar functiona. De acest motiv, în acestă teză, ne vom baza doar pe corpul
articolului și pe titlul acestuia pentru a decide dacă este fals sau nu.

2
https://www.theatlantic.com/author/david-a-graham/

8
OBIECTIVE

Având în vedere importanța și necesitatea detectării știrilor false în contextul actual, obiectivul
acestei lucrări presupune identificarea și analiza de știri false. Pentru a realiza acest obiectiv, au
fost tratate următoarele obiective specifice;
A. Obținerea unui corpus de text, în limba engleză, cât mai variat, care sa poate fi utilizat
pentru antrenare; acest corpus trebuie parsat pentru utilizare.
B. Proiectarea unei rețele neurale pentru identificarea știrilor false;
C. Antrenarea rețelei pe corpusul dat, în scopul obținerii unor rezultate satisfăcătoare;
D. Testarea rețelei și analiza rezultatelor obținute.

STRUCTURA TEZEI

În capitolul 2 sunt prezentate metolele existente în rezolvarea problemelor de procesare a


limbajului natural și, în particular, în detecția de știri false. De asemenea, sunt prezentate
informații teoretice despre metodele abordate în aceasta lucrare.

În capitolul 3 este introdusă metoda propusă pentru rezolvarea sarcinii prezentate. Sunt
detaliate, pe rând, cele trei seturi de date, urmând ca apoi să fie descrisă arhitectura în detaliu a
rețelei neuronale. În finalul capitolului este explicat procesul de procesarea a datelor pentru a
putea fi foloste în rețeaua proiectată.

În capitolul 4 sunt descrise experimentele realizate în cadrul acestei teze. Sunt realizate trei
mari experimente, folosind seturile de date descrise, urmând ca apoi rezultatele să fie analizate
pentru tragerea unor concluzii.

În capitolul 5 sunt prezentate concluziile finale ale tezei, și, de asemenea, direcții ulterioare în
abordarea acestei probleme.

9
METODE EXISTENTE PENTRU DETECȚIA DE ȘTIRI FALSE

Identificarea știrilor false


Detectarea știrilor false reprezintă o problemă de procesare a limbajului natural. În ultima vreme,
s-a identificat o creșterea rapidă a platformele de socializare, care, prin îmbunătățirea accesului
la informații, a dus la creșterea rapidă a răspândirii știrilor false. Având în vedere aceste
modificări, s-a ridicat problema detectării automate a știrilor false pentru a reduce timpul și
efortul uman dedicat rezolvării acestei probleme (Patel, 2019). Din acest motiv, s-a încercat
devzolvarea și perpetua îmbunătățire a acestei sarcini. În continuare, se va face o analiză a state-
of-the-art în domeniul problemelor generale de NLP, urmând apoi să se pună accentul pe detecția
de știri false.

Provocare majoră în NLP constă în identifica dependențele din secvențe de date. Mecanismele
NLP au evoluat de-a lungul ultimele două decenii. Tehnicile state-of-the-art din NLP (Agrawal,
2020) sunt:
1. RNN (Recurrent Neural Networks) este o variantă a rețelelor neuronale feedforward, fully-
connected având în plus un mecanism de memorie. RNN-urile, fiind recurente,
îndeplinesc aceeași funcție pentru fiecare dată de intrare, iar ieșirea pentru o intrare
depinde de datele procesate în pasul anterior.
2. LSTM (Long Short-Term Memory) reprezintă o versiune modificată a RNN-urilor care
poate ține minte dependențe depărtate (long-term dependencies). Aceste sunt potrivite
pentru clasificări, procesări și predicții. De asemenea, încearcă să rezolve problema
dispariției gradientului, dar există limitări la cantitatea de informație care poate fi
memorată, deci și lungimea secvenței va avea limite. De asemenea, sunt greu de antrenat
din cauza cerințelor computaționale mari.
3. Modelul Transformer, prin mecanismul de atenție introdus, a dus la îmbunătățiri mari în
principal în domeniul NLP, după cum va fi discutat în capitolele următoare.
4. Modelul BERT, construit pe baza arhitecturii Transformer-ului, a întrecut multe recorduri
în sarcini NLP, pe corpus-uri diferite, incluzând Question Answering Dataset (SQuAD), un
set de date de 100,000 de întrebări din articolele Wikipedia. Odată cu succesul modelului
BERT, a apărut multe alte modele îmbunătățite, cum ar fi ALBERT, RoBERTA, TinyBERT,

10
DistilBERT și SpanBERT. Cu modificările aduse algoritmului de bază, acestea au obținut
rezultate mai bune și s-au specializat pe anumite cazuri de utilizare.
5. Transformer-XL a fost construit de Google Brain și Carnegie Mellon University în 2019
pentru a rezolva neajunsurile modelui BERT. Acest model permite învățarea
dependențelor, fără o dimensiune fixă de cuvinte.

În continuare, vom analiza situația stării detecției știrilor false. W Antoun, F Baly, R Achour, A
Hussein și H Hajj (Antoun, Baly, Achour, Hussein, & Hazem, 2020) descriu metodele propuse
pentru a crește acuratețea detectării știrilor false în trei aspecte, incluse și în competiția QICC:
detectarea de știri false, identificare domeniului de știri și detectarea de bot Twitter. Dintre
acestea trei, în cadrul aceste lucrări, sunt relevante rezultatele obținute pentru prima.

După cum am precizat, obiectivul principal este dezvoltarea unei abordări care poate identificați
cu exactitate dacă un articol de știri este fals sau legitim. În continuare, autorii (Antoun, Baly,
Achour, Hussein, & Hazem, 2020) descriu două modele, cel câștigător al concursului și o abordare
mai recentă care a depășit performanțele obținute de modelul câștigător anterior.

Modelul câștigător pornește prin separarea titlului de corpul fiecărui articol. Apoi, sunt extrase
diferite caracteristici de similitudine și lexicon. Fiecare articol este înainte pre-procesat, pentru a
elimina caracterele diferite de cele alfanumerice, url-urile și spațiile libere redundante. Prin
caracteristici de similitudine (similarity features) sunt incluse n-gramele, char-gramele și tokenii
cuvintelor comune între titlu și corpul articolului. În plus, este inclusă și distribuția frecvenței
pentru tipurile de cuvinte din fiecare articol pe baza lexicului. De asemenea, au fost testate mai
multe clasificatoare cu feature-urile precizate, și anume: support vector machine (SVM), naıve
bayes (NB), random forest (RF) and XGboost.

Pentru cea de-a doua abordare, de deep learning, pentru ca modelul să poată detecta diferențele
de stil dintre articole, acesta trebuie să aibă o înțelegere profundă a limbii și semanticii acesteia.
Așadar, pentru clasificator au fost folosite mai multe modele state-of-the-art bazate pe modelul
Transformer, și anume XLNET, RoBERTa și BERT. Pe baza acestora, s-au făcut mai multe
experimente. Pentru acest model, datele nu este necesar să fie pre-precesate, pentru fiecare
dintre acestea folosindu-se doar tokenizer-ul propriu. Aceste modele se bazează pe modele pre-
antrenate, cu un strat de clasificare deasupra care va fi reglat pentru sarcina de detecție a știrilor
false.

11
Rețele neurale

Rețelele neuronale artificiale sunt sisteme de calcul inspirate de rețelele neuronale biologice care
constituie creierul uman. O astfel de rețea poate fi văzute ca este o serie de algoritmi care
încearcă să recunoască relațiile fundamentale dintr-un set de date printr-un proces care imită
modul în care funcționează creierul.

Rețelele neuronale sunt compuse din unități de bază, noduri, oarecum asemănătoare neuronilor.
Aceste unități sunt legate între ele prin conexiuni, corespunzătoare sinapselor din creierul uman,
a căror intensitate, sau pondere, este modificabilă ca urmare a unui proces de învățare. Fiecare
dintre aceste unități însumează independent (în paralel) informațiile furnizate de sinapsele sale,
deci provenite de la nodurile de intrare. La sumă se mai adaugă, în unele cazuri, și un termen in
plus, numit bias. Pentru a-și obține ieșirea, unitatea va trece aceasta sumă print-o functie de
activare care poate fi atat liniara, cât și neliniară.

În figura 2.1 este modelată schema de bază a unei astfel de unități, numită și perceptron. Fiecărei
intare îi este asociată o pondere, care va fi invatata de-a lungul procesului de antrenare. Valorile
de intrare, sub forma de vector, sunt însumate cu aceste ponderi și apoi cu vectorul de bias, astfel
modelându-se o funcție liniara. Funcția de activare este aplicată sumei și aduce neliniaritate
modelului. Aceasta poate avea mai multe forme ce vor fi prezentate în continuare.

Ecuația matematica corespunzătoare calcului ieșirii neuronului este ecuația (2.1), unde W este
vectorul ponderilor neuronului, B este vectorul de bias și X este intrarea (Livni, Shalev-Shwartz,
& Shamir, 2014).
𝑧 = 𝜎(𝑊 𝑇 ⋅ 𝑋 + 𝐵) (2.1)

Figura 2.1 - Schema de bază a unui perceptron3

3
https://www.programmersought.com/article/31885064114/

12
Înainte de a putea utiliza rețeaua pentru predicție, aceasta trebuie antrenată. La intrarea
acesteia, sunt furnizate mai multe exemplele de antrenare, în general, sub forma de vectori cu
valori reale. Antrenarea rețelei poate fi supervizată sau nesupervizată. În cazul antrenării
supervizate, este dată și ieșirea rețelei și se va folosi pentru calcularea corecta a ponderilor.
Ieșirea va diferi în funcție de natura problemei, de exemplu, pentru problemele de clasificare,
aceasta va reprezenta un vector de dimensiune egală cu numărul de clase, iar în cazul
problemelor de predicție (cum ar fi predicția prețului unei case în funcție de diverse criterii),
acesta poate fi un scalar. În cazul antrenării nesupravegheate, rețeaua va extrage singură
caracteristicile importante a datelor de ieșire, în urma unui comparații între neuronii săi.

Antrenarea unei rețele este consta în doua etape (Ognjanvski, 2019); propagarea înainte (din
engleza, forward propagation) și propagarea în spate (din engleza, backpropagation). Propagarea
înainte reprezintă trecerea unui exemplu de antrenare prin rețea și obținerea unei valori la ieșire.
Propagarea în spate are rolul actualizării valorilor ponderilor rețelei. Aceasta actualizare se face
pe baza erorii obținute la ieșirea rețelei și calculate cu ajutorul unei funcții specifice tipului de
problema aleasă. Astfel, o rețea, în procesul de antrenare, va trece prin mai multe iterații de
propagare inainte si in spate, pentru fiecare exemplu de antrenare. Trecerea tuturor exemplelor
prin aceast proces poarta numele de epocă. În vederea obținerii unor rezultate cât mai bune,
rețeaua se va antrena pe mai multe epoci. Trebuie păstrată în vedere și ca rețeaua să nu fie supra
antrenată, pentru a preveni apariția fenomenului numit overfitting. Acesta consta în obținerea
unor rezultate bune, și deci a unei acuratețe mare, pe setul de antrenare, dar, în cazul prezicerii,
pe exemple noi, a unor rezultate nesatisfăcătoare.

2.2.1 Funcții de activare

Funcția de activare a unui neuron definește care va fi ieșirea acestuia pentru o anumită intrare
sau set de intrări. Aceasta poate fi o funcție liniara sau neliniară, de cele mai multe ori folosindu-
se funcții neliniare pentru a introduce neliniaritate în model. Alegerea funcției de activare în
straturile ascunse ale rețelei va controla cât de bine învață modelul setul de date de antrenament.
Alegerea funcției de activare în stratul de ieșire va defini tipul de predicții pe care le poate face
modelul. Așadar, alegerea funcției de activare este esențială în construcția unei rețele neurale
(Brownlee, 2021).

O funcție de activare dintr-o rețea neuronală definește modul în care suma ponderată a intrării
este transformată într-o ieșire dintr-un nod al rețelei. Alegerea funcției de activare are un impact
mare asupra capacității și performanței rețelei neuronale, iar diferite funcții de activare pot fi
utilizate în diferite părți ale modelului.

13
O rețea poate avea trei tipuri de straturi: straturi de intrare care preiau intrarea brută din setul
de antrenare, straturi ascunse care preluează intrarea dintr-un alt strat și trec ieșirea în alt strat
și straturi de ieșire care fac o predicție în funcție de natura problemei.

Toate straturile ascunse folosesc de obicei aceeași funcție de activare. În funcție de tipul de
predicție care trebuie realizat, stratul de ieșire va utiliza o funcție de activare, care diferă de cea
folosită pentru straturile ascunse. Există multe tipuri diferite de funcții de activare utilizate în
rețelele neurale, deși doar un număr mic de funcții sunt utilizate în practică (Brownlee, 2021).

2.2.1.1 ReLU

Funcția de activare liniară rectificată sau ReLU (din engleza, Rectified Linear Unit) este probabil
cea mai comună funcție utilizată pentru straturile ascunse.

Este folosită deseori deoarece este atât simplu de implementat (și benefică din punct de vedere
computațional), cât și eficientă la depășirea limitărilor altor funcții de activare populare, precum
Sigmoid și Tanh. Mai precis, este mai puțin susceptibilă la problema dispariției gradientului (din
engleza, vanishing gradient) care împiedică antrenarea modelelor adânci (Brownlee, 2019).

Funcția de activare este calculată conform ecuației (2.2).

𝑓(𝑥) = 𝑚𝑎𝑥(0, 𝑥) (2.2)

Figura 2.2 - Graficul funcției ReLU

14
2.2.1.2 LeakyReLU

Funcția LeakyReLU reprezintă încercarea de a rezolva problema funcției ReLU. Aceasta modifică
funcția pentru a permite valori negative mici atunci când intrarea este mai mică de zero, astfel
crescând intervalul de valori.

𝑥, 𝑥 > 0
𝑓(𝑥) = { (2.3)
𝑎 ⋅ 𝑥, 𝑥 ≤ 0

Funcția este calculata conform ecuatiei (2.3). În general, valoarea lui ‘a’ este 0.01.

Figura 2.3 - Graficul funcției LeakyReLU

2.2.1.3 Sigmoid

Funcția de activare sigmoid este funcția folosită și în algoritmul de regresie liniară. Funcția ia orice
valoare reală ca valori de intrare și ieșire în intervalul [0, 1]. Cu cât este mai mare valoarea de
intrare, cu atât valoarea de ieșire va fi mai aproape de 1, în timp ce cu cât intrarea este mai mică,
cu atât ieșirea va fi la mai aproape de 0. Motivul pentru care aceasta funcție nu este folosită
mereu este posibilitatea apariției problemei dispariției gradientului.

1
𝑓(𝑥) = (1+𝑒 −𝑥) (2.4)

Funcția sigmoid este calculata conform ecuatiei (3.4), unde 𝑒 este constanta matematică.

15
Figura 2.4 – Graficul funcției sigmoid

2.2.1.4 Tangenta hiperbolica

Tangenta hiperbolica este foarte similară cu funcția sigmoid (Kalman & Kwasny, 1992), cu
diferența că aceasta este centrată în 0 și ia valori în intervalul [-1, 1].

Funcția tanh este mult mai utilizată decât funcția sigmoid, deoarece aceasta oferă performanțe
mai bune de antrenament pentru rețelele neuronale adânci. Funcția tanh a fost folosită mai ales
în rețelele neuronale recurente pentru procesarea limbajului natural și sarcini de recunoaștere a
vorbirii. Cu toate acestea, și funcția tanh are o limitare - la fel ca funcția sigmoid, nu poate rezolva
problema dispariției gradientului.

𝑒 𝑥 −𝑒 −𝑥
𝑓(𝑥) = (2.5)
𝑒 x +𝑒 −𝑥

Funcția tanh este calculată conform ecuație (2.5).

Figura 2.5 – Graficul funcției tangenta hiperbolică

16
Arhitecturi de tip Transformer

A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser and I. Polosukhin


(Vaswani, et al., 2017) introduc o arhitectură nouă de rețea neuronala numită Transformer. După
cum indică titlul, aceasta folosește un nou mecanism de atenție (din engleza, attention-
mechanism).

Transformatoarele se aseamănă rețelelor neuronale recurente (RNN) din punct de vedere al


datelor de intrare, amble procesând date secvențiale, rezolvarea problemelor de procesare a
limbajului natural, precum traducerea și rezumarea textului. Asemenea LSTM-urilor (Long short-
term memory), modelul Transformer are o arhitectură pentru transformarea unei secvențe în
alta cu ajutorul a două părți (Encoder și Decoder), dar diferă de modelele existente sequence-to-
sequence, deoarece nu implică rețele recurente. În plus, spre deosebire de RNN-uri,
transformatoarele nu necesită ca datele secvențiale să fie procesate în ordine, reducând timpul
de antrenament.

Pâna acum, rețelele recurente au reprezentat una dintre cele mai bune modalități de a identifica
dependențele din secvențe. Cu toate acestea, în publicația menționată s-a dovedit că o
arhitectură doar cu mecanisme de atenție, fără rețele neuronale recurente, poate îmbunătăți
rezultatele în diverse sarcini. Transformer-ul a devenit rapid modelul preferabil pentru rezolvarea
problemelor din domeniul procesării limbajului natural pentru că acesta facilitează mai multă
paralelizare în timpul antrenării și conduce la posibilitatea antrenării pe seturi de date mai mari.
Acest lucru a dus la îmbunătățiri mari în principal în domeniul NLP, prin dezvoltarea sistemelor
pre-antrenate, cum ar fi BERT: un model Transformer bidirecțional adânc antrenat în prealabil
pentru înțelegerea limbajului.

2.3.1 Arhitectura

Arhitectura unui model Transformer este descrisă în figura 2.6. Encoder-ul este poziționat în
partea stânga, iar Decoder-ul în dreapta. Ambele componente sunt compuse din module care pot
fi înlănțuite unele peste altele de mai multe ori, cum este descris în figură de 𝑁𝑥 (acest număr
este, în general, 𝑁𝑥 = 6). Modulele constau, în principal, din straturi Multi-Head Attention și Feed
Forward. Se folosește apoi o conexiune reziduală în jurul fiecăruia dintre cele două componente,
urmate de normalizare. În Decoder-ul, pe lângă cele 2 menționate anterior, se mai adaugă o
componentă care efectuează mecanismul de atenție asupra ieșirii codificării.

17
Figura 2.6 - arhitectura modelului Transformer (Vaswani, et al., 2017)

Intrările și ieșirile sunt mai întâi transformate/încorporate într-un spațiu n-dimensional (deoarece
nu se pot folosi șiruri direct) prin componentele de Input/Output Embedding. O parte importantă
a modelului este codificarea pozițională a diferitelor cuvinte. Deoarece nu se folosesc rețele
recurente care să-și amintească modul în care secvențele sunt introduse într-un model, trebuie
oferită cumva fiecărei părți din secvența (fiecărui cuvânt) o poziție relativă, din moment ce o
secvență depinde de ordinea elementelor sale. Aceste poziții sunt adăugate la reprezentarea
încorporată (vector n-dimensional) a fiecărui cuvânt.

2.3.2 Mecanismul de atenție

O funcție de atenție (Maxime, 2019) poate fi descrisă ca maparea unei cereri și a unui set de
perechi cheie-valoare la o ieșire, unde cererea, cheile, valorile și ieșirea sunt vectori. Rezultatul
este calculat ca o sumă ponderată a valorilor, unde greutatea atribuită fiecărei valori este
calculată de o funcție de compatibilitate a cererii cu cheia corespunzătoare.

18
Figura 2.7 - Scaled Dot-Product Attention (Vaswani, et al., 2017)

Cele mai frecvent folosite funcții de atenție sunt cea aditivă (additive attention) și produs scalar
(dot-product/multiplicative). În timp ce cele două sunt similare în ceea ce privește complexitatea
teoretică, ce-a de-a doua este mult mai rapid și mai eficient din punct de vedere spațial, deoarece
poate fi implementată folosind cod extrem de optimizat (matrix multiplication). În continuare
este descrisă cea de-a doua.

Intrarea constă în cereri și chei de dimensiune 𝑑𝑘 și valori de dimensiune 𝑑𝑣 . Se calculează


produsul scalar dintre cerere și toate cheile, urmând să fie divizat cu √𝑑𝑘 , la final aplicându-se
funcția softmax. În practica, funcția de atenție se calculează simultan pe un set de cereri, notat
cu Q. Cheile (reprezentarea vectorială a tuturor cuvintelor din secvența) și valorile sunt notate
cu K și V. Așadar, mecanismul de atenție al modelului poate fi descris conform funcției (2.6).
Deoarece pentru valori foarte mari ale dimensiunii 𝑑𝑘 produsul scalar va crește foarte mult și
funcția softmax ar urma sa ajungă în regiuni cu valori foarte mici ale gradientului, se scaleaza
produsele cu √𝑑𝑘 .

𝑄⋅𝐾 𝑇
𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄, 𝐾, 𝑉) = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥( )⋅𝑉 (2.6)
√𝑑𝑘

Se poate defini o pondere 𝑎 definită conform ecuației (2.7) (Maxime, 2019). Aceasta înseamnă
că ponderile acestea sunt definite de modul în care fiecare cuvânt al secvenței (reprezentat de
Q) este influențat de toate celelalte cuvinte din secvență (reprezentat de K). În plus, funcția
SoftMax se aplică ponderilor pentru a avea o distribuție între 0 și 1. Aceste greutăți sunt apoi
aplicate tuturor cuvintelor din secvența, care sunt introduse în V.

19
𝑄⋅𝐾 𝑇
𝑎 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥( ) (2.7)
√𝑑𝑘

În figura 2.8 este descris modul în care acest mecanism de atenție al modelului Transformer poate
fi paralelizat. Mecanismul de atenție se repetă de mai multe ori cu proiecții liniare ale vectorilor
Q, K și V, producând un vector rezultat cu 𝑑𝑣 dimensiuni . Acest lucru permite modelului să învețe
din diferite reprezentări ale vectorilor Q, K și V. Aceste reprezentări liniare se fac înmulțind Q, K
și V cu matricile de pondere W care se învață în timpul antrenamentului. În final, aceste valori
sunt concatenate și încă o dată proiectate, rezultând valorile finale, după cum se observa în
figură.

Figura 2.8 - Multi-Head Attention (Vaswani, et al., 2017)

2.3.3 Comparație cu alte modele

Pentru a face o comparație între modelele cu mecanisme de atenție și celelalte deja existente
(rețele convoluționale și recurente), vom lua în calcul trei deziderate (Vaswani, și alții, 2017):
● complexitatea computațională totală pe strat.
● cantitatea de calcul care poate fi paralizată, măsurată prin numărul minim de operații
secvențiale necesare.
● lungimea căii dintre dependențele depărtate din rețea (învățarea acestor dependențe
reprezintă o provocare cheie în multe sarcini)

20
Tabelul 2.1 - Analiza complexității pentru diferite tipuri de straturi, după lungimile maxime ale
căii, complexitatea per strat și numărul minim de operații secvențiale (Vaswani, et al., 2017)

În tabelul 3.1, este făcută o comparație între cele trei modele menționate. “n” este lungimea
secvenței, “d” este dimensiunea vectorilor, “k” este dimensiunea nucleul în rețelele
convoluționale.

După cum se observă, un strat cu mecanismul de self-attention va rezolva dependențele cu un


număr constant de operații secvențiale executate, în timp ce un strat recurent necesită
operațiuni secvențiale 𝑂(𝑛). În ceea ce privește complexitate de calcul, straturile cu self-
attention sunt mai rapide decât straturile recurente atunci când lungimea secvenței este mai
mică decât dimensiune reprezentării (este cel mai adesea cazul în reprezentările de propoziții
folosite de modele de ultimă generație în traduceri automate).

În ceea ce privește straturile convoluționale, deși numărul de operații secvențele rămâne


constant, lungimea maximă a căii se încadrează într-o complexitate de 𝑂(𝑙𝑜𝑔𝑘 (𝑛)) (acest lucru
se datoreaza faptului că nu este suficient un singur strat). În plus, straturile convoluționale sunt
în general mai scumpe decât straturi recurente, cu un factor de 𝑘.

21
METODA PROPUSĂ

Seturile de date

Pentru experimentele realizate s-au folosit mai multe seturi de date, descrie în continuare.

3.1.1 FNC-1

Pentru antrenare și testare, este nevoie de un set de date suficient de mare. Pentru aceasta, am
folosit setul de date oferit de Fake News Challenge4.

Scopul Fake News Challenge este de a explora modul în care tehnologiile de inteligență artificială,
în special învățarea automată și prelucrarea limbajului natural, ar putea fi folosite pentru a
combate problema știrilor false. Deoarece evaluarea veridicității unei știri este o sarcină
complexă, procesul poate fi împărțit în etape. Un prim pas util către identificarea știrilor false
este Stance Detection. Acest proces implică estimarea perspectivei relative a două fragmente de
text în raport cu un subiect.

Versiunea Stance Detection selectată pentru FNC-1 a fost construită pe baza activității lui Ferreira
și Vlachos (Ferreira & Vlachos, 2016). Pentru FNC-1 a fost aleasă sarcina de a estima starea unui
text dintr-un articol de știri în raport cu un titlu. În mod specific, textul poate fi “de acord” (agree),
să “nu fie de acord” (disagree), să fie discutabil (discuss) sau să nu aibă legătură (unrelatable) cu
titlul.

Așadar, acestea patru sunt clasele în care vor fi clasificate testele din corpus. În tabelul 3.1 este
afișată distribuția testelor în clasele menționate.

4
http://www.fakenewschallenge.org/

22
rows unrelated discuss agree Disagree

49972 73,131% 17,828% 7,36012% 1,68094%

Tabelul 3.1 - Distribuția claselor în setul de date

Din moment ce arhitectura aleasă pentru rețeaua proiectă impune o limită a dimensiunii testelor
din corpus, am analizat dimensiunea acestora. Conform figurii 3.1, majoritatea exemplelor de
antrenare au lungimea mică și doar câteva tind spre valori mari. Din acest motiv, am decis
eliminarea celor mai lungi 5% din exemplele de antrenare. În consecința, cand se va construi
rețeaua, dimensiunea maximă admisă va fi mai mică, ți, deci, antrenarea va fi mai rapidă.

Figura 3.1 - Dimensiunile testelor din corpusul FNC-1

Setul de date este furnizat sub forma a două fișiere CSV. Acestea au fost citite si procesate in
python, cu ajutorul bibliotecii pandas.read_csv într-o structura numita dataframe. Deci, titlurile
articolelor și textul acestora vor fi concatenate, între ele adăugându-se un separator conform
modelului ales (Longformer/BERT). În continuarea, structura rezultată a fost preprocesată tot
specific modelului pentru a putea fi apoi trimisă ca intrare a rețelei.

23
3.1.2 COVID-19 Fake News Dataset

Cel de-al doilea set de date folosit pentru experimentare este COVID-19 Fake News Dataset
(Patwa, et al., 2021) furnizat de organizatorii pe site-ul competiției5, în limba engleză.

Setul de date se compune din date colectate de pe diverse site-uri de social media și știri, iar
veridicitatea fiecărei postări a fost verificată manual. Știrile „adevărate” au fost colectate din
surse verificate care oferă informații utile despre COVID-19, în timp ce cele „false” au fost
colectate din tweet-uri, postări și articole care fac speculații despre COVID-19, verificate ca fiind
false.

Setul de date original conține 10,700 știri din sursele menționate anterior, cu o dimensiune a
vocabularului (adică cuvinte unice) de 37,505, dintre care 5,141 de cuvinte sunt comune atât
știrilor false, cât și celor reale (Das, Basak, & Dutta, 2021). Cele două clase de clasificare sunt,
bineînțeles “adevărat” și “fals”, cu un echilibru de 52,34% știri considerate reale și 47,66%
considerate false.

Deoarece majoritatea articolelor sunt preluate din rețelele sociale, cum ar fi tweet-urile, acestea
sunt, în mare parte, scrise într-un limbaj colocvial. De asemenea, conțin diverse alte informații
precum nume de utilizator, adrese URL, emoticoane, ș.a.m.d. Aceste informații trebuie filtrate,
constituind o etapă de preprocesare de bază. Pentru a filtra astfel de informații zgomotoase am
folosit biblioteca de preprocesor de tweet6 din Python.

3.1.3 Fakenews Classification Dataset

Setul de date este disponibil la adresa7, construit de Jair Ribeiro. Acesta constituie din două fișiere
csv, unul conținând toate știrile adevărate și celălalt toate știrile false. Așadar există doar două
clase de clasificare.

Setul de date conține în total 44,898 teste clasificate manual. Știrile adevărate sunt preluate în
proporții de 53% din politicsNews și 47% din worldnews.

5
https://competitions.codalab.org/competitions/26655
6
pypi.org/project/tweet-preprocessor/
7
https://www.kaggle.com/liberoliber/onion-notonion-datasets

24
Deoarece datele nu sunt împărțite, au trebuit divizate în 20% date de testare, 15% date de
validare și restul date de antrenare.

Arhitectura Neurală

Problemă identificării de știri false este o problemă de clasificare. Pentru a o rezolva, tehnica
implementată abordează problema din perspectiva NLP. Metoda aleasă a fost construirea unei
rețele neuronale de clasificare pe baza modelelor Transformer.

Rețeaua neuronală construită este alcătuită din patru straturi. În figura 3.2 este afișată
arhitectura propusă pentru rețea. Pentru stratul al doilea al rețelei se folosește un model
transformer. În cadrul acestei lucrări, s-a experimentat cu două modele diferite de transformer,
și anume modelul clasic BERT și modelul Longformer. În figură, este prezentată arhitectura
pentru modelul BERT, în cazul Longformer aceasta fiind identică, cu excepția stratului doi.

În continuare vom discuta detalii despre funcționarea și importanța fiecărui strat din rețeaua
propusă, urmând apoi să analizăm alegerea optimizatorului și a funcției de loss.

Primul strat al modelul este stratul de intrare. Acesta este creat cu funcția Input()8 din biblioteca
Keras din Python. Funcția este folosită pentru a instanția un tensor Keras. Un tensor este o
generalizare a vectorilor sau matricilor, de dimensiuni potențial mai mari.

Figura 3.2 - Arhitectura rețelei de detecție a știrilor false folosind BERT

8
https://www.tensorflow.org/api_docs/python/tf/keras/Input

25
Dimensiunile stratului de intrare depind de stratul următor, mai exact de modelul de transformer
folosit. Pentru BERT, lungimea maximă admisă este de 512, deci acest strat va prelua aceasta
valoare pentru intrare. În cazul Longformer, dimensiunea maximă admisă este mult mai mare,
deci dimensiunea celui mai mare exemplu de antrenare va dicta dimensiunea stratului.

Înainte ca datele de intrare sa poate fi folosite, acestea trebuie să treacă printr-un proces de
tokenizare. Procesul acesta este realizat cu BertTokenizer sau LongformerTokenizer, în funcție de
modelul de transformer folosit. În urma acestuia, se vor întoarce trei vectori, dintre care doar
unul este necesar ca intrare, și anume “input_ids”, după cum poate observa și în figura 3.2. Mai
multe detalii despre procesul de tokenizare și cele două sunt metode utilizate sunt oferite în
capitolul următor.

3.2.1 Statul de tip Transformer

Statul doi al rețelei proiectate este modelul transformer. Pentru experimentare, s-au folosit două
variante pentru acest strat. În continuare, vom descrie modeul de funcționarea al celor două.

3.2.1.1 BERT

Modelul BERT a fost propus de către Jacob Devlin, Ming-Wei Chang, Kenton Lee și Kristina
Toutanova (Devlin J. , Chang, Lee, & Toutanova, 2019). Acesta reprezintă o tehnică de învățare
automată bazată pe transformatoare, dezvoltat și pre-antrenat de Google (Devlin & Chang,
2018). Este un transformator bidirecțional, antrenat pe un corpus mare care cuprinde Toronto
Book Corpus și Wikipedia. BERT este simplu din punct de vedere conceptual și puternic empiric
(Devlin J. , Chang, Lee, & Toutanova, 2019). Acesta a obținut noi rezultate de ultimă generație
pentru unsprezece sarcini de procesare a limbajului natural, incluzând creșterea acurateței cu
aproximativ 5% pentru MultiNLI (The Multi-Genre Natural Language Inference), precum și
îmbunătățiți la SQuAD v1.1 și SQuAD v2.0.

Inovația tehnică majoră adusă de BERT (Horev, 2018) este aplicarea antrenării bidirecționale a
modelului Transformer, un model bazat pe mecanism de atenție, la modelarea limbajului natural.
Această abordare diferă de modalitățile precedente care se bazau pe parcurgerea secvențelor de
text într-o anumită ordine, fie de la stânga la dreapta, fie într-o combinație de la stânga la dreapta
și de la dreapta la stânga. În lucrare, s-a arătat că un model care este antrenat bidirecțional va
avea o înțelegere mai profundă a contextului și fluxului lingvistic decât celelalte modele.

26
Așadar, BERT se folosește de modelul Transformer, un mecanism de atenție care învață relațiile
contextuale dintre cuvintele dintr-un text. În forma sa de bază, un model Transformer include
două mecanisme separate - un codificator care procesează textul introdus și un decodificator
care produce o predicție pentru problema curentă, fie de clasificare, fie de predicție text.

Pentru BERT este necesar doar mecanismul de codificare din moment ce BERT este un LM
(language model - analizează texte pentru a oferi o bază pentru predicțiile cuvintelor lor) (Horev,
2018). Spre deosebire de modelele direcționale, codificatorul din model citește întreaga secvență
de cuvinte simultan. Din acest motiv, acesta este considerat bidirecțional (deși mai corect ar fi
numit nedirecțional). Această caracteristică permite modelului să învețe contextul unui cuvânt
pe baza întregului său context.

Figura 3.3 (Khattak, et al., 2019) prezintă modul de funcționare a modelului, prin folosirea
codificatorului Transformer. BERT folosește două strategii de învățare: MLM (masked language
model) și NSP (Next Sentence Prediction) (Horev, 2018).

În continuare va fi descris procesul de MLM. 15% din cuvintele din secvențele de intrare, Înainte
de a fi introduse în BERT, sunt înlocuite cu un simbol [MASK]. Modelul încearcă apoi să prezică
valoarea inițială a cuvintelor înlocuite, pe baza contextului oferit de celelalte 85% cuvinte din
cuvinte, care nu au fost modificate. Pentru predicția acestor cuvinte de ieșire, sunt necesare
următoarele etape. Prima consistă în adăugarea unui strat de clasificare la ieșirea codificatorului.
După, vectorii de ieșire trebuie înmulțiți, pe rând, cu matricea de embedding, astfel încât
dimensiunea sa să fie egală cu dimensiunea vocabularului. Ultimul pas care trebuie efectuat este
calcularea probabilității fiecărui cuvânt. Aceasta se realizeaza prin folosirea funcției de softmax.

Funcția de loss BERT ia în considerare doar predicția valorilor înlocuite cu tokenul [MASK] și
ignoră predicția cuvintelor nemodificate. În consecință, modelul converge mai lent decât
modelele direcționale, dar aceasta dezavantaj este compensat prin faptul că modelul va avea o
înțelegere mai profundă a contextului.

27
Figura 3.3 - Arhitectura BERT
(Taking masked input and outputting the masked words (Khattak, et al., 2019))

Cel de-al doilea proces folosit de BERT pentru antrenare este NSP. Modul în care aceasta
funcționează este că modelul primește ca intrare perechi de propoziții și, pe baza acestora, învață
să prezică dacă cea de-a doua propoziție din pereche este propoziția următoare din documentul
original. Pe parcursul antrenării, 50% din intrări vor constitui o pereche în care cea de-a doua
propoziție este într-adevăr propoziția ulterioară, în timp ce în celelalte 50% din cazuri, propoziția
secundară va fi o propoziție aleatorie din corpusul de date, deconectată totuși de prima
propoziție (Devlin J. , Chang, Lee, & Toutanova, 2019).

Pentru ca modelul să poată distinge între cele două propoziții din pereche, intrarea trebuie
procesata diferit înainte de a o introduce modelului. Reprezentarea intrării poate fi observată în
figura 3.4, preluată din articolul care a introdus modelul BERT. Pași procesării sunt:

● În primul rând, simbolul special [CLS] (de la clasificare) este inserat la începutul intrării,
deci la începutul primei propoziții și un simbol [SEP] este inserat la sfârșitul fiecărei
propoziții.

28
● Pentru fiecare token din fiecare propoziție se asociază o valoare care desemnează dacă
face parte din prima sau a doua propoziție. Procesul este asemănător cu modul de
funcționare al tokenizer-ului (descris în capitolul următor), dar în care vocabularul are
dimensiunea de 2, reprezentând numărul de propoziții din setul de intrare. Acest proces
poarta numele de Sentence Embedding.
● Ultimul pas reprezintă asocierea fiecărui token cu poziția sa în secvența. Procesul este
numit Positional Embedding.

Figura 3.4 - reprezentarea intrării modelului BERT (Devlin J. , Chang, Lee, & Toutanova, 2019)

În continuare, rămâne de prezis dacă dacă cea de-a doua propoziție este conectată la prima sau
dacă este aleatoare. Pentru aceasta, se vor efectua pași următori. Prima data se va trece secvența
de intrare prin modelul Transformer. Urmează apoi transformarea ieșirii tokenului [CLS] într-un
vector de dimensiune (2×1). Pentru acest pas se utilizează un strat de clasificare, ce conține
matrici deja învățate de ponderi și bias. La final, se calculează probabilitatea ca propoziția sa fie
cea următoare cu funcția softmax. (Horev, 2018)

Așadar, pentru a antrena model BERT, se folosesc cele doua tehnici discutate, Masked LM și Next
Sentence Prediction. Acestea sunt antrenate împreună, încercând să se minimizeze funcția de
pierdere combinată pentru cele două strategii.

De la acest model de bază descris, BERT poate fi utilizat pentru multe probleme, cu relativ puține
modificări, cum ar fi adăugarea unui strat în plus pentru clasificare.

În lucrarea aceasta, modelul BERT folosit a fost importat din biblioteca “transformers”9 în Python.
Drept configurare, s-a folosit modelul pre-antrenat “bert-base-uncased”. Acest model conține
aproximativ 110 milioane de parametrii.

9
https://huggingface.co/transformers/model_doc/bert.html

29
3.2.1.2 Longformer

Deoarece modelele bazate pe Transformer, cum ar fi BERT și RoBERTa, sunt state-of-the-art în


NLP, dar totuși acestea au un dezavantaj major, și anume ca nu pot procesa secvențe de intrare
foarte mari (BERT are o limită de 512 tokeni de intrare), s-au dezvoltat alte abordări pentru a
trece peste aceasta problemă. Metoda propusă de Allen AI pentru a reduce parametrii și, deci,
complexitatea, este Longformer (Beltagy, Peters, & Cohan, 2020).

Modul de funcționare a modelului Longformer se bazează pe trei procese: Sliding Window,


Dilated Sliding Window, Global Attention. În continuare, se vor detalia modul de funcționare a
acestor și cum îmbunătățesc modelul clasic de Transformer. (Jagtap, 2020)

În prima metoda, Sliding Window (Beltagy, Peters, & Cohan, 2020), abordarea este următoarea:
se va desemna o dimensiune de fereastră arbitrară 𝑤, și fiecare token din secvență va lua în
considerare doar w tokene din vecinătate, și anume 𝑤 / 2 în stânga și 𝑤 / 2 în dreapta.
Complexitatea computațională a acestei metode este 𝑂(𝑤 ∗ 𝑛), unde 𝑛 este dimensiunea
secvenței de intrare. Într-un astfel de model cu 𝑙straturi, ar însemna că fiecare token atinge
(𝑙 𝑥 𝑤)tokeni adiacenți, deci practic toată secvența. Acest spațiu, numit câmp receptiv (receptive
field) (Beltagy, Peters, & Cohan, 2020), va avea dimensiunea de (𝑙 𝑥 𝑤). De asemenea, în articol
este sugerat să se folosească diferite valori pentru 𝑤 pentru fiecare strat pentru obține un
echilibru între eficiență și capacitatea de reprezentare a modelului.

Mecanismul de atenție Dilated Sliding Window Attention (Beltagy, Peters, & Cohan, 2020)
mărește câmpul receptiv fără a mări cererea computațională. În plus față de mecanismul
precedent, se va lua o dimensiune de dilatație 𝑑, care reprezintă numărul de spații libere dintre
fiecare token din fereastră. Câmpul receptiv va fi de (𝑙 𝑥 𝑑 𝑥 𝑤), deci, chiar și folosindu-se valori
mici pentru 𝑑, se pot obține câmpuri receptive de mii de tokeni. În lucrare se sugerează utilizarea
valorilor diferite ale 𝑑 pentru scoruri mai bune. De exemplu, straturile inferioare nu vor avea
dilatație (pentru a surprinde contextul local imediat); în schimb, în straturile superioare, o
cantitate mică de dilatare este adăugată.

Cel de-al treilea și ultimul mecanism, Global Attention (Beltagy, Peters, & Cohan, 2020), are rolul
de a garanta suportul pentru dependențe pe termen lung pentru sarcini NLP. Diferența față de
arhitectura clasică a modelului Transformer este ca nu o face pentru toți tokeni din secvență.
Modul funcționare și tokeni aleși pentru a fi relaționați cu toți restul depind de problemă. Pentru
răspunsul la întrebări, se poate alege ca toți tokenii din întrebare să aibă modelul de globa
attention, și toți tokeni din secvența să relaționeze la cei din întrebare (în plus față de cei din

30
vecinătatea lor). Pentru probleme de clasificare, mecanismul este aplicat doar token-ului [CLS].
Așadar, deoarece numărul de tokeni la care se aplica este mic, complexitatea va rămâne 𝑂(𝑛).

Figura 3.5 -Mecanismele de atenție din modelul Longformer (Beltagy, Peters, & Cohan, 2020)

Așadar, modelul Longformer folosește o formă modificată de mecanism de atenție pentru a


optimiza performanța arhitecturii clasice a modelului Transformer, oferind astfel eficiență de
calcul și memorie.

În experimentele realizatea, modelul Longformer folosit a fost importat din biblioteca


“transformers”10 în Python. Drept configurare, s-a folosit modelul pre-antrenat
“allenai/longformer-base-4096”, creat și antrenat de creatorii modelului. Acesta suportă
secvențe de lungime de până la 4096.

3.2.2 Stratul de tip Dropout

Cel de-al treilea strat din rețeaua proiectată este un strat de Dropout.

Dropout este una dintre cele mai populare tehnici utilizate pentru a preveni apariția fenomenului
numit overfitting. Acest fenomen apare atunci când un model învață prea bine setul de
antrenare, ajungând să considere fiecare detaliu din aceste. Asta duce ca modelul să prelueze și

10
https://huggingface.co/transformers/model_doc/longformer.html

31
să invețe zgomotul și fluctuațiile aleatorii din setul de date de antrenare ca concepte noi. Astfel
se impactează în mode negativ performanța modelul pe un set nou de date.
Dropout funcționează prin omiterea aleatorie a neuronilor din straturile ascunse, echivalent cu
setarea lor la valoarea zero, la fiecare actualizare din faza de antrenare. Prin setarea ieșirii
neuronilor la 0, funcția de cost devine mai sensibilă la neuronii vecini, modificând modul în care
ponderile vor fi actualizate în timpul procesului de propagare înapoi. În general, stratul de
dropout trebuie plasat înaintea funcție de activare, cu excepția funcției ReLU.

Stratul de dropout a fost folosit prin importarea keras.layers.Dropout11 din biblioteca Keras din
Python. Ca rata de dropout s-a alea valoarea 0.1, ceea ce înseamna ca fiecare neuron din
straturile ascunse are o probabilitate de 0.1 sa fie setat la 0.

3.2.3 Stratul Dens pentru predicția finală

Ultimul strat al rețelei este stratul Dense. Acesta este un strat de rețea neuronală profund
conectat, însemnând că fiecare neuron din stratul dens primește intrare de la toți neuronii
stratului său anterior.

Dense implementează operația (3.1), unde activation este funcția de activare (transmisă ca
argument la crearea stratului), kernel este o matrice de ponderi, iar bias este un vector de bias
ambele create de strat. Practic, acesta efectuează o multiplicare matrice-vector, valorile matricei
fiind paramentrii antrenați și actualizați. De asemenea, stratul Dense este utilizat și pentru a
schimba dimensiunilor vectorului de ieșire.

𝑜𝑢𝑡𝑝𝑢𝑡 = 𝑎𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛 (𝑑𝑜𝑡 (𝑖𝑛𝑝𝑢𝑡, 𝑘𝑒𝑟𝑛𝑒𝑙) + 𝑏𝑖𝑎𝑠) (3.1)

În model, s-a utilizat keras.layers.Dense12 din biblioteca Tenserflow Keras din Python.
Argumentele folosite sunt următoarele (argumentele nemenționate nu au fost modificate):
● units: acest argument reprezintă dimensiunea vectorului de ieșire, deci s-a folosit
numărul de clase în care vor fi clasificate datele de intrare;
● activation: acest argument nu a fost modificat, deci s-a folosit valoarea implicită, adică
funcția de activare liniară.

3.2.4 Hiperparametrii specifici modelului


Pentru compilarea modelului, trebuie precizate funcția de loss și optimizatorul folosit.

11
https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dropout
12
https://www.tensorflow.org/api_docs/python/tf/keras/layers/Dense

32
Funcția de loss aleasă este tf.keras.losses.SparseCategoricalCrossentropy13 importată din
biblioteca TenserFlow din Python. Aceasta calculează Cross-Entropy Loss între valorile prezise și
valorile corecte. Generic, funcția este o măsură a diferenței dintre două distribuții de
probabilitate pentru o anumită variabilă aleatoare.

Pentru optimizator, s-au folosit atât SGD (Stochastic Gradient Descent), cât și ADAM (Adaptive
Moment Estimation) ambele importate din tf.keras.optimizers14 în Python.

SGD este o variantă a algoritmului Gradient Descent, dar, în loc să efectueze calcule pentru
întregul set de date (ceea ce poate fi redundant și ineficient), SGD calculează numai pe un subset
mic din exemplele de date. SGD ajunge la aceleași performanțe ca și algoritmul clasic de Gradient
Descent atunci când rata de învățare este mică.

Adam combină avantajele a două variante extinse ale SGD (RMSProp și AdaGrad) și calculează
rate individuale de învățare pentru diferiți parametri. Adam nu va converge mereu la soluția
optimă, ci în anumite condiții poate obține rezultate nesatisfăcătoare. Acest lucru este arătat de
anumite lucrări de specialitate recente, după cum prezintă și N. S. Keskar și R. Socher (Keskar &
Socher, 2017), care demonstrează că tehnicile de optimizare adaptivă prezente în Adam pot
produce rezultate mai slabe în comparație cu SGD. Totusi, deoarece Adam este simplu de
implementat, eficient din punct de vedere computațional, are cereri de memorie reduse și este
adecvat pentru probleme cu mult zgomot, acesta este printre cele mai răspândite optimizatoare
folosite. În plus, hyper-parametrii acestuia au o interpretare relativ intuitivă și nu necesită multă
reglare.

Procesarea datelor

Pentru a putea folosi datele descrise anterior ca exemple de antrenare a rețelei neuronale de
predicție a știrilor false, aceste trebuie “pregătite”. Pentru a pregăti datele de intrare, se va folosi
un tokenizer.

Deoarece am creat doua rețele diferite, una folosind un strat BERT și cealaltă Longformer, datele
de intrare au fost și ele procesate cu doua tokenizer-e diferite, BertTokenizer și, respectiv,
LongformerTokenizer.

13
https://www.tensorflow.org/api_docs/python/tf/keras/losses/SparseCategoricalCrossentropy
14
https://www.tensorflow.org/api_docs/python/tf/keras/optimizers

33
3.3.1 BertTokenizer
Pentru a utiliza un model BERT pre-antrenat, trebuie să convertim datele de intrare într-un
format adecvat, astfel încât fiecare propoziție să poată fi trimisă modelului pentru a obține
încorporarea corespunzătoare.

Pentru probleme de clasificare, așa cum este detecția de știri false, este necesar un singur vector
care să reprezinte întreaga propoziție de intrare. În BERT, starea ascunsă a primului token trebuie
să reprezinte întreaga propoziție. Pentru a realiza acest lucru, un token suplimentar trebuie
adăugat manual la propoziția de intrare. În implementarea inițială, simbolul [CLS] este ales în
acest scop. În plus, la finalul intrării trebuie adăugat un token special, [SEP] (Shulga, 2019).

Modelul BERT primește o lungime fixă pentru vectorii de intrare15. De obicei, lungimea maximă
a intrării depinde de datele cu care lucrăm. Pentru vectori de intrare care sunt mai mici ca
dimensiune decât această lungime maximă, va trebui să adăugăm un simbol special la propoziții
pentru a compune lungimea. În implementarea originală, simbolul [PAD] este utilizat pentru a
reprezenta padding-ul adăugat frazei.

Când BERT a fost inițial antrenat, fiecărui token i-a fost atribuit un ID unic. Prin urmare, atunci
când dorim să utilizăm un model BERT pre-antrenat, va trebui mai întâi să convertim fiecare token
din propoziția inițială de intrare în ID-urile sale unice corespunzătoare. Este important de
menționat că, la folosirea unui astfel de model, acesta fiind pre-antrenat pe un anumit corpus,
vocabularul este fixat. Deci, este posibil ca unii tokeni sa nu fie găsiți în vocabularul modelului
pre-antrenat, problemă denumită out-of-vocabulary (OOV). Soluția acestei probleme este
înlocuirea acestor tokeni necunoscuți cu token-ul special [UNK]. Pentru a nu avea foarte multe
astfel de tokeni în vectorul final și a nu pierde informația asociată acestora, BERT va încerca întâi
să împartă cuvantul în mai multe sub-cuvinte, astfel încât acestea să aparțină vocabularului. Acest
algoritm poarta numele de WordPiece.

Spre exemplu, cuvântul “moreover” nu va fi găsit în vocabular, deci va fi împărțit în [“more”,


“##over”]. Cele două diezuri indică această împărțire în sub-cuvinte.

Pe scurt, pentru problemele de clasificare, fiecare propoziție de intrare va parcurge următorii


pașii înainte de a fi introdusă în BERT:
1. Tokenizarea: descompunerea propoziției în tokeni
2. Adăugarea simbolului [CLS] la începutul propoziției
3. Adăugarea simbolului [SEP] la sfârșitul frazei

15
https://albertauyeung.github.io/2020/06/19/bert-tokenization.html

34
4. Completarea propoziției cu token-ul [PAD] astfel încât lungimea totală să fie egală cu
lungimea maximă
5. Conversia fiecărui token în ID-ul corespunzător modelului
6. Crearea attention mask care diferențiază în mod explicit tokeni [PAD] de ceilalți

După procesul de tokenizare, ieșirea va fi dată de un dicționar conținând următorii vectori:


● Input IDs:
○ Reprezintă adesea singurul parametri necesari ca intrare modelului;
○ Sunt indicii simbolici, reprezentări numerice ale tokenilor care construiesc
secvențele, așa cum a fost descris mai sus.
● Attention mask:
○ un tensor binar care indică poziția indicilor [PAD], astfel încât modelul să le
considere ca informație;
○ Pentru BertTokenizer, 1 indică o valoare care ar trebui să fie luată în considerare,
în timp ce 0 indică o valoare adăugată.
● Token Type IDs:
○ Folosit atunci când se face clasificarea pe perechi de propoziții pentru a diferenția
unde se termină una și începe cealaltă;
○ Reprezentat ca o mască binară care identifică cele două tipuri de secvență din
model;
○ Este folosit în modelul făcut doar pentru setul de date FNC-1, pentru a diferenția
între titlul și corpul articolului.

BertTokenizer a fost importat din biblioteca “transformers” din Python. Drept configurare, s-a
folosit modelul pre-antrenat “bert-base-uncased”.

3.3.2 LongformerTokenizer

La fel ca in cazul BERT, pentru a utiliza modelul Longformer, propozițiile de intrare trebuie trecute
printr-un tokenizer. Tokenizer-ul este inițializat cu modelul “allenai/longformer-base-4096”16.
Modelul “longformer-base-4096” este un model de tip BERT, construit pornind de la modelul
RoBERTa și pre-antrenat pentru probleme MLM (masked-language modeling) pe documente
lungi. Acesta suportă secvențe de lungime de până la 4096.

16
https://huggingface.co/allenai/longformer-base-4096

35
Acest tokenizer funcționează similar cu BertTokenizer. Vocabularul celor două diferă însă, fiind
pre-antrenate pe modele diferite. Pe lânga aceasta, tokeni speciali specifici tokenizer-elor sunt
diferiți, îndeplinind totuși aceleași roluri. Procesul de tokenizare este identic.

Așadar, diferența cea mai importantă dintre cele două tokenizer menționate ar fi lungimea
maximă admisă pentru secvențe, în cazul BERT aceasta fiind 512.

36
EXPERIMENTE ȘI REZULTATE

Stance detection

Deoarece evaluarea și detectarea știrilor false este o sarcină complexă, procesul poate fi împărțit
în etape. O etapă utilă în procesul rezolvării acestei probleme este Stance Detection. Acest proces
constă în verificarea dacă o pereche de texte abordează același subiect.

Așadar, primul experiment realizat în cadrul acestei lucrări este cel de Stance Detection. Setul de
date folosit pentru acest experiment este FNC-1. În cadrul acestuia perechea de texte va fi titlul
și corpul articolului. Experiment a fost realizat folosind două modele diferite, unul cu un strat de
BERT și celălalt cu Longformer, pentru a observ performanțelor atinse de ambele modele și a
realiza o comparație între acestea.

În continuare, vom descrie prima încercarea realizată. Optimizatorul folosit este Adam, cu rata
de învatare de 3e-5. Modelul a fost antrenat pe 10 epoci. După cum se observă în figura 4.1, chiar
și pe parcursul a 10 epoci, acuratețea și pierderea rămân aproape invariate. Acuratețea are o
valoare constantă de 0.7635, valoare care poate fi îmbunătățită. Nici rezultatele pe seturile de
validare și testare nu sunt satisfăcătoare.

Următorul pas făcut a fost schimbarea optimizatorului în SGD. Rata de învățare a rămas setată
tot la 3e-5. După cum se vede în figura 4.2, modelul a fost antrenat pe 18 epoci, acuratețea
crescând de la 0.75 la 0.88. Acuratețea și pierdere pe setul de testare pot fi observate în figura
4.3. După fiecare trei epoci de antrenare, au fost testat modelul pe setul de testare, pentru a
decide când antrenarea trebuie oprită. Acuratețea finală este de 0.886 și pierderea de 0.30.

37
Figura 4.1 - Evoluția acurateței și a pierderii pentru primul experiment

Comparativ cu rezultatele obținute în cazul folosirii optimizatorului Adam, noile valori sunt,
surprinzător, mai bune. Motivul pentru rezultatele sunt astfel obținute ar putea fi faptul ca Adam
are, uneori, performanțe de generalizare mai slabe decât SGD, deși converge mai repede. Mai
multe detalii despre motivul pentru care SGD depășește performanțele sunt prezentate de P.
Zhou, J. Feng, C. Ma, C. Xiong, S. HOI, Weinan (Zhou, et al., 2020). La SGD crește performanța, în
general, mai încet, din acest motiv antrenarea a fost realizată în mai multe epoci.

Figura 4.2 - Evolutia acurateței și a pierderii


în cazul folosirii optimizatorului SGD

38
Pentru primele două experimente realizate, am folosit doar testele pentru care tokenizer-ul
întoarce vectori cu un număr de tokeni mai mic decât 512, din cauza limitării modelului BERT.
Așadar, s-au folosit 25k din 45k teste de antrenare, 6.5k din 10k în setul de validare și 17k din 25k
în setul de testare. După cum a fost menționat în capitolul precedent, toate input-urile trebuie
să aibă aceeași dimensiune, deci la testele mai mici de 512, a fost adaugat padding.

Figura 4.3 - Acuratețea și pierderea pe setul de testare


în cazul folosirii optimizatorului SGD

Pentru experimentul al treilea s-au folosit toate datele din set, trunchiate la valoare maximă
admisibilă de BERT, 512 tokeni. Pentru asta, a fost adaugat un argument în plus tokenizer-ului, și
anume “truncation=True”. Optimizatorul folosit a fost SGD deoarece a obținut valori mai bune la
experimentele anterioare.

Rezultatele obținute sunt sunt afișate în graficul din figura 4.4. Modelul a fost antrenat doar 6
epoci, pentru că, după acestea, va intra în regim de overfitting. Acuratețea finală pe setul de
antrenare este de 0.8942 și pe setul de testare este de 0.8620. Rezultatele sunt mai mici decât
cele obținute în experimentul II, deoarece, intrările fiind trunchiate, se pierde informație
importantă.

Pentru a rezolva problema limitării lungimii datelor de intrare impusă de BERT, s-a realizat un al
patrulea experiment, pentru care s-a folosit modelul Longformer ca strat principal. Totuși, au fost
eliminate cele mai lungi 5% din datele de intrare deoarece aveau dimensiuni substanțial mai mari
decât celelalte. După cum a fost menționat anterior, dimensiunea stratului de intrare trebuie să
fie egala cu dimensiunea celei mai mari intrări și, dacă ar fi folosite acele 5% teste, ar crește foarte
mult timpul de antrenare pe epocă. Pentru setul de date folosit, dimensiunea setului de date este
1436.

39
Figura 4.4 - Rezultatele obținute în experimentul III

Și pentru acest model s-a încat utilizarea ambelor optimizatoare, cu rezultate substanțial mai
bune tot pentru SGD. În continuare,vor fi prezentate doar rezultatele pentru optimizatorul SGD,
în figura 4.5. Modelul a fost antrenat pe 8 epoci și a ajuns la o acuratețe de 0.94 și loss de 0.1542
pe setul de antrenare. Pentru setul de testare, acuratețea este de 0.8914 și pierderea de 0.30,
cele mai bune rezultate obținute până acum.

Figura 4.5 - Rezultatele modelului Longformer pe setul de date FNC-1

40
Conform rezultatelor competiției FNC-117, câștigatorul este un model bazat pe rețele straturi
convoluționale 1D, aplicate pe vectorii de titlu și text al articolului, reprezentanți la nivel de
cuvânt folosind vectori pre-antrenați de Google News. La final se folosește un clasificator MLP
pentru a obține cele 4 clase. Modelul este accesibil pentru analizare18. Acuratețea atinsă de
model este de 0.82. G. Bhatt, A. Sharma, S. Sharma, A. Nagpal, B. Raman, A. M (Bhatt, et al., 2018)
introduc ulterior un alt model folosește setul de date FNC-1 și obține o acuratețe de 83.08%.
Acesta incorporeaza caracteristicile (features) neuronale, statistice și externe la rețelele
neuronale adânci pentru a obține rezultate mai bune.

În concluzie, modelul construi cu modele bazate pe Transformer, BERT și Longformer, care sunt
state-of-the-art în procesarea limbajului natural, au obținut rezultate mai bune pe setul de date
FNC-1 decât cele anterioare.

Clasificarea știrilor

Problema următoare abordată este clasificarea efectivă a știrilor în două clase, false și adevărate.
Pentru aceasta, am folosit modelele BERT si Longformer, pe două seturi de date, făcând astfel și
o comparație între ele.

Având în vedere situația pandemiei din ultimii doi ani, primul set de date folosit este COVID-19
Fake News Dataset descris în capitolul precedent. Pentru că acest set de date are dimensiuni mici
a testelor, nu a fost nevoie ca datele să fie trunchiate. Doar 4 din 10,700 teste depășesc numărul
de tokeni admis de BERT, și acestea sunt eliminate.

Primul experiment realizat pe acest set de date este realizat folosind modelul BERT, în combinație
cu optimizatorul SGD. Pentru acesta, rezultatele sunt prezentate în figura 4.6. Acuratețea pe setul
de testare ajunge la 0.93 după relativ multe epoci. Scorul F1 este de 0.9349 și acuratețea pe clase
este: 96,78% și 90,88% pentru știri adevărate, respectiv false.

17
https://paperswithcode.com/sota/fake-news-detection-on-fnc-1
18
https://github.com/Cisco-Talos/fnc-1/tree/master/deep_learning_model

41
Figura 4.6 - Modelul BERT antrenat cu optimizatorul SGD

Schimbând optimizatorul în Adam, se obțin rezultatele din tabelul 4.7. După cum se observă,
modelul atinge valori foarte mari de acuratețe și foarte mici de loss. Pentru setul de testare,
valoarea acurateței este de 0.9696. De asemenea, a fost calculată și acuratețea per clasă, cu
următoarele valori: 98,83% ( din 1119) pentru știrile adevărate și 94,90% (din 1020) pentru știrile
false. Așadar pentru acest set de date, optimizatorul preferat este Adam.

Figura 4.7 - Performanțele modelului BERT cu optimizatorul Adam

Următorul experiment folosește Longformer ca model, pe același set de date, Fake News Dataset.
Au fost încercate ambele optimizatoare pentru a compara rezultatele. Pentru SGD, rezultatele

42
sunt necorespunzătoare. După antrenarea pe 10 epoci, acuratețea ajunge la 0.8881 pe setul de
antrenare, în schimb pe setul de testare ajunge doar la 0.5365. S-a încercat antrenarea pe încă
10 epoci, dar, deși pe setul de antrenare acuratețea a ajuns la 0.9285, pe cel de testare a scăzut
la 0.3985, în timp ce pierderea este 0.7299. Așadar, se poate observa că modelul nu se comportă
bine și intra foarte repede în regim de overfitting.

Pentru optimizatorul Adam, în schimb, rezultatele sunt bune. Modelul a fost antrenat doar pe 6
epoci, ajungând repede la rezultate dorite. Acuratețea pe setul de testare este 0.966.
Comportarea modelul pe parcursul antrenării este descrisă prin figura 4.8.

Figura 4.8 - Acuratețea și pierdere pe parcursul antrenării


modelului Longformer cu optimizatorul Adam

Prin urmare, deși la experimentele făcute pentru Stance Detection pe FNC-1, optimizatorul
preferat era SGD, pentru aceste set de date, SGD oferă rezultate proaste comparativ cu Adam,
confirmând faptul ca alegerea optimizatorului ține de problema care trebui rezolvată.

Problema aceasta a fost, de asemenea, abordată în mai multe lucrări, pe același set de date. Anna
Glazkova, M. Glazkov, și T. Trifonov (Glazkova, Glazkov, & Trifonov, 2021) compară modul de
funcționare a mai multor modele bazate pe Transformer și preprocesare a datelor de intrare. Cel
mai bun rezultat a fost obținut la folosirea Bertweet19, un model preantrenat pe tweet-uri în
limba engleză, cu arhitectura asemănătoare cu cea a modelului BERT și antrenat după procedura
RoBERTa. De asemenea, intrările au fost pre-precesate, emoticoanele au fost transformate în

19
https://huggingface.co/transformers/model_doc/bertweet.html

43
cuvinte și majusculele au fost schimbate în litere mici. În final, modelul reușește să atingă un
score F1 de 0.9832.

Model Acuratețe F1-score

BERT cu optimizator SGD 93.96 93.49

BERT cu optimizator Adam 96.96 96.75

Longformer cu optimizator Adam 96.68 96.67

TweetBERT, preprocesarea intrării - 98.32

Ansamblul RoBERTa + XLM-RoBERTa + 98.83 98.83


XLNet + DeBERT, post-procesarea ieșirii

Tabelul 4.1 - Comparația modelelor prezentate

S. D. Das, A. Basak și S. Dutta (Das, Basak, & Dutta, 2021) abordează aceasta problemă si descriu
un ansamblu de modele combinate RoBERTa+XLM-RoBERTa +XLNet+DeBERT. Rezultatele
obținute de acest ansamblu este de 0.9831 scor F1. Pentru a îmbunătăți și mai multe aceste
rezultate, s-a adaugat o euristică de post-procesare a ieșirii care consideră utilizatorii precizati în
tweet și URL-urile prezente, ambele aspecte foarte importante ale intrării. Rezultatul final este
un scor F1 de 0.9883, state-of-the-art pentru acest set de date.

Transfer learning

Pentru a realiza un experiment de transfer learning, a fost nevoie de găsirea unui nou set de date,
tot cu două clase, știri adevărate și știri false. Setul de date ales este Fakenews Classification
Dataset descris în capitolul precedent.

Experimentul va fi realizat pe BERT, cu optimizatorul SGD. Pentru acesta, am creat un model


identic cu cel din experimentul precedent, și l-am antrenat pe acest nou set de date. Deoarece
setul de date este mic ca dimensiuni și datele sunt “ușor” de clasificat, antrenarea a avut loc în
mod diferit. Pentru că modelul intra foarte repede în regim de overfitting, stratul de BERT a fost
“înghețat”, adică a fost setat ca ne-antrenabil (trainable=False). Modelul a fost astfel antrenat 10
epoci, practic fiind antrenat și “învățând” doar stratul de clasificare. După aceste 10 epoci, stratul
BERT a fost setat ca antrenabil, și modelul a fost antrenat o epocă. După, BERT a fost iar trecut în

44
stadiul de ne-antrenabil și modelul a fost antrenat final încă 2 epoci. Rezultatele procesului sunt
dispuse în figura 4.9.

Figura 4.9 - Modelul BERT cu optimizatorul SGD,


antrenat pe Fakenews Classification Dataset

Rezultatele finale pentru acest model, pe setul de testare sunt: acuratețea este de 0.95, pierderea
este de 0.175, scorul F1 este de 0.9512 și acuratețea pe clase este de 97,75% și, respectiv, 92,65%.

În tabelul 4.2 sunt prezentate rezultatele experimentului de transfer learning pe cele două
modele prezentate.

Model Acuratețea pe setul de Acuratețea pe setul de


testare a datasetului Covid- testare a Fakenews
19 Classification Dataset

Model BERT cu optimizator Adam 96.96 51.65


antrenat pe Covid-19 Dataset

Model BERT cu optimizator SGD 48.29 94.93


antrenat pe Fakenews
Classification Dataset

Tabelul 4.2- Rezultatele experimentului de transfer learning pe cele două modele

45
Se poate observa ca modelele funcționează foarte bine pe setul de date pe care au fost antrenate,
dar au rezultate foarte slabe pe celălalt set de date. Acest lucru se datorează diferențelor mari
dintre seturile de date, unul conține datele din tweet-uri și celălalt din știri.

46
CONCLUZII ȘI DIRECȚII ULTERIOARE

Apariția World Wide Web-ului și dezvoltarea și adoptarea rapidă a site-urilor de socializare au


deschis calea pentru propagarea nemaivăzută a informațiilor. Aceasta a dus și la evoluția
platformelor de știri online sub mai multe forme. Dar acest proces de dezvoltare are și o
perspectivă negativă, și anume răspândirea de știri false pentru diverse câștiguri și interese. În
ultima vreme, a existat o creștere masivă a răspândirii acestora, în mai multe domenii, cum ar fi
cel politic și financiar.

Deoarece capacitatea umană de a lua o decizie se bazează, în principal, pe tipul de informații pe


care le citim, problema știrilor false este una majoră. Situația curentă de pandemie a confirmat
importanța discernării între știrile reale și cele false, unde, din cauza confundării între aceste,
oameni au fost induși în eroare despre informații esențiale despre virus.

Din fericire, odată cu răspândirea știrilor false, au apărut și mecanisme de detecție a acestora. În
prezent există site-uri care verifică veridicitatea unei știri, dar, de cele mai multe ori acestea se
bazează pe o “lista neagră” de surse. În ultima perioadă, se cercetează pe aceasta problemă
pentru a gasi soluția optimă. În momentul de față, abordarea preferată este folosirea de rețele
neuronale.

După cum a fost prezentat în aceasta teză, în majoritatea problemelor de procesare a limbajului
natural (NLP), state-of-the-art este reprezentat de arhitecturile bazate pe Transformer. Cum
problema detectării știrilor false este o problemă de NLP, în aceasta teză s-au folosit astfel de
modele pentru a construi o rețea neuronală.

Contribuția personală adusă este proiectarea acestei arhitecturi de rețea neuronală pentru
realizarea unor experimente. S-au folosit ca modele BERT și Longformer și s-au realizat
experimente pe trei seturi de date. Primul experimet a fost Stance detection, cu rezultate mai
bune obținute la utilizarea modelului Longformer. Cel de-al doilea experiment descris în lucrare
a fost clasificarea știrilor în două clase, pe un corpus de știri despre COVID-19 preluate de pe
twitter, cu compararea celor două modele bazate pe Transformer, compararea optimizatoarelor
Adam și SGD, dar și compararea cu modelele state-of-the-art pe acest set de date. Ultimul

47
experiment realizat a fost de transfer learning, folosindu-se modelul BERT pe două seturi de date.
În concluzie, prin acestă teză și experimenele realizate, s-a demonstrat abilitatea acestor
mecanisme de învățare automată de a rezolva acestă sarcină.

O problemă cu care s-a confruntat în proiectarea rețelei pentru rezolvarea acestei probleme a
fost dimensiunea maximă admisă de modele, cu modelul BERT acceptând doar 512 tokeni.
Pentru anumite corpus-uri, dimensiunile testelor sunt mult mai mari și, pentru a putea antrena
aceste rețele, fie trebuie eliminate exemplele care depăsesc limita, fie trebuie trunchiate, ambele
“soluții” ducând la pierderea informației. Pentru moment, s-a folosit modelul Longformer pentru
a rezolva acestă situație, dar, în viitor, se poate încerca folosirea modelului BigBird20. Acesta
reduce dependențele pătratice ale mecanismului de atenție de la BERT în dependențe liniare, și
astfel modelul poate accepta intrări de dimensiuni mult mai mari. Din păcate, acesta nu a fost
disponibil în momentul realizării acestei lucrări în Tenserflow, dar, în viitor, acesta ar putea obține
rezultate bune.

De asemenea, mai sunt multe soluții și experimente care nu au fost abordate în aceasta lucrare.
Această problemă a detectării știrilor false fiind una de mare importanță, cercetarea pe subiect
este necesara. Combinarea metodelor de învătare adâncă cu cele de învătare bazată pe
recompense ar putea obține rezultate bune. Mai mult decât atât, poate interveni și problema
Explainable AI; dacă s-ar putea adăuga o explicație pentru care modelul a prezis într-un anumit
fel, aceste metode ar fi mai eficiente si acceptate de oameni.

20
https://huggingface.co/transformers/model_doc/bigbird.html

48
REFERINȚE
Agrawal, A. (2020). The Current State of the Art in Natural Language Processing.
Allcott, H., & Gentzkow, M. (2017). Social Media and Fake News in the 2016. Journal of Economic
Perspectives, 211-236.
Antoun, W., Baly, F., Achour, R., Hussein, A., & Hazem, H. (2020). State of the Art Models for Fake
News Detection. 2020 IEEE International Conference on Informatics, IoT, and Enabling
Technologies, ICIoT 2020, 519-524.
Beltagy, I., Peters, M. E., & Cohan, A. (2020). Longformer: The Long-Document Transformer.
Bhatt, G., Sharma, A., Sharma, S., Nagpal, A., Raman, B., & Mittal, A. (2018). On the Benefit of
Combining Neural, Statistical and External Features for Fake News Identification. The Web
Conference 2018 - Companion of the World Wide Web Conference, WWW 2018(1353-
1357).
Brownlee, J. (2019, January 11). How to Fix the Vanishing Gradients Problem Using the ReLU.
Retrieved June 29, 2021 from https://machinelearningmastery.com/how-to-fix-
vanishing-gradients-using-the-rectified-linear-activation-function/
Brownlee, J. (2021, January 18). How to Choose an Activation Function for Deep Learning.
Retrieved June 29, 2021 from https://machinelearningmastery.com/choose-an-
activation-function-for-deep-learning/
Das, S. D., Basak, A., & Dutta, S. (2021). A Heuristic-Driven Ensemble Framework for COVID-19
Fake News Detection. Communications in Computer and Information Science, 1402 CCIS,
164-176.
Devlin, J., & Chang, M.-W. (2018, November 2). Open Sourcing BERT: State-of-the-Art Pre-training
for Natural Language Processing. Retrieved June 29, 2021 from Google AI Blog:
https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html
Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of deep bidirectional
transformers for language understanding. NAACL HLT 2019 - 2019 Conference of the
North American Chapter of the Association for Computational Linguistics: Human
Language Technologies - Proceedings of the Conference, 1(Mlm), 4171-4186.
Domonoske, C. (2016, Nov). Students have ’dismaying’ inability to tell fake news from real, study
finds.
Ferreira, W., & Vlachos, A. (2016). Emergent: A novel data-set for stance classification. 2016
Conference of the North American Chapter of the Association for Computational
Linguistics: Human Language Technologies, NAACL HLT 2016 - Proceedings of the
Conference(1), 1163-1168.

49
Glazkova, A., Glazkov, M., & Trifonov, T. (2021). g2tmn at Constraint@AAAI2021: Exploiting CT-
BERT and Ensembling Learning for COVID-19 Fake News Detection. Communications in
Computer and Information Science, 1402 CCIS, 116-127.
Horev, R. (2018, 11 10). BERT Explained: State of the art language model for NLP. Retrieved June
29, 2021 from https://towardsdatascience.com/bert-explained-state-of-the-art-
language-model-for-nlp-f8b21a9b6270
Iordache, F.-M. (2019). Restaurarea de diacritice utilizănd tehnici bazate pe rețele neurale.
Jagtap, R. (2020, December 1). Longformer: The Long-Document Transformer. Retrieved June 29,
2021 from https://towardsdatascience.com/longformer-the-long-document-
transformer-cdfeefe81e89
Kalman, B. L., & Kwasny, S. C. (1992). Why tanh: choosing a sigmoidal function. IJCNN
International Joint Conference on Neural Networks.
Keskar, N. S., & Socher, R. (2017). Improving Generalization Performance by Switching from Adam
to SGD. (1).
Khattak, F., Jeblee, S., Pou-Prom, C., Abdalla, M., Meaney, C., & Rudzicz, F. (2019). A survey of
word embeddings for clinical text.
Livni, R., Shalev-Shwartz, S., & Shamir, O. (2014). On the Computational Efficiency of Training.
Advances in neural information processing systems.
Maxime. (2019, 01 4). What is a Transformer? Retrieved June 30, 2021 from
https://medium.com/inside-machine-learning/what-is-a-transformer-d07dd1fbec04
O'brian, N. (2018). Machine Learning for Detection of Fake News.
Ognjanvski, G. (2019, January 14). Everything you need to know about Neural Networks and
Backpropagation. Retrieved June 29, 2021 from
https://towardsdatascience.com/everything-you-need-to-know-about-neural-networks-
and-backpropagation-machine-learning-made-easy-e5285bc2be3a
Patel, K. (2019). Fake News Detection on Natural Language Processing A Survey. International
Journal of Computer Sciences and Engineering, 115-121.
Patwa, P., Sharma, S., Pykl, S., Guptha, V., Kumari, G., Akhtar, M. S., . . . Chakraborty, T. (2021).
Fighting an Infodemic: COVID-19 Fake News Dataset. Communications in Computer and
Information Science, 1402 CCIS, 21-29.
Shulga, D. (2019, June 5). BERT to the rescue! Retrieved June 29, 2021 from
https://towardsdatascience.com/bert-to-the-rescue-17671379687f
T. Ahmad, H. A. (2014). Satire detection from web documents using machine learning methods.
Upadhyay, Y. (2019, March 7). Introduction to FeedForward Neural Networks. Retrieved June 29,
2021 from https://towardsdatascience.com/feed-forward-neural-networks-
c503faa46620
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., . . . Polosukhin, I. (2017).
Attention Is All You Need.

50
Zhou, P., Feng, J., Ma, C., Xiong, C., HOI, S., & E, W. (2020). Towards Theoretically Understanding
Why SGD Generalizes Better Than ADAM in Deep Learning. (1), 19-20.

51

S-ar putea să vă placă și