ARN ¿Cómo consigue Nubelo el Perfect Match?

Publicado el - Última modificación el

ARN (Algoritmo de Recomendación de Nubelo) es la herramienta de Data Science que hemos desarrollado en Nubelo durante 2015 para conseguir un "Perfect Match" entre proyectos y profesionales. Para evitar el trabajo manual de buscar a los profesionales más adecuados para una determinada oferta, ARN analiza en detalle todos los aspectos de la misma y escoge los mejores candidatos entre los 800.000 perfiles disponibles en Nubelo.  En Nubelo tenemos claro que hay un problema destacado en los portales actuales de empleo, el SPAM. Este problema afecta tanto a la empresa que recibe candidatos que no se ajustan a la descripción emitida, como al profesional que se le aburre con ofertas que no le interesan lo mínimo. El ARN analiza en detalle todos los aspectos de una oferta de trabajo o proyecto freelance y escoge los mejores candidatos entre el más de 1 millón de perfiles disponibles en Nubelo, teniendo en cuenta tanto habilidades técnicas, sectores profesionales, reputación o tests completados. En total, son más de 24 variables tenidas en cuenta al haber validado previamente su correlación con la afinidad del candidato. [Tweet "El algoritmo de recomendación de @Nubelo analiza las ofertas y escoge a los mejores candidatos"] Uno de los objetivos más importantes que hemos perseguido es evitar que el algoritmo de recomendación proponga perfiles no aptos para los proyectos analizados. De igual modo, se ha diseñado el sistema para que ningún profesional quede sin posibilidad de resultar recomendado ante una oportunidad que encaje con su perfil profesional. ARN es un buscador de recomendaciones muy especial. Los sistemas de búsqueda corrientes ofrecen resultados coincidentes con los términos introducidos. Muchas veces ocurre que estos resultados no son todo lo relevantes que esperábamos por falta de contexto o mayor precisión en los términos. Sin embargo, ARN realiza la búsqueda teniendo en cuenta el conjunto de todos los datos que definen un proyecto, incluido el texto libre de su descripción. De este modo, los resultados obtenidos son siempre relevantes y se ajustan con gran precisión a las especificaciones del proyecto. Veamos un ejemplo de cómo ARN realiza un Perfect Matching a partir de los datos de un proyecto concreto: ARN-01Con la información disponible del proyecto se genera un perfil ideal de profesional. ARN no se limita a comparar los datos estructurados entre proyectos y perfiles, sino que usando algoritmos de NLP es capaz de extraer datos relevantes del texto no estructurado en la descripción del proyecto y así completar el campo de habilidades (Skills) de forma completamente autónoma: ARN-02Una vez disponemos del perfil profesional ideal ARN busca y encuentra los profesionales más parecidos y con mejor ranking, como por ejemplo, éste: ARN-04

Modelación del Ranking: Personalización vs Reputación

Un buscador como Google ha de enfrentarse a la dicotomía de qué resultados poner en primer lugar, si los más coincidentes con los términos buscados (top-k document retrieval) o los de mayor calidad y autoridad (re-rank mediante reputación). La tendencia ha ido marcando una clara predisposición a tener cada vez más en cuenta parámetros de calidad y reputación por encima de las coincidencias de contenido, evolucionando desde el control del ranking mediante SEO hacia el concepto Google Panda/Penguin/Hummingbird. Esta situación está presente en cualquier sistema de búsqueda o recomendación (Information Search and Retrieval). Por ejemplo, ¿qué vídeos propone YouTube como recomendaciones en la columna derecha? ¿Los más parecidos al que estamos viendo, o los más visitados aunque sean de otro tema? También en ARN tenemos que determinar cómo calibrar esta balanza de coincidencia (matching) frente a reputación (éxitos previos en Nubelo). [Tweet "El algoritmo de recomendación de @Nubelo tiene en cuenta el matching y la reputación"] Los resultados de recomendación de ARN son devueltos de forma ordenada en base a un valor de relevancia. No es un valor binario, sino decimal, de forma que hay resultados más relevantes que otros. Los primeros resultados son siempre los más relevantes. Pero este valor es una combinación de dos medidas opuestas: similitud (coincidencia, matching) frente a popularidad (calidad, reputación). Si se da demasiada importancia a la reputación, los resultados obtenidos son casi siempre los mismos profesionales, mientras que si se prioriza la similitud o coincidencia los resultados son muy variados, más serendípicos, pero en su mayoría carentes de experiencia previa dentro de la plataforma. Hay que encontrar un compromiso que satisfaga el objetivo de Perfect Matching y a la vez devuelva resultados con la mayor garantía.

Los parámetros de ARN

Para ello ARN cuenta con 24 parámetros ajustables que le aportan la versatilidad necesaria para sacar todo el partido a la estructura de los datos que maneja, o sea, perfiles de profesionales y fichas de proyecto. De estos 24 parámetros, 8 determinan la fuerza del Perfect Matching, y los 16 restantes regulan el peso relativo de la reputación. Cada uno de los parámetros permiten un ajuste fino de tal forma que los datos más significativos del matching o la reputación puedan ser considerados preferentes frente a aquellos datos que presenten mayor ruido o incertidumbre. Esta aplicación es de sobra conocida por la comunidad de Machine Learning: la ponderación de características (features) puede aumentar en gran medida la precisión de una búsqueda. [Tweet "El algoritmo de recomendación de @Nubelo utiliza 24 parámetros para conseguir el perfect match"] Además, los 16 parámetros de reputación combinados producen un valor normalizado de calidad de perfil, que llamamos nubeloRank. Este indicador debe mostrar de forma objetiva la valía de un candidato, y el siguiente gráfico constata que nubeloRank es acorde a la valoración más humana y subjetiva como la que las empresas han dado a los profesionales: ARN-cambio Los profesionales de mayor reputación en Nubelo (situados en la parte izquierda del gráfico) generalmente han conseguido que un alto número de empresas les agreguen a sus favoritos. De igual forma que ARN recomienda profesionales para un proyecto, también es capaz de buscar los mejores proyectos de forma personalizada para cada profesional. No sólo eso; además ARN incorpora aprendizaje automático (Machine Learning) para descartar proyectos como los que el usuario ha rechazado previamente y prestar especial atención a los que se ajustan al tipo de proyectos que el profesional muestra interés. Otra interesante funcionalidad de ARN es encontrar profesionales similares a uno dado. Veamos un ejemplo de cómo se buscan perfiles parecidos. En primer lugar ARN estructura los datos con los que trabajar de una forma clara y ordenada, como se muestra a continuación: ARN-06Después se van analizando los perfiles disponibles en la base de datos en busca de similitud en cada uno de los campos que definen a un profesional. El resultado es un conjunto de perfiles muy parecidos. Veamos uno de ellos: ARN-07

¿Cómo funciona ARN? Algoritmos de Data Science

NubeloRank

ARN dispone de los datos que reflejan la calidad de un profesional. Mediante una mezcla ponderada de los mismos es posible generar un ranking de profesionales, en el que los primeros puestos los ocupen aquellos que más méritos han conseguido o que están destacando con mayor fuerza en la plataforma. De igual forma que Google asocia un PageRank a cada página indexada en su buscador, Nubelo dispone de una medida integrada de reputación por cada profesional. De este modo, es posible recomendar los mejores perfiles para un proyecto determinado, no sólo considerando parámetros de matching, sino también de satisfacción y eficacia.

Content Based Recommendation System

Para lograr el Perfect Matching, Nubelo ha desarrollado el algoritmo ARN en base a lo que se conoce como un Sistema de Recomendación Basado en Contenido. Esto quiere decir que ARN analiza las similitudes entre perfiles profesionales y proyectos, cada uno de ellos definido por múltiples parámetros, y ponderados en la justa medida. Algunos de estos parámetros son valores binarios, otros decimales (escalares) y otros vectoriales (como por ejemplo los skills). El algoritmo de similitud debe tener en cuenta esta diversidad en la naturaleza de los datos.

Sugerencias KNN

Un conocido algoritmo de Data Science y Machine Learning es k-Nearest-Neighbor (kNN ó K-vecinos más cercanos). ARN aplica este algoritmo para generar sugerencias de perfil. De este modo, si un profesional dispone de las habilidades de PHP y jQuery, posiblemente reciba una recomendación de completar su perfil con un test de AJAX. El algoritmo no conoce de forma ad-hoc la conexión entre AJAX y PHP+jQuery, sino que simplemente analiza los perfiles más parecidos al profesional (K-vecinos más cercanos) y observa una tendencia que no está presente en el perfil del sujeto. De esta forma, se aplica inteligencia colectiva para que ARN aprenda las relaciones entre la compleja taxonomía de skills profesionales. Obviamente los skills identificados como de potencial interés para el usuario han de plantearse como sugerencias. Al final es el profesional quien habrá de valorar si realmente tiene o no experiencia en ellas.La inteligencia colectiva de ARN no sólo propone agregar nuevos skills al perfil profesional sino también categorías, subcategorías, tests y grupos. ARN-08

Métricas de Levenshtein, Normalización de tags

A los profesionales se les permite definir sus propias habilidades, mediante una o varias palabras clave, sin restricción a unas predeterminadas. La suma de todos estos tags produce una gran "folksonomía" (o clasificación colaborativa) que muestra diversos grados de redundancia, debido precisamente a su permisividad en la introducción de datos. Con objeto de reducir estas redundancias y así mejorar el matching, ARN incorpora funcionalidades en el área de NLProc (Natural Language Processing) de forma que puede detectar etiquetas (tags) redundantes o mal escritas, con fallos tipográficos. Para ello emplea una métrica de Levenshtein que mide la proximidad literal de dos cadenas de texto. El resultado final es una normalización de los tags de habilidades profesionales, lo que conlleva una reducción de dimensionalidad bastante notable, sin pérdida de información útil y un matching más preciso.

Correlaciones en criterios: Premium vs Longtail

A la hora de determinar qué datos utilizar (en qué grado) y cuales ignorar en el algoritmo ARN es importante disponer de un criterio sólido y matemático que valide la estrategia. Hay datos como el ID del profesional que no aportan información útil en similitud o ranking, más bien mucha dispersión y ruido. Otros en cambio, tienen una relación señal/ruido (S/N) muy interesante, como por ejemplo el índice de repetición con empresas, que refleja tanto la fidelidad del profesional con la plataforma como la satisfacción de la empresa con los trabajos realizados por el profesional. La medida del grado de incertidumbre (ruido) de los datos es relativamente sencilla de obtener dado que ARN dispone de sistemas de correlación que muestran la tendencia de cada uno de estos 24 parámetros frente al ranking final, que calcula el propio algoritmo. Así, encontramos algunos datos que muestran gran incertidumbre, como es el caso del parámetro de reputación lastLogin (que indica la última vez que el usuario entró en la plataforma): Pese a no mostrar apenas correlación con el ranking, lastLogin es un dato muy interesante para promocionar los profesionales más activos, que serán capaces de ofrecer respuestas más rápidas a proyectos nuevos. Un dato que se ajusta bien al ranking es isPremium cuyo valor es 1 si el profesional ha contratado un servicio Premium o 0 en caso contrario. En la gráfica podemos observar que los usuarios Premium se concentran en la parte izquierda, o sea en las mejores posiciones del ranking, mientras que el resto de usuarios están repartidos de forma homogénea en lo que llamaríamos el “Long Tail”. Lo mismo ocurre cuando se mide el número de proyectos que un profesional ha finalizado projectsCompleted. Los usuarios mejor posicionados son los que más proyectos han terminado. ARN-03 Ahora ya conoces el gran secreto de Nubelo. Este algoritmo se está incorporando paulatinamente a los procesos de Nubelo y es una parte fundamental de nuestra nueva App ¿Qué te parece?

Siguiente artículo

Business Intelligence y las metodologías de mejora continua