13

¿Cómo se diseñaría una red neuronal para un motor de recomendación? Supongo que cada usuario requeriría su propia red, pero ¿cómo diseñaría las entradas y las salidas para recomendar un artículo en una base de datos? ¿Hay buenos tutoriales o algo así?Motor de recomendación de red neuronal

Edité: Estaba pensando más en cómo se diseñaría una red. Como en cuántas neuronas de entrada y cómo las neuronas de salida apuntan a un registro en una base de datos. ¿Diría que tiene 6 neuronas de salida, las convierte a un número entero (que sería cualquier cosa entre 0 y 63) y esa es la ID del registro en la base de datos? ¿Es así como la gente lo hace?

+2

En cuanto a tu edición: No, se está perdiendo el punto. El punto de un NN es la clasificación basada en propiedades estadísticas.No son de naturaleza bayeseana, pero puedes pensar de esa manera si te ayuda: "cuando tengo la entrada A de cierto valor, la entrada B de un cierto valor, la entrada C de un cierto valor ... ¿cuál es la Probabilidad de que este conjunto de entrada específico pertenezca a un determinado grupo (más exactamente, pregunte a qué grupo pertenece) Ese es el propósito de una NN. Puede flexionar este modelo para usarlo en una clasificación más que simple, pero en su corazón, eso es lo que hace. –

+1

Gracias, su respuesta explica claramente cómo ingresar los datos pero no cómo deberían ser/deberían ser las salidas y cómo significan algo. Ahí es donde estoy confundido. – Louis

+3

Las salidas serán numéricas, pero esos números deben tener significado. "Lo que quieren decir" depende de USTED, el diseñador de la red, pero no va a funcionar simplemente asignarlos a una ID de base de datos (que es una etiqueta sin significado matemático) en el camino usted quiere. Las salidas no se pueden convertir directamente a una etiqueta. re los valores de un modelo estadístico. Sería como intentar predecir el rendimiento de un mariscal de campo basado en el número de su maillot. A menos que el maillot sea asignado según criterios específicos y observables sobre el jugador, cualquier predicción de ese tipo no tendría sentido. –

Respuesta

2

Primero debes decidir qué es exactamente lo que estás recomendando y bajo qué circunstancias. Hay muchas cosas para tener en cuenta. ¿Vas a considerar los "otros usuarios que compraron X también compraron Y?" ¿Solo va a recomendar artículos que tengan una naturaleza similar entre sí? ¿Está recomendando artículos que tengan este tipo de relación de este tipo de uno-es-más-útil-con-uno?

Estoy seguro de que hay muchas más decisiones, y cada una de ellas tiene sus propios objetivos en mente. Sería muy difícil entrenar una red gigante para manejar todo lo anterior.

Las redes neuronales se reducen a lo mismo. Usted tiene un conjunto dado de entradas. Usted tiene una topología de red. Usted tiene una función de activación. Tienes pesos en las entradas de los nodos. Tiene salidas, y tiene un medio para medir y corregir el error. Cada tipo de red neuronal puede tener su propia forma de hacer cada una de esas cosas, pero están presentes todo el tiempo (según mi conocimiento limitado). Luego, entrena la red al alimentar una serie de conjuntos de entrada que tienen resultados de salida conocidos. Ejecutas este conjunto de entrenamiento todo lo que desees sin un entrenamiento excesivo o insuficiente (que es tanto tu conjetura, ya que es el siguiente), y luego estás listo para rodar.

Esencialmente, su conjunto de entrada se puede describir como un conjunto de cualidades que usted considera relevantes para la función subyacente (por ejemplo: precipitación, humedad, temperatura, enfermedad, edad, ubicación, costo, habilidad, tiempo) El día, el día de la semana, el estado laboral y el género pueden tener un papel importante a la hora de decidir si una persona va a jugar golf en un día determinado o no. Por lo tanto, debe decidir qué es exactamente lo que está tratando de recomendar y en qué condiciones. Sus entradas de red pueden ser de naturaleza booleana (0.0 es falso y 1.0 es verdadero, por ejemplo) o mapeadas en un espacio pseudo continuo (donde 0.0 puede significar nada, .45 significa algo, .8 significa probable, y 1.0 significa sí). Esta segunda opción puede proporcionarle las herramientas para mapear el nivel de confianza de una entrada determinada, o un cálculo matemático simple que usted cree que es relevante.

Espero que esto haya ayudado. No dio mucho para seguir :)

8

Sugeriría buscar en las redes neuronales mediante el aprendizaje no supervisado, como self organising maps. Es muy difícil usar redes neuronales supervisadas normales para hacer lo que quieras a menos que puedas clasificar los datos de forma muy precisa para el aprendizaje. Los mapas autoorganizados no tienen este problema porque la red aprende todos los grupos de clasificación por sí solos.

echar un vistazo a este documento que describe un sistema de recomendación de música por la música http://www.springerlink.com/content/xhcyn5rj35cvncvf/

y otros muchos documentos escritos sobre el tema de Google scholar http://www.google.com.au/search?q=%09+A+Self-Organizing+Map+Based+Knowledge+Discovery+for+Music+Recommendation+Systems+&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a&safe=active

Cuestiones relacionadas