Domanda

Ho un database di articoli che saranno indicizzati da Lucene, classificati da tag e mahout degli utenti.Gli articoli avranno un certo punteggio da taguire (l'utente può essere d'accordo o in disaccordo con un tag, i tag scoperti da Mahout verranno trattati come gli stessi dell'utente).

Voglio scoprire gli interessi dell'utente (magari interesse per un certo tag) dal profilo e dalla cronologia dell'interazione.

Come posso memorizzare gli interessi degli utenti?
E come posso usare l'interesse degli utenti per ordinare o filtrare al risultato della ricerca?

è possibile il mio approccio?Fattibile?Scalabile?
. Che tipo di tecniche e algoritmi posso usare?Si prega di suggerire!

È stato utile?

Soluzione

Sembra per lo più come un problema di ricerca, non un problema di raccomandazione. Si sta principalmente ordinando e filtrando i risultati di ricerca, in base ai tag. Come tale, penso che Lucene sia generalmente lo strumento per implementare, non mahout. (Anche se usando i classificatori di Mahout per imparare i tag è abbastanza giusto.)

Se vuoi davvero immaginare questo come un problema di raccomandazione, potrei dire che i tuoi articoli sono i tag. Ogni volta che interagisci con un tag, come visualizzare una pagina taggata x, y e z, poi che indica che sei un po 'più interessato a "Articoli" X, Y e Z. E poi il problema della raccomandazione qui è quello di suggerire nuovi tag di interesse.

Potresti provare a utilizzare un conteggio semplice di interazioni con un tag come "valutazione" numerica, anche se penso che non darà grandi risultati in un contesto di raccomandazione. L'uso del registro del conte è migliore, ma sente ancora male. Potresti ignorare il conteggio dell'interazione e usa semplicemente il fatto che l'utente e il tag hanno mai interagito o no - "Preferenze booleane".

Il modello di algoritmo di raccomandazione che corrisponde al meglio Questo input, che so, è il modello alternativo dei minimi quadrati che vedi in parallelalsfactorizationjob. Non so se è utilizzabile per te, ma questo è l'algoritmo che indagare se hai il tempo e l'inclinazione. Il suo input è più come una "forza di interazione" non una valutazione, e lo tratta in questo modo, ed è quello che hai qui.

Altri suggerimenti

Un sacco di volte è più facile rendere l'utente esplicitamente l'utente di dire quali tag sono interessati. Questo è ciò che fa un overflow dello stack, per esempio.Puoi aumentare il punteggio di qualche importo se il tag è quello che si interessano.

Se vuoi fare qualcosa di più implicito, Mahout ha un FAQ sulla raccomandazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top