Tutto quello che devi Sapere Su Filtraggio Collaborativo
- Prendere una Demo di Classe
- Tipi di filtro collaborativo
- Algoritmo basato sulla memoria o di prossimità più vicina
- Model-Based Collaborative Filtering
- Filtro collaborativo ibrido
- Filtraggio Collaborativo Esempio
- Dataset
- Creazione dell’algoritmo di filtraggio collaborativo
- Algoritmo di filtraggio collaborativo basato sulla memoria
- Calcolo del Rating
- Limitazioni del filtro collaborativo
- Applicazioni di Collaborative Filtering Recommender Systems
Prendere una Demo di Classe
(forniscono i dati di contatto, link per il download verrà inviato via email in pochi secondi)
Prima di entrare in concetti di base, come il filtraggio collaborativo recommender sistemi collaborativi e di algoritmi di filtraggio, facciamo capire recommender systems.
Un sistema di raccomandazione mira a prevedere la preferenza di un utente, al fine di’ raccomandare ‘ un elemento, che potrebbe essere un prodotto come vestiti, o potrebbe essere film, servizi, ecc., i sistemi di recommender sono diventati molto importanti oggi a causa dell’eccedenza di opzioni in ogni dominio, e loro aiutano aziende meglio collocano i loro prodotti o servizi per movimento aumentato.
Esistono due modi per creare un sistema di raccomandazione; uno è basato sul contenuto e l’altro è il filtraggio collaborativo. Vedremo il filtro collaborativo in modo approfondito in questo articolo, insieme ad esempi di filtro collaborativo.
35% di Amazon.com le entrate sono generate dal suo motore di raccomandazione.
Ci sono due modi, o sensi, in cui il filtro collaborativo esegue i sistemi di raccomandazione, e questo è uno stretto e uno più generale.
In senso stretto, il filtro collaborativo funziona prevedendo le preferenze di un utente, raccogliendo e studiando le preferenze di molti altri utenti simili.
Scarica il curriculum dettagliato e ottieni l’accesso gratuito alla sessione di orientamento
Ora: 10:30 AM – 11:30 AM (IST / GMT + 5:30)
Per esempio, se l’utente A e l’utente B, entrambi preferiscono la stessa lavatrice, le altre preferenze dell’utente B può essere qualcosa di Un utente sarà interessato dal momento che i gusti e le esigenze sono simili. Questo è, ovviamente fatto prendendo in considerazione molti utenti diversi e numerose preferenze e reazioni, da qui il termine, filtraggio collaborativo.
Collaborative Filtering Source – Recommender System
In un senso più generale, collaborative filtering è il processo di predire le preferenze di un utente studiando la loro attività per derivare modelli.
Ad esempio, studiando le simpatie, le antipatie, i salti e le visualizzazioni, un sistema di raccomandazione può prevedere ciò che piace a un utente e ciò che non gli piace.
La differenza tra il filtro collaborativo e il filtro basato sui contenuti è che il primo non ha bisogno di informazioni sugli elementi, ma funziona invece sulle preferenze dell’utente.
Tipi di filtro collaborativo
Algoritmo basato sulla memoria o di prossimità più vicina
Sistema di raccomandazione Source-Towards Data Science
Questo metodo utilizza un sistema di classificazione per prevedere le preferenze di un utente prendendo in considerazione le preferenze di un utente simile o del “vicino”. Esistono due modi per calcolare le preferenze, il filtro collaborativo basato sull’utente e il filtro collaborativo basato sugli elementi.
Consideriamo innanzitutto il filtro collaborativo basato sull’utente. Diciamo che abbiamo una matrice di valutazioni n x m, per l’utente uᵢ, i = 1, n n e item pⱼ, j=1, m m. Diciamo che dobbiamo prevedere la valutazione dell’elemento rᵢⱼ, un elemento j che l’utente i non ha guardato/valutato. Come funziona questo metodo, è quello di calcolare le preferenze dell’utente i e abbinarle ad altri utenti, selezionare i primi utenti X simili, prendere le loro valutazioni per l’elemento Rᵢⱼ e trovare la media ponderata per prevedere la possibile valutazione/preferenza dell’utente i dell’elemento.
Prendendo in considerazione il fatto che alcuni utenti tendono ad essere troppo indulgenti, dando valutazioni elevate per gli elementi che in realtà non piace, mentre alcuni utenti tendono ad essere troppo severi, dando valutazioni basse anche per gli elementi che piace, questo metodo di filtraggio collaborativo corregge la formula per sbarazzarsi del pregiudizio. Per correggere questo, sottraiamo la valutazione media di ogni utente di tutti gli elementi quando calcoliamo la media ponderata e quindi la aggiungiamo indietro per l’utente di destinazione:
La somiglianza può essere calcolata in 2 modi: correlazione di Pearson e somiglianza del coseno.
Riassumendo questo metodo, l’idea è di trovare gli utenti più simili al nostro utente target in termini di preferenze, pesare le loro valutazioni per un articolo e prevederlo come valutazione potenziale per il nostro utente target, per l’articolo selezionato.
Nel filtro collaborativo basato su elementi, confrontiamo due elementi e assumiamo che siano simili quando un utente fornisce ai due elementi valutazioni simili. Prevediamo quindi la valutazione dell’utente per un articolo calcolando la media ponderata delle valutazioni sulla maggior parte degli articoli simili di X di questo utente. Vedi l’immagine qui sotto come esempio.
Item-Based Filtering Source – Medium
Model-Based Collaborative Filtering
In questo metodo di collaborative filtering recommender systems, diversi algoritmi di data mining e machine learning vengono utilizzati per sviluppare un modello per prevedere la valutazione di un utente di un articolo senza rating. Alcuni esempi di questi modelli sono le reti bayesiane, i modelli di clustering, la decomposizione del valore singolare, l’analisi semantica latente probabilistica, il fattore moltiplicativo multiplo, l’allocazione latente di Dirichlet e i modelli basati sui processi decisionali di Markov.
Filtro collaborativo ibrido
Questo metodo combina i sistemi di filtraggio collaborativo basati su memoria e basati su modelli per eliminare limitazioni come la scarsità e la perdita di informazioni. Questo metodo, tuttavia, è più complesso da costruire.
Scarica il curriculum dettagliato e ottieni l’accesso gratuito alla sessione di orientamento
Ora: 10:30 AM – 11:30 AM (IST / GMT + 5:30)
Filtraggio Collaborativo Esempio
Per ottenere una buona comprensione di filtraggio collaborativo recommender systems, prendiamo in tempo reale filtraggio collaborativo esempio e costruire un algoritmo di filtraggio collaborativo in Python. Il primo passo è definire il set di dati. Se sei un principiante in Python, dai un’occhiata a questo articolo di conoscenza:
Dataset
Per questo esempio di filtro collaborativo, è necessario prima accumulare dati che contengono un insieme di elementi e utenti che hanno reagito a questi elementi. Questa reazione può essere esplicita, come una valutazione o un mi piace o non mi piace, o può essere implicita, come la visualizzazione di un elemento, aggiungendolo a una lista dei desideri, o la lettura di un articolo.
Questi set di dati sono solitamente rappresentati come una matrice che consiste in un insieme di utenti, elementi e le reazioni date da questi utenti a questi elementi. Ecco un esempio:
Una matrice con cinque utenti e cinque elementi Source – Real Python
Questa matrice rappresenta cinque utenti u1-u5, che hanno valutato cinque elementi i1-i5, tra le valutazioni 1-5 (anche senza valutazioni). Nella maggior parte dei casi, queste matrici hanno più celle vuote di quelle piene, perché è molto improbabile che molti utenti valutino molti degli elementi nell’elenco. Questa è nota come matrice sparsa.
È possibile utilizzare questo elenco di origini dati di alta qualità per i progetti di algoritmo di filtraggio collaborativo. Un buon punto di partenza è il set di dati MovieLens 100k che contiene 100.000 valutazioni per 1682 film forniti da 943 utenti, con ogni utente che ha valutato almeno 20 film.
Mentre il set di dati ha molti campi utili, quelli che stiamo concentrando in particolare sono:
u.item: the list of moviesu.data: the list of ratings given by users
Il file u. data contiene un elenco separato di valutazioni e ID utente, ID elemento, valutazione e timestamp. Ecco un esempio:
Prime 5 righe di MovieLens 100k Data Source – Real Python
L’intero file contiene dati per 100.000 tali valutazioni.
Creazione dell’algoritmo di filtraggio collaborativo
L’idea alla base dell’esecuzione di questo progetto è to 1. Identificare gli utenti con preferenze simili e poi 2. Prevedere una valutazione per un film da parte di un utente, che non lo ha ancora valutato. Dovremo anche prendere in considerazione l’accuratezza dei nostri risultati.
1 e 2 sono ottenuti utilizzando diversi set di algoritmi. Un punto importante da ricordare è che non siamo preoccupati per l’età degli utenti del campione, la demografia, ecc. o il genere dei film, ecc. Tutto ciò di cui ci occupiamo sono valutazioni implicite e/o esplicite per questi film da parte di questi utenti.
Per misurare l’accuratezza del nostro risultato, possiamo usare opzioni come Root Mean Square Error o Mean Absolute Error.
Algoritmo di filtraggio collaborativo basato sulla memoria
In questo metodo, stiamo cercando di prevedere la valutazione R che un utente U potrebbe dare a un elemento (il film) I.
Il primo passo è trovare utenti che hanno preferenze simili all’utente U, quindi calcolare la valutazione R.
Ecco un esempio di come troviamo utenti con preferenze simili. Considera il piccolo set di dati:
Queste sono valutazioni per 2 film, fornite da 4 utenti A, B, C e D. Tracciando le valutazioni, il grafico assomiglia a questo:
Tracciare la fonte delle valutazioni-Real Python
La distanza tra i punti della trama è un modo per avere un’idea delle somiglianze di interesse. Possiamo usare il seguente programma per calcolare la distanza:
da scipy import spatial
Stiamo usando scipy.spaziale.distanza.funzione euclidea per calcolare la distanza. Stiamo calcolando la distanza di C da A, B e D. Siamo in grado di vedere, dal risultato e dalla tabella stessa, che C è la più vicina a B., Ma anche, ci piacerebbe sapere di A e D, che è la più vicina a C. in termini di distanza, possiamo dire D, ma guardando la tabella si può dire che A e C sono più allineati, perché sia come film 2 due volte tanto come film 1 (considerando rapporti e non l’effettiva valutazione), mentre l’utente D ama i film di quasi altrettanto, indicando la loro preferenza può essere diverso. Ciò che la distanza euclidea non può prevedere, possiamo eventualmente derivare dall’angolo della linea che collega gli utenti. Unendo gli utenti, il grafico sarebbe simile a:
Possiamo vedere che minore è l’angolo tra due linee, più simili sono i loro riferimenti. Per trovare questo nel programma, possiamo eseguire quanto segue:
Puoi vedere che la somiglianza del coseno tra a e b è 0, indicando una stretta somiglianza. L’uso della distanza euclidea e della somiglianza del coseno è 2 dei diversi metodi che è possibile utilizzare per calcolare la somiglianza in preferenza.
Calcolo del Rating
Una volta identificati gli utenti con preferenze simili al nostro utente U, andiamo a prevedere il rating R U darebbe per un film se non hanno ancora valutato. Ancora una volta, ci sono molti modi per andare su questo.
Un modo semplice è trovare la media delle valutazioni date per quel film dagli utenti migliori simili. L’espressione matematica sarebbe:
La formula matematica per la valutazione media data dagli utenti n Source – Real Python
Puoi anche optare per un approccio ponderato se nei primi utenti simili c’è molta differenza di opinione. Ciò significherebbe dare all’utente simile più vicino più peso e quindi pesi discendenti. L’espressione sarebbe:
Limitazioni del filtro collaborativo
Un essere, non prende in considerazione i metadati. Gli utenti potrebbero valutare un film in base alle loro preferenze per l’attore in esso, ad esempio, ma il filtraggio collaborativo non terrà conto di questo.
Un altro inconveniente è che il filtraggio collaborativo non è molto efficace a meno che molti utenti non abbiano valutato molti articoli. Solo allora può fare la migliore corrispondenza per un pubblico simile e quindi prevedere la valutazione.
Poiché il filtraggio collaborativo ha bisogno di enormi set di dati, per essere in grado di ottenere utenti con strette somiglianze, c’è spesso il problema della scarsità di dati. Come abbiamo visto in precedenza, una matrice sparsa è una con più celle vuote di quelle piene, il che è quasi sempre il caso.
La scalabilità è un altro problema, poiché l’algoritmo di filtraggio collaborativo viene solitamente scritto considerando n utenti. Man mano che il set di dati cresce, il programma complessivo può diventare enorme.
Applicazioni di Collaborative Filtering Recommender Systems
Collaborative Filtering Recommender Systems Source – Real Python
Collaborative Filtering trova il massimo utilizzo nel social web. Vedrai il filtraggio collaborativo in azione su applicazioni come YouTube, Netflix e Reddit, tra molti altri. Queste applicazioni utilizzano filtri collaborativi per raccomandare video / post che l’utente è più probabile che piace in base al loro algoritmo predittivo.
Il filtro collaborativo è un metodo popolare per i programmi di raccomandazione, nonostante le limitazioni. Viene anche utilizzato nelle piattaforme di e-commerce per raccomandare prodotti, in base agli acquisti da parte di utenti di preferenze o gusti simili.
Come programmatore, è necessario mescolare algoritmi per rendere più preciso il filtraggio collaborativo e anche mescolare metodi o previsioni per ottenere risultati più accurati. Il capitolo Recommender Systems nel libro Mining Massive Dataset è anche una grande fonte di informazioni sul filtraggio collaborativo.
Scarica il curriculum dettagliato e ottieni l’accesso gratuito alla sessione di orientamento
Ora: 10:30 AM – 11:30 AM (IST / GMT + 5:30)
Abbiamo anche una Guida Completa su Come Diventare un Data Scientist, che è qualcosa di più di machine learning per gli appassionati di aspirare a diventare.
Per ottenere il giusto skillset di scienza dei dati, dovresti iscriverti a un corso di scienza dei dati. Questo ti aiuterà ad elevare la tua carriera come scienziato dei dati.