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