Hay muchas formas de aplicar el aprendizaje automático (ML) a las aplicaciones / sitios de citas.
El principal problema con las citas es encontrar la pareja adecuada para aumentar las posibilidades de que una relación dure más tiempo.
Muchas personas tienen diferentes personajes que pueden determinar el fracaso o el éxito de una relación.
Sabemos que el aprendizaje automático es bueno en la clasificación. Por lo tanto, podemos convertir el problema de emparejamiento como un problema de clasificación y hacer suposiciones simplificadoras como:
- ¿Cómo es posible que nadie en 2017 haya creado una aplicación de citas que sea realmente buena?
- Si se casó con alguien que conoció en línea, ¿cómo se vería en su país?
- Conocí a un chico en uno de esos sitios de citas en línea que viven fuera del estado. Parece tener signos de ser un narcisista. Él es muy feliz con las relaciones de larga distancia. ¿Alguien ha conocido a alguien así?
- Cómo salir como un hombre gay que no usa aplicaciones de citas y disfruta de la vida nocturna
- ¿Las aplicaciones y sitios de citas realmente funcionan?
- La probabilidad de que dos personas sean una buena coincidencia depende únicamente de los atributos que son medibles.
- Y que podemos medir esos atributos a partir de la información proporcionada por el usuario en su perfil, las relaciones pasadas y los patrones de qué tipo de personas están buscando.
Por supuesto, muchos de esos atributos son abstractos y difíciles de codificar en máquinas. Pero aquí es donde el LD puede ser más útil, no tenemos idea de cómo medir esos atributos porque algunos están definidos vagamente. Podemos usar ML para saber cómo afecta cada atributo a qué tan buena es una pareja para dos personas. Por lo tanto, solo necesitamos recopilar datos que contengan los atributos de las personas y las tasas de fracaso y éxito de sus relaciones.
Y podemos usar un diseño modular, dejar que cada atributo sea procesado por un módulo ML especializado y dejar que la decisión final sea tomada por un solo módulo “maestro”.
Dados los atributos de la persona A y el de la persona B, debemos determinar la probabilidad de que las dos personas, A y B, sean una buena coincidencia.
¿De qué atributos estamos hablando?
- Apariencia.
- Preferencias.
- Sexo, ya sea masculino, femenino o transgénero.
- Carrera.
- Años.
- Religión.
Todos estos atributos se pueden convertir en forma vectorial antes de pasar a un modelo de aprendizaje automático.
Por ejemplo, podemos usar una red neuronal convolucional (CNN) para extraer características de apariencia de alto nivel. La CNN puede convertir la apariencia en un vector descriptivo de alto nivel que codifica la apariencia de las personas. Un modelo de este tipo generalmente puede ser entrenado en la detección de personas y si aprende a detectar personas, probablemente haya desarrollado una buena representación intermedia de cómo se ven las personas. Por lo tanto, podemos tocar las características de cualquiera de los mapas de características convolucionales de alto nivel antes de la capa de clasificación final y usarlas como descriptores de apariencia de alto nivel.
La información de preferencia se puede encontrar en la descripción de las personas de sí mismos. Podemos usar el procesamiento de lenguaje natural (PNL) para extraer características de alto nivel que representan las preferencias de cada persona. El proceso puede involucrar word2vec y una red LSTM (memoria a corto plazo largo) que analiza las preferencias de las personas, en forma de texto escrito, en un vector descriptor.
Del mismo modo, otros atributos se pueden convertir en forma vectorial mediante un módulo especializado de red neuronal (NN).
En nuestro caso, la apariencia es manejada por una CNN y las preferencias por una LSTM.
Supongamos lo siguiente:
- Cada atributo se convierte en un vector. Dado un atributo [math] a_ {i} [/ math]. Necesitamos un módulo ML para convertir cada atributo en un vector [math] v_ {i} [/ math]. Llamemos a los vectores de atributos de [math] v [/ math]. Así que la apariencia puede ser [math] v_1 [/ math], preferencias [math] v_2 [/ math] y así sucesivamente.
- Luego podemos concatenar los vectores de atributos en un solo vector [math] V = [v_1, v_2,…, v_ {n}] [/ math] para n atributos. Llamemos a [math] V [/ math], el vector de coincidencia.
- Luego podemos alimentar el vector de coincidencia en un módulo maestro ML que genera la probabilidad. Si la probabilidad es alta, entonces A y B son una coincidencia válida, mientras que si la probabilidad es baja, A y B son una no coincidencia. Llamemos a esta probabilidad la probabilidad de coincidencia.
- Podemos entrenar el modelo de manera integral utilizando una gran cantidad de datos etiquetados.
En el momento de la inferencia, las probabilidades de coincidencia pueden ayudar a encontrar socios probables para un usuario en particular. Las coincidencias se pueden organizar en orden descendente de probabilidades de coincidencia.
De esta manera podemos tener una aplicación de Match Match con alta precisión.
Por supuesto, hay muchos atributos que pueden hacer o deshacer una relación y los seres humanos son muy buenos en una cosa, siendo impredecibles.
ML solo puede ayudar a relacionar personas basándose en algunas suposiciones simplificadoras y, por lo tanto, puede haber muchos casos de fracaso sin interacciones humanas reales.
Espero que esto ayude.