cosine similarity: una nota didattica
Introduzione
Recentemente, con i colleghi ing. Matteo De Simone e ing. Enrico Busto, ho tenuto un breve corso presso la Fondazione dell'Ordine degli Ingegneri di Torino sulle intelligenze artificiali generative.
Durante il suo intervento, Enrico ha riportato la frase di un matematico con il quale aveva lavorato in passato. La frase era:
In una sfera a n dimensioni, l'informazione si concentra sulla superficie.
Dopo averla citata, Enrico ne ha dato un'evidenza numerica: dato che mi aveva molto colpito, in questo breve articolo ne ho scritto una dimostrazione analitica di questa che è nota come curse of dimensionality.
Una piccola dimostrazione
Nelle basi di dati vettoriali, possiamo pensare di rappresentare i concetti come punti di una sfera \( S \) di \( n \) dimensioni e raggio \( r \), che ha volume
\[ V(n, r) = \frac{\pi^{n/2}}{\Gamma\left(\frac{n}{2} + 1\right)} r^n \]
e può essere riscritto come
\[ V(n, r) = a(n) r^n \]
Il guscio sferico \( G(n, r, b) \) può essere scritto come
\[ G(n, r, b) = a(n) r^n - a(n) (r - b)^n \]
dove \( b \) è la frazione non nulla ed esterna del raggio \( r \) occupata dal guscio.
Di conseguenza, il rapporto di volume \( R(n, r, b) \) tra il guscio \( G \) e la sfera \(S\) è pari a
\[ R(r, n, b) = \frac{a(n) r^n - a(n) (r - b)^n}{a(n) r^n} \]
Semplificando la precedente equazione e considerando il caso della sfera unitaria, \( R(n, r, b) \) si riduce a
\[ R(n, r, b) = R(n, b) = 1 - (1 -b)^n \]
Dato che
\[ 0 < 1 -b < 1 \]
\(R(n, b)\) ha un comportamento assimilabile a
\[ R(n, b) = R(n) = 1 -e^{-n} \]
È quindi evidente che
\[ \lim_{n \to +\infty} R(n) = 1 \]
Quindi, indipendentemente dal valore di \(b\), al crescere del numero di dimensioni della sfera, i punti si concentrano in prossimità della superficie.
Osservazioni finali
Si può verificare come già per \(n=30\) e \(b\) appena pari a 0.1, \(R\) sia superiore a 0.95.
Con l'aumentare delle \(n\) dimensioni, aumenta la frazione di punti interni (anche relativamente distanti) con un modulo, rispetto all'origine, simile: questo aiuta a comprendere intuitivamente l'efficacia della cosine similarity nel misurare la somiglianza tra embedding.
Foto di Dynamic Wang su Unsplash