Contexto: soy un programador con experiencia (medio olvidada) en estadísticas de cursos uni. Recientemente me topé con http://akinator.com y pasé un tiempo tratando de hacerlo fallar. ¿Y quién no? :)
He decidido averiguar cómo podría funcionar. Después de buscar en Google y leer publicaciones de blog relacionadas y agregar algo de mi conocimiento (limitado) a la mezcla resultante, se me ocurre el siguiente modelo (estoy seguro de que usaré la notación incorrecta, no me maten por eso):
Hay temas (S) y preguntas (Q). El objetivo del predictor es seleccionar el sujeto S que tiene la mayor probabilidad posterior de ser el sujeto en el que el usuario está pensando, dadas las preguntas y respuestas recopiladas hasta el momento.
Deje que el juego G sea un conjunto de preguntas y respuestas: .
Entonces el predictor está buscando .
Antes de las asignaturas ( ) podría ser solo la cantidad de veces que se ha adivinado la asignatura dividida por la cantidad total de juegos.
Suponiendo que todas las respuestas son independientes, podríamos calcular la probabilidad del sujeto S dado el juego G así:
Podríamos calcular la si realizamos un seguimiento de qué preguntas y respuestas se dieron cuando los usuarios han pensado en el tema dado:
Ahora, define una distribución de probabilidad sobre los sujetos y cuando necesitamos seleccionar la siguiente pregunta tenemos que seleccionar aquella para la cual el cambio esperado en la entropía de esta distribución es máximo:
He intentado implementar esto y funciona. Pero, obviamente, a medida que aumenta el número de sujetos, el rendimiento se degrada debido a la necesidad de recalcular la después de cada movimiento y calcular la distribución actualizada para selección de preguntasP ( S | G ∨ { q j , a } )
Sospecho que simplemente he elegido el modelo incorrecto, estando limitado por los límites de mi conocimiento. O, tal vez, hay un error en las matemáticas. Por favor, ilumíneme: ¿con qué debería familiarizarme o cómo cambiar el predictor para que pueda hacer frente a millones de sujetos y miles de preguntas?