Estatísticas para sites de namoro online


10

Estou curioso para saber como um sistema de namoro online pode usar dados de pesquisas para determinar correspondências.

Suponha que eles tenham dados de resultados de correspondências passadas (por exemplo, 1 = casamento feliz, 0 = sem segundo encontro).

Em seguida, suponhamos que eles tenham duas perguntas de preferência,

  • "Quanto você gosta de atividades ao ar livre? (1 = não gosto muito, 5 = gosto muito)"
  • "Você é otimista em relação à vida? (1 = não gosto muito, 5 = gosto muito)"

Suponha também que, para cada questão de preferência, eles tenham um indicador "Qual a importância de seu cônjuge compartilhar sua preferência? (1 = não é importante, 3 = muito importante)"

Se eles tiverem essas 4 perguntas para cada par e um resultado para saber se a partida foi um sucesso, qual é o modelo básico que usaria essas informações para prever futuras partidas?


2
Eu pensei que uma partida de sucesso acontecesse quando a garota é bonita ou o homem é rico. Tudo o resto é secundário.
user4951

4
Confira blog.okcupid.com - em algum lugar eles falam sobre os modelos correspondentes subjacentes.
Felix S

Você pode mencionar que tipo de coisas você gostaria de ter mais profundidade? A resposta de Michael é uma visão geral bastante sólida.
Dan

Se você ler a patente (patente 6.735.568 - google.com/… ) para o EHarmony, o sistema deles usará uma combinação de Análise de componentes principais, Análise fatorial e Rede Neural. Como outros já mencionaram, métodos como K-NN, CARTS e GLM também funcionariam bem.
Chris Simokat

@ChrisSimokat - WOW! Muito obrigado pelo link incrível. Isso é interessante. Eu nunca pensei que você pudesse "copyright" métodos estatísticos e algoritmos.
d_a_c321

Respostas:


4

Certa vez, conversei com alguém que trabalha para um dos sites de namoro online que usa técnicas estatísticas (eles provavelmente preferem não dizer quem). Foi bastante interessante - para começar, eles usavam coisas muito simples, como vizinhos mais próximos com distâncias euclidianas ou L_1 (bloqueio da cidade) entre vetores de perfil, mas houve um debate sobre se combinar duas pessoas muito semelhantes era bom ou ruim coisa. Ele então continuou dizendo que agora eles reuniram muitos dados (quem estava interessado em quem, quem namorou quem, quem se casou etc. etc.), eles estão usando isso para treinar constantemente modelos. O trabalho em uma estrutura de lote incremental, onde eles atualizam seus modelos periodicamente usando lotes de dados e, em seguida, recalculam as probabilidades de correspondência no banco de dados. Coisas bastante interessantes, mas eu '


3

Você pediu um modelo simples. Aqui está como eu começaria com o código R:

 glm(match ~ outdoorDif*outdoorImport + optimistDif*optimistImport,
     family=binomial(link="logit"))

outdoorDif = a diferença das respostas das duas pessoas sobre o quanto elas gostam de atividades ao ar livre. outdoorImport = a média das duas respostas sobre a importância de uma partida em relação às respostas sobre o aproveitamento de atividades ao ar livre.

O * indica que os termos anteriores e seguintes estão interagidos e também incluídos separadamente.

Você sugere que os dados da correspondência sejam binários, com as duas únicas opções: "felizmente casado" e "sem segundo encontro", e foi o que assumi ao escolher um modelo de logit. Isso não parece realista. Se você tiver mais de dois resultados possíveis, precisará mudar para um logit multinomial ou ordenado ou algum modelo desse tipo.

Se, como você sugere, algumas pessoas tentaram várias correspondências, isso provavelmente seria uma coisa muito importante a ser considerada no modelo. Uma maneira de fazer isso pode ser ter variáveis ​​separadas indicando o número de tentativas anteriores de correspondência para cada pessoa e interagir com as duas.


Obrigado pela ótima resposta .. Estou lhe dando a recompensa! :) Essa parece ser uma boa abordagem. Talvez se você tiver N perguntas que se encaixam em categorias do tipo M (por exemplo, perguntas de atletismo), você pode enriquecer o modelo usando uma média da importância e das diferenças dentro dessa categoria e adicioná-lo como um termo adicional. Não é perfeito, mas pode ser uma maneira simples de capturar a interação de várias variáveis ​​correlacionadas. Mais uma vez obrigado, ficaria feliz em ouvir quaisquer outros pensamentos que não deram sua resposta;).
d_a_c321

Você não deve normalizar as respostas primeiro? Se todos gostassem do ar livre, a resposta ao ar livre deveria se tornar menos relevante, porque seria um mau indicador de compatibilidade.
Sklivvz

@ Skliwz, não sei como você normalizaria uma resposta de múltipla escolha (ordinal). Além disso, lembre-se de que transformações lineares de variáveis ​​preditivas contínuas às vezes são desejáveis ​​pelos motivos discutidos aqui: stats.stackexchange.com/q/7112/3748 e aqui: stats.stackexchange.com/q/19216/3748, mas eles não alteram o previsões de modelos, exceto alguns problemas computacionais incomuns. Se todo mundo gosta de atividades ao ar livre, a resposta ao ar livre é menos relevante, mas não acho que seja realmente um problema para o modelo, como eu o especifiquei. (Não que o meu modelo é perfeito)
Michael Bishop

1

Uma abordagem simples seria a seguinte.

Para as duas perguntas de preferência, faça a diferença absoluta entre as respostas dos dois entrevistados, fornecendo duas variáveis, digamos z1 e z2, em vez de quatro.

Para as questões de importância, posso criar uma pontuação que combine as duas respostas. Se as respostas fossem, digamos, (1,1), eu daria 1, a (1,2) ou (2,1) recebe 2, a (1,3) ou (3,1) recebe uma 3, um (2,3) ou (3,2) recebe um 4 e um (3,3) recebe um 5. Vamos chamar de "pontuação de importância". Uma alternativa seria usar max (response), fornecendo 3 categorias em vez de 5, mas acho que a versão de 5 categorias é melhor.

Agora eu criaria dez variáveis, x1 - x10 (para concretude), todas com valores padrão de zero. Para as observações com uma pontuação de importância para a primeira pergunta = 1, x1 = z1. Se a pontuação de importância para a segunda pergunta também = 1, x2 = z2. Para as observações com uma pontuação de importância para a primeira pergunta = 2, x3 = z1 e se a pontuação de importância para a segunda pergunta = 2, x4 = z2 e assim por diante. Para cada observação, exatamente um de x1, x3, x5, x7, x9! = 0 e da mesma forma para x2, x4, x6, x8, x10.

Tendo feito tudo isso, eu executaria uma regressão logística com o resultado binário como a variável alvo e x1 - x10 como os regressores.

Versões mais sofisticadas disso podem criar escores de maior importância, permitindo que a importância do entrevistado masculino e feminino seja tratada de maneira diferente, por exemplo, a (1,2)! = A (2,1), onde ordenamos as respostas por sexo.

Um déficit desse modelo é que você pode ter várias observações da mesma pessoa, o que significaria que os "erros", em termos gerais, não são independentes entre as observações. No entanto, com muitas pessoas na amostra, eu provavelmente ignoraria isso, para uma primeira passagem, ou construiria uma amostra onde não houvesse duplicatas.

Outro déficit é que é plausível que, à medida que a importância aumenta, o efeito de uma determinada diferença entre preferências em p (falha) também aumentaria, o que implica uma relação entre os coeficientes de (x1, x3, x5, x5, x7, x9) e também entre os coeficientes de (x2, x4, x6, x8, x10). (Provavelmente não é uma ordem completa, pois não é claro a priori para mim como uma pontuação de importância (2,2) se relaciona com uma pontuação de importância (1,3).) No entanto, não impusemos isso no modelo. Provavelmente eu ignoraria isso no começo e veria se estou surpreso com os resultados.

A vantagem dessa abordagem é que ela não impõe nenhuma suposição sobre a forma funcional da relação entre "importância" e a diferença entre respostas preferenciais. Isso contradiz o comentário anterior sobre o déficit, mas acho que a falta de uma forma funcional imposta é provavelmente mais benéfica do que a falha relacionada em levar em conta as relações esperadas entre os coeficientes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.