¿Cuál es un buen enfoque de aprendizaje automático para recomendar noticias basadas en el historial de lectura de un usuario?

Para las historias de noticias, generalmente tiene un conjunto de candidatos de algún tipo, por ejemplo, las X historias de noticias más recientes para un tema, y ​​su objetivo podría ser clasificar los elementos en este conjunto de candidatos en función del historial de lectura del usuario.

Si tiene una pequeña cantidad de usuarios y no tiene muchas noticias nuevas, podría usar un enfoque bastante simple como calcular el coeficiente Jaccard entre cada par de usuarios, donde el coeficiente Jaccard se define como la intersección de 2 historial de lectura de los usuarios dividido por su unión. La puntuación de una noticia (S_i) en el conjunto de candidatos para el usuario (U_a) se puede calcular sumando todos los demás usuarios (U_b) y sumando el valor del coeficiente Jaccard de (U_a, U_b) a la puntuación si U_b sucedió a tener S_i en su historia de lectura. Luego, escoja las noticias con los puntajes más altos del conjunto de candidatos de U_a.

Sin embargo, si tiene muchos usuarios y una gran cantidad de cambios de artículos (muchas noticias nuevas que aparecen periódicamente), el problema se vuelve más desafiante. Los chicos de Google News publicaron un artículo (http://www.google.com/url?sa=t&s…) titulado “Personalización de Google News: filtrado colaborativo en línea escalable” que describe 3 buenos algoritmos para abordar el problema en este contexto. Sus enfoques son: –

  1. MinHash: Intenta poner a 2 usuarios en el mismo grupo con probabilidad proporcional a su coeficiente Jaccard. Permuta al azar el conjunto de todas las noticias y usa el índice de la primera noticia bajo la permutación que pertenece al historial de lectura del usuario U_a como un valor MinHash para el usuario U_a. Hash cada usuario a q clústeres con cada clave de clúster que se define como la concatenación de los valores de p MinHash. Obviamente, es costoso permutar aleatoriamente el conjunto de todas las noticias; en lugar de hacer eso, uno puede generar valores de semilla aleatorios p * q y asignar cada historia S_i en el historial de lectura de un usuario a una función de (i, semilla aleatoria): elegir el valor de función mínimo sobre todas las historias en el historial de lectura de un usuario sirve como un proxy para el índice mínimo en la permutación aleatoria y, por lo tanto, puede usarse como un valor MinHash.
    MinHash de reducción de mapas: itere sobre el historial de lectura de cada usuario y calcule q grupos de valores de p MinHash. Los mapeadores crean pares clave-valor de (Id. De clúster -> Id. De usuario). Reduzca para obtener, para cada Id. De clúster, una lista de Id. De usuario, podando clústeres con baja membresía y, de manera similar, para cada Id. De usuario, una lista de Id. De clúster, podando clústeres de bajo peso. Recomiende las noticias de los clústeres a los que pertenece un usuario en particular teniendo en cuenta el peso de la membresía del clúster y el peso de una noticia dentro del clúster (con decaimientos basados ​​en cuándo los usuarios interactuaron con la noticia tal vez).
  2. Co-visita: este es el concepto clásico al estilo de Amazon de “Los usuarios que vieron este elemento también vieron estos otros elementos”. Mantenga una matriz de adyacencia para almacenar todos los valores de interacción historia-historia y cada vez que un usuario lea una historia, intente actualizar / agregar los valores de historia-historia para todas las historias que el usuario leyó dentro de un intervalo de tiempo de esta historia. Al actualizar la matriz de adyacencia, descuenta por edad / tiempo entre lecturas de historias, etc. Para recomendar el contenido a un usuario, revise el historial de lectura del usuario y, para cada historia en el historial de lectura, encuentre las historias que fueron visitadas conjuntamente con él.
  3. PLSI: técnica estándar de modelar la distribución conjunta de usuarios e historias como una distribución de mezcla con una variable oculta. La matemática / notación es un poco compleja para poder resumirla aquí. La contribución clave de los autores en esta área es describir cómo mapear-reducir el algoritmo EM.

Esta es una hermosa pregunta. Una respuesta también debería profundizar en el aprendizaje automático y la recuperación de información. Para una inmersión profunda sobre lo que estamos haciendo al respecto en http://pugmarks.me , está invitado a leer Anticipatory News Discovery.

Aquí está mi opinión sobre este tema, desde mi experiencia de incursionar en la personalización y descubrimiento de noticias.

1) La construcción de vectores temáticos para las personas introduce ruido. Si intenta resumir los intereses de un usuario en función de su historial de lectura, a menudo pierde contexto y termina con temas abstractos como “startups”, “tecnología”, “iPhones” y similares. Cualquier flujo de noticias recomendado en base a estos términos se volverá aburrido pronto.

2) En lugar de vectores de tema, puede considerar elegir “documentos de centroide”. Documentos que parecen caracterizar lo que has estado leyendo. Un documento a menudo lleva mucho más contexto con él. Por ejemplo: probablemente esté leyendo sobre la monetización de anuncios de Facebook, o sobre el marketing de contenido de Facebook, o sobre el comportamiento del consumidor en Facebook. Tener estos términos adjuntos lo ayuda a obtener un mejor documento que simplemente tener Facebook como término.

3) Su modelo de usuario es tan bueno como la cantidad de contenido interesante que puede aportarle. Relevante puede no significar interesante. Relevante puede no significar útil. Novela puede no significar relevante. El equilibrio correcto requiere un árbol de decisión sofisticado. ¿Está este contexto en la mente del usuario, o se ha movido? Si está en su mente, ¿puede agregar valor con lo que recomienda? ¿Es este un tema familiar? o uno extremadamente saturado?

4) Su contexto más grande hoy no es su interés promedio. Cada vez que les pregunto a las personas en qué están “interesados”, me dicen cosas que son muy diferentes de lo que están buscando hoy. Te puede interesar la PNL. Pero hoy, tal vez estés leyendo sobre la película Gravity. Las personas son demasiado diversas para ser ‘modeladas’ a largo plazo. Los modelos a largo plazo son aburridos. Pero, ¿te importa la película Hobbit ahora? Lo deliraste el año pasado. Ahora no tanto. Los picos de interés de las personas en cortos períodos de tiempo. Luego, se mudan a otro. Normalmente encuentran aburridas las noticias sobre sus intereses a largo plazo.

Esto es realmente un problema de HCIR.

More Interesting

¿Cuál es un buen enfoque de aprendizaje automático para recomendar noticias basadas en el historial de lectura de un usuario?

¿Existe un algoritmo que lo ayude a visualizar las distancias entre los n nodos de manera óptima?

¿Cuántos rectángulos de 3 × 5 caben en un rectángulo de 18 x 26? ¿Hay una manera simple de calcular?

¿Cuál es la mejor manera de entender la recursividad, especialmente en los árboles?

¿Has visto algún trabajo hacia el cierre transitivo de la alineación de secuencias y las matrices de sustitución?

¿Qué libros debería leer alguien para comprender completamente una introducción a los algoritmos? ¿Qué lo hará realmente entenderlo?

¿Cuál es el número esperado de pasos necesarios para que una entidad sin memoria atraviese un gráfico completo de 4 nodos?

¿Cuáles son algunos algoritmos rápidos de descenso de gradiente?

¿Hay algún libro para la recursividad?

¿Podemos, y qué significa, 'crear algoritmos sin codificación'?

¿Qué son los treaps con claves implícitas?

¿Cuál es el algoritmo más conocido para unir varias tablas (> 5) que contienen uniones externas (en una base de datos no Oracle) implementadas a través de un lenguaje programático?

¿Por qué son importantes las estructuras de datos y los algoritmos?

¿Qué algoritmo puedo usar para generar enteros (pseudo) aleatorios con una duración de ciclo infinito?

¿Es cierto que dado cualquier gráfico con N vértices es un subgrafo inducido del subconjunto gráfico (N). ¿Cómo puedes probarlo o refutarlo?