Esplorazione NLP – Avvio di NLP (Passaggio #3)

Esplorazione NLP - Avvio di NLP (Passaggio #3)' -> 'Esplorazione NLP - Avvio NLP (Passo #3)

Se sei nuovo nella mia serie “Esplorando l’NLP”, ti prego di leggere il mio articolo introduttivo qui.

Esplorare e padroneggiare l’NLP – Un viaggio nelle profondità

Ciao, sono Deepthi Sudharsan, uno studente universitario di terzo anno che sta seguendo il corso di laurea B.Tech in Intelligenza Artificiale. Dato che sono già…

VoAGI.com

Ecco alcuni concetti che ho studiato durante la settimana, in particolare sulle word embeddings. Ho fatto qualche esercitazione pratica, che condividerò presto come parte della serie! Vorrei ringraziare il signor Sachin Kumar S del CEN, Amrita Coimbatore, per aver tenuto questo corso per me durante il semestre, e alcune delle informazioni e immagini qui riportate sono tratte dalle risorse e dai materiali forniti o creati da lui.

N-grams :

N-gram è il modello linguistico più semplice che assegna probabilità a una frase o a una sequenza di token. (I modelli che assegnano un valore di probabilità alla sequenza di token sono chiamati modelli linguistici)

Un n-gram è una sequenza di n token. L’intuizione dietro l’n-gram è che invece di calcolare la probabilità di una parola data l’intera storia, si approssima la storia utilizzando alcune parole. L’assunzione che la probabilità della parola successiva dipenda solo dalla parola precedente è nota come assunzione di Markov. I modelli n-gram guardano alle n-1 parole nel passato per prevedere la probabilità di una parola.

Word Embeddings :

La trasformazione di una parola nella sua rappresentazione vettoriale n-dimensionale (di parole che portano un significato semantico) per ulteriori compiti di NLP è chiamata word embedding. Esempio: Word2Vec

Nella lingua inglese ci sono più di 10 milioni di token. Le word embeddings codificano ogni parola in un vettore che diventerà un punto in uno spazio vettoriale di parole

L’intuizione è che uno spazio vettoriale di parole del genere codificherà tutte le semantiche del linguaggio o parole con un contesto simile saranno mappate in punti prossimi in uno spazio vettoriale.

One Hot Encoding :

Rappresentare una parola in un formato vettoriale in modo che la lunghezza del vettore sia uguale alla dimensione del vocabolario e l’elemento all’indice di quella particolare parola sarà solo 1 e il resto saranno 0.

Supponiamo di avere una frase “Amo l’NLP”. L’OHE per la frase apparirà così.

Questo tipo di rappresentazione non offre un’intuizione sulle semantiche tra le parole o su quanto sono correlate (vicinanza contestuale).

Credo che lo svantaggio dell’OHE derivi anche dal fatto che per dati molto grandi, il vettore OHE diventerà estremamente grande e sparso (con molti zeri da memorizzare). Il contesto non è nemmeno catturato dalla rappresentazione OHE.

Approccio basato su SVD :

Per un corpus enorme, eseguiamo SVD su una matrice di co-occorrenza, e dopo la decomposizione otteniamo i vettori U (matrice degli autovettori), S (matrice dei valori propri) e V.T (trasposta di V – inversa della matrice degli autovettori).

Di seguito è riportata la matrice di co-occorrenza per le frasi “Le rose sono rosse” e “Il cielo è blu”. La matrice di co-occorrenza indica quante volte la parola di riga è circondata dalla parola di colonna nelle frasi.

Fonte: https://stackoverflow.com/questions/24073030/what-are-co-occurence-matrixes-and-how-are-they-used-in-nlp

I vettori della matrice U, che è la matrice degli autovettori o i vettori singolari sinistri, vengono considerati come rappresentazioni vettoriali per le parole.

Personalmente ho trovato interessante leggere di più su questo approccio: https://medium.com/analytics-vidhya/co-occurrence-matrix-singular-value-decomposition-svd-31b3d3deb305

Quindi dal link sopra ho imparato i vantaggi e gli svantaggi del metodo.

  1. Conosciamo la relazione tra le parole nella matrice di co-occorrenza.

2. Può essere calcolato una volta e richiamato più volte una volta calcolato, ma ciò comporta uno svantaggio quando nuove parole vengono aggiunte frequentemente al corpus e le dimensioni della matrice cambiano continuamente.

3. Generalmente richiede molta memoria, specialmente quando ci sono molte parole che non co-occorrono e la maggior parte degli elementi è zero.

Matrice termine-documento:

Come suggerisce il nome, creiamo una rappresentazione matriciale delle dimensioni Dimensione del vocabolario x Numero di documenti. Per una parola del vocabolario, rappresentiamo il numero di volte che appare in ogni documento.

Non tiene conto dell’ordine/posizione e della semantica delle parole.

Natura distributiva del vettore di parole:

Si basa sull’ipotesi che il significato della parola possa essere dedotto dal contesto in cui appare.

Non sono buoni a rappresentare parole rare che si verificano poche volte nel corpus. Soffrono del problema dell’ambiguità e non riescono a gestire la morfologia (valutare e valutare sono considerate diverse).

I Word Embeddings possono essere ampiamente classificati in due categorie: Frequenza (Esempio: Vettore di conteggio, Vettore TF-IDF, Matrice di co-occorrenza) e Predizione (Continuous Bag of Words (CBOW), Skip-Gram) basati su Embedding.

Word2Vec:

Word2Vec è una rete neurale superficiale a due strati, addestrata per ricostruire i contesti linguistici delle parole. Ha due architetture: Continuous Bag-of-Words e Skip-gram.

Continuous Bag of Words:

Fonti: https://www.kdnuggets.com/2016/05/amazing-power-word-vectors.html/2

Funzione obiettivo:

https://slideplayer.com/slide/13396296/

Per creare word embeddings, vengono utilizzate n-parole nel passato e nel futuro.

Aumentare la dimensione della finestra non aiuta, aggiunge solo più rumore.

Qui, il contesto e l’ordine delle parole non contano, quindi stiamo solo prendendo il sacco di parole, e quindi “BOW” fa parte del suo nome. Fornisce anche la relazione semantica delle parole.

CBOW funziona meglio dei Skip-gram perché sono in grado di fare un uso migliore dei dati di input per catturare in modo efficiente i vettori di parole.

Skip Grams:

Fonte: https://deepdatascience.wordpress.com/2017/04/22/word2vec-skip-gram-model/
I 'campioni negativi' sono selezionati utilizzando una 'distribuzione unigramma', dove le parole più frequenti hanno più probabilità di essere selezionate come campioni negativi. Fonte immagine: https://cs224d.stanford.edu/lectures/CS224d-Lecture3.pdf

Qui, la parola target è “input” mentre le parole di contesto sono “output”, a differenza di CBOW.

È un approccio di apprendimento non supervisionato, quindi può imparare da qualsiasi testo grezzo fornito e richiede meno memoria. Impostare il numero di neuroni nello strato nascosto e ottenere la posizione del contesto è difficile e richiede molto tempo per l’addestramento.

GLoVE (Global Vectors for Word Representations):

https://trailhead.salesforce.com/en/content/learn/modules/glove-and-word-vectors-for-sentiment-analysis/use-glove-for-natural-language-processing

•Il modello Glove combina conteggi di co-occorrenza parola-parola e approcci basati su finestre

<p•È necessario calcolare una matrice di co-occorrenza molto grande all'inizio, indicata con 'P'

•Per ogni coppia di parole che possono co-occorrere, si minimizza la distanza tra il prodotto interno delle due parole e il logaritmo del conteggio delle due parole

•Il valore della distanza al quadrato viene pesato utilizzando f(Pij), che assegnerà pesi inferiori alla coppia con un alto conteggio

•Qui si considerano le singole occorrenze delle parole

FastText:

Utilizzato per la classificazione e la rappresentazione efficiente del testo, FastText rappresenta ogni parola come un insieme di n-grammi di caratteri. Poiché gli embeddings vengono appresi utilizzando gli n-grammi, conterranno informazioni sui suffissi e i prefissi.

La libreria FastText per l’embedding e la classificazione delle parole consente di creare algoritmi di apprendimento non supervisionato o supervisionato per ottenere le rappresentazioni vettoriali delle parole.

FastText può ottenere vettori, anche per parole fuori-vocabolario (OOV), sommando i vettori per i suoi componenti n-grammi di caratteri, a condizione che almeno uno dei n-grammi di caratteri fosse presente nei dati di addestramento.

Riferimenti:

  1. ‘Speech & language processing’, Daniel Jurafsky, James H Martin, preparazione [citato il 1 giugno 2020] (Disponibile su: https://web. Stanford. edu/~ jurafsky/slp3 (2018))
  2. https://en.wikipedia.org/wiki/Word_embedding
  3. https://towardsdatascience.com/https-VoAGI-com-tanaygahlot-moving-beyond-the-distributional-model-for-word-representation-b0823f1769f8
  4. https://medium.com/analytics-vidhya/co-occurrence-matrix-singular-value-decomposition-svd-31b3d3deb305
  5. https://deepdatascience.wordpress.com/2017/04/25/word2vec-continous-bag-of-words/
  6. https://towardsdatascience.com/skip-gram-nlp-context-words-prediction-algorithm-5bbf34f84e0c
  7. https://www.kdnuggets.com/2016/05/amazing-power-word-vectors.html/2

Parti precedenti di questa serie:

Parte #1 : https://medium.com/@deepthi.sudharsan/exploring-nlp-kickstarting-nlp-step-1-e4ad0029694f

Parte #2 : https://medium.com/@deepthi.sudharsan/exploring-nlp-kickstarting-nlp-step-2-157a6c0b308b