Una persona selecciona repetidamente los dos elementos más similares de los tres. ¿Cómo modelar / estimar una distancia perceptiva entre los artículos?

8

A una persona se le dan tres elementos, dicen fotos de caras, y se le pide que elija cuáles de las tres caras son las más similares. Esto se repite una gran cantidad de veces con diferentes combinaciones de caras, donde cada cara puede ocurrir en muchas combinaciones. Dado este tipo de datos, me gustaría modelar / estimar la diferencia / similitud entre las caras asumiendo que cada cara podría colocarse en un espacio 2D (o 3d, 4d, etc.) donde la distancia entre cada cara refleja las opciones de el participante.

¿Cuál sería una buena (quizás incluso estándar) forma de modelar / estimar esto?

Cualquier sugerencia hacia modelos / documentos y / o paquetes de software es muy apreciada.

Rasmus Bååth
fuente
Personalmente, no creo que haya una forma "estándar" en tareas como esta. Podría inventar una fórmula ad hoc razonable para una función de distancia para su estudio. Puede basarse en una o ambas nociones: 1) los elementos "similares" son aquellos que a menudo son seleccionados por una misma persona; 2) los elementos "similares" son aquellos que tienden a seleccionarse sobre los mismos elementos del oponente.
ttnphns
Hmm, estaba pensando que podrías hacer algo multinomial, pero no es nada que haya resuelto todavía. Pensando que esto parece una muy "natural" montaje experimental Yo esperaba que podría haber ya alguna literatura sobre esto ...
Rasmus Bååth
Creo que el escalado multidimensional estaría cerca de una forma "estándar" de manejar esto, en la medida en que exista una forma estándar. La similitud observada para cada par de estímulos es (posiblemente alguna transformación de) la proporción de veces que se considera que esos 2 estímulos son más similares que un tercer estímulo seleccionado al azar. Tal modelo podría implementarse rápida y fácilmente utilizando, por ejemplo, MASS::isoMDS()en R.
Jake Westfall

Respuestas:

7

Se puede encontrar un buen enfoque para este tipo de problema en la sección 4 del artículo El sistema de recuperación de imágenes bayesianas, PicHunter por Cox et al (2000). Los datos son un conjunto de resultados enteros.UNA1,...,UNAnorte dónde nortees el número de pruebas En su caso, hay 3 resultados posibles por ensayo. PermitiréUNAyoser el índice de la cara que quedó fuera. La idea es postular un modelo generativo para el resultado dados algunos parámetros del modelo, y luego estimar los parámetros por máxima verosimilitud. Si mostramos caras(X1,X2,X3) y el participante dice que (X2,X3) son los más similares, entonces el resultado es UNA=1, con probabilidad

pags(UNA=1 El | X1,X2,X3)Exp(-re(X2,X3)/ /σ)
dónde re(X2,X3) es la distancia entre las caras 2 y 3, y σes un parámetro para la cantidad de "ruido" (es decir, qué tan consistentes son los participantes). Como desea una incrustación en el espacio euclidiano, su medida de distancia sería:
re(X,y)=k(θXk-θyk)2
dónde θX es la incrustación (desconocida) de la cara X. Los parámetros de este modelo sonθ y σ, que puede estimar a partir de los datos a través de la máxima probabilidad. El papel usó el gradiente de ascenso para encontrar el máximo.

El modelo en el documento era ligeramente diferente ya que el documento utilizaba atributos conocidos de las imágenes para calcular la distancia, en lugar de una incrustación desconocida. Para aprender una incrustación, necesitaría un conjunto de datos mucho más grande, en el que cada cara se mostrara varias veces.

Este modelo básico supone que todos los ensayos son independientes y todos los participantes son iguales. Un buen beneficio de este enfoque es que puede embellecer fácilmente el modelo para incluir la no independencia, los efectos de los participantes u otras covariables.

Tom Minka
fuente
+1 Interesante. ¿Crees que uno puede resolver primerorey luego usar algún tipo de escala PCA / multidimensinal para encontrar una incrustación apropiada de puntos en un espacio euclidiano de baja dimensión, dada la matriz de distancias? ¿O es mejor estimar ubicaciones en el espacio euclidiano directamente?
ameba
Con cantidades limitadas de datos, es mejor estimar las ubicaciones en el espacio euclidiano directamente. Aunque estoy de acuerdo, es más sencillo resolver primerore, dado que ya existen herramientas separadas para la regresión logística y el escalado multidimensional. Si el método más simple es lo suficientemente bueno depende de la cantidad de datos que tenga. Tener alguna posibilidad de estimarre, necesitaría que cada par de caras aparezcan juntas en varias pruebas.
Tom Minka
1

Pensamiento:

Creo que las caras propias son una forma decente de convertir lo que pueden ser espacios de un millón de dimensiones en unas pocas decenas de dimensiones.

Premisa:

Así que supongamos que está utilizando una herramienta decente de caras propias, o una que:

  • realiza el preprocesamiento para alinear las características apropiadas
  • maneja los colores de manera apropiada
  • se asegura de que las imágenes utilizadas sean del mismo tamaño

Esto significa que no tiene "imágenes" tanto como tiene vectores de longitud O (n = 50) elementos de tamaño donde los elementos son pesos para cada cara propia que comprende la base.

Análisis:

Primero, crearía vectores de 150 elementos (concatenación de peso) como entradas y vectores de 1 elemento (elementos de coincidencia más cercana) como salidas. Si los elementos 1 y 2 fueran los más cercanos, el valor de salida sería "12". Si los elementos 1 y 3 fueran los más cercanos, la salida sería "13". Si los elementos 2 y 3 fueran los más cercanos, la salida sería "23". Dado que solo hay 3 salidas únicas, podría reasignarlas al caso 1 para "12", el caso 2 para "13" y el caso 3 para "23".

En segundo lugar, me gustaría tirar tantos datos sin sentido como sea posible. Esto significa que trataría de usar algo como bosques aleatorios para determinar cuáles de las ~ 150 columnas no eran informativas. También hay un "método aleatorio de gemelos malvados", pero no lo tengo al alcance de la mano como R me da con bosques aleatorios. (Si conoce una buena biblioteca R para esto, lo invito a ponerla en los comentarios).

En tercer lugar, en mi experiencia personal, si tiene tamaños de muestra decentes y una base decente, un bosque aleatorio generalmente puede llevarlo a las ~ 30 variables de interés, incluso de hasta 15k columnas. Aquí es donde debe considerar cuál es la forma general de la respuesta.

Puede probar una docena de razas de transformaciones de estas variables para asignar las entradas reducidas a las salidas:

  • podría entrenar un RF de las entradas reducidas y llamarlo bueno.
  • podría entrenar un NN en las entradas reducidas si quisiera una mejor interpolación y generalización sin problemas que un RF
  • podrías usar algún tipo de transformación lineal en las entradas
  • hay algunas docenas de otros martillos ML para golpearlo, pero cuando eres un martillo, cada problema parece un clavo.

Más pensamientos:

  • Me gustaría saber cuál de las caras propias de las referencias de conjunto reducido. Solo me gustaría ver esos datos y dejar que me hablen.
  • Tengo curiosidad acerca de los tamaños de muestra y la naturaleza de su variación. Si está mirando 3 filas, entonces tener 150 columnas no será demasiado productivo. Si tiene unos pocos miles de filas, entonces podría estar en buena forma. Unos cientos de filas y podrías ser normal. Espero que haya tenido en cuenta todas las fuentes de variación en términos de origen étnico, forma facial y tal.
  • No tengas miedo de mirar primero a través de modelos simples. Pueden ser buenos. Su interpretación y aplicabilidad se evalúan fácilmente. Su ejecución puede ser probada y confirmada con mucho menos esfuerzo que los métodos complejos y altamente sensibles.

ACTUALIZACIÓN:
La herramienta "gemelo malvado aleatorio" es "Boruta". ( enlace )

Estudiante
fuente