BLOGS

El algoritmo de los cupidos 2.0

15 abril 2013

Tiempo ha que Cupido disparaba sus flechas más o menos ciegamente. Como todos en estos tiempos, hasta el dios del amor se ha modernizado y actualmente los portales de citas o encuentros por internet se han convertido en una herramienta de auxilio al niño alado cada día más utilizados y cada vez más lucrativos para sus creadores. Pero, ¿como asignan las parejas dichos portales? ¿actúan ciegamente como el dios Cupido? Lo cierto es que no y que, dada la gran cantidad de gente que se apuntan a ello, es necesario utilizar algoritmos que propongan parejas de forma eficaz, con lo cual se pretende que la mayor parte de los usuarios queden satisfechos.

Naturalmente cuanto más gente se apunte a un portal concreto, más posibilidades existirá de encontrar la persona adecuada para alguien nuevo que se apunte, pero, a la vez, más difícil será manejar la cantidad de datos necesarios para realizar los emparejamientos. Por lo tanto, es necesario diseñar un procedimiento que permita determinar el tipo de datos que hay que saber de cada persona y, después, en función de dichos datos, tratar de realizar tantos emparejamientos satisfactorios como sea posible.

Afortunadamente hay un charla TED que nos explica cómo se hace esta asignación. Para quien no lo sepa TED  (copiando de la wikipedia) “es una organización sin ánimo de lucro dedicada a las “Ideas dignas de difundir” (del inglés: Ideas worth spreading). TED es ampliamente conocida por su congreso anual (TED Conference) y sus charlas (TED Talks) que cubren un amplio espectro de temas que incluyen ciencias, arte y diseño, política, educación, cultura, negocios, asuntos globales, tecnología y desarrollo, y entretenimiento”. Numerosos y muy destacados conferenciantes han participado en las charlas TED. En una de las lecciones TED,  Como decía, en una charla TED Christian Rudder, fundador de uno de dichos portales de citas y encuentros, relata las matemáticas involucradas en el funcionamiento de dicho portal. Ya que métodos de asignación más o menos ciegos (como Cupido) o basados en algoritmos de emparejamiento de grafos como los que hemos contado en alguna ocasión, incluso aquellos métodos que tienen en cuenta preferencias de los participantes, no son válidos dadas las características dinámicas del problema que estamos considerando.

Christian Rudder. Fuente.

Christian Rudder. Fuente.

Veamos qué es lo que nos cuenta Christian Rudder:

En primer lugar, se han de acumular tantos datos como sea posible: hemos de conocer las preferencias de aquellos que se apuntan al portal, se les ha de formular preguntas, pero las preguntas han de tener varias características para que su información sea eficaz: las respuestas a dichas preguntas han de ser o bien un simple o no o un número: han de ser fácilmente cuantificables. Tanto en las preferencias de cada uno como en las características o preferencias que deseamos de nuestro posible pareja. Algunas de dichas preguntas serían: ¿Te gustaría tener hijos algún día? ¿cuántas veces te cepillas los dientes? ¿te gustan las películas de miedo? ¿crees en dios? 

Pero, naturalmente, no todas las preguntas (o las respuestas a ellas) han de valorarse igualmente, algunas son más significativas que otras, así se le pide a los usuarios que clasifiquen la importancia de cada una de las preguntas; por ejemplo, para mi puede ser poco significativo si a alguien le gustan las películas de miedo, pero fundamental que se cepille los dientes al menos tres veces al día (y, a ser posible, que esas veces sean después de las comidas, pero esto no sé si se llega a preguntar).

Así, estos tres elementos para cada una de las preguntas formuladas (la respuesta del usuario, la deseada por su posible pareja y la importancia que le demos a dicha pregunta) son los que alimentan el algoritmo de asignación de parejas. Y lo único que hay que hacer es convertir todas las respuestas en un número por cada pareja potencial, de tal forma que la información más o menos abstracta obtenida de las respuestas se conviertan en algo manejable por el ordenado como es un número. Naturalmente confiamos en que, cuanto mayor sea dicho número, más posibilidades tenemos de construir una pareja adecuada. La pregunta es. ¿cómo construimos dicho número? Y la respuesta es relativamente simple, veámosla con un ejemplo: supongamos que se formulan solo dos preguntas y tratemos de asignar un número a las respuestas de dos parejas para ver cómo de afines son. Las dos preguntas son:

1) ¿Te gustan mucho las historias de Mati?  Y las posibles respuestas son: mucho, bastante, poco, nada.

2)  ¿Eres vegetariano/a? Y las posibles respuestas son o no.

Como hemos dicho antes, también se pregunta sobre la importancia de ese tema a los distintos candidatos. Supongamos que obtenemos estas respuestas:

De la persona a la que queremos asignar una pareja (llamemos 1 a esta persona):

tarjeta1

 

De un posible candidato (llamado A) a emparejarse con 1:

tarjeta2

De otro posible candidato (llamado B) a emparejarse con 1:

tarjeta3

Tratamos de darle un número a las parejas 1-A y 1-B para determinar cuál de las dos es más compatible.

En primer lugar lo que haremos será asignar un valor a las importancias que le damos a las respuestas de los demás. Así si decimos que la pregunta X no es importante, a dicha pregunta le asignamos un valor 0, si es poco importante le asignamos un valor 1, bastante importante, un valor 10, a muy importante (mucho), le asignamos un valor 50 y si decimos que es obligatoria, le asignamos un valor 250.

Así como 1 ha dicho que la pregunta 1 es poco importante, le asignaremos a las respuestas de A y B como máximo ese valor si coincide con los deseos de 1 (que era que le gustaran mucho las historias de Mati). Puesto que 1 ha dicho que la primera pregunta es poco importante (1 punto) y que la segunda es bastante importante (10 puntos) el total al que se puede aspirar por parte de y de B en el grado de satisfacción de  1 es de 11 puntos. De esos posibles 11 puntos consigue 1 en la pregunta 1 puesto que su respuesta cumple los deseos de 1 y 0 en la pregunta 2 puesto que no es vegetariano contrariamente a lo que deseaba 1. Por tanto A  tiene un total de 1 punto sobre 11 (valor_de_A_para_1=1/11). Sin embargo, saca 0 puntos en la primera pregunta ya que no cumple los deseo de (podríamos matizar esto ya que su respuesta no difiere en mucho) y 10 puntos en la segunda pregunta puesto que sí es vegetariano, tal y como deseaba 1, así que obtiene 10 puntos de 11  (valor_de_B_para_1=10/11).

El siguiente paso es hacer lo mismo con respecto a los deseos de y de B. A había dado poca importancia a las dos preguntas, luego lo máximo que se puede alcanzar es 2 puntos. saca 0 puntos en la primera pregunta, pero saca 1 punto en la segunda, así que obtiene un total de 1 punto sobre 2 posibles (valor_de_1_para_A=1/2). Con respecto a los deseos de B, este había otorgado poca importancia a la primera pregunta (1 punto en disputa) y mucha importancia a la segunda pregunta (50 puntos en disputa), de esos 51 puntos posibles, A obtiene solo 1 correspondiente a la primera pregunta, así que tiene 1 punto sobre 51 (valor_de_1_para_B=1/51).

Entonces ya sabemos que para el mejor candidato es B que obtiene 10/11 puntos, mientra que obtiene 1/11, pero desde el punto de vista de Bes un mal candidato puesto que solo obtiene 1/51 puntos ¿Cómo determinamos qué pareja es la mejor? Pues mediante la media geométrica de los dos valores que involucran a cada pareja (la media geométrica de dos valores es la raíz cuadrada del producto de los dos valores). Así a la pareja 1-A le asignamos como valor la raíz cuadrada de (1/11)(1/2) y ese valor es 0,213 y a la pareja 1-B le asignamos la raíz cuadrada de (10/11)(1/51) cuyo valor es 0,133. Luego concluimos que la pareja más factible (con valores muy bajos en este ejemplo) es la pareja 1-A.

Alguien se podría preguntar el porqué de usar la media geométrica en vez de la media aritmética. La razón es que en este tipo de cuestiones, la media geométrica es más fiable; imaginad que tenemos dos parejas, en la primera pareja ambos obtienen una puntuación de 1/3 con respecto al otro y en la segunda pareja se obtienen valores muy desiguales, así uno obtiene una puntuación de 2/2 y el otro un 0/2. Si realizamos la media aritmética de ambas parejas, para la primera queda 1/3 y la segunda 1/2, luego esta última obtiene mejor puntuación, sin embargo, en esa segunda pareja, uno de los individuos ha obtenido un 0 con respecto al otro, lo cual quiere decir que es totalmente incompatible y esa pareja está condenada al fracaso. Si calculamos la media geométrica, eso queda mejor reflejado ya que la media geométrica de la primera pareja es 1/3, mientras que de la segunda es 0, mostrando así la inviabilidad de esta segunda  pareja.

Evidentemente, una vez que se ponga en contacto la pareja asignada por el algoritmo, los miembros de esta deberían poner un poco de su parte y tratar de enamorar al otro por los medios que han existido siempre porque ningún algoritmo sustituirá a una caricia, a una mirada, a un beso…

2 comentarios · Escribe aquí tu comentario

  1. Dice ser rrs noticias

    que “rifle” más chulo tiene cupido :))
    http://www.newshub.es/

    15 abril 2013 | 10:28

  2. Dice ser manuel

    He visto un algoritmo,
    allá a lo lejos,
    no se si macho o hembra,
    pues me costó enfocarlo
    y no con algo,
    sino con mucho ritmo,
    movía hasta las orejas;
    daba gráciles saltos
    de derecha a izquierda,
    y de izquierda a derecha
    y de vez en cuando
    movía la nariz,
    arqueaba las cejas,
    cerraba los ojos,
    saltaba, corría,
    desaparecía entre la maleza;
    me quedé perplejo,
    temblando de miedo,
    ¡qué bestias más raras
    se ven por los bosques
    de pinos y jaras!.

    15 abril 2013 | 14:29

Los comentarios están cerrados.