patricio lópez juri implicit...

34
Implicit feedback Patricio López Juri Signals in the Silence: Models of Implicit Feedback in a Recommendation System for Crowdsourcing (2014) por: - Christopher H. Lin - Ece Kamar - Eric Horvitz

Upload: others

Post on 22-May-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Implicit feedbackPatricio López Juri

Signals in the Silence: Models of Implicit Feedback in a Recommendation System for Crowdsourcing (2014) por:- Christopher H. Lin- Ece Kamar- Eric Horvitz

Page 2: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Feedback

Page 3: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Explícito

● El usuario declara sus gustos y preferencias

● La GUI presenta elementos visuales para interactuar

Page 4: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Data Sparsity

Page 5: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Implícito

● Acciones que muestren interés (o desinterés) son registradas

Page 6: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

“Solucionado”

40%

40%

10%

10%

10%

10%

20% 20%

20%

90%

90%

Page 7: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Técnicas

Page 8: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Vecinos más cercanos

Page 9: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Matrix factorization

Page 10: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

● ‘m’ usuarios● ‘n’ items● ‘k’ factores latentes (número definido por nosotros)● Lambda: parámetro regulador (definido por nosotros)

Nuestro dataset

Queremos minimizar estoRating explícito

Queremos encontrar U y V

rowcolumn

Parámetro regulador

Page 11: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

¿Cómo integramos feedback implícito?

Page 12: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Matriz de señales: C

40%

40%

10%

10%

10%

10%

20% 20%

20%

90%

90%

● c_{i,j} ≥ 0○ La interacción implícita del

usuario ‘i’ con el ítem ‘j’.

Items

Usuarios

Page 13: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Matriz de activación: P

1

1

1

1

1

1

1 1

1

1

1

● P_{i,j} ≥ 0○ Indica si hubo interacción del

usuario ‘i’ con el ítem ‘j’.

Items

Usuarios

Page 14: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Peso: w

● Aquí se crea su propia función de peso respecto al valor de interacción implícita.

// TODO: Implement float f(int i, int j)

Page 15: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Peso

Interacción o noQueremos minimizar esto

Cantidad de valores distintos a 0 en P

Complejidad:

Page 16: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Feedback negativo

Page 17: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Matriz de señales negativas: D

1s

5s

5s

1s

1s

3s

2s 4s

2s

1s

4s

● d_{i,j} ≥ 0○ La interacción implícita negativa

del usuario ‘i’ con el ítem ‘j’.

Items

Usuarios

Page 18: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Peso: w

● Aquí se crea su propia función de peso respecto al valor de interacción implícita

positiva y negativa. Para lo positivo

Para lo negativo

Misma matriz de activación

Page 19: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Sampling-Based Learning

Page 20: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Sampling-Based Learning

Generamos varias matrices de P. Donde para cada celda de cada matriz (gamma):

● Si p_{i,j} es 1:

● Si p_{i,j} es 0:

Page 21: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1

1

1

1

1

1

1 1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1 1

1

1

P

P^gamma

P^1

...

Omitido el feedback negativo para simplicidad

Page 22: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Sampling-Based Learning

● Corremos el mismo algoritmo para cada matriz P^gamma ● Tenemos una distribución para cada posible rating en la matriz de

Usuarios x Items

Page 23: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Experimento● Recomendar tareas en un sistema crowdsourcing● Si trabajadores hacen muchas tasks, es feedback positivo● Tasks que aparecen harto pero son ignoradas, es feedback negativo.

Page 24: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Resultados MPR (menos es mejor)

Page 25: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Resultados con pocos datos Con negativo

Con negativos y sampled

Solo positivos

Solo positivos y sampled

Page 26: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Resultados con muchos datos Con negativo

Con negativos y sampled

Solo positivos

Solo positivos y sampled

Page 27: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Otras ventajas de MF

Page 28: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Clustering

● Podemos utilizar U y V para hacer clusters● Podemos usar PCA (Principal component analysis) para reducir aún más la

dimensionalidad hasta 2 dimensiones

Page 29: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Clustering

Page 30: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

¿Cómo partir aplicando esto?

Page 31: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Ejemplo:

Tiempo viendo una publicación en Facebook

Facebook captura el tiempo que le dedicas a cada publicación, pues da indicios sobre cierto interés tuyo sobre esta.

Podemos usar Javascript y React.js para hacer algo similar.

http://www.slate.com/blogs/future_tense/2015/06/16/facebook_s_new_attention_tracking_feature_is_super_creepy.html

Page 32: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Medimos el tiempo que se mantiene en la pantalla

Page 33: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Page 34: Patricio López Juri Implicit feedbackdparra.sitios.ing.uc.cl/classes/recsys-2016-2/students/IF-PLopez.pdf · Si p_{i,j} es 1: Si p_{i,j} es 0: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Conclusiones e Interrogantes

● Podemos obtener más datos que con solo feedback explícito.● El método de sampling puede pasar por alto recomendaciones obvias.

● ¿Qué pasó con el feedback explícito? ¿Cómo lo volvemos a incorporar?● ¿Si tengo más fuentes de feedback implícito (positivo y/o negativo)?

○ ¿Debería bastar con modificar la función de peso o hay que darle un enfoque ‘híbrido’?.

● ¿Es correcto monitorear tanto al usuario sin su consentimiento?