Come si dovrebbero trattare i dati impliciti nella raccomandazione


9

Un sistema di raccomandazioni tiene un registro di quali raccomandazioni sono state fatte a un determinato utente e se quell'utente accetta la raccomandazione. È come

user_id item_id result
1       4       1
1       7       -1
5       19      1
5       80      1

dove 1 indica che l'utente ha accettato la raccomandazione mentre -1 indica che l'utente non ha risposto alla raccomandazione.

Domanda: se ho intenzione di formulare raccomandazioni per un gruppo di utenti in base al tipo di registro descritto sopra e desidero massimizzare i punteggi MAP @ 3, come devo gestire i dati impliciti (1 o -1)?

La mia idea è di trattare 1 e -1 come valutazioni e prevedere la valutazione usando algoritmi di tipo macchine di fattorizzazione. Ma questo non sembra giusto, data l'asimmetria dei dati impliciti (-1 non significa che la raccomandazione non piaccia all'utente).

Modifica 1 Pensiamoci nel contesto di un approccio di fattorizzazione a matrice. Se trattiamo -1 e 1 come voti, ci sarà qualche problema. Ad esempio, all'utente 1 piace il film A che segna il punteggio più alto in un fattore (ad esempio con musica di sottofondo gloriosa) nello spazio del fattore latente. Il sistema raccomanda il film B che ha anche un punteggio elevato nella "musica di sottofondo gloriosa", ma per qualche ragione l'utente 1 è troppo impegnato per esaminare la raccomandazione, e abbiamo un film con rating -1 B. Se trattiamo solo 1 o -1 allo stesso modo , quindi il sistema potrebbe essere scoraggiato a raccomandare i film con la gloriosa BGM all'utente 1 mentre l'utente 1 ama ancora i film con la gloriosa BGM. Penso che questa situazione debba essere evitata.


Non c'è problema che -1 non significhi antipatia. È semplicemente un modo per differenziare il fatto che qualcuno abbia visto l'oggetto. In tal senso, trasporta più informazioni di un valore mancante. Potrebbe effettivamente aumentare la precisione della tua raccomandazione. A seconda della metrica della distanza raccomandata, potresti prendere in considerazione la possibilità di cambiarla da un valore di -1 a un leggero, in modo da non influenzare la distanza.
cwharland,

1
L'articolo canonico per il feedback implicito è Hu, Koren e Volinsky . Ci sono un sacco di buoni consigli, tra cui la stima della fiducia in cui -1 indica una antipatia o semplicemente un "non visto".
Trey,

Risposte:


5

Il tuo sistema non è solo addestrato sugli articoli consigliati, giusto? in tal caso hai un grande circuito di feedback qui. Spero che tu voglia imparare da tutti i clic / visualizzazioni.

Suggerisci che non guardare un oggetto sia un segnale negativo. Consiglio vivamente di non trattarlo in questo modo. Non interagire con qualcosa è quasi sempre meglio trattato come nessuna informazione. Se hai un segnale esplicito che indica una antipatia, come un voto negativo (o, forse hai guardato 10 secondi di un video e fermato), forse è valido.

Non definirei questo input come dati di valutazione. (Anche se nel tuo caso, potresti cavartela.) Pensa invece a loro come pesi, che è esattamente il trattamento nel documento di Hu Koren Volinsky sulla SLA che @Trey menziona in un commento. Ciò consente di registrare la forza relativa delle interazioni positive / negative.

Infine, vorrei notare che questo documento, sebbene sia molto probabile che sia quello che stai cercando, non prevede pesi negativi. È semplice estenderlo in questo modo. Se arrivi così lontano, posso indicarti l'estensione semplice, che esiste già in due implementazioni di cui sono a conoscenza, in Spark e Oryx .


2
Penso che sia ragionevole imputare lievi valori negativi per oggetti che sono stati visti molte volte ma mai scelti. L'OP non indica che hanno accesso ai dati che qualificano queste imputazioni negative, ma non escluderei completamente questa tattica. L'entità ottimale del valore negativo può essere determinata dai dati. Ho avuto piccoli guadagni nel fare questo in scenari recsys. In ogni caso ... suggeriresti altri modi di differenziare tra l'oggetto visto una volta e non scelto rispetto a N volte visto e mai scelto oltre all'imputazione negativa?
cwharland,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.