Piccoli archivi crescono

Il database che contiene i dati della mia tesi ha raggiunto dimensioni considerevoli!!

La tabella di collegamento principale ha raggiunto i 4 milioni di record!! wow!

La tesi si propone lo studio di metodi di suggerimento mirati per il singolo utente, però il problema della velocità di calcolo si fa sentire anche con solo 2000 utenti inseriti.

È possibile però osservare che, come in tutti gli archivi di risorse internet, il 90% dei bookmark di ogni utente sono pesonali e non condivisi con nessun altro utente ([long tail](http://en.wikipedia.org/wiki/The_Long_Tail)).

Quindi selezionando solo le risorse condivise fa almeno 2 utenti, la parte attiva del database viene ridotta ad un decimo.

Operando su questo dataset, ho considerato l’intero insieme degli href come una previsione per l’utente, previsione valutabile ad esempio con l’uso di indici come la Precisione ed il Recupero (Precision and Recall).

Si definisce *Precisione* di una predizione:

Precisione = {numero predizioni corrette}/{numero totale predizioni}

Si definisce *Recupero* di una predizione:

Recupero = {numero predizioni corrette}/{numero totale elementi da predire}

Ad esempio, se dovendo indovinare 6 numeri, si fa una previsione di 10 numeri, di cui 3 risultano corretti, Precisione e Recupero risultano pari a:

* Precisione = 3 / 10 = 30%
* Recupero = 3 / 6 = 50%

Possiamo immaginare l’intero insieme degli href come una previsione con
Precisione minima e Recupero massimo.

Possiamo selezionare solo gli href associati agli N user vicini
all’utente candidato.

Confrontando la scelta basata su due kernel normalizzati,
con la scelta casuale degli N utenti “vicini” abbiamo le seguenti
prestazioni:

Precision and Recall

Quindi, usando il kernel prodotto scalare, abbiamo un Recupero del 40% con soli 30 utenti, mentre selezionando casualmente gli utenti, per avere lo stesso Recupero ne sono necessari 150.