Ciao Giuseppe,

Il 12 Ottobre 2023 20:18:23 UTC, Giuseppe Attardi ha scritto:
> I word embedding sono molto diversi dai co-occurrence counts, simili
> a quelle dei tuoi esempi.

Si trattava ovviamente di una semplificazione ad uso di chi non conosce
(o non comprende) la programmazione statistica.


> La dimensione dei word embeddings è un valore costante prefissato,
> indipendente dalla lunghezza del vocabolario, come nella tua versione.

Certo, per ovvi motivi: la gestione di vettori con una dimensionalità
pari alla dimensione de vocabolario richiederebbe capacità di calcolo
nettamente maggiori di quelle disponibili.

D'altro canto, tale dimensione è "prefissato" solo all'interno di una
particolare architettura del LLM, ma nulla impedisce di provare a
programmare statisticamente LLM diversi (con dimensioni diverse nei
word embeddings) sullo stesso dataset sorgente e confrontarne i
risultati per selezionare quello ottimale durante la cross validation.


Inoltre il mio esempio riproduceva una matrice basata su una singola
relazione, peraltro definita in modo piuttosto approssimativo.

Le relazioni che potremmo misurare sono innumerevoli, dalla distanza
media nelle frasi, alle relazioni grammaticali etc...


> I word embedding vengono ottenuti come effetto secondario
> dell’allenamento di un Language Model, come i vettori nascosti che
> consentono al modello di stimare la probabilità di una parola in un
> contesto.

In altri termini, il processo di programmazione statistica che hai 
in mente combina il computo delle co-occorrenze ed una riduzione
dimensionale che facilita l'approssimazione della funzione di
mappatura obiettivo.


> Ci vorrebbero diverse lezioni per spiegare come si calcolano i word
> embedding e perché funzionino in modo talmente efficace

Beh, ma il loro principio di funzionamento è semplice da spiegare.

È _COME SE_, a valle di un'analisi simile a quella che ho descritto
nella mail precedente, si applicasse una riduzione dimensionale oculata
(ma approssimativa).

Per chi non lo sapesse una riduzione dimensionale consiste
semplicemente nella proiezione di uno spazio euclideo a N dimensioni su
un altro spazio euclideo a M dimensioni con N maggiore di M.

Ad esempio, immaginando 4 o più punti in uno spazio tridimensionale
(N=3), si tratta semplicemente di proiettare i punti su un piano (M=2)
libero di traslare e ruotare in modo tale da minimizzare la distanza
quadratica media delle proiezioni dai punti originali entro un limite
accettabile (aka, "minimizzare l'errore entro un epsilon").

Non dovrebbe essere difficile da immaginare: 4 o 5 punti nello spazio
a caso ma non appartenenti ad un piano ed un piano selezionato in modo
da passare il più vicino possibile a ciascuno di essi.


> I word embedding sono composi di centinaia di dimensioni e non è
> ricostruibile cosa rappresenti ciascuna

Naturalmente, come in ogni riduzione dimensionale in cui lo spazio di
destinazione non è scelto sulla base di una semantica nota, ma sulla
base della distanza delle proiezioni sui punti noti.

Tornando al nostro esempio, le coordinate originali dei punti
nello spazio tridimensionale hanno una semantica precisa per l'essere
umano: dato il punto zero in cui potremmo collocare l'osservatore,
l'asse x potrebbe distinguere destra (x positive) e sinistra (x
negative), l'asse y potrebbe distinguere sopra (y positive) e sotto (y
negative) e l'asse z potrebbe distinguere davanti (z positive) e dietro
(z negative).

Insomma, le coordinate originali hanno un significato comprensibile.


Ma nel momento che cerchiamo un piano che semplicemente minimizzi la
distanza quadratica media delle proiezioni dei punti su di esso dai
punti stessi, accettiamo di ruotare e traslare questo piano come serve.

A quel punto il sistema di coordinate delle proiezioni sul piano
perdono di significato: lo zero si trova da qualche parte che non
sappiamo rispetto all'osservatore, x e y sono orientate in modo del
tutto diverso rispetto alle x e y e z dello spazio tridimensionale di
origine, per cui non abbiamo più modo di attribuirgli un significato.

TUTTAVIA, poiché i punti hanno comunque perso una dimensione, le nostre
proiezioni non corrispondono esattamente ai punti originali. O magari
corrispondono in alcuni fortunati casi, ma in altri sono molto lontani.
E per contro, vi sono punti lontani sulla dimensione persa che si
trovano ad essere sovrapposti.


Naturalmente dichiarare che i word embeddings rappresentano in modo
imperscrutabile il significato delle parole fa molto più figo!

Ma rimangono mere proiezioni di statistiche.


> sono le centinaia di sfumature/sfaccettature che tratteggiano le
> caratteristiche di una parola, sia semantiche che sintattiche o
> chissà che altro.

Un interpretazione molto romantica... ma priva di fondamento.

Per poter affermare che si tratti di "sfumature/sfaccettature che
tratteggiano le caratteristiche di una parola, sia semantiche che
sintattiche" devi essere in grado di spiegare a QUALE
sfumatura/sfaccettatura semantica/grammaticale ciascun
numero di ciascun vettore (word embedding) corrisponde.

Insomma... dei far sparire quel "chissà che altro"   ;-)


> > Ora il significato del termine "leggere" è leggere: l'azione che
> > stai
> 
> 
> Questa è l’accezione di “significato” denotazionale che filosofi
> hanno proposto dai tempi di Platone, ma appunto non risolve il
> problema perché poi dovresti definire cosa sia questa denotazione e
> riapriremmo una discussione che in 2000 anni non sono stati in grado
> di risolvere. Cos’è un tavolo? Cos’è la tavolinità che distingue un
> tavolo da altri oggetti: avere 4 gambe, o tre, o una? E cos'è una
> gamba? Avere un piano: cos'è un piano? E così a ritroso.

Giuseppe, ridefinire le parole per poterle applicare alle 
macchine è un trucco vecchio come Turing!  ;-)


Il fatto che significato di "significato" sia noto dai tempi di
Platone, non significa che sia desueto.

Il fatto che, come qualsiasi altra informazione, sia impossibile da
ridurre in qualcosa di computabile, non lo rende "inutile".

Miliardi di bambini hanno compreso facilmente cosa significhi
"tavolo", in innumerevoli lingue. Miliardi di esseri umani, sin almeno
dai tempi di Platone, hanno capito cosa significhi "significato".

E grazie a questa comprensione condivisa, siamo arrivati fin qui.

Perché diamine dovremmo rinunciare a noi stessi ed al nostro linguaggio
per antropomorfizzare dei software programmati statisticamente?

Per illuderci di aver creato intelligenze? Per illuderci di essere Dio?


Rassegnati, quello che ottieni dalla programmazione statistica sono
word embeddings, vettori di probabilità proiettate su dimensioni 
ignote (e non necessariamente ortogonali o continue), non significati.

Chiamali "word embeddings", "fiffole" o con qualsiasi altra
combinazione di lettere, ma non utilizzare termini che hanno
tutt'altro significato!


Giacomo

PS:
>       https://elearning.di.unipi.it/course/view.php?id=438

Grazie davvero: me le guardo appena possibile!

Certo è un vero peccato dover informare Google di ogni slide che
decido di visualizzare... ma so bene che questa decisione sciagurata
non dipende da te, che anzi ne sei vittima come noi.

_______________________________________________
nexa mailing list
nexa@server-nexa.polito.it
https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa

Reply via email to