LDA (Latent Dirichlet Analysis)
Producător/Autor: Blei et al., 2003; Li-Jia & Fei-Fei, 2007;
Latent Dirichlet Analysis este un model utilizat pentru clusterizarea unui corpus. Poate fi implementat un proces generativ de clusterizare nesupervizată a fluxului de știri pentru determinarea automată a similarităților detectabile în corpus. Intuiția principală a acestei tehnici este că putem asocia în mod automat fiecărui cuvânt o probabilitate de a semnala un tip de similaritate între cuvinte manifestată în corpus. Ceea ce se obține este un vector de probabilități pentru fiecare cuvânt, dimensiunea vectorului fiind determinată de numărul de tipuri de similarități considerate. Intrarea este constituită de două variabile:
- Numărul de tipuri de similarități dorite.
- Corpusul de analizat.
Menționăm faptul că pentru o predicție bună de încadrare a știrilor, se poate alege un prag de până la 50 topice iar pentru definirea similarității la nivel de cuvinte – o rețea neuronală recurentă. Această clusterizare paralelă a cuvintelor, independent de topice, este cuplată la intrarea LDA pentru clusterizarea corpusului într-o manieră care reduce fenomenul data sparseness, una dintre problemele cheie în construcția învățării automate (ML) de tip n-gram, chiar și atunci când dispunem de colecții mari de texte.
Indiferent cât de mare este corpusul de antrenare, vor fi n-grame care nu vor apărea în el, însă care ar putea să apară în corpusul de testare.
Un model de limbă de tip n-gram se construiește estimând probabilitatea secvenței de cuvinte W = w1, w2, …, wn pe baza unor corpusuri de text de mari dimensiuni.
Ex: în cazul unui ML bi-gram trebuie estimate probabilitățile pentru fiecare pereche de cuvinte (wi, wj). Pentru a calcula aceste probabilități se utilizează principiul maximum likelihood. Cu alte cuvinte, se numără de câte ori cuvântul wi este urmat de cuvântul wj, comparativ cu alte cuvinte:
Practic, probabilitatea asignată n-gramelor necunoscute este 0.
În afară de acest caz există alte n-grame care apar de foarte puține ori (mai puțin de zece ori) în corpusul de antrenare. Această problemă devine mai importantă în cazul ML de tip n-gram de ordin mai mare. În acest caz, probabilitățile care au fost estimate pe baza numărului de apariții ale n-gramelor în corpusul de antrenare, trebuie ajustate. Cum? Prin metode de netezire.
Metodele de netezire extrag o parte din probabilitatea alocată pentru n-gramele întâlnite la antrenare și o redistribuie n-gramelor necunoscute.
În literatură întâlnim mai multe metode de netezire care particularizează modul de redistribuție a probabilității. Cea mai eficientă metodă este Good-Turing, cunoscută drept netezirea Katz.
Problema data sparseness este abordată cu metode de back-off. Pentru a crea un model de limbă interpolat, metodele back-off utilizează mai multe modele de limbă care au avantaje diferite și pot beneficia de toate părțile constituente. Cu alte cuvinte, pentru a determina probabilitatea unei n-grame care nu se regăsește în corpusul de antrenare, se poate lua în considerare și probabilitatea oferită de modelele de limbă de ordin inferior. În acest caz, problema de optimizare este reprezentată de alegerea echilibrului corect între modelele de ordin superior și cele de ordin inferior, în cazul în care acestea vor fi folosite.
Ex: Dacă modelele de tip n-gram de ordin mai mare oferă un context de predictibilitate mai mare, modelele de ordin mai mic sunt mai robuste.
O metodă de back-off eficientă în estimarea probabilităților n-gramelor necunoscutepe baza probabilităţilor asignate acestor n-grame de către modele de ordin mai mic este metoda modificată de netezire Kneser-Ney (Chen & Goodman, 1998). Aceasta folosește o metodă numită reducere absolută pentru a micșora probabilitatea cumulată a evenimentelor întâlnite.
În cazul unui corpus de știri necesar pentru prezicerea interesului public pentru anumite topice, se maximizează probabilitatea de ocurență a unui cuvânt ținând cont de contextul imediat înconjurător: outputul ar urma să fie format dintr-un set de cuvinte cheie pentru fiecare topic.
- Blei D.M., Ng A. Y., Jordan M. I. (2003), Latent Dirichlet Allocation, Journal of Machine Learning Research, 3: 993–1022.
- Li-Jia L., Fei-Fei L. (2007), What, where and who? classifying events by scene and object recognition. In: Int. Conf. of Computer Vision: 221-228.
Support Vector Machine (SVM)
Producător/Autor: Nello & Shawe-Taylor, 2000; Tong & Chang, 2001;
SVM este un model și o tehnică de clasificare a datelor, care presupune existența unui set de date pentru antrenare și un set de date de testare. Fiecare instanță din setul de antrenare este deja clasificată ca aparținând unei anumite clase, iar acest set de date este folosit pentru a crea un model care este capabil să eticheteze instanțele din setul de testare ca aparținând unei anumite clase. SVM caută soluția ca într-o problemă de optimizare.
Exemplu de aplicație: clasificarea semnalelor (slabe vs. non-slabe)
- Tong S., Chang E. (2001), Support vector machine active learning for image retrieval.
- Nello C., Shawe-Taylor J., (2000), An Introduction to Support Vector Machines and other kernel based learning methods.
Natural Language Toolkit (NLTK)
Autori: Steven Bird (Australia), Edward Loper (USA), Ewan Klein (USA), etc.;
A fost dezvoltat la Universitatea din Pennsylvania
NLTK reprezintă o multitudine de module program open source, tutoriale și probleme, oferind cursuri de lingvistică computațională. NLTK acoperă procesarea limbajului natural (simbolică și statistică), fiind și o interfață la corpusuri adnotate. NLTK rulează pe toate platformele suportate de Python, inclusiv Windows, OS X, Linux și Unix. Tipul resursei: platformă; Scop: construirea de aplicații de prelucrare a limbajului uman în limbajul Python (text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning)
- Loper Edward, Bird Steven, (2004), NLTK: The Natural Language Toolkit. ACL (https://www.aclweb.org/anthology/W02-0109)
- Bird Steven, Loper Edward and Klein Ewan (2009), Natural Language Processing with Python. O’Reilly Media Inc. (http://nltk.org/book)
Graph networks (Relational Neural Networks)
The method “generalizes and extends various approaches for neural networks that operate on graphs, and provides a straightforward interface for manipulating structured knowledge and producing structured behaviors”. Tipul resursei: model/metodă; Scop: raționament neural care lucrează cu relații (în grafuri) în loc de caracteristici.
Producător: DeepMind
- Battaglia PeterW., Pascanu Razvan , Lai Matthew, Rezende Danilo, Kavukcuoglu Koray(2016): Interaction Networks for Learning about Objects, Relations and Physics.
- Battaglia et al. (2018), Relational inductive biases, deep learning, and graph networks => https://arxiv.org/pdf/1806.01261.pdf
- Kipf Thomas (2016), Graph convolutional networks: http://tkipf.github.io/graph-convolutional-networks/
NLP-Cube
Bibliotecă open-source de prelucrări a limbajului natural (Sentence Splitting, Tokenization, Lemmatization, Part-of-speech Tagging, Dependency Parsing and Named Entity Recognition) bazată pe modele Deep Learning. Tipul resursei: platformă.
Producător: Adobe;
- Boroș, Tiberiu and Ștefan Daniel Dumitrescu and Ruxandra Burtică (2018), NLP-Cube: End-to-End Raw Text Processing With Neural Networks, Proceedings of the CoNLL 2018 Shared Task: Multilingual Parsing from Raw Text to Universal Dependencies, Association for Computational Linguistics. p. 171–179.
GloVe embeddings
GloVe este o metoda nesupervizată de obținere de reprezentări vectoriale pentru cuvinte. Antrenarea se realizează pe o matrice de co-ocurențe între cuvinte, extrasă dintr-un corpus. Reprezentarea rezultată are rolul de a surprinde relații între cuvinte cu sensuri asemănătoare sau care se regăsesc în contexte similare. La adresa indicată se pot descărca modele pentru diverse limbi. Tipul resursei: model; Scop: obținerea reprezentărilor vectoriale pentru cuvintele unui corpus.
Producător: Stanford NLP
- Pennington Jeffrey, Richard Socher, Christopher D. Manning (2014), GloVe: Global Vectors for Word Representation, in EMNLP, https://nlp.stanford.edu/pubs/glove.pdf.
ELMo embeddings
ELMo este o metodă de reprezentare vectorială a cuvintelor care modelează caracteristici complexe ale cuvintelor (ex. sintaxa sau semantică) și modul în care acestea variază în diverse contexte lingvistice. Astfel, se propune o soluție pentru problema polisemiei cuvintelor. Modelele pre-antrenate pot fi adăugate cu ușurință peste reprezentări deja existente. S-a demonstrat experimental că ELMo ajută la îmbunătățirea multor rezultate state-of-the-art pentru mai multe probleme de procesare textuală. Tipul resursei: model; Scop: modelarea caracteristicilor sintactice și/sau semantice ale cuvintelor dintr-un corpus.
Producător: Allen NLP
- Peters Matthew E., Mark Neumann, Luke Zettlemoyer, Wen-tau Yih (2018), Dissecting Contextual Word Embeddings: Architecture and Representation, Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, p. 1499–1509, Association for Computational Linguistics.
Character-level embeddings
Fiecare simbol din text este reprezentat sub forma unui vector al cărui număr de elemente este egal cu numărul de simboluri distincte din text, transformând astfel textul dintr-o secvență de simboluri (litere și caractere speciale) într-o secvență de vectori.
- Zhang Xiang , Yann LeCun (2016), Text Understanding from Scratch. Online: https://arxiv.org/pdf/1502.01710.pdf
TensorFlow
Platformă open-source pentru învățare automată, care pune la dispoziția utilizatorului un set complet de componente necesare pentru construirea modelelor bazate pe rețele neuronale. Tipul resursei: platformă; Exemplu de utilizare: antrenarea unui model neuronal pentru segmentarea clauzelor din text.
Producător: inițial Google; în prezent proiectul este open-source
- Abadi M., Agarwal, A., Barham, P., Brevdo, E., Chen,Ashish Agarwal et al. (2015), TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems,http://download.tensorflow.org/paper/whitepaper2015.pdf
Seq2seq (Sequence to sequence learning)
Modelul este compus din două părți:
– Codificatorul/codorul care primește la intrare o propoziție în limba engleză și o transformă într-o reprezentare vectorială.
– Decodorul care primește reprezentarea vectorială a propoziției în limba sursă și o transformă în propoziția corespunzătoare din limba țintă.
Atât codificatorul cât și decodorul au la baza celule Long Short-Term Memory (v. fișa Long Short-Term Memory).
Autori: Ilya Sutskever, Oriol Vinyals, and Quoc V. Le
- Sutskever, Ilya and Vinyals Oriol and V. Le Quoc (2014), Sequence to sequence learning with neural networks, In Zoubin Ghahramani, Max Welling, Corinna Cortes, Neil D. Lawrence, and Kilian Q. Weinberger (eds.), Advances in Neural Information Processing Systems 27: Annual Conference on Neural Information Processing Systems 2014, December 8-13, Montreal, Quebec, Canada, pages 3104–3112.
Long Short-Term Memory
Rețea neuronală recurentă, specializată pentru procesarea de secvențe, dotată cu memorie internă și mecanisme de acces la memorie numite ecluze/porți (gates în engleză). Ecluzele reglementează cantitatea de informație care este stocată în memoria rețelei, cantitatea de informație care este ștearsă din memorie și – deoarece rețeaua se ocupă de procesarea de secvențe – cantitatea de informație utilă pentru procesarea următorului element din secvență. În cazul experimentului de segmentare în clauze (a se vedea exemplul din secțiunea Alte informații utile), codificatorul reține, pentru fiecare cuvânt din frază, informațiile necesare pentru a crea o reprezentare vectorială, iar în cazul decodorului – informația necesară pentru a genera următorul element din fraza care include și marcajele de sfârșit de segment.
Tipul resursei: model. Scop: codificarea textului în puncte ale unui spațiu vectorial și decodificarea reprezentării vectoriale în text.
Autori: Sepp Hochreiter, Jürgen Schmidhuber.
- Hochreiter Sepp, Jürgen Schmidhuber (1997), Long short-term memory. Neural Computation, 9(8):1735–1780.
TensorBoard
TensorBoard oferă posibilitatea de a urmări evoluția modelului antrenat prin crearea de grafice care afișează diverse metrici selectate de utilizator la dezvoltarea modelului. În plus, TensorBoard oferă posibilitatea de a vizualiza întreg graful computațional care stă la baza modelului antrenat. Tipul resursei: componentă TensorFlow; Scop: vizualizarea evoluției modelului antrenat.
- https://www.tensorflow.org/tensorboard/r1/overview.
Word2Vec
Există două modele Word2Vec (ambele implicând rețele neuronale): Skip Gram și Common Bag of Words (CBOW).
Modelul CBOW: contextul fiecărui cuvânt este considerat intrare, ieșirea încercând să prezică cuvântul corespunzător contextului. Să luăm în considerare exemplul nostru: „Ai o zi minunată”.
Lăsând intrarea în rețeaua neurală să fie cuvântul „minunat”, să observăm că aici încercăm să prezicem un cuvânt țintă (“zi”) folosind un singur cuvânt de intrare în context. Mai precis, utilizăm codificarea cuvântului de intrare și măsurăm eroarea de ieșire în comparație cu o singură codificare a cuvântului țintă (“zi”). În procesul de predicție a cuvântului țintă, învățăm reprezentarea vectorului cuvântului țintă.
Fig. 1. Arhitectura unui model CBOW simplu, cu un singur cuvânt în context
(Rong, 2014)
Cuvântul de intrare sau context este un vector codat cu dimensiunea V, stratul ascuns conține N neuroni și ieșirea este, din nou, un vector de lungime V.
Așadar, se poate observa maniera în care se generează reprezentări de cuvinte utilizând cuvintele de context. Dar există încă o cale: putem folosi cuvântul țintă (a cărui reprezentare vrem să generăm) să prezicem contextul, iar în acest proces, producem reprezentările. O altă variantă, numită modelul Skip Gram, face acest lucru.
Tipul resursei: model; Scop: construirea de word embeddings.
- Mikolov Tomas, Sutskever Ilya, Chen Kai, Corrado Greg, Dean, Jeffrey (2013), Distributed Representations of Words and Phrases and their Compositionality, https://arxiv.org/abs/1310.4546
- Levy Omer, Goldberg Yoav (2014), Linguistic Regularities in Sparse and Explicit Word Representations.
PyMagnitude
Este un pachet dezvoltat cu intenția de a folosi vector embeddings în machine learning și de a oferi o alternativă mai simplă și mai rapidă pentru Gensim. Principala caracteristică este utilizarea unui format unic de documente (.magnitude) care ajută foarte mult la îmbunătățirea timpului de căutare și de încărcare a vectorilor, în funcție de chei. Este folosit SQLite pentru a stoca și indexa datele, astfel timpul de căutare se îmbunătățește de la rulare la rulare.
Pachetul permite concatenarea mai multor modele (tip .magnitude) și oferă funcționalități, precum:
- Query – pentru un cuvânt/ mai multe cuvinte;
- Similarity – pentru indicele de similaritate între două cuvinte;
- Most_Similar – pentru a obține cuvântul cel mai similar cu cel dat ca input;
- POS tags și Syntax Dependencies – returnează vectori în funcție de argumentele de POS și relațiile de dependență furnizate;
- (.bin .txt .vec .hdf5) to (.magnitude) converter – transformă fișierele în fișiere .magnitude
Formatul unui astfel de fișier este similar cu cel al unui dicționar: există o listă de keys (cuvintele) și pentru fiecare cuvânt reprezentarea word2vec pe x coloane (50, 100, 200, 300 etc.).
Pachetul este dezvoltat pentru Python și folosește biblioteca numPy pentru vectori. Este folosit, de obicei, pentru a crea modele care folosesc reprezentări vectoriale. Mai poate fi folosit pentru a corecta greșelile de scriere și cuvintele din afara vocabularului (folosind funcțiile most_similar și similarity). Tipul resursei: Librărie; Scopul utilizării: Word Embeddings.
–
CTC: Connectionist Temporal Classification
Descriere
Multe sarcini de învățare a secvențelor din lumea reală necesită predicția secvențelor de etichete din date de intrare zgomotoase, nesegmentate. În recunoașterea vorbirii, de exemplu, semnalul acustic este transcris în cuvinte sau subcuvinte (unități). Rețelele neuronale recurente (RNN) reușesc să învețe cu succes secvențe, deci ar părea potrivite pentru astfel de sarcini. Cu toate acestea, pentru că au nevoie de date de antrenament pre-segmentate și post-procesate pentru a transforma rezultatele lor în secvențe de etichete, aplicabilitatea lor a fost limitată. Această metodă propune o nouă metodă de antrenare a RNN-urilor pentru a eticheta direct secvențe nesegmentate, rezolvând astfel ambele probleme. Exemple de utilizare sunt în sisteme S2T, la decodificarea imaginilor care conțin scris de tipar sau de mână etc. autor: (Alex Graves et al, 2006)- A. Graves, S. Fernández, F. Gomez (2006). Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks, Proceedings of the 23rd international conference on Machine learning, link: https://mediatum.ub.tum.de/doc/1292048/file.pdf
CTC: Connectionist Temporal Classification
RoBERT – A Romanian BERT Mode
Se introduce un model BERT preinstruit doar în limba română – ROBERT – care este comparat cu diferite modele multilingve pe șapte sarcini PLN specifice limbii române, grupate în trei categorii și anume: analiza sentimentelor, identificarea dialectelor și a subiectelor încrucișate și refacerea diacriticelor. În vederea preinstruirii modelului RoBERT, a fost construit un corpus românesc, extras din mai multe surse, variind de la text aleatoriu, accesat cu crawlere de pe Internet, la surse mai formale (ex: Wikipedia, cărți sau ziare). Corpusul a fost alcătuit din trei surse principale: Romanian Wikipedia dump, un corpus românesc creat de Oscar (Javier Ortiz Suarez et al., 2019), împreună cu colecția RoTex (https://github.com/aleris/ReadME-RoTex-Corpus-Builder from which the following sources were considered: ”biblior”, ”biblioteca-digitala-ase”, ”bestseller-md”, ”litera-net”, ”bzi”, ”dcep”, ”dezbateri-parlamentare”, ”dgt-aquis”, ”paul-goma”, ”rudolf-steiner” and ”ziarul-lumina”). Modelul depășește modelele multilingve, precum și o altă implementare monolingvă a BERT
- Mihai Masala, Stefan Ruseti, Mihai Dascalu (2020). RoBERT – A Romanian BERT Model. COLING 2020: 6626-6637, link: https://aclanthology.org/2020.coling-main.581.pdf
- Pedro Javier Ortiz Suarez et al. 2019. Asynchronous Pipeline for Processing Huge Corpora on Medium to Low Resource Infrastructures. In the 7th Workshop on the Challenges in the Management of Large Corpora (CMLC-7).
Rețele neuronale recurente de tip codor-decodor (RNN encoder-decoders)
În paradigma traducerii automate (TA), o rețea neurală codoare citește și codifică o frază din intrare dată în limba sursă într-un vector de lungime fixă, în timp ce decodorul produce în ieșire o traducere în limba țintă din vectorul codat. Perechea codor-decodor sunt antrenate pentru a produce traduceri corecte pentru perechea de limbi sursă-țintă.
Practic, intrarea de lungime variabilă este codată mai întâi într-un vector de lungime fixă, acesta fiind apoi decodat într-o frază, de asemenea de lungime variabilă.
În abordările lui [Cho et al., 2014] și [Sutskever et al., 2014], codorul citește fraza de intrare, o secvență de vectori x = (x1, · · · , xTx), într-un vector c. Astfel, abordarea cea mai cunoscută a rețelelor neuronale recurente este aceea în care o stare ascunsă la momentul t este ht ∈ Rn de forma:
ht = f (xt, ht−1) (1)
iar
c = q ({h1, · · · , hTx }) (2)
este ieșirea, de forma unui vector generat din secvența de stări ascunse, cu f și q funcții nelineare.
În TA, decoderul este antrenat să prezică cuvântul următor yt’ plecând de la vectorul context c și toate cuvintele prezise anterior {y1, · · · , yt’−1}. Cu alte cuvinte, decodorul definește o probabilitate peste traducerea y prin descompunerea probabilității comune în probabilități condiționate ordonate:
p(y) = PRODUS, cu t de la 1 la T, din p(yt | {y1, · · · , yt−1} , c), (3)
unde y = (y1, · · · , yTy). Cu un RNN, fiecare probabilitate condiționată este modelată ca:
p(yt | {y1, · · · , yt−1} , c) = g(yt−1, st, c), (4)
unde g este o funcție neliniară, potențial multistratificată, care emite probabilitatea yt, iar st este starea ascunsă a RNN.
- Sutskever, I., Vinyals, O., and Le, Q. (2014). Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (NIPS 2014).
- Cho, K., van Merrienboer, B., Gulcehre, C., Bougares, F., Schwenk, H., and Bengio, Y. (2014a). Learning phrase representations using RNN encoder-decoder for statistical machine translation. In Proceedings of the Empirical Methods in Natural Language Processing (EMNLP 2014).
Atenția (attention-based approaches)
[Bahdanau et al., 2015] propun modelul de rețea care prezice cuvântul țintă, ținând cont cu predilecție de anumite cuvinte din fraza de intrare. Acest mecanism reflectă atenția focalizată, pe care oamenii o aplică instinctiv în enorm de multe activități mentale, atunci când o decizie se bazează doar pe unele dintre semnele pe care le avem la dispoziție, anumite părți ale tabloului pe care îl decodificăm fiind mai importante decât altele. De exemplu, în paradigma traducerii automate, fraza din intrare poate fi mai lungă decât cele pe care a fost antrenat sistemul, ceea ce va produce erori în traducere, pentru că deteriorarea ieșirii este accelerată de lungimea intrării [Cho et al., 2014a]. De accea, limitarea contextului, dublată de focalizare, poate da rezultate mult mai bune.
Modelul propus de [Bahdanau et al., 2015] reprezintă o extensie a modelului codor-decodor, care aliniază și traduce simultan. De fiecare dată când un cuvânt este generat în traducere, se caută un set de poziții din propoziția sursă unde sunt concentrate cele mai relevante informații. Cuvântul țintă este astfel prezis pe baza vectorilor de context asociați acestor poziții sursă precum și a tuturor cuvintelor țintă generate anterior.
În [Bahdanau et al., 2015] mai întâi se definește:
DECODORUL
Probabilitățile condiționate din (3), detaliate în (4), devin acum:
p(yi | y1, · · · , yi−1, x) = g(yi−1, si, ci), (5)
unde si este o stare ascunsă a RNN la momentul i, compusă din:
si = f(si−1, yi-1, ci). (6)
Diferența față de ecuația (3) a unui codor-decodor clasic este că aici probabilitatea este condiționată de un vector de context distinct ci pentru fiecare cuvânt țintă yi. Vectorul de context ci depinde de o serie de adnotări (h1, · · · , hTx) cărora encoderul mapează fraza de intrare. Astfel, ci se calculează ca o sumă ponderată a acestor adnotări hi:
Ci = SUMA, cu j de la 1 la Tx, din αij hj (7)
iar ponderea αij a fiecărei adnotări hj e calculată ca:
αij = exp(eij ) / SUMA, cu k de la 1 la Tx, din exp(eik), (8)
unde:
eij = a(si-1 , hj). (9)
este un model de aliniere, care apreciază cât de bine se aliniază ieșirea din poziția j cu intrarea din poziția i. În această formulă si-1 reprezintă starea ascunsă RNN de dinainte de emiterea lui yi.
În felul acesta decodorul decide asupra unor părți din fraza sursă cărora să le dea o importanță mai mare, iar codorul este degrevat de sarcina de a coda toată informația conținută în fraza sursă într-un vector de lungime constantă.
CODORUL
Rețeaua neuronală descrisă în ecuația (1) citește o secvență de intrare x în ordine, de la primul (x1) la ultimul simbol (xTx). Pentru a se lua în considerare nu numai cuvântul precedent, dar și cel care urmează, autorii propun utilizarea unei rețele bidirecționale (BiRNN, ca în Schuster and Paliwal, 1997). Ea e compusă dintr-o rețea neuronală “înainte”, care citește secvența de intrare (de la x1 la xTx) și calculează secvența de stări ascunse “spre înainte” (forward hidden states) , și o rețea neuronală “înapoi”, care citește în sens invers secvența de intrare (de la xTx la x1) și calculează secvența de stări ascunse “spre înapoi” (backward hidden states) . Se obține astfel o adnotare pentru fiecare cuvânt xj prin concatenarea stării ascunse “înainte” cu cea “înapoi” , adică hj = . Astfel, adnotările ascunse hj conțin în rezumat atât cuvintele anterioare cât și pe cele ulterioare lui xj . Această secvență de adnotări este apoi folosită de decodor pentru a compune vectorul context – ec. (7) și (8).
Figura 1 (împrumutată din [Bahdanau et al., 2015]) sugerează că pentru generarea unui cuvânt pe canalul de ieșire nu numai că se ține seama de contextul intrării pentru toată fraza curentă, dar anumite cuvinte pot căpăta ponderi mai mari decât celelalte. Acesta este însuși esența mecanismului de atenție.
- Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio (2015): Neural Machine Translation by Jointly Learning to Align and Translate, ICLR, online at:https://arxiv.org/pdf/1409.0473.pdf
- Prodip Hore, Sayan Chatterjee (2019): A Comprehensive Guide to Attention Mechanism in Deep Learning for Everyone, https://www.analyticsvidhya.com/blog/2019/11/comprehensive-guide-attention-mechanism-deep-learning/ Tutorial online.
- Schuster, M. and Paliwal, K. K. (1997). Bidirectional recurrent neural networks. Signal Processing, IEEE Transactions on, 45(11), 2673–2681.
RoVG – Romanian Verbal Group Tagger
Un set de reguli de parsare a grupurilor verbale. Abordare simbolică.
- Curteanu, Neculai; Mihai Moruz; Diana Trandabăţ; Cecilia Bolea; Iustin Dornescu, (2006): The Structure and Parsing of Romanian Verbal Group and Predicate, Proceedings of the ECIT2006 – 4th European Conference on Intelligent Systems and Technologies, Iasi, Romania, Septembrie 21-23, 2006, pp. 93-105.
- Curteanu, N., D. Trandabăţ, M. Moruz (2006): Structura grupului verbal, predicaţia lexicală şi reprezentarea logică a predicatului în limba română. In Lucrările atelierului RESURSE LINGVISTICE ŞI INSTRUMENTE PENTRU PRELUCAREA LIMBII ROMÂNE, (Ed. C. Rorăscu, D. Tufiş, D. Cristea), Editura Univ. “Al.I. Cuza” Iaşi, ISBN: 978-973-703-208-9, pp. 143-148.
eDTLR extraction software
Creat special pentru DR+DLR. Poate fi generalizat pentru digitizarea altor tipuri de dicționare.
- Alex Moruz, Andrei Scutelnicu, Dan Cristea (2018). Interlinking and Extending Large Lexical Resources for Romanian, in V.Păiș, D.Gîfu, D.Trandabăț, D.Cristea, D.Tufiș (eds.) Proceedings of the 13th International Conference on Linguistic Resources and Tools for Processing Romanian Language, noiembrie 22-23, Editura Universității “A.I.Cuza” din Iași, pp. 125-132, ISSN 1843-911X, link: https://profs.info.uaic.ro/~dcristea/papers/paper%2014.pdf
- Mihai Alex Moruz, Dan Cristea (2016). A Bootstrapping System for Dictionary Management and Parsing, în M. Mitrofan, D. Gîfu, D. Tufiș, D. Cristea (eds.): Proceedings of the 12th International Conference on Linguistic Resources And Tools For Processing The Romanian Language – ConsILR, Mălini, 27-29 october 2016, „Alexandru Ioan Cuza” University Publishing House, pages 153-162, ISSN 1843-911X, link: https://profs.info.uaic.ro/~dcristea/papers/Consilr2016_paper_3_final.pdf
- Dan Cristea, Gabriela Haja, Alex Moruz, Marius Răschip, Mădălin Ionel Patrașcu (2011). Statistici parțiale la încheierea proiectului eDTLR – Dicționarul Tezaur al Limbii Române în format electronic. În Rodica Zafiu, Camelia Ușurelu, Helga Bogdan Oprea (editori), Limba română. Ipostaze ale variației lingvistice. Actele celui de-al 10-lea Colocviu al Catedrei de limba română (Bucureşti, 3-4 decembrie 2010), vol. I, Gramatică şi fonologie, lexic, semantică, terminologii, istoria limbii române, dialectologie şi filologie, București, Editura Universității din București, 2011, pp. 213-224, ISBN 978-606-16-0046-5, link: https://profs.info.uaic.ro/~dcristea/papers/Cristea_Haja_Moruz_Raschip_Patrascu.pdf
- Dan Cristea, Marius Răschip, Alex Moruz (2009). Steps in Building the Electronic Version of the Thesaurus Dictionary of the Romanian Language. In Proceedings of the IVth National Conference The Academic Days of the Academy of Technical Science of Romania, ASTR – the Iași branch and “Gheorghe Asachi” Tehnical University Iași, Agir Publishing House, ISSN 2006-6586, link: https://profs.info.uaic.ro/~dcristea/papers/ASTR09_CristeaRaschipMoruz.pdf
Colecție de API-uri de acces în RoWordNet (RoWN – Romanian WordNet)
WordNet-ul românesc este creat după modelul Princeton WordNet (Fellbaum, 1998), care a produs o adevărată revoluție în domeniul lingvisticii computaționale prin dezvoltările științifice și tehnologice pe care le-a generat de la crearea lui. O bază de date de tip wordnet este o colecție de substantive, verbe, adjective și adverbe, ce poate fi privită ca o rețea constituită din noduri unde se regăsesc cuvinte care, în anumite contexte, pot avea același înțeles. Cuvintele (numite lexicali) sunt grupate în seturi sinonimice numite synset-uri, fiecare exprimând un concept lingvistic distinct, reprezentând noduri ale rețelei. API-urile din această colecție realizează diferite operații de acces în structura RoWN.
- Tufiş, D., Ro-WordNet: ontologie lexicală pentru limba română, Academica, XVIII (208–209): 30–34, februarie-martie 2008. ISSN 1220–5737.
- Tufiş, D., Barbu E., Barbu Mititelu V., Ion R., Bozianu L., The Romanian Wordnet, Romanian Journal of Information Science and Technology, 7, 1–2, 2004, pp. 107–124.
- Barbu Mititelu, V., Reţea semantico-derivaţională pentru limba română, Edit. Muzeul Literaturii Române, Bucureşti, 2013.
- Baccianella, S., Andrea E., Fabrizio S. SentiWordNet 3.0: An Enhanced Lexical Resource for Sentiment Analysis and Opinion Mining., LREC, 10, 2010.
- Tufiş, D., Barbu Mititelu, V., Ştefănescu, D., Ion, R., The Romanian Wordnet in a Nutshell, Language Resources and Evaluation, X, 10, 2013.
- Niles, I., Pease, A., Towards a standard upper ontology, Proceedings of the International Conference on Formal Ontology in Information Systems, 2001.
- Resnik, P., Using information content to evaluate semantic similarity in a taxonomy, 14th International Joint Conference on Artificial Intelligence, Montreal, 1995.
- Lesk, M. (1986), Automatic sense disambiguation using machine readable dictionaries: How to tell a pine cone from an ice cream cone, 5th SIGDOC, New York, pp. 24–26.
- Banerjee S., Pedersen T. Extended gloss overlaps as a measure of semantic relatedness, 2003.
- Boroş, T., Ştefănescu, D., Ion, R. Handling Two Difficult Challenges for Text-to-Speech Synthesis Systems: Out-ofVocabulary Words and Prosody: A Case Study in Romanian, Where Humans Meet Machines, Springer New York, 2013, pp. 137–161.
- Ion, R., Tufiş, D., Multilingual Word Sense Disambiguation Using Aligned Wordnets, Romanian Journal on Information Science and Technology, Special Issue on BalkaNet, 7, pp. 183–200, 2004.
Keras
Bibliotecă Python pentru învățarea automată, ce pune la dispoziția utilizatorului un set de module care abstractizează/unifică procesul de antrenare a modelelor de învățare automată indiferent de platforma pe care se produce antrenarea propriu-zisă (TensorFlow, CNTK etc.).
Chollet Francois et. al. (2015), Keras. https://keras.io/
YOLO (You only look once)
Descriere: YOLO este un algoritm specializat pe detecția și recunoașterea de obiecte în imagini. A apărut prima oară în 2016, fiind creat de către Joseph Redmon, iar de-a lungul timpului a fost eficientizat într-o manieră iterativă, ajungând la versiunea 5.
YOLO folosește deep learning pentru a învăța reprezentările obiectelor în imagine. Modelul este format din mai multe rețele neuronale specializate pe înțelegerea imaginilor (VGG, ResNet, MobileNet etc), detecția obiectelor prin trasarea unor dreptunghiuri peste fiecare obiect și în final o rețea care realizează clasificarea imaginilor din dreptunghiuri.
YOLOv5 prezintă mai multe arhitecturi (small, medium, large, xlarge). Acestea pot fi folosite în funcție de problema pe care dorim sa o rezolvam. Dimensiunea arhitecturilor variază de la 15 MB la 170 MB.
- Redmon, J. , Divvala, S. , Girshick, R. , & Farhadi, A. . (2016). You only look once: unified, real-time object detection.
- Bochkovskiy, A. , Wang, C. Y. , & Liao, H. . (2020). Yolov4: optimal speed and accuracy of object detection.
Word embeddings
Word Embeddings este una dintre cele mai populare reprezentări ale vocabularului. Modelul este capabil să capteze contextul unui cuvânt într-un document, similaritatea semantică și sintactică a cuvintelor, relația cu alte cuvinte etc., utilizând pentru aceasta reprezentări vectoriale.
Să luăm ca exemplu următoarele fraze similare: “Ai o zi bună” și “Ai o zi minunată”. Ele au aproximativ același sens, iar dacă construim un vocabular exhaustiv (să îl numim V), acesta ar fi V = {Ai, o, zi, bună, minunată}.
Acum, să creăm un vector codificat pentru fiecare dintre aceste cuvinte din V. Lungimea vectorului nostru va fi egală cu dimensiunea lui V (= 5). Dacă vectorul este lung, multe valori vor fi zerouri, nenule fiind doar elementele de la indecșii ce reprezintă cuvintele din vocabular ce se găsesc și în contextul cuvântului dat.
Putem să vizualizăm aceste codificări într-un spațiu de 5 dimensiuni, în care fiecare cuvânt ocupă una dintre dimensiuni și nu are nimic de-a face cu restul (nici o proiecție de-a lungul celorlalte dimensiuni). Acest lucru înseamnă că “bună” și “minunată” sunt la fel de diferite ca “ziua” și “ai”, ceea ce, de fapt, nu este adevărat. De aici ideea de a genera reprezentări distribuite. Intuitiv, introducem o dependență a unui cuvânt de celelalte cuvinte.
Tipul resursei: model.
Scop: identificarea similarității semantice și sintactice a cuvintelor, relația cu alte cuvinte.
- Word embeddings, https://cbail.github.io/textasdata/word2vec/rmarkdown/word2vec.html
- Mikolov Tomas, Sutskever Ilya, Chen Kai, Corrado Greg, Dean, Jeffrey (2013), Distributed Representations of Words and Phrases and their Compositionality, https://arxiv.org/abs/1310.4546
- Levy Omer, Goldberg Yoav (2014), Linguistic Regularities in Sparse and Explicit Word Representations
- https://towardsdatascience.com/introduction-to-word-embedding-and-word2vec-652d0c2060fa,
- https://towardsdatascience.com/what-the-heck-is-word-embedding-b30f67f01c81
Convolutional neural networks (CNN)
Convolutional neural networks (CNN) sunt un tip de rețele neuronale artificiale utilizate în principal pentru problemele legate de interpretarea datelor vizuale (imagini și videoclipuri), localizarea obiectelor, segmentarea semantică, recunoașterea optică a caracterelor etc. Un CNN poate fi construit cu mai multe straturi. Se cunosc trei mari categorii de straturi: de convoluție, de pooling și complet conectate, asociate cu o funcție comună de activare.
Stratul de convoluție este blocul central al CNN-ului și reprezintă partea principală a sarcinii computaționale a rețelei. Parametrii stratului convoluțional constau într-un set de filtre aplicate. Fiecare filtru este de mici dimensiuni (de-a lungul lățimii și înălțimii), dar se extinde prin toată adâncimea volumului de intrare.
Stratul de pooling se introduce periodic între straturile consecutive convoluționale într-o arhitectură CNN. Funcția sa este de a reduce progresiv dimensiunea spațială, pentru a reduce cantitatea de parametri și de calcul în rețea și, prin urmare, de a evita supraantrenarea. Stratul „Pooling” funcționează independent la fiecare strat din adâncimea intrării și o redimensionează spațial, utilizând operația MAX.
Stratul complet conectat are neuronii cu conexiuni complete la toate activările din stratul anterior, așa cum se observă în rețelele neuronale obișnuite, Artificial Neural Networks (ANN). Activarea lor poate fi astfel calculată cu o multiplicare a matricei adăugându-se și deplasarea (termenul prag), cunoscut drept bias.
Clasificarea poate fi făcută de un strat Softmax. Practic, fiecare neuron dintr-un strat este conectat la fiecare neuron din stratul următor, iar fiecare strat își primește aportul din ieșirea stratului anterior.
Mai jos sunt date câteva exemple de aplicații ale CNN.
I. În sectorul sănătății, aplicațiile de imagistică medicală implică clasificarea, detectarea și segmentarea obiectelor. Visual Geometry Group (VGGNet) este o rețea dezvoltată de Karen Simonyan și Andrew Zisserman (Simonyan and Zisserman, 2015). Rezultatele lor arată că adâncimea rețelei are o influență semnificativă asupra performanței rețelei. Modelul lor conține 16 straturi convoluționale complet conectate și o arhitectură omogenă care realizează convoluții de tip 3×3 și pooling 2×2.
II. În sectorul economic, unde se încadrează și lucrarea amintită, a fost utilizat word2vec ca încorporare de cuvinte pentru a forma stratul de intrare al CNN-ului. Word2vec este utilizat pentru a construi matricea vectorială ce caracterizează d.p.d.v. semantic fiecare cuvânt din intrare. În timp ce se află în stratul de mapare, mai multe hărți cu caracteristici alcătuiesc unul dintre straturile de calcul; o hartă caracteristică corespunde unui plan și toate ponderile neuronilor de pe același plan sunt egale. Designul CNN l-a făcut un clasificator adecvat pentru extragerea caracteristicilor semantice din textele corporale. Descrierea detaliată a structurii convoluționale a modelului de rețea neuronală se află în lucrarea atașată (Li et al., 2020).
III. În sectorul comunicării virtuale, unde se încadrează lucrarea (Iftene et al., 2020), modelul CNN este utilizat pentru analiza în timp real a canalului Twitter, dovedindu-se că el poate să ofere elemente cheie despre credibilitatea tweet-urilor cât și a utilizatorilor care le-au postat. “Hărțile” utilizate aici integrează informații culese de la utilizatori. Se crează astfel “imagini” în care se pot apoi localiza “zonele”, adică postările și autorii lor, din care provin știrile categorizate în false și non-false.
- (Simonyan and Zisserman, 2015) Simonyan, Karen and Zisserman, Andrew (2015). Very Deep Convolutional Networks for Large-Scale Image Recognition. In: International Conference on Learning Representations – arXiv:1409.1556.
- (Li et al., 2020) Youzhu Li, Huiling Zhou, Zhonglong Lin, Yifan Wang, Shunjie Chen, Chang Liu, Zhouyang Wang, Daniela Gifu, Jingbo Xia. Investigation in the influences of public opinion indicators on vegetable prices by corpora construction and WeChat article analysis. In: Future Generation Computer Systems, vol. 102, pages 876-888, 2020, https://www.sciencedirect.com/science/article/pii/S0167739X18327341
- (Iftene et al., 2020) Adrian Iftene, Daniela Gîfu, Andrei-Remus Miron, Mihai-Ștefan Dudu. A Real-Time System for Credibility on Twitter. In: Proceedings of the 12th Language Resources and Evaluation Conference, pages 6166–6173, Marseille, France. European Language Resources Association, https://aclanthology.org/2020.lrec-1.757.pdf