Diez formas de utilizar incrustaciones para tareas tabulares de aprendizaje automático

Diez formas de utilizar incrustaciones para tareas tabulares de aprendizaje automático
Imagen del editor

Introducción

Las incrustaciones (representaciones numéricas basadas en vectores de datos típicamente no estructurados como texto) se han popularizado principalmente en el campo del procesamiento del lenguaje natural (PLN). Pero también son una herramienta poderosa para representar o complementar datos tabulares en otros flujos de trabajo de aprendizaje automático. Los ejemplos no sólo se aplican a datos de texto, sino también a categorías con un alto nivel de diversidad de propiedades semánticas latentes.

Este artículo descubre diez usos interesantes de las incorporaciones para aprovechar al máximo los datos en una variedad de tareas, modelos o proyectos de aprendizaje automático en su conjunto.

Configuración inicial: algunas de las 10 estrategias que se describen a continuación estarán acompañadas de breves extractos de código ilustrativos. Primero se proporciona un conjunto de datos de juguetes de ejemplo utilizado en los ejemplos, junto con las importaciones más básicas y comunes necesarias en la mayoría de ellos.

1. Codificación de características categóricas con incrustaciones

Este es un enfoque útil en aplicaciones como sistemas de recomendación. En lugar de manejarse numéricamente, las características categóricas de alta cardinalidad, como los ID de usuarios y productos, se convierten mejor en representaciones vectoriales. Este enfoque se ha aplicado ampliamente y se ha demostrado que captura eficazmente los aspectos semánticos y las relaciones entre usuarios y productos.

Este ejemplo práctico define un par de capas de incrustación como parte de un modelo de red neuronal que toma descriptores de usuario y producto y los convierte en incrustaciones.

2. Promedio de incrustaciones de palabras para columnas de texto

Este enfoque comprime múltiples textos de longitud variable en incrustaciones de tamaño fijo agregando incrustaciones de palabras dentro de cada secuencia de texto. Se parece a uno de los usos más comunes de las incrustaciones; El giro aquí es agregar incrustaciones a nivel de palabra en una incrustación a nivel de oración o texto.

El siguiente ejemplo utiliza Gensim, que implementa el popular algoritmo Word2Vec para convertir unidades lingüísticas (normalmente palabras) en incrustaciones y realiza una agregación de múltiples incrustaciones a nivel de palabra para crear una incrustación asociada con cada reseña de usuario.

3. Agrupación de incrustaciones en metacaracterísticas

Apilar verticalmente múltiples vectores de incrustación individuales en una matriz NumPy 2D (una matriz) es el paso principal para realizar la agrupación en un conjunto de incrustaciones de reseñas de clientes e identificar agrupaciones naturales que podrían relacionarse con temas en el conjunto de revisión. Esta técnica captura grupos semánticos generales y puede producir características categóricas informativas nuevas.

4. Aprendizaje de incrustaciones tabulares autosupervisadas

Por sorprendente que parezca, aprender representaciones vectoriales numéricas de datos estructurados (particularmente para conjuntos de datos sin etiquetar) es una forma inteligente de convertir un problema no supervisado en un problema de aprendizaje autosupervisado: los datos mismos generan señales de entrenamiento.

Si bien estos enfoques son un poco más elaborados que el alcance práctico de este artículo, comúnmente utilizan una de las siguientes estrategias:

Predicción de características enmascaradas: oculta aleatoriamente los valores de algunas características, similar al modelado de lenguaje enmascarado para entrenar modelos de lenguaje grandes (LLM), lo que obliga al modelo a predecirlos en función de las características visibles restantes. Detección de perturbaciones: exponga el modelo a una variante ruidosa de los datos, con algunos valores de características intercambiados o reemplazados, y establezca el objetivo del entrenamiento para identificar qué valores son "legítimos" y cuáles han sido alterados.

5. Creación de incrustaciones categóricas con múltiples etiquetas

Este es un enfoque sólido para evitar errores de tiempo de ejecución cuando ciertas categorías no están en el vocabulario utilizado por algoritmos de incrustación como Word2Vec, manteniendo al mismo tiempo la usabilidad de las incrustaciones.

Este ejemplo representa una sola categoría como "Teléfono" usando múltiples etiquetas como "móvil" o "táctil". Crea una incrustación semántica compuesta agregando las incrustaciones de etiquetas asociadas. En comparación con las codificaciones categóricas estándar como one-hot, este método captura la similitud con mayor precisión y aprovecha el conocimiento más allá de lo que Word2Vec "sabe".

6. Uso de incrustaciones contextuales para características categóricas

Este enfoque un poco más sofisticado primero asigna variables categóricas a incrustaciones "estándar" y luego las pasa a través de capas de autoatención para producir incrustaciones enriquecidas en contexto. Estas representaciones dinámicas pueden cambiar entre instancias de datos (por ejemplo, reseñas de productos) y capturar dependencias entre atributos, así como interacciones de características de orden superior. En otras palabras, esto permite que los modelos posteriores interpreten una categoría de manera diferente según el contexto, es decir, los valores de otras características.

7. Aprendizaje de incrustaciones en funciones numéricas agrupadas

Es común convertir características numéricas detalladas como la edad en contenedores (por ejemplo, grupos de edad) como parte del preprocesamiento de datos. Esta estrategia produce incrustaciones de características agrupadas, que pueden capturar valores atípicos o estructuras no lineales subyacentes a la característica numérica original.

En este ejemplo, la característica de calificación numérica se convierte en una contraparte agrupada y luego una capa de incrustación neuronal aprende una representación vectorial 3D única para diversos rangos de calificación.

8. Fusión de incrustaciones y funciones sin procesar (funciones de interacción)

Supongamos que encuentra una etiqueta que no se encuentra en Word2Vec (por ejemplo, un nombre de producto como "Teléfono"). Este enfoque combina incorporaciones semánticas previamente entrenadas con características numéricas sin procesar en un único vector de entrada.

Este ejemplo primero obtiene una representación incrustada de 16 dimensiones para nombres de productos categóricos y luego agrega calificaciones sin procesar. Para el modelado posterior, esto ayuda al modelo a comprender ambos productos y cómo se perciben (por ejemplo, sentimiento).

9. Uso de incrustaciones de oraciones para textos largos

Los transformadores de oraciones convierten secuencias completas, como revisiones de texto, en vectores de incrustación que capturan la semántica a nivel de secuencia. Con un pequeño giro (convertir una reseña en una lista de vectores) transformamos el texto no estructurado en atributos de ancho fijo que los modelos pueden usar junto con las columnas tabulares clásicas.

10. Introducir incrustaciones en modelos de árboles

La estrategia final combina el aprendizaje de representaciones con el aprendizaje de datos tabulares en un enfoque de fusión híbrida. De manera similar al elemento anterior, las incrustaciones que se encuentran en una sola columna se expanden en varias columnas de características. La atención se centra aquí no en cómo se crean las incorporaciones, sino en cómo se utilizan y se introducen en un modelo posterior junto con otros datos.

Comentarios finales

Las incrustaciones no son simplemente una cuestión de PNL. Este artículo mostró una variedad de usos posibles de incrustaciones (con poco o ningún esfuerzo adicional) que pueden fortalecer los flujos de trabajo de aprendizaje automático al desbloquear la similitud semántica entre ejemplos, proporcionar un modelado de interacción más rico y producir representaciones de características compactas e informativas.