InicioIA y Aprendizaje AutomáticoEmparejador de Currículums y Empleos — Similitud de Embeddings en Vivo

🧑‍💼 Emparejador de Currículums y Empleos — Similitud de Embeddings en Vivo

Observa cómo los currículums y las ofertas de empleo se convierten en vectores dentro de un espacio compartido y se emparejan por similitud del coseno, con una lista corta clasificada en vivo que se actualiza al ajustar la ponderación entre habilidades y experiencia.

IA y Aprendizaje Automático3DModerado60 FPS
ai-hr-candidate-matching ↗ Abrir independiente

Acerca del Emparejador de Currículums y Empleos

Los sistemas de seguimiento de candidatos solían depender casi por completo de la coincidencia de palabras clave: un currículum que nunca escribiera la frase exacta "gestión de proyectos" quedaba filtrado aunque describiera la gestión de tres lanzamientos multifuncionales. El emparejamiento basado en embeddings resuelve esto convirtiendo tanto los currículums como las ofertas de empleo en vectores numéricos dentro de un espacio compartido, y luego clasifica a los candidatos según cuán alineada esté la dirección de su vector con la del empleo, en lugar de por la coincidencia literal de cadenas de texto. La misma técnica —codificar ambos lados en una única geometría y luego medir el ángulo entre ellos— sustenta la búsqueda semántica moderna, los sistemas de recomendación y la generación aumentada por recuperación, no solo el software de contratación.

Esta simulación construye una versión pequeña y totalmente transparente de ese proceso, en lugar de una demostración de caja negra. Una taxonomía fija de ocho categorías de habilidades más los años de experiencia define un vector de nueve dimensiones para dieciséis candidatos y para la oferta de empleo que selecciones. Mover el control deslizante de habilidades frente a experiencia reescala esas dimensiones y recalcula la similitud del coseno real entre cada candidato y el empleo, reclasificando al instante la lista corta. Un análisis de componentes principales genuino —calculado en vivo mediante iteración de potencia sobre la matriz de covarianza, no un diseño 2D enlatado— proyecta el espacio de nueve dimensiones al diagrama de dispersión que ves, de modo que el propio gráfico se reorganiza visiblemente cuando cambia la ponderación o la oferta de empleo.

🔍 Qué muestra

Dieciséis vectores de candidatos y un vector de requisitos del empleo comparten un espacio de embeddings de 9 dimensiones (8 habilidades + experiencia). Una proyección PCA en vivo los sitúa en un diagrama de dispersión 2D, la similitud del coseno con el empleo determina su color y la fuerza de las líneas de conexión, y la lista corta clasificada se reordena en tiempo real al mover el control deslizante de ponderación o cambiar de empleo.

🎛 Cómo usarlo

Elige una oferta de empleo del menú desplegable, arrastra el control deslizante de habilidades frente a experiencia para ver cómo se reorganizan la lista corta y el diagrama de dispersión, ajusta el tamaño de la lista corta, y haz clic en cualquier punto del diagrama (o en cualquier fila de la lista corta) para examinar el radar de habilidades de ese candidato frente a los requisitos del empleo.

💡 ¿Sabías que…?

Las herramientas reales de contratación basadas en embeddings tienen un historial documentado de amplificar el sesgo integrado en los datos históricos de contratación: Amazon, célebremente, descartó en 2018 un modelo interno de cribado de currículums después de que aprendiera a rebajar la puntuación de los currículums que mencionaban universidades femeninas. Vectores transparentes y auditables como los de esta simulación son uno de los remedios propuestos.

Preguntas Frecuentes

¿Qué es un embedding, y por qué representar los currículums y las ofertas de empleo como vectores?

Un embedding es un vector numérico que sitúa un elemento en un espacio de coordenadas compartido, de modo que los elementos similares queden cerca unos de otros. En esta simulación, cada currículum y oferta de empleo se representa mediante un vector pequeño e interpretable por humanos: un número por habilidad (competencia de 0 a 1) más un número para los años de experiencia. Los sistemas de producción reales suelen usar vectores densos de unos cientos a unos miles de dimensiones producidos por un modelo de lenguaje, pero la idea subyacente es idéntica: convertir texto no estructurado en un punto en el espacio, de modo que la distancia y el ángulo entre puntos se conviertan en señales matemáticamente significativas.

¿Por qué similitud del coseno en lugar de distancia euclidiana?

La similitud del coseno mide el ángulo entre dos vectores independientemente de su longitud: cos θ = (A·B)/(|A||B|). Esto importa aquí porque un candidato con alta competencia en todos los ámbitos y un candidato con el mismo perfil escalado hacia abajo (calificado un punto más bajo en cada habilidad) deberían seguir considerándose una coincidencia direccional igualmente buena con un empleo; la distancia euclidiana penalizaría al segundo candidato simplemente por tener una magnitud menor, mientras que la similitud del coseno indica correctamente que apuntan en la misma dirección. Esta es la opción estándar para los embeddings de currículums y documentos en los sistemas reales de seguimiento de candidatos y de búsqueda.

¿Qué cambia realmente, a nivel matemático, el control deslizante de ponderación habilidades-experiencia?

Cada vector de candidato y de empleo se reescala antes de calcular la similitud: las ocho dimensiones de habilidades se multiplican por la ponderación de habilidades w, y la dimensión de experiencia se multiplica por (1 − w). Como la similitud del coseno depende de las proporciones relativas entre dimensiones, no de su tamaño absoluto, cambiar w rota genuinamente cada vector en el espacio: un candidato fuerte en habilidades pero con poca experiencia puntúa más alto cuando w se acerca a 1, y un generalista experimentado con una profundidad de habilidades modesta escala posiciones en la lista cuando w se acerca a 0. La reclasificación que ves es una consecuencia real y directa de ese reescalado, no una animación guionizada.

¿Cómo se calcula la posición en el diagrama de dispersión 2D a partir de un vector de nueve dimensiones?

La simulación ejecuta un análisis de componentes principales (PCA) real sobre el conjunto actual de vectores ponderados. Centra todos los puntos en su media, construye la matriz de covarianza de las dimensiones reescaladas, y encuentra los dos autovectores principales mediante iteración de potencia con deflación: el mismo método iterativo que se usa en producción para aproximar el PCA cuando una descomposición propia completa es innecesaria. Cada punto se proyecta luego sobre esas dos direcciones, razón por la cual mover el control deslizante de ponderación no solo reclasifica la lista corta, sino que también reorganiza visiblemente el diagrama de dispersión: los ejes de máxima varianza cambian a medida que cambia la ponderación.

¿Qué limitaciones reales de taxonomía de habilidades tiene un modelo pequeño y construido a mano como este?

Esta simulación reduce cada currículum a ocho categorías de habilidades y un número de experiencia, lo cual es una simplificación docente útil pero una simplificación excesiva real del contenido de un currículum. Los sistemas de producción se enfrentan a problemas más difíciles que este modelo evita por completo: la coincidencia de sinónimos y abreviaturas ("JS" frente a "JavaScript" frente a "ECMAScript"), la vigencia y el deterioro de las habilidades (una habilidad mencionada pero no usada en ocho años debería contar menos), señales de antigüedad ocultas en los cargos y logros en lugar de calificaciones explícitas, y el hecho de que dos personas pueden describir la misma habilidad subyacente con un vocabulario completamente distinto. Los modelos de embeddings reales se entrenan específicamente para ser robustos frente a ese desajuste de vocabulario.

¿Por qué cambiar la oferta de empleo reorganiza tanto la clasificación?

Cada oferta de empleo predefinida en esta simulación lleva su propio vector de habilidades requeridas y su propio valor de experiencia requerida, de modo que cambiar de empleo desplaza el punto contra el que se compara a cada candidato: el propio punto del empleo se reubica en el espacio de embeddings. Un candidato que era la mejor coincidencia para un requisito de "Científico de Datos" (fuerte en Datos y AA, SQL) puede caer a la mitad de la lista para un requisito de "Gerente de Producto" (fuerte en Producto/UX, Liderazgo, Comunicación), porque el ángulo de su vector con el nuevo vector del empleo simplemente está menos alineado, aunque las propias habilidades del candidato nunca hayan cambiado.

¿Qué sesgos y trampas afectan a los embeddings reales de emparejamiento de currículums que esta simulación no puede mostrar?

Se ha demostrado que las herramientas reales de contratación basadas en embeddings codifican y amplifican el sesgo presente en sus datos de entrenamiento; por ejemplo, rebajando sistemáticamente la puntuación de currículums que mencionan universidades femeninas, ciertos nombres o lagunas profesionales no tradicionales, porque el modelo aprendió esas correlaciones de patrones históricos de contratación en lugar de a partir de cualquier señal genuina de habilidad. Los vectores de habilidades transparentes y construidos a mano de esta simulación no pueden reproducir ese modo de fallo, que es exactamente el objetivo: los sistemas reales necesitan auditorías explícitas de equidad, depuración de atributos protegidos y revisión humana precisamente porque sus embeddings son opacos de una manera que este modelo de juguete de ocho dimensiones deliberadamente no lo es.

⚙ Bajo el capó

Dieciséis candidatos y una oferta de empleo se representan como vectores ponderados de 9 dimensiones (8 habilidades + experiencia); la similitud del coseno real clasifica la lista corta y una PCA en vivo por iteración de potencia proyecta esos mismos vectores ponderados al diagrama de dispersión 2D, de modo que ambas vistas se recalculan juntas cada vez que cambia la ponderación o el empleo.

Textura CanvasSimilitud del CosenoProyección PCAEmbeddingsTecnología de RR. HH.

3D · Motor Three.js / canvas-texture · Objetivo de 60 FPS · Funciona totalmente en el cliente, sin instalación

¿Qué encontraste?

Añadir pasos de reproducción (opcional)