2015-01-22 8 views
5

Ho esaminato documenti e libri sui sistemi di raccomandazione e gli approcci suggeriti per costruirli. In molti di loro è stata data la competizione Netflix come esempio. Gli utenti di Netflix valutano i film (da 1 a 5). In quella competizione, i concorrenti hanno ricevuto un database di film e valutazioni corrispondenti da parte degli utenti, e si supponeva che avessero implementato un sistema in grado di prevedere meglio la valutazione dei film e l'utilizzo di quella valutazione avrebbe suggerito i film agli utenti.Sistema di raccomandazione di implementazione per apprendimento non supervisionato

Per la valutazione suggeriscono la convalida incrociata utilizzando le misure che utilizzano le valutazioni previste e reali come argomenti. Il punteggio previsto viene calcolato utilizzando la cronologia dell'utente e le sue valutazioni per i film.

Sto provando a creare un sistema di raccomandazione di notizie. Il problema che sto affrontando ora è che le notizie sono rilevanti solo per un breve periodo e quasi nessuno darebbe una valutazione alle notizie. Quindi, ho solo feedback impliciti (viste) e nessun feedback esplicito (valutazione). Inoltre nel problema Netflix vengono forniti con un database. Mi sto chiedendo come affrontare il problema della partenza a freddo, perché all'inizio nessuna notizia sarebbe stata letta (vista).

Sarò così grato se poteste suggerirmi come evitare il problema di avviamento a freddo e una volta avrò un algoritmo come potrei verificare se funziona bene.

Grazie!

+0

Sto costruendo un sistema di raccomandazione che utilizza anche solo il feedback implicito e la mia soluzione al problema di avviamento a freddo è di raccomandare solo gli articoli più popolari. Non è davvero una soluzione elegante, ma a volte potrebbe essere meglio di niente. Ho anche pensato che i consigli potessero contenere opzioni come "Non trovo questo articolo consigliato pertinente". Quale darebbe un feedback esplicito in aggiunta. Nel tuo caso potresti forse avere un raccomandazione demografica come raccomandazione di default che potrebbe raccomandare notizie in base al paese dell'utente (o in base al paese dell'indirizzo IP). –

+1

"Sto cercando di creare un sistema di suggerimenti per le notizie" https://sites.google.com/site/newsrec2013/ – dranxo

risposta

0

Per iniziare con questo progetto che si sta intraprendendo, suggerirei il clustering per trovare lo schema delle notizie che sono elementi rilevanti/popolari. Più funzioni incorporate in modo tale da aggiungere valore ai risultati (questa parte richiede un'attenta selezione, studio e analisi statistica).

Per le notizie consigliate: è possibile avere un approccio a più livelli, quindi supponiamo che la prima parte sia sottoposta a scansione di articoli "positivi"/contenenti determinate parole chiave da persone che hanno commentato tale articolo.

Allora forse il secondo approccio stratificato sarebbe quello di attraversare la risposta di riferimento di Twitter a tale articolo, a facebook come/traffico, a quante pinterest utente del perno di tale articolo, ecc ...

Si potrebbe anche verificare trend parole chiave da google, bing, ecc ... su argomenti particolari, ecco come fare per assicurarti che l'articolo che stai mostrando sia "rilevante"

Ti suggerisco anche di iniziare una piccola causa perché ci sono così tanti articoli nel web - magari guardare in focus su un argomento e poi generalizzarlo. Come si può notare, la popolarità di un 'articolo' è un po 'legata a certe voci che le persone seguono, quindi questo è un altro modo per trovare la pertinenza di quell'articolo.

Ecco più informazioni apprendimento non supervisionato: http://en.wikipedia.org/wiki/Unsupervised_learning

Si potrebbe anche voler guardare in Expectation Maximization per trovare quale variabili migliorerebbero i dati inosservato che hai ottenuto. Ecco una spiegazione completa di EM https://stats.stackexchange.com/questions/72774/numerical-example-to-understand-expectation-maximization

2

I film sono un caso d'uso eccellente per filtraggio collaborativo classica: sono articoli persone sono interessate a per un lungo periodo di tempo, ci sono relativamente pochi di loro, molte persone hanno interessi si sovrappongono, e le stelle hanno un senso. Le notizie sono completamente diverse. Piuttosto che filtrare in modo collaborativo, guarda al filtro basato sul contenuto. È qui che gli interessi delle persone si allineano agli identificatori dei contenuti (che potrebbero essere parole chiave sulla notizia o sull'editore o metadati sull'ora del giorno o sulla regione del mondo).I conteggi delle visualizzazioni sono la soluzione migliore per le informazioni sulle preferenze delle persone e consentono inoltre di utilizzare alcune tecniche di data mining come il mining delle regole di associazione.

Mentre si ha ancora il problema di avvio a freddo dell'utente - dove un nuovo utente nel proprio sistema non ha fornito alcuna informazione sulle sue preferenze, a meno che non lo si scarichi dal mining dei suoi tweet o interessi di Facebook o qualcosa del genere - - puoi evitare il problema di avviamento a freddo della voce. Invece di fare affidamento su notizie lette attraverso la tua comunità come unico modo per ottenere somiglianze di oggetti, puoi usare un altro corpus. In particolare, prova su Wikipedia e controlla WikiBrain (https://github.com/shilad/wikibrain). Questa è un'API attraverso la quale puoi ottenere la somiglianza di un concetto con un altro e applicarlo alle tue esigenze di raccomandazione.