Nota su alcuni termini che compaiono parlando di AI: vettori e matrici

Questo articolo fa parte di una serie di approfondimenti sull’AI — il link conduce a un indice aggiornato.


Un amico mi ha fatto notare che nel post della conversazione con l’AI sarebbero utili delle note esplicative in parole povere di termini estranei all’uso comune, come gradiente, matrici, etc. Ha ragione anche perché qui mi rivolgo a lettori non specializzati. Nessuna pretesa di completezza. Mi sforzo di dire il minimo per dare un’idea intuitiva di alcuni concetti in relazione all’armamentario dell’AI. Mi riferisco inoltre ai sistemi di Natural Language Processing, tipo ChatGPT e similari.

Vettore

Questo lo abbiamo trovato tutti a scuola, più o meno. Il modo più semplice per recuperare la nozione di vettore penso sia attraverso la sua rappresentazione cartesiana nella versione bidimensionale:

Probabilmente il ricordo prevalente è di questa sorta di freccia che in fisica può rappresentare una posizione, una velocità ecc. Ovvero un’entità caratterizzata da direzione, verso e lunghezza (modulo). Se lo pensiamo confinato nel piano allora, una volta stabilito un sistema di riferimento (assi ortogonali X e Y) con l’origine (incrocio fra gli assi) posta all’inizio del vettore, questo può essere compiutamente rappresentato dalle sue due componenti x e y: un vettore è una coppia di numeri. Se, abbiamo bisogno di uscire dal piano, come si fa quando alle coordinate geografiche di una località si vuole aggiungere la quota, allora c’è bisogno di un terzo numero. Ci ritroviamo così nello spazio.

Qui finisce il discorso per una persona di comune buon senso. Ma ci sono mestieri dove fa comodo andare oltre. Per esempio ad una persona che si occupa di ricostruzione di immagini mediche si semplifica molto la vita pensando le immagini come singoli punti in uno spazio a molte dimensioni, tante quanto i pixel che le compongono, ad esempio un milione nel caso di un’immagine TAC ad alta risoluzione. Inutile provare a rappresentarsi uno spazio del genere, che siano quattro dimensioni o un milione è impossibile per noi. Possiamo adagiarci però nell’astrazione matematica che ci garantisce che quel punto, caratterizzato da un milione di precisi numeri è di fatto quella certa immagine. Utile leggere Flatland (Abbott, Feltrinelli) per familiarizzare con le dimensioni.

Già questo ci consente di precisare un fatto fondamentale: nell’AI le parole sono punti in spazi multidimensionali. Quando noi scriviamo parole in una chat con un qualsiasi sistema di AI queste vengono immediatamente trasformate in una sequenza di numeri: un vettore per ogni parola (in realtà le parole vengono prima spezzate in elementi chiamati token ma per ora questa semplificazione ci basta). La dico subito qui questa cosa perché è fondamentale chiarire che in un sistema di AI non viene processata alcuna forma di significato ma solo vettori che vengono manipolati con metodi statistici. Il significato era invece presente nelle versioni inziali dell’AI cosiddetta “simbolica”, che combinavano le parole in base al loro significato e alle conseguenti relazioni fra di esse. Gli attuali sistemi di AI “subsimbolica” sono puramente statistici. Approfondiremo, per ora basta questo.

Matrice

Le matrici sono i mattoni dell’algebra lineare. A noi qui interessa solo sapere che possono essere usate per trasformare i vettori: ruotarli, cambiarne la lunghezza o procurare loro altre distorsioni.

I vettori si possono rappresentare in forma di riga o colonna. Qui si usa la versione in colonna. Fra matrici e fra matrici e vettori si usa un particolare tipo di moltiplicazione “righe per colonne”. La condizione perché si possa fare è che il numero di elementi delle righe della prima matrice o vettore eguagli il numero di elementi delle colonne del secondo operando. Nell’esempio sopra la lunghezza delle righe della matrice è uguale a quella del vettore (x, y, z). La moltiplicazione di ciascuna riga per ciascuna colonna si fa come in figura, sommando i prodotti fra gli elementi corrispondenti. La prima riga della matrice si moltiplica per il vettore v dando il primo elemento del vettore v’ trasformato (x diventa ax + by + cz), la seconda riga della matrice si moltiplica per il vettore v dando il secondo elemento (y diventa dx + ey + fz) e così via.

I singoli prodotti del tipo ax + by + cz si chiamano prodotti scalari. Si chiamano così perchè il risultato è un cosiddetto scalare, ovvero un singolo numero. Scalare (un solo numero) è contrapposto a vettore (molti componenti, due o più). La prima riga della matrice si moltiplica per il vettore v dando il primo elemento del vettore v’ trasformato.

I transformer, che sono apparsi nel 2017 (Ashish et al, Attention is all you need, Computation and Launguage, Arxiv, 2017), sostituendo in poco tempo le reti ricorrenti per la manipolazione del linguaggio, si basano su trasformazioni dei vettori-parole che vengono effettuate con matrici. Le reti ricorrenti erano caratterizzate dalla reintroduzione dell’output di tutti o alcuni nodi nel loro medesimo input, da qui l’aggettivo ricorrente. Questo tipo di meccanismo era quello che consentiva di trattare informazioni di tipo sequenziale, come quelle del linguaggio. Questi metodi avevano però difficoltà con segmenti di testo più lunghi, tendendo a “perdere la memoria” delle parole più lontane. I transformer funzionano invece in modo radicalmente diverso operando in un colpo solo su intere sequenze di frasi, calcolando le reciproche influenze statistiche (non si dimentichi mai!) fra i vari termini del discorso. Poiché le singole parole sono in realtà vettori, ci troviamo ad operare su insiemi su di essi, e qui viene naturale utilizzare “trasformatori” che sono appunto matrici.

Va bene, l’ho detta in maniera davvero semplice. Un transformer non è una singola matrice ma ne coinvolge ben tre svolgendo un trucco che, appunto, dà l’idea di un gioco di prestigio. Forse proveremo a descriverlo ma sarebbe troppo pesante per note che vogliono essere poco più che un glossario.

Nella prossima nota vedremo invece il gradiente, motore del machine learning. Poi potremo forse affrontare il grave problema delle allucinazioni.

6 pensieri riguardo “Nota su alcuni termini che compaiono parlando di AI: vettori e matrici”

Vengono pubblicati solo commenti che recano nome e cognome

Scopri di più da Andreas Formiconi

Abbonati ora per continuare a leggere e avere accesso all'archivio completo.

Continua a leggere