• Non ci sono risultati.

5.2 Singular Value Decomposition

5.2.1 Preparazione dei dataset

Le operazioni svolte per la preparazione del dataset sono le medesime uti- lizzate nell’implementazione del metodo basato sulle Regole di Associazione: dopo aver costruito la matrice UGMNorm ed averne effettuato la normaliz- zazione per evitare che i risultati fossero influenzati dai generi di film più popolari, si è provveduto all’eliminazione dei generi meno significativi per ciascun utente e dei record incompleti.

Per costruire la matrice ActualLifestyle da concatenare ad UGMNorm, invece, sono state utilizzate le seguenti modalità:

Modalità 1: Inferenza dell’ETÁ

Nei test relativi alla caratterizzazione secondo l’ETÁ si è scelto di esprimere il Lifestyle di ciascun utente utilizzando un vettore riga, con numero di colonne pari al numero di classi di età previste dal test. Tale vettore è stato ottenuto assegnando un valore pari a 0 a tutti gli elementi ad eccezione di quello situato nella posizione corrispondente alla classe di appartenenza dell’utente, cui è stato assegnato un valore pari a 2.

Ad esempio, nel caso in cui fossero previste quattro classi di età, se un utente appartenesse alla classe GIOVANE e a tale classe fosse associata la quarta colonna, il vettore ottenuto sarebbe il seguente:

Lifestyle(u) = h 0 0 0 2

i

La matrice ActualLifestyle è stata ottenuta concatenando tutti i vettori associati ai singoli utenti, in modo da creare una struttura con numero di righe pari al numero di utenti e numero di colonne pari al numero di classi di età.

5.2. Singular Value Decomposition | 98|

Un esempio di matrice per la descrizione del Lifestyle degli utenti in questo tipo di test è il seguente in cui sono previste quattro classi di età:

ActualLifestyle =         0 0 2 0 2 0 0 0 0 0 0 2 . . . . . 0 2 0 0        

Modalità 2: Inferenza del GENERE

Per la classificazione degli utenti secondo il GENERE, invece, sono state proposte due alternative per la descrizione del Lifestyle:

1. ogni utente è stato associato ad un’unica etichetta, con valore pari a 2 per gli appartenenti alla classe MASCHIO o a -2 per gli utenti della classe FEMMINA.

2. il Lifestyle di ogni utente è stato rappresentato utilizzando vettori for- mati da due colonne, analoghi a quelli utilizzati per la categorizzazione secondo classi di età: in questo caso la matrice ActualLifestyle è for- mata da due colonne, associate rispettivamente alle classi MASCHIO e FEMMINA.

Vengono proposte due possibili matrici ActualLifestyle, per le due modalità appena descritte: ActualLifestyle =         +2 −2 −2 · · · −2         ActualLifestyle =         2 0 0 2 0 2 . . 0 2        

Le matrici ottenute dalla concatenazione di UGMNorm con i possibili ActualLifestyle, denominate rispettivamente UGMNormForGender e UGM- NormForAge, hanno costituito la base su cui applicare la Singular Value De- composition nelle due modalità di test previste.

I record di ciascuna delle due matrici sono infine stati rimescolati casual- mente, in modo analogo a quanto svolto per le Regole di Associazione, e successivamente suddivisi negli insiemi TRAINING e TESTING.

5.2.2 Costruzione del modello

La creazione della matrice modello (chiamata Matrix_Model) da utilizzare per la stima del Lifestyle degli utenti del TRAINING SET, è stata ottenuta utilizzando il metodo nativo di MATLAB svds:

h

U, S, V i

=svds(TRAINING_SET, n)

il quale esegue la decomposizione sull’insieme di apprendimento, elenca in ordine decrescente i valori singolari individuati e calcola le matrici di output considerando solo i primi n valori singolari di Σ e le prime n colonne di U e V. La matrice V così ottenuta rappresenta il modello da utilizzare nelle fasi successive per la caratterizzazione degli utenti.

M atrix_M odel = V

5.2.3 Individuazione dei parametri e test globale

L’individuazione dei parametri è stata effettuata applicando la 10-fold Cross Validation; per ciascun fold è stata ricavata una matrice modello, ap- plicando la SVD come descritta nel Paragrafo 2.3.2, che è stata in seguito utilizzata per ottenere la matrice EstimatedLifestyle, applicando tutte le possi- bili coppie di parametri k e t. A partire da tale matrice è stato possibile ricavare la matrice BinaryLifestyle applicando la regola seguente:

per ogni colonna j della riga rappresentante l’i-esimo utente,

se EstimatedLif estyle(i,j)> t, allora BinaryLif estyle(i,j)= 2, altrimenti BinaryLif estyle(i,j)= 0.

La caratterizzazione degli utenti è stata eseguita a partire dalla matrice BinaryLifestyle, applicando i seguenti criteri per ciascuna riga:

• se ∀j BinaryLif estyle(i,j) = 0, non è stata assegnata nessuna classe

5.2. Singular Value Decomposition | 100|

• se esiste un unico j tale che BinaryLif estyle(i,j) = 2, l’utente i è stato

assegnato alla classe corrispondente alla colonna j-esima;

• se esistono due o più j tali che BinaryLif estyle(i,j) = 2, l’utente i è

stato assegnato alla classe corrispondente alla colonna ˆj-esima, tale che BinaryLif estyle(i,ˆj)sia il valore più vicino alla soglia t.

Nella modalità in cui il genere degli utenti è stato rappresentato utilizzando un’unica colonna si è applicata una regola leggermente differente:

se EstimatedLif estyle(j)> t, allora BinaryLif estyle(j)= 2,

altrimenti BinaryLif estyle(j)= −2.

Assegnando di conseguenza alla classe MASCHIO, tutti gli utenti per i quali BinaryLif estyle(j)= 2e alla classe FEMMINA tutti gli utenti per i quali

BinaryLif estyle(j)= −2.

In corrispondenza di ciascuna coppia (k,t) sono state quindi ottenute le statistiche di valutazione, calcolando la media dei risultati relativi a ciascun fold, con l’obiettivo di inviduare la combinazione di parametri che fornisse i risultati migliori in termini di Recall o Lift.

Il modello complessivo ricavato è stato utilizzato per categorizzare gli utenti dell’insieme di test, approssimando la matrice modello con il valore kbest, moltiplicando i vettori associati agli utenti per ottenere il Lifestyle ed

effettuando la binarizzazione in base al valore tbest. I Lifestyle così assegnati

sono stati confrontati con le reali classi di appartenenza degli utenti, in modo da calcolare le medesime statistiche di valutazione previste per le Regole di Associazione. La figura 5.2 mostra il processo di assegnazione del Lifestyle nel caso di test sull’età degli utenti; un procedimento analogo è utilizzato per l’assegnazione dei Lifestyle nel caso di test basati sul genere.

Figura 5.2: il processo di assegnazione del Lifestyle agli utenti appartenenti a TESTING SET,

utilizzando il modello ricavato nella fase precedente.

Schema riassuntivo

Il seguente schema riassume i passi seguiti nella fase di realizzazione dei test per la categorizzazione di utenti applicando la metodologia basata sulla Singular Value Decomposition, per i dataset Yahoo! e MovieLens.

1. Preparazione del dataset:

(a) calcolo della matrice UGM

(b) normalizzazione per ottenere UGMNorm;

(c) estrazione dei generi preferiti (da 1 a 3 a seconda del test effettuato) da UGMNorm;

(d) eliminazione dei record incompleti e rimescolamento casuale; (e) suddivisione dei record in TRAINING SET e TESTING SET.

2. Creazione del modello:

(a) calcolo della matrice modello con il metodo svds.

3. Individuazione dei parametri tramite il metodo 10-fold Cross Validation:

(a) costruzione del modello parziale partendo dal 90% dei record contenuti nell’insieme di apprendimento;

(b) per ogni valore di k e t assegnazione del Lifestyle al 10% degli utenti dell’insieme di apprendimento, basandosi sul modello parziale ricavato in precedenza;

5.3. Support Vector Machines | 102|

(c) calcolo delle statistiche di valutazione per ogni coppia di parametri ed individuazione della migliore combinazione.

4. Test globale:

(a) applicazione del modello all’insieme di test, utilizzando la configu- razione di parametri migliore;

(b) calcolo delle statistiche complessive per la valutazione del test globale.

5.3

Support Vector Machines

L’interazione con una SVM avviene passando come input una serie di valori numerici, nel nostro caso la somma dei rating che ciascun utente ha assegnato ad una determinata categoria, riportata nella matrice UGM.

Il training viene eseguito scegliendo di affidarsi ad un particolare kernel al quale sarà legata la selezione di opportuni parametri. Si effettuerà, attraverso il processo di Cross Validation, la scelta del solo parametro C nel caso si utilizzi un kernel di tipo lineare, di entrambi i parametri C e γ qualora si decida invece di far riferimento ad un kernel di tipo radiale (altri tipi di kernel non saranno trattati all’interno di questa tesi); in entrambe le situazioni la scelta ricadrà sui parametri che garantiscono la miglior Recall globale.

La fase di training porterà alla creazione di un modello che sarà relativo all’iperpiano di separazione migliore e che verrà adoperato nella fase di test per la predizione dei nuovi esempi.

Sommarizzando, una buona procedura di utilizzo di una SVM si articola quindi nei seguenti passi (lo stesso schema è stato applicato sia per il dataset Yahoo! che per il dataset MovieLens):

• trasformare i dati in formato input per SVM (nel caso in cui siano espressi sotto forma di stringhe, è necessario convertirli in formato numerico);

• effettuare uno Scaling dei dati (*opzionale);

• scegliere il tipo di kernel da utilizzare nella fase di training;

• utilizzare la cross validation per la scelta del miglior parametro C ed, eventualmente, γ;

• utilizzare i migliori parametri C e γ ottenuti al punto precedente per ’istruire’ il classificatore;

• effettuare il test.

Effettuare uno Scaling dei dati, significa passare da un certo intervallo di valori più ampio ad uno più ristretto, operazione questa che consente sia di gestire meglio i calcoli matematici (ottenendo quindi una maggiore accuratezza), sia di evitare attribuiti con un range numerico troppo vasto. Ad esempio, è possibile scalare l’intervallo [−10, 10] in uno più ridotto di tipo [−1, 1]. L’utilizzo dello Scaling rimane comunque opzionale (ma consigliabile), in quanto una SVM è in grado di operare con dati espressi in qualsiasi tipo di intervallo.