No mencionas lo que sabes (o puedes saber) sobre el usuario actual. Entiendo que la falta de datos de capacitación se refiere al comportamiento de otros usuarios, por lo que no se puede utilizar el filtrado colaborativo. Pero necesita saber (o adivinar) algo sobre el usuario a quien le está recomendando algo, o si no sobre ella sobre su contexto (dónde, cuándo, cómo accede el usuario a su motor). Porque de lo contrario es imposible personalizar las recomendaciones.
Y no tener datos sobre los usuarios te obliga a tener metadatos ricos sobre tus artículos, para compensarlos. Con él, puede diseñar un recomendador basado en el conocimiento , que utiliza esos metadatos para tratar de encontrar una buena coincidencia para el usuario.
Si realmente no sabe nada sobre el usuario, lo primero que debe hacer es preguntarle. Una forma es involucrarlo en una especie de conversación sobre lo que necesita, y esto lleva a lo que se conoce como recomendaciones basadas en críticas , en las que la retroalimentación continua del usuario ayuda a construir un perfil de lo que necesita (por ejemplo, nosotros podría construir algo de inteligencia en un enfoque de navegación facetado). Esto funciona mejor para elementos de contenido con metadatos estructurados y cuya selección es relativamente significativa para el usuario (por ejemplo, en términos de costo monetario).
- ¿Qué idioma debo aprender para crear cosas relacionadas con la IA?
- ¿Cómo funciona la teoría de la información integrada y cuáles son las matemáticas detrás de ella?
- ¿Cuál es la diferencia entre lineal y no lineal en redes neuronales?
- ¿Es útil la teoría de juegos para la inteligencia artificial?
- ¿Cuál debería ser el curso de acción para aprender IA y cuán importante es el aprendizaje automático para la IA?
Un enfoque relacionado es la recomendación basada en casos , en la que recorre una base de datos de casos de recomendaciones en busca de similitudes con la actual (esto tiene raíces en el razonamiento basado en casos). Dado que, por especificación del problema, no tiene una base de datos inicial, deberá completarla con casos predefinidos. Se puede hacer usando modelado semántico, aunque eso tiende a ser muy específico y costoso.
Finalmente, si desea definir y aplicar un conjunto de heurísticas heterogéneas, es posible implementar un motor de reglas para la tarea. En ese sentido, los metadatos del producto son los hechos básicos, y usted define un conjunto de reglas que funcionan en esos hechos. Todo lo que se pueda saber sobre el usuario se inyecta como datos de sesión. Luego dispare las reglas y obtenga los resultados, posiblemente como una lista clasificada (supongo un algoritmo de encadenamiento hacia adelante, como Rete).
Podría ser posible hacer que un sistema de este tipo aprenda con el tiempo (por ejemplo, mediante la inducción de la regla a medida que se recopilan los comentarios de los usuarios), pero supongo que sería muy difícil de ajustar. En su lugar, puede tener más sentido alimentar un motor CF estándar con datos entrantes, y cuando el motor comience a funcionar razonablemente, realice la hibridación entre el motor original basado en el conocimiento y el motor CF.