b"\n_START_ARTICLE_\nMatrix factorization\n_START_PARAGRAPH_\nLa Matrix factorization (MF), o fattorizzazione di matrice, \xc3\xa8 una classe di algoritmi collaborative filtering usata nei sistemi di raccomandazione. Gli algoritmi di matrix factorization operano decomponendo la matrice di interazioni user-item nel prodotto di due matrici rettangolari dalla dimensionalit\xc3\xa0 inferiore. Questa famiglia di metodi divenne nota durante la Netflix Prize challenge, grazie alla sua efficacia dimostrata da Simon Funk in un post sul suo blog datato 2006.\n_START_SECTION_\nTecniche\n_START_PARAGRAPH_\nL'idea alla base della matrix factorization \xc3\xa8 di rappresentare utenti e item in uno spazio latente di dimensionalit\xc3\xa0 inferiore. Dall'iniziale proposta di Simon Funk risalente al 2006 una moltitudine di varianti sono state proposte. Alcune delle pi\xc3\xb9 note e semplici sono illustrate nelle sezioni seguenti.\n_START_SECTION_\nFunk SVD\n_START_PARAGRAPH_\nL'algoritmo originale proposto da Simon Funk nel suo blog post fattorizzava la matrice dei rating user-item come il prodotto di due matrici rettangolari dalla dimensionalit\xc3\xa0 inferiore, la prima ha una riga per ogni utente mentre la seconda una colonna per ogni item. La riga associata ad uno specifico utente e la colonna associata ad uno specifico item \xc3\xa8 detta contenere i suoi fattori latenti. Si noti che, nonostante il nome, FunkSVD non utilizza la decomposizione ai valori singolari SVD. I rating predetti possono essere calcolati come , dove \xc3\xa8 la matrice di interazioni utente-item,  contiene i fattori latenti dell'utente e  i fattori latenti dell'item._NEWLINE_Nello specifico, la predizione del rating che l'utente u dar\xc3\xa0 all' item i \xc3\xa8 calcolata come:_NEWLINE_\xc3\x88 possibile variare il potere espressivo del modello cambiando il numero di fattori latenti. \xc3\x88 stato dimostrato che una matrix factorization con un solo fattore latente \xc3\xa8 equivalente a un algoritmo most popular o top popular  (es. raccomando gli item pi\xc3\xb9 popolari, senza alcuna personalizzazione). Aumentare il numero di fattori latenti permette di migliorare la personalizzazione, quindi la qualit\xc3\xa0 delle raccomandazioni, finch\xc3\xa9 il loro numero diventer\xc3\xa0 troppo alto e il modello incorrer\xc3\xa0 in overfitting. Una strategia comune per evitare l'overfitting \xc3\xa8 di aggiungere dei termini di regolarizzazione alla funzione obiettivo. FunkSVD fu sviluppato per la predizione di rating, pertanto rappresenta le interazioni utente-item come valori numerici._NEWLINE_Nel complesso, FunkSVD minimizza la funzione obiettivo seguente:_NEWLINE_Dove  \xc3\xa8 la norma frobenius mentre le altre norme possono essere frobenius o meno a seconda di cosa funzioni meglio per quello specifico contesto.\n_START_SECTION_\nSVD++\n_START_PARAGRAPH_\nSebbene FunkSVD riesca a fornire raccomandazioni di buona qualit\xc3\xa0, la sua capacit\xc3\xa0 di gestire solo interazioni user-item esplicite numeriche costituisce una limitazione. I sistemi di raccomandazione utilizzati al giorno d'oggi devono riuscire a sfruttare tutti i tipi di interazione, sia espliciti (es. ratings numerici) che impliciti (es. likes, acquisti, preferiti). SVD++ fu sviluppato per prendere in considerazione anche interazioni di tipo implicito. Inoltre rispetto a FunkSVD, SVD++ considera anche il bias di item e utente. _NEWLINE_Nello specifico, la predizione del rating che l'utente u dar\xc3\xa0 all'item i \xc3\xa8 calcolata come:_NEWLINE_SVD++ ha per\xc3\xb2 alcuni svantaggi, il principale \xc3\xa8 il non essere model-based, ci\xc3\xb2 significa che, se un nuovo utente si iscrive, l'algoritmo non \xc3\xa8 in grado di raccomandargli nulla a meno che l'intero modello sia riaddestrato. Nonostante il sistema possa aver raccolto alcune interazioni per quell'utente, i suoi fattori latenti non sono comunque disponibili e quindi nessuna raccomandazione pu\xc3\xb2 essere calcolata. Ci\xc3\xb2 \xc3\xa8 un esempio di cold-start, ossia il sistema di raccomandazione non riesce a gestire efficacemente nuovi item o utenti, pertanto sono necessarie delle misure ad-hoc._NEWLINE_Una possibilit\xc3\xa0 per affrontare il cold start \xc3\xa8 di modificare SVD++ in modo che diventi model-based, affinch\xc3\xa9 possa gestire pi\xc3\xb9 agevolmente nuovi item o utenti._NEWLINE_Come menzionato in precedenza in SVD++ non sono disponibili i fattori latenti per nuovi utenti, pertanto  \xc3\xa8 necessario rappresentarli in modo diverso. I fattori latenti dell'utente rappresentano la sua preferenza per i corrispondenti fattori latenti dell'item, pertanto i fattori latenti dell'utente possono essere stimati in base alle sue passate interazioni. Se il sistema \xc3\xa8 in grado di raccogliere delle interazioni, allora \xc3\xa8 possibile stimare i suoi fattori latenti. Si noti che questo non risolve completamente il problema del cold-start, in quanto il sistema di raccomandazione comunque richiede delle interazioni per i nuovi utenti, ma almeno non \xc3\xa8 pi\xc3\xb9 necessario riaddestrare l'intero modello ogni volta. \xc3\x88 stato dimostrato che questa formulazione \xc3\xa8 quasi equivalente ad un modello di tipo SLIM, ossia un recommender item-item model based._NEWLINE_In questa formulazione, il recommender item-item recommender corrispondente sarebbe . Pertanto la similarity matrix S \xc3\xa8 simmetrica.\n_START_SECTION_\nAsymmetric SVD\n_START_PARAGRAPH_\nAsymmetric SVD cerca di conservare i vantaggi di SVD++ pur essendo model based, quindi in grado di gestire nuovi utenti purch\xc3\xa9 essi abbiano almeno qualche interazione.  Rispetto alla versione model based di SVD++ la matrice di fattori latenti H \xc3\xa8 sostituita da Q, in quanto \xc3\xa8 diverso quanto si vuole rappresentare, la preferenza dell'utente come funzione dei suoi rating._NEWLINE_Nello specifico, la predizione del rating che l'utente u dar\xc3\xa0 all'item i \xc3\xa8 calcolata come:_NEWLINE_In questa formulazione, il recommender item-item recommender corrispondente \xc3\xa8 . Poich\xc3\xa9 le matrici Q e W sono diverse, la matrice di similarit\xc3\xa0 S sar\xc3\xa0 asimmetrica, da ci\xc3\xb2 deriva il nome del modello.\n_START_SECTION_\nMatrix factorization ibrido\n_START_PARAGRAPH_\nRecentemente molti altri modelli di fattorizzazione sono stati sviluppati per sfruttare il sempre crescente volume e variet\xc3\xa0 di interazioni e casi d'uso. Gli algoritmi ibridi di matrix factorization sono in grado di fondere interazioni implicite ed esplicite o informazioni di tipo collaborativo e content\n_START_SECTION_\nDeep-Learning Matrix factorization\n_START_PARAGRAPH_\nNegli ultimi anni sono stati proposti un cospicuo numero di algoritmi neurali o basati su deep-learning, alcuni dei quali generalizzano il tradizionale problema di Matrix factorization tramite una architettura neurale non lineare ._NEWLINE_Sebbene il deep-learning sia stato applicato in molteplici scenari: context-aware, sequence-aware, tagging su social network etc. la sua reale efficacia quando applicato ad un semplice problema di Collaborative filtering \xc3\xa8 stata messa in dubbio. Una analisi sistematica di pubblicazioni che propongono nuovi algoritmi di deep-learning o neurali applicati ad un problema di raccomandazioni top-k, pubblicati in conferenze di alto livello (SIGIR, KDD, WWW, RecSys), ha mostrato come, mediamente, meno del 40% degli articoli abbia risultati riproducibili, con un minimo del 14% in alcune conferenze. Complessivamente, lo studio identifica 18 articoli, solo 7 dei quali hanno risultati riproducibili e ben 6 di tali algoritmi possono essere superati da tecniche molto pi\xc3\xb9 semplici e vecchie, quando ottimizzate correttamente. L'articolo evidenzia diversi potenziali problemi nella ricerca scientifica attuale nel settore dei sistemi di raccomandazione e invita a rafforzare le pratiche sperimentali utilizzate. Osservazioni simili sono state presentate anche nel caso dei sistemi di raccomandazioni basati su sequenze."