• Non ci sono risultati.

2.5 Algoritmi di raccomandazione

2.5.1 Algoritmi Content-Based

Un sistema Content-Based `e basato sull’analisi del contenuto dei film pro-

posti dal sistema stesso agli utenti [23]. Sostanzialmente, in un sistema del genere, all’utente verranno raccomandati film molto simili a quelli di cui

l’utente ha fruito. In base all’analisi di contenuto sul profilo utente, verr`a

effettuata la raccomandazione. In un primo momento questa analisi dei

contenuti potrebbe risultare molto conveniente e efficiente, proprio perch`e

rappresenta forse la soluzione pi`u semplice in assoluto (in base a quello che

l’utente vede, il sistema raccomanda qualcosa che, ad esempio, appartiene

allo stesso genere o ha un determinato attore etc. In realt`a `e proprio questa

analisi dei contenuti che pu`o portare a delle problematiche: spesso i vari film

hanno molte cose in comune (alcuni membri del cast, stesso regista, stes- so genere) e soprattutto alcune di queste informazioni possono introdurre

qualche ambiguit`a (si pensi ad esempio al fatto che un film possa appartenere

a pi`u generi diversi) nell’ambito della raccomandazione. Si pu`o comunque

scegliere su quali informazioni basare la raccomandazione stessa, andando

a limitare la quantit`a di dati da dare in pasto all’algoritmo. L’utilizzo di

questo approccio dipendente dal contenuto permette di individuare quali interessi portano un individuo a scegliere un determinato item. Vengono

usati diversi metodi per determinare la similarit`a tra il profilo degli item

e il profilo degli utenti, come ad esempio il Coefficiente di Correlazione di Pearson. Tali algoritmi hanno il vantaggio di poter raccomandare item che

non sono mai stati fruiti, proprio perch`e si basano sulle caratteristiche degli

item per generare la raccomandazione. Ciononostante essi soffrono per`o di

alcune limitazioni [1] :

• La raccolta delle informazioni sugli item richiede che esse siano in un formato automaticamente gestibile dal calcolatore.

• L’estrazione di caratteristiche significative `e un problema da non sot- tovalutare.Tale problema deriva sia dal formato dei dati sia dalla spar-

sit`a di informazioni relative alle caratteristiche degli item. Capita a

volte che di qualche film si conoscano poche informazioni oppure molte informazioni (tra cui ad esempio la trama etc.).

• Nel caso due film siano rappresentati dalle stesse caratteristiche essi

risulteranno, agli occhi dell’algoritmo, sostanzialmente identici. Di

conseguenza l’algoritmo stesso non pu`o distinguere un film gradevole

per l’utente da uno sgradevole se entrambi, ad esempio, hanno lo stesso regista o buona parte delle stesso cast di attori [4].

• Le raccomandazioni sono limitate ad item simili a quelli gi`a fruiti dal-

l’utente. Un item con caratteristiche mai fruite dall’utente non verr`a

mai raccomandato. Se un utente non ha mai visto un film horror `e

probabile che il sistema non gliene raccomander`a mai uno,anche se

magari all’utente potrebbe piacere.

• Non `e possibile generare una raccomandazione per un utente nuovo,

che non abbia ancora votato alcun item. Inoltre maggior `e il numero

di item votati, migliore sar`a la raccomandazione. Di conseguenza un

utente con un profilo poco ricco di rating non ricever`a una buona

raccomandazione.

Algoritmo Content-Based diretto

L’algoritmo Content-Based di tipo diretto si basa sulle meta-informazioni

relative ai film ed `e composto dalle seguenti fasi:

1. Tokenizzazione

2. Rimozione delle Stop Words 3. Stemmizzazione

4. Assegnazione di un peso ai metadati (TF-IDF)

Ricevendo come input le meta-informazioni relative ai film, viene ef- fettuata inizialemente un’operazione detta tokenizzazione che consiste nella suddivisione in singole parole, detti token, delle stringhe contenute all’inter- no delle meta-informazioni. Quest’operazione viene effettuata per cercare di individuare un numero frequente di ripetizioni di alcune parole chiave. Si

come ad esempio nomi e cognomi di attori, un token sar`a formato da pi`u parole.

L’output di tale operazione viene poi filtrato basandoci su un certo dizionario contenente una serie di parole, dette stop words, che potrebbero risultare ininfluenti nelle fasi successive (ad esempio articoli, congiunzioni,

preposizioni, etc.), se un token corrisponde ad una di queste parole verr`a

scartato.

La fase seguente, che riceve in input la serie di token filtrati, viene chia-

mata stemmizzazione. Questa fase consiste nel modificare alcuni token,

tranne ad esempio i nomi propri o i nomi di luoghi, togliendo il suffisso (a seconda della struttura della parola). Le parole risultanti vengono dette stem e vengono generate in modo che parole simili (con lo stesso prefisso) siano rappresentate dallo stesso stem.

Esempio : i token uccidere, uccide, ucciso,uccisione possono essere ri- conosciuti dallo stesso stem ucci.

Il risultato dell’operazione di stemming consiste in un insieme di stem e di token (quelli che non son stati modificati durante la fase di stemming) detto BOW (Bag Of Words) [5].

A questo insieme di parole viene successivamente effettuata un’analisi statistica per il calcolo del peso di ogni singola parola in merito alla sua presenza nelle meta-informazioni di ogni film. Viene calcolato il TF-IDF

(Term Frequency-Inverse Document Frequency) [24]. Il Term Frequency `e

un peso che pu`o consistere nel numero delle occorrenze di una certa parola

nell’ambito di uno specifico oggetto. L’Inverse Document Frequency `e un

peso calcolato come l’inverso del numero di occorrenze di una certa parola in tutto il catalogo di oggetti (vi sono diversi metodi di calcolo che portano

a diversi vantaggi e svantaggi). Ad entrambi i pesi si pu`o applicare una

normalizzazione dividendo il valore per il numero totale di parole contenute nel BOW. Da questi due pesi ne viene calcolato uno unico che viene utiliz- zato per la costruzione della matrice ICM (Item Content Matrix). In tale matrice, che costituisce il vero e proprio modello prodotto dall’algoritmo, le righe corrispondono alle singole parole (stem o token) mentre le colonne corrispondono ai film. Ogni singola cella contiene il valore del peso calcolato attraverso TF-IDF.

Le colonne della matrice rappresentanti gli item, attraverso una serie di stem/token che li caratterizzano, formano dei vettori che vengono disegnati su un piano i cui assi sono formati dagli stessi stem. Successivamente si disegna nel piano il vettore utente, calcolato come la sommatoria dei voti espressi dall’utente moltiplicati per la colonna (della matrice ICM) relativa al film a cui corrisponde il voto.

Figura 2.6: Vettori Utente e Item

Il fatto che un item possa essere consigliato ad un utente viene stabilito considerano l’ampiezza dell’angolo tra il vettore utente e il singolo item. In particolare ne viene generalemente calcolato il coseno in modo da avere un risultato compreso tra un range ridotto di valori, -1 e 1, o addirittura 0 e 1 nel caso di voti impliciti. Gli N vettori rappresentanti i film che avranno i

valori del coseno pi`u alti (che indicano quindi similarit`a) verranno scelti ed

Documenti correlati