Sun. Dec 4th, 2022

Aprovechar los datos para ayudar a los usuarios a descubrir nuevos contenidos

Foto de Javier Allegue Barros en UnsplashSistemas de recomendación son algoritmos que proporcionan sugerencias personalizadas sobre los elementos más relevantes para cada usuario. Con el crecimiento masivo de los contenidos en línea disponibles, los usuarios se han visto inundados de opciones. Por lo tanto, es crucial que las plataformas web ofrezcan recomendaciones de artículos a cada usuario, para aumentar la satisfacción y el compromiso del usuario.YouTube recomienda videos a los usuarios, para ayudarlos a descubrir y ver contenido relevante para ellos en medio de una gran cantidad de contenidos disponibles. (Imagen del autor) La siguiente lista muestra ejemplos de plataformas web conocidas con un gran cantidad de contenidos disponiblesque necesitan sistemas de recomendación eficientes para mantener a los usuarios interesados.YouTube. Cada minuto las personas suben 500 horas de videos, es decir, un usuario tardaría 82 años en ver todos los videos subidos solo en la última hora.Spotify. Los usuarios pueden escuchar más de 80 millones de pistas de canciones y podcasts.Amazonas. Los usuarios pueden comprar más de 350 millones de productos diferentes. Todas estas plataformas utilizan potentes modelos de aprendizaje automático para generar recomendaciones relevantes para cada usuario. En los sistemas de recomendación, los modelos de aprendizaje automático se utilizan para predecir el calificación rᵤᵢ de un usuario u en un elemento i. En el momento de la inferencia, recomendamos a cada usuario u los elementos l que tienen la calificación más alta prevista rᵤPor lo tanto, necesitamos recopilar comentarios de los usuarios, de modo que podamos tener una verdad básica para entrenar y evaluar nuestros modelos. Aquí hay que hacer una distinción importante entre comentarios explícitos y retroalimentación implícita.Comentarios explícitos frente a implícitos para los sistemas de recomendación. (Imagen del autor)Comentarios explícitos es una calificación otorgada explícitamente por el usuario para expresar su satisfacción con un artículo. Algunos ejemplos son: número de estrellas en una escala del 1 al 5 después de comprar un producto, pulgar hacia arriba/abajo después de ver un video, etc. Esta retroalimentación proporciona información detallada en cuánto le gustó un artículo a un usuario, pero es difícil de coleccionar ya que la mayoría de los usuarios normalmente no escriben reseñas ni otorgan calificaciones explícitas para cada artículo que compran.retroalimentación implícita, por otro lado, asume que las interacciones usuario-elemento son una indicación de preferencias. Algunos ejemplos son: compras/historial de navegación de un usuario, lista de canciones reproducidas por un usuario, etc. Esta retroalimentación es extremadamente abundantepero al mismo tiempo es menos detallado y más ruidoso (por ejemplo, alguien puede comprar un producto como regalo para otra persona). Sin embargo, este ruido se vuelve insignificante en comparación con el tamaño de los datos disponibles de este tipo, y la mayoría de los sistemas de recomendación modernos tienden a depender de la retroalimentación implícita.Matriz de calificación de elementos de usuario para conjuntos de datos de comentarios explícitos y comentarios implícitos. (Imagen del autor) Una vez que hemos recopilado comentarios explícitos o implícitos, podemos crear el matriz de calificación de elementos de usuario rᵤᵢ. Para comentarios explícitos, cada entrada en rᵤᵢ es un valor numérico, por ejemplo, rᵤᵢ = “estrellas dadas por u a la película i” o “?” si el usuario u no calificó el ítem i. Para comentarios implícitos, los valores en rᵤᵢ son valores booleanos que representan la presencia o falta de interacción, por ejemplo, rᵤᵢ = “¿El usuario vio la película i?”. Tenga en cuenta que la matriz rᵤᵢ es muy escasa, ya que los usuarios interactúan con pocos elementos entre todos los contenidos disponibles, ¡e incluso revisan menos elementos! El sistema de recomendación se puede clasificar según el tipo de información utilizada para predecir las preferencias del usuario como Basado en contenido o Filtración colaborativa.Enfoques de filtrado basado en contenido versus filtrado colaborativo para sistemas de recomendación. (Imagen del autor)

Enfoque basado en el contenido

Métodos basados ​​en contenido describir usuarios y artículos por sus metadatos conocidos. Cada elemento i está representado por un conjunto de etiquetas relevantes; por ejemplo, las películas de la plataforma IMDb se pueden etiquetar como “acción”, “comedia”, etc. Cada usuario u está representado por un perfil de usuario, que se puede crear a partir de información conocida del usuario: por ejemplo, sexo y edad, o de la actividad anterior del usuario. Para entrenar un modelo de Machine Learning con este enfoque, podemos usar un modelo k-NN. Por ejemplo, si sabemos que el usuario compró un artículo i, podemos recomendarle los artículos disponibles con características más similares a i. ventaja de este enfoque es que los metadatos de los elementos se conocen de antemano, por lo que también podemos aplicarlos a escenarios de arranque en frío donde se agrega un nuevo elemento o usuario a la plataforma y no tenemos interacciones usuario-elemento para entrenar nuestro modelo. los desventajas son que no utilizamos el conjunto completo de interacciones conocidas entre el usuario y el elemento (cada usuario se trata de forma independiente) y que necesitamos conocer la información de metadatos para cada elemento y usuario.

Enfoque de filtrado colaborativo

Métodos de filtrado colaborativo no utilice los metadatos del elemento o del usuario, sino que intente en su lugar aprovechar los comentarios o el historial de actividades de todos los usuarios para predecir la calificación de un usuario en un elemento determinado al inferir las interdependencias entre los usuarios y los elementos a partir de las actividades observadas. Para entrenar un modelo de aprendizaje automático con este enfoque, generalmente intentamos agrupar o factorizar la matriz de calificación rᵤᵢ para hacer predicciones en los pares no observados (u,i), es decir, donde rᵤᵢ = “?”. A continuación, en este artículo, presentamos el Algoritmo de factorización de matricesque es el método más popular de esta clase. ventaja de este enfoque es que se utiliza todo el conjunto de interacciones usuario-elemento (es decir, la matriz rᵤᵢ), lo que normalmente permite obtener una mayor precisión que el uso de modelos basados ​​en contenido. los desventaja de este enfoque es que requiere algunas interacciones del usuario antes de que se pueda ajustar el modelo.

Enfoques híbridos

Finalmente, también hay métodos híbridos que intentan utilizar tanto los metadatos conocidos como el conjunto de interacciones usuario-elemento observadas. Este enfoque combina ventajas de los métodos de Filtrado Colaborativo y Basado en Contenido, y permiten obtener los mejores resultados. Más adelante en este artículo presentamos LuzFMque es el algoritmo más popular de esta clase de métodos.Algoritmos de factorización de matrices son probablemente los métodos de filtrado colaborativo más populares y efectivos para los sistemas de recomendación. La factorización matricial es un modelo de factor latente que supone que para cada usuario u y elemento i hay representaciones vectoriales latentes pᵤ, qᵢRᶠ st rᵤᵢ se puede expresar de manera única, es decir, “factorizar”, en términos de pᵤ y qᵢ. La biblioteca de Python Sorpresa proporciona excelentes implementos de estos métodos.

Factorización de matrices para comentarios explícitos

La idea más simple es modelar las interacciones usuario-elemento a través de un Modelo lineal. Para conocer los valores de pᵤ y qᵢ, podemos minimizar una pérdida de MSE regularizada sobre el conjunto K de pares (u, i) para los que se conoce rᵤᵢ. El algoritmo así obtenido se llama factorización de matriz probabilística (PMF).Factorización de matrices probabilísticas: modelo para rᵤᵢ y función de pérdida. La función de pérdida se puede minimizar de dos maneras diferentes. El primer enfoque es utilizar descenso de gradiente estocástico (SGD). SGD es fácil de implementar, pero puede tener algunos problemas porque tanto pᵤ como qᵢ son desconocidos y, por lo tanto, la función de pérdida no es convexa. Para resolver este problema, alternativamente podemos fijar el valor pᵤ y qᵢ y obtener un problema de regresión lineal convexa que se puede resolver fácilmente con mínimos cuadrados ordinarios (OLS). Este segundo método se conoce como mínimos cuadrados alternos (ALS) y permite una paralelización y aceleración significativas. El algoritmo PMF fue generalizado más tarde por el descomposición en valores singulares (SVD) algoritmo, que introdujo términos de sesgo en el modelo Más específicamente, bᵤ y bᵢ miden las desviaciones de calificación observadas del usuario u y el elemento i, respectivamente, mientras que m es la calificación promedio general. Estos términos a menudo explican la mayoría de las calificaciones observadas rᵤᵢ, ya que algunos elementos reciben calificaciones mejores o peores, y algunos usuarios son consistentemente más o menos generosos con sus calificaciones.Algoritmo SVD, una generalización de la factorización de matrices probabilísticas.

Factorización de matrices para retroalimentación implícita

los SVD método pueden ser adaptado a conjuntos de datos de retroalimentación implícita. La idea es considerar la retroalimentación implícita como un medida indirecta de confianza. Supongamos que la retroalimentación implícita tᵤᵢ mide el porcentaje de la película i que el usuario ha visto; por ejemplo, tᵤᵢ = 0 significa que nunca la vio, tᵤᵢ = 0,1 significa que solo vio el 10 %, tᵤᵢ = 2 significa que la vio dos veces. Intuitivamente, es más probable que un usuario esté interesado en una película que vio dos veces, en lugar de una película que nunca vio. Definimos por tanto un matriz de confianza cᵤᵢ y un matriz de calificación rᵤᵢ como sigue.Matriz de confianza y matriz de calificación para retroalimentación implícita. Luego, podemos modelar el rᵤᵢ observado usando el mismo modelo lineal usado para SVD, pero con una función de pérdida ligeramente diferente. Primero, calculamos la pérdida en todos los pares (u, i); a diferencia del caso explícito, si el usuario u nunca interactuó con i, tenemos rᵤᵢ = 0 en lugar de rᵤᵢ =“?” . En segundo lugar, ponderamos cada término de pérdida por la confianza cᵤᵢ de que te gusta i.Función de pérdida para SVD para retroalimentación implícita. Finalmente, el SVD++ El algoritmo se puede usar cuando tenemos acceso a comentarios explícitos e implícitos. Esto puede ser muy útil porque, por lo general, los usuarios interactúan con muchos elementos (= comentarios implícitos), pero califican solo un pequeño subconjunto de ellos (= comentarios explícitos). Denotemos, para cada usuario u, el conjunto N(u) de elementos con los que u ha interactuado. Entonces, asumimos que una interacción implícita con un elemento j está asociada con un nuevo vector latente zⱼ ∈ Rᶠ. El algoritmo SVD++ modifica el modelo lineal de SVD al incluir en la representación del usuario una suma ponderada de estos factores latentes zⱼ.SVD++ para retroalimentación mixta (explícita + implícita) Los métodos de filtrado colaborativo basados ​​en la factorización de matrices a menudo producen excelentes resultados, pero en escenarios de arranque en frío—donde hay pocos o ningún dato de interacción disponible para nuevos elementos y usuarios— no pueden hacer buenas predicciones porque carecen de datos para estimar los factores latentes. Enfoques híbridos resuelva este problema aprovechando los metadatos de usuarios o elementos conocidos para mejorar el modelo de factorización de matriz. La biblioteca de Python LuzFM implementa uno de los algoritmos híbridos más populares. En LightFM, asumimos que para cada usuario u hemos recopilado un conjunto de anotaciones de etiquetas Aᵁ(u) — por ejemplo, “masculino”, “edad < 30”, … — y de manera similar cada elemento i tiene un conjunto de anotaciones Aᴵ(i) — p. ej., “precio > 100 $”, “libro”, … Luego modelamos cada etiqueta de usuario mediante un factor latente xᵁₐ ∈ Rᶠ y por un término sesgo bᵁₐ ∈ R, y asumimos que la representación del vector de usuario pᵤ y su sesgo asociado bᵤ se pueden expresar simplemente como la suma de estos términos xᵁₐ y bᵁₐ, respectivamente. Tomamos el mismo enfoque para las etiquetas de artículos, usando factores latentes xᴵₐ ∈ Rᶠ y términos de sesgo bᴵₐ ∈ R. Una vez que hemos definido pᵤ, qᵢ, bᵤ, bᵢ usando estas fórmulas, podemos usar el mismo modelo lineal de SVD para describir la relación entre estos términos y rᵤᵢ.LightFM: las incorporaciones y los sesgos de usuario/elemento son la suma de los vectores latentes asociados a cada usuario/elemento. Tenga en cuenta que hay tres casos interesantes de este enfoque híbrido de LightFM.Inicio fresco. Si tenemos un nuevo elemento i con etiquetas conocidas Aᴵ(i), entonces podemos usar los vectores latentes xᴵₐ (obtenidos ajustando nuestro modelo a los datos anteriores) para calcular su incrustación qᵢ y, por lo tanto, estimar para cualquier usuario u su calificación rᵤᵢ .No hay etiquetas disponibles. Si no tenemos ningún metadato conocido para artículos o usuarios, la única anotación que podemos usar es una función de indicador, es decir, una anotación diferente para cada usuario y cada artículo. Entonces, las matrices de características de usuario y elemento son matrices de identidad, y LightFM se reduce a un método de filtrado colaborativo clásico como SVD.Basado en contenido vs. Híbrido. Si solo usáramos etiquetas de usuario o elementos sin anotaciones de indicador, LightFM sería casi un modelo basado en contenido. Entonces, en la práctica, para aprovechar las interacciones entre el usuario y el elemento, también agregamos a las etiquetas conocidas una anotación de indicador diferente para cada usuario y elemento.Sistemas de recomendación aproveche los algoritmos de aprendizaje automático para ayudar a los usuarios inundados con opciones para descubrir contenidos relevantes.Comentarios explícitos vs. implícitos: el primero es más fácil de aprovechar, pero el segundo es mucho más abundante.basado en contenido los modelos funcionan bien en escenarios de arranque en frío, pero requieren conocer el usuario y el artículo metadatos.Filtración colaborativa los modelos suelen utilizar la factorización matricial: PMF, SVD, SVD para retroalimentación implícita, SVD++.Modelos híbridos tome lo mejor del filtrado colaborativo y basado en contenido. LuzFM es un gran ejemplo de este enfoque.