Uma pessoa seleciona repetidamente os dois itens mais semelhantes dentre três. Como modelar / estimar uma distância perceptiva entre os itens?

8

Uma pessoa recebe três itens, digamos fotos de rostos, e é solicitada a escolher quais dos dois rostos são os mais semelhantes. Isso é repetido várias vezes com diferentes combinações de faces, onde cada face pode ocorrer em várias combinações. Dado esse tipo de dado, eu gostaria de modelar / estimar a diferença / semelhança entre as faces assumindo que cada face pudesse ser colocada em um espaço 2D (ou 3d, 4d etc.) onde a distância entre cada face reflita as opções de o participante.

Qual seria uma boa (talvez até padrão) maneira de modelar / estimar isso?

Quaisquer indicações para modelos / papéis e / ou pacotes de software são muito apreciadas.

Rasmus Bååth
fonte
Pessoalmente, não acho que exista uma maneira "padrão" em tarefas como esta. Você pode inventar uma fórmula ad hoc razoável para uma função de distância para o seu estudo. Você pode basear-se em uma ou em ambas as noções: 1) itens "semelhantes" são aqueles que geralmente são selecionados por uma mesma pessoa; 2) itens "similares" são aqueles que tendem a ser selecionados sobre os mesmos itens do oponente.
ttnphns
Hmm, eu estava pensando que você poderia fazer alguma coisa multinomial, mas não é algo que eu tenha descoberto ainda. Pensando que este parece ser um arranjo experimental bastante "natural" Eu estava esperando que já pode haver alguma literatura sobre isso ...
Rasmus Baath
Eu acho que o dimensionamento multidimensional estaria próximo de uma maneira "padrão" de lidar com isso, na medida em que exista uma maneira padrão. A semelhança observada para cada par de estímulos é (possivelmente uma transformação de) a proporção de vezes que esses 2 estímulos são considerados mais semelhantes do que um terceiro estímulo selecionado aleatoriamente. Modelo de tal poderia ser implementado rapidamente e facilmente usando, por exemplo, MASS::isoMDS()em R.
Jake Westfall

Respostas:

7

Uma boa abordagem para esse tipo de problema pode ser encontrada na seção 4 do artigo The Bayesian Image Retrieval System, PicHunter por Cox et al (2000). Os dados são um conjunto de resultados inteiros que é o número de tentativas. No seu caso, existem 3 resultados possíveis por julgamento. Vou deixar ser o índice do rosto que foi deixado de fora. A idéia é postular um modelo generativo para o resultado, com base em alguns parâmetros do modelo, e depois estimar os parâmetros por probabilidade máxima. Se mostrarmos rostos e o participante disser que são os mais semelhantes, o resultado será , com probabilidade N A i ( X 1 , X 2 , X 3 ) ( X 2 , X 3 ) A = 1 p ( A = 1 | X 1 , X 2 , X 3 ) exp ( - d ( X 2 , X 3 ) / σA1,...,ANNAi(X1,X2,X3)(X2,X3)A=1d

p(A=1 | X1,X2,X3)exp(d(X2,X3)/σ)
que é a distância entre as faces 2 e 3 e é um parâmetro para a quantidade de "ruído" (ou seja, quão consistentes são os participantes). Como você deseja incorporar no espaço euclidiano, sua medida de distância seria: onde é (desconhecido) ) incorporação da face . Os parâmetros deste modelo são e , que você pode estimar a partir dos dados via probabilidade máxima. O artigo usou subida gradiente para encontrar o máximo. σ d ( x , y ) = d(X2,X3)σθxxθσ
d(x,y)=k(θxkθyk)2
θxxθσ

O modelo no artigo era um pouco diferente, pois usava atributos conhecidos das imagens para calcular a distância, em vez de uma incorporação desconhecida. Para aprender uma incorporação, você precisaria de um conjunto de dados muito maior, no qual cada face fosse mostrada várias vezes.

Este modelo básico assume que todos os ensaios são independentes e todos os participantes são iguais. Um bom benefício dessa abordagem é que você pode facilmente embelezar o modelo para incluir não independência, efeitos dos participantes ou outras covariáveis.

Tom Minka
fonte
+1 Interessante. Você acha que é possível primeiro resolver e depois usar algum tipo de escala PCA / multidimensinal para encontrar uma incorporação apropriada de pontos em um espaço euclidiano de baixa dimensão, dada a matriz de distâncias? Ou é melhor estimar localizações no espaço euclidiano diretamente? d
Ameba
Com quantidades limitadas de dados, é melhor estimar localizações no espaço euclidiano diretamente. Embora eu concorde, é mais simples resolver primeiro , pois já existem ferramentas separadas para regressão logística e dimensionamento multidimensional. Se o método mais simples é bom o suficiente depende da quantidade de dados que você possui. Para ter alguma chance de estimar , você precisaria que cada par de faces aparecesse juntos em várias tentativas. ddd
precisa
1

Pensamento:

Eu acho que o autofaces é uma maneira decente de converter o que pode ser um milhão de espaços dimensionais em algumas dezenas de dimensões.

Premissa:

Então, vamos supor que você esteja usando uma ferramenta decente eigenfaces, ou uma que:

  • faz pré-processamento para alinhar os recursos apropriados
  • lida com as cores de maneira adequada
  • garante que as fotos usadas sejam do mesmo tamanho

Isso significa que você não possui "figuras" tanto quanto vetores de comprimento O (n = 50) de elementos em que os elementos são pesos para cada face de autenticidade que compõe a base.

Análise:

Primeiro, eu criaria vetores de 150 elementos (concatenação de peso) como entradas e vetores de 1 elemento (elementos de correspondência mais próxima) como saídas. Se os elementos 1 e 2 estivessem mais próximos, o valor de saída seria "12". Se os elementos 1 e 3 estivessem mais próximos, a saída seria "13". Se os elementos 2 e 3 estivessem mais próximos, a saída seria "23". Dado que existem apenas 3 saídas exclusivas, eu poderia re-mapeá-las para o caso 1 para "12", caso 2 para "13" e caso 3 para "23.

Segundo, eu gostaria de jogar fora o máximo de dados sem sentido possível. Isso significa que eu tentaria usar algo como florestas aleatórias para determinar quais das ~ 150 colunas não eram informativas. Existe também um "método aleatório de gêmeos malignos", mas eu não o tenho na ponta dos dedos da maneira que R me dá com florestas aleatórias. (Se você conhece uma boa biblioteca R para isso, convido você a colocá-la nos comentários).

Terceiro, na minha experiência pessoal, se você tem tamanhos de amostra decentes e uma base decente, uma floresta aleatória geralmente pode reduzir você para as ~ 30 variáveis ​​de interesse, mesmo de 15 mil colunas. É aqui que você deve considerar qual é a forma geral da resposta.

Você pode tentar uma dúzia de raças de transformações dessas variáveis ​​para mapear as entradas reduzidas para as saídas:

  • você pode treinar um RF das entradas reduzidas e chamar isso de bom.
  • você poderia treinar um NN nas entradas reduzidas se quisesse uma melhor interpolação e generalização suave do que um RF
  • você poderia usar algum tipo de transformação linear nas entradas
  • existem algumas dezenas de outros martelos ML, mas quando você é um martelo, todo problema parece um prego.

Mais pensamentos:

  • Eu ficaria curioso sobre qual das faces próprias as referências de conjunto reduzidas. Gostaria apenas de ver esses dados e deixá-los falar comigo.
  • Estou bastante curioso sobre o tamanho das suas amostras e a natureza da sua variação. Se você estiver vendo três linhas, ter 150 colunas não será muito produtivo. Se você tiver alguns milhares de linhas, poderá estar em ótima forma. Algumas centenas de linhas e você pode estar na média. Eu espero que você seja responsável por todas as fontes de variação em termos de etnia, forma facial e outras coisas.
  • Não tenha medo de olhar primeiro através de modelos simples. Eles podem ser bons. Sua interpretação e aplicabilidade são facilmente avaliadas. Sua execução pode ser testada e confirmada com muito menos esforço do que métodos complexos e altamente sensíveis.

ATUALIZAÇÃO:
A ferramenta "random evil twin" é "Boruta". ( link )

EngrStudent
fonte