algorithm autosuggest

algorithm - Algoritmo para sugerir productos



autosuggest (11)

¿Cuál es un buen algoritmo para sugerir cosas que a alguien le gustaría en función de sus elecciones anteriores? (p. ej., lo popularizado por Amazon para sugerir libros, y se usa en servicios como iRate Radio o YAPE, donde recibe sugerencias de los artículos de calificación)


Como ha deducido por las respuestas hasta ahora, y de hecho, como sugiere, este es un tema amplio y complejo. No puedo darte una respuesta, al menos nada que no se haya dicho ya, pero te señalo un par de excelentes libros sobre el tema:



Creo que hacer un Google en Regresión Cuadrada Mínima (o algo así) podría darte algo para masticar.


Creo que la mayoría de los consejos útiles ya han sido sugeridos, pero pensé que simplemente pondría cómo lo haría, solo pensando, ya que no he hecho nada como esto.

Primero encontraría dónde en la aplicación muestrearé los datos que se utilizarán, por lo que si tengo una tienda, es probable que en el registro de salida. Luego guardaría una relación entre cada artículo en el carrito de compra.

Ahora, si un usuario va a una página de elementos, puedo contar el número de relaciones de otros elementos y elegir, por ejemplo, los 5 elementos con el mayor número de relación con el elemento seleccionado.

Sé que es simple, y probablemente hay mejores maneras.

Pero espero que ayude


El análisis de la canasta de mercado es el campo de estudio que está buscando:

Microsoft ofrece dos algoritmos adecuados con su servidor de análisis: Algoritmo de asociación de Microsoft Algoritmo de árboles de decisión de Microsoft

Consulte este artículo de MSDN para obtener sugerencias sobre cómo utilizar Analysis Services para resolver este problema.

Texto del enlace


El módulo CPAN Math::Preference::SVD es aparentemente un "motor de preferencia / recomendación basado en la descomposición de un solo valor"


Existe una plataforma de recomendaciones creada por Amazon llamada Certona. Puede que le resulte útil, ya que es utilizada por compañías como B&Q y Screwfix. Encontrará más información en www.certona.com/


Los algoritmos de productos recomendados son un gran negocio hoy en día. NetFlix for one ofrece 100,000 por solo aumentos menores en la precisión de su algoritmo.


No hay una respuesta definitiva y es muy poco probable que exista un algoritmo estándar para eso.

La forma en que lo haga dependerá en gran medida del tipo de datos que desee relacionar y cómo se organizará. Depende de cómo defina "relacionado" en el alcance de su aplicación.

A menudo, el pensamiento más simple produce buenos resultados. En el caso de los libros, si tiene una base de datos con varios atributos por entrada de libro (por ejemplo, autor, fecha, género, etc.), simplemente puede sugerir un conjunto aleatorio de libros del mismo autor, el mismo género, títulos similares y A otros les gusta eso.

Sin embargo, siempre puedes probar cosas más complicadas. Mantener un registro de otros usuarios que requirieron este "producto" y sugerir otros "productos" que los usuarios necesitaron en el pasado (el producto puede ser desde un libro, una canción o cualquier cosa que pueda imaginar). Algo que hacen la mayoría de los sitios principales que tienen una función de sugerencia (aunque probablemente recopilan mucha información, desde los atributos del producto hasta la demografía, para servir mejor al cliente).

O incluso puedes recurrir a la llamada IA; Se pueden construir redes neuronales que toman en cuenta todos los atributos del producto e intentan (según observaciones anteriores) relacionarlo con otros y actualizarse.

Una mezcla de cualquiera de esos casos podría funcionar para usted.

Personalmente recomendaría pensar cómo quiere que funcione el algoritmo y cómo sugerir "productos" relacionados. Luego, puede explorar todas las opciones: de simple a complicada y equilibrar sus necesidades.


solo pensando en voz alta:

necesita calcular la correlación entre todos y cada uno (¿O ^ 2?) - si su patrón de calificaciones buenas y malas coincide con las de alguien más, entonces puede sugerirle cosas de alta calificación

pero, ¿cómo funciona esto si tiene sólo unos pocos puntos de datos?

las calificaciones deben normalizarse: una calificación de 2 * por alguien que califica todo lo demás como 1 * es claramente un voto de sí, mientras que una calificación de 2 * por alguien que califica todo lo demás como 4 * -5 * es más como una baja votar

¿Cómo detener a los spammers que califican todo lo suyo y a los competidores mal? tal vez el sistema de correlación haga eso de todos modos: si los spammers no se correlacionan con sus calificaciones, sus sugerencias se devalúan


Simple y directo (orden de compra):

Mantenga una lista de transacciones en términos de qué artículos se ordenaron juntos. Por ejemplo, cuando alguien compra una videocámara en Amazon, también compra medios para grabar al mismo tiempo.

Al decidir qué se "sugiere" en una página de producto determinada, observe todos los pedidos donde se ordenó ese producto, cuente todos los demás artículos comprados al mismo tiempo y luego muestre los 5 artículos principales que se compraron con mayor frecuencia al mismo tiempo. hora.

Puede ampliarlo desde allí basándose no solo en los pedidos, sino también en lo que las personas buscaron en secuencia en el sitio web, etc.

En términos de un sistema de clasificación (es decir, clasificaciones de películas):

Se vuelve más difícil cuando tiras en calificaciones. En lugar de una cesta discreta de artículos que uno ha comprado, tiene un historial de calificaciones de artículos de clientes.

En ese punto, estás viendo la minería de datos, y la complejidad es tremenda.

Sin embargo, un algoritmo simple no está lejos de lo anterior, pero toma una forma diferente. Tome los artículos con la calificación más alta del cliente y los artículos con la calificación más baja, y encuentre a otros clientes con listas similares con las calificaciones más altas y las más bajas. Quieres hacer coincidirlos con otros que tienen gustos y disgustos extremos similares: si te centras solo en los me gusta, cuando sugieres algo que odian, les habrás dado una mala experiencia. En los sistemas de sugerencias, siempre querrás errar por el lado de la experiencia "tibia" en lugar de "odiar" porque una mala experiencia los disuadirá de usar las sugerencias.

Sugerir elementos en las listas más altas de otros para el cliente.