Sistemas de recomendación dinámica

14

Un sistema de recomendación mediría la correlación entre las calificaciones de diferentes usuarios y generaría recomendaciones para un usuario determinado sobre los elementos que pueden ser de su interés.

Sin embargo, los gustos cambian con el tiempo, por lo que las clasificaciones anteriores podrían no reflejar las preferencias actuales y viceversa. Es posible que alguna vez haya puesto "excelente" en un libro que ahora calificaría como "no demasiado desagradable" y así sucesivamente. Además, los intereses mismos también cambian.

¿Cómo deberían funcionar los sistemas de recomendación en un entorno cambiante?

  1. Una opción es cortar las calificaciones "antiguas", que pueden funcionar bien suponiendo que defina correctamente "antiguas" (incluso puede decir que las calificaciones nunca caducan y pretender que el problema no existe). Pero no es la mejor opción posible: por supuesto, los gustos evolucionan, es un flujo de vida normal, y no hay ninguna razón por la que no podamos usar el conocimiento adicional de las calificaciones pasadas una vez correctas.
  2. Otra opción es acomodar de alguna manera este conocimiento adicional. Por lo tanto, no solo podríamos encontrar una "coincidencia instantánea" para sus intereses actuales, sino sugerirle las cosas que le pueden gustar a continuación (a diferencia de las cosas que le pueden gustar ahora ).

No estoy seguro si estoy explicando esto lo suficientemente bien. Básicamente, estoy a favor del segundo enfoque y estoy hablando de un sistema de recomendación que mediría las correlaciones de las trayectorias del gusto y ofrecería recomendaciones que satisfarán ... bueno, llamémoslo crecimiento personal, porque vendrán de personas cuyo La "trayectoria de gustos" (y no solo la "instantánea de gustos") es similar a la suya.

Ahora la pregunta: me pregunto si ya existe algo similar a la "opción 2" y, si es así, me pregunto cómo funciona. ¡Y si no existe, puede discutir cómo debería funcionar! :)

andreister
fuente

Respuestas:

8

Realmente recomiendo el papel Filtrado colaborativo con dinámica temporal de Yehuda Koren (¡Concurso de Netflix!) Donde este tema se discute en detalle.

Estoy de acuerdo con el autor, que la primera opción ("cortar") no es el camino a seguir. Es cierto que las preferencias obsoletas se ignoran de esa manera, pero a) algunas preferencias nunca cambian, por lo tanto, uno mata los datos para identificar los árboles de hoja perenne yb) algunas preferencias en el pasado son necesarias para comprender las preferencias del futuro ( Por ejemplo, compre la temporada 1 -> es probable que compre la temporada 2).

Sin embargo, Koren no intenta identificar tales trayectorias explícitamente (es decir, para poder predecir futuros comportamientos de cambio de un usuario), ya que esta es una tarea muy muy difícil. Puede imaginar esto teniendo en cuenta que las "estaciones" de preferencia a lo largo de una trayectoria NO están sujetas al tiempo, sino al desarrollo personal de un usuario, tal vez interrumpido o atravesado por otras trayectorias o expresado simplemente de una manera diferente. Por ejemplo, si uno pasa de películas de acción dura a películas de acción, no existe una "película de acción suave" definitiva o algo así. El usuario puede ingresar a esta área en cualquier momento (en tiempo y espacio de elementos). Estos problemas combinados con la escasez de datos hacen que sea casi imposible crear un modelo factible aquí.

En cambio, Koren intenta separar los datos pasados ​​en señales de patrones a largo plazo y ruido diario para aumentar la efectividad de las predicciones de calificación. Aplica este enfoque tanto a SVD como a un simple modelo colaborativo de neigborbood. Lamentablemente, todavía no he terminado con las matemáticas, por lo que no puedo proporcionar más detalles al respecto.

Nota adicional sobre modelado explícito de las trayectorias.

El área de Minería de secuencias proporciona métodos para hacer, pero el punto crítico es encontrar una representación abstracta adecuada de los elementos (ya que el uso de los elementos en sí no funcionará debido a la escasez), por ejemplo, la agrupación en etiquetas. Sin embargo, si bien este enfoque puede proporcionar algunas ideas sobre el comportamiento de algunos usuarios (¡Minería de datos!), Puede no ser relevante cuando se trata de la aplicación para todos los clientes (es decir, la masa), por lo que el modelado implícito como sugiere Koren podría ser mejor al final.

steffen
fuente
El artículo de Yehuda está muy cerca de lo que estaba hablando, aunque en realidad no habla de "trayectorias gustativas". Quizás tengas razón y la "tasa de cambio de sabor" no sea fija para ninguna persona. ¡Gracias por el enlace!
andreister
Sí, esto es lo primero que pensé.
Stumpy Joe Pete
2

No conozco un sistema que funcione, pero no me sorprendería que Amazon, NetFlix o alguien tenga dicho sistema. Incluso el motor de búsqueda de Google podría tener un tipo similar de sistema.

Pensé en esto mientras tomaba el curso del Dr. Ng el semestre pasado. El enfoque que primero pensé que sería óptimo sería agregar un factor de ponderación basado en la edad. Cuanto más actual sea un dato, mayor será su ponderación. Este enfoque sería relativamente simple y computacionalmente económico de implementar.

Sin embargo, después de pensar en este enfoque con más cuidado, creo que tiene serias fallas para muchas aplicaciones. Personalmente, a menudo seguiré un género o espectáculo durante algún tiempo, me cansaré, pasaré a otra cosa, pero volveré al género original más tarde. Este ciclo de agotamiento y reaparición también aparece en la sociedad.

Por lo tanto, me estoy inclinando hacia un sistema un poco más complicado. Los datos tendrían que dividirse en dos conjuntos; datos actuales: el umbral tendría que variar según la aplicación más la duración de las interacciones del individuo, lo que se ponderaría más y los datos "históricos" que se calificarían más bajos con una disminución lenta de los valores a lo largo del tiempo. En segundo lugar, se incluiría un factor para tratar de detectar el "desvío" donde un gran interés o participación desaparece repentinamente. Los datos "actuales" que se clasifican de manera similar se reclasificarían como si fueran históricos.

Ninguno de estos enfoques tiene rigor o validación, pero creo que valdría la pena construir algunos ensayos de la hipótesis.


fuente
De hecho, su idea de pesos más bajos para datos antiguos es similar a la "opción 1". En cambio, estoy diciendo que toda la trayectoria del cambio de sabor es importante, es decir, si ayer te gustó el género A y hoy te gusta el género B, el sistema vería a otras personas con el mismo "AB- ??" prueba los movimientos y sugeriría que mañana te gustaría el género C.
andreister
1

A mi entender, una versión modificada de filtrado colaborativo puede funcionar. Sin embargo, deberá mantener una marca de tiempo en cada clasificación, y imponer una penalización mientras calcula el peso de una clasificación que es más antigua.

vonPetrushev
fuente