Medida de similitud supervisada

En lugar de comparar los datos de atributos combinados manualmente, puedes reducir los datos de los atributos a representaciones denominadas incorporaciones y, luego, comparar las incorporaciones. Las incorporaciones se generan cuando se entrena una red neuronal profunda (DNN) supervisada en los datos de atributos. Las incorporaciones asignan los datos de atributos a un vector en un espacio de incorporaciones. Por lo general, el espacio de incorporaciones tiene menos dimensiones que los datos de atributos de una manera que captura cierta estructura latente del conjunto de datos de atributos. Los vectores de incorporación para ejemplos similares, como los videos de YouTube que miran los mismos usuarios, terminan cerca en el espacio de incorporaciones. Veremos cómo la medida de similitud usa esta "cercanía" para cuantificar la similitud para pares de ejemplos.

Recuerda que estamos analizando el aprendizaje supervisado solo para crear nuestra medida de similitud. Luego, un algoritmo usa la medida de similitud, ya sea manual o supervisada, para realizar agrupamientos en clústeres no supervisados.

Comparación de las medidas supervisadas y manuales

En esta tabla, se describe cuándo usar una medida de similitud manual o supervisada según tus requisitos.

RequisitoManualSupervisada
Elimina la información redundante en los atributos correlacionados. No, debes investigar por separado las correlaciones entre los atributos. Sí, la DNN elimina la información redundante.
Proporcionar estadísticas sobre las similitudes calculadas No, las incorporaciones no se pueden descifrar.
Apto para conjuntos de datos pequeños con pocas características. Sí, es fácil diseñar una medida manual con algunas funciones. No, los conjuntos de datos pequeños no proporcionan suficientes datos de entrenamiento para una DNN.
Apto para grandes conjuntos de datos con muchos atributos. No, es muy difícil eliminar manualmente la información redundante de varios atributos y, luego, combinarlos. Sí, la DNN borra automáticamente la información redundante y combina funciones.

Proceso de medición de similitud supervisada

En la siguiente figura, se muestra cómo crear una medida de similitud supervisada:

Ingresa datos de atributos. Elige DNN: codificador automático o predictor.
      Extrae incorporaciones. Elige una medición: producto de punto, coseno o distancia euclidiana.
Figura 1: Pasos para crear una medida de similitud supervisada.

Ya aprendiste el primer paso. En esta página, se analiza el paso siguiente y, en las siguientes páginas, se analizan los pasos restantes.

Elegir DNN según las etiquetas de entrenamiento

Reduce tus datos de atributos a las incorporaciones entrenando una DNN que use los mismos datos de atributos como entrada y como etiquetas. Por ejemplo, en el caso de los datos propios, la DNN usaría las características (como el precio, el tamaño y el código postal) para predecirlas. A fin de usar los datos de atributos para predecir los mismos datos de atributos, la DNN se ve obligada a reducir los datos de atributos de entrada a las incorporaciones. Usarás estas incorporaciones para calcular la similitud.

Una DNN que aprende incorporaciones de datos de entrada mediante la predicción de los datos de entrada en sí se denomina codificador automático. Debido a que las capas ocultas del codificador automático son más pequeñas que las capas de entrada y salida, el codificador automático se ve obligado a aprender una representación comprimida de los datos de los atributos de entrada. Una vez que se entrena la DNN, debes extraer las incorporaciones de la última capa oculta para calcular la similitud.

Una comparación entre un codificador automático y una DNN de predicción
       Las entradas iniciales y las capas ocultas son las mismas, pero el resultado se filtra por la función clave en el modelo de predicción.
Figura 2: comparación entre un codificador automático y un predictor.

Un codificador automático es la opción más simple para generar incorporaciones. Sin embargo, un codificador automático no es la opción óptima cuando ciertos atributos pueden ser más importantes que otros para determinar la similitud. Por ejemplo, supongamos que en los datos internos, "precio" es más importante que "código postal". En esos casos, usa solo la función importante como la etiqueta de entrenamiento para la DNN. Dado que esta DNN predice una característica de entrada específica en lugar de predecir todas las características de entrada, se llama DNN de predictor. Usa los siguientes lineamientos para elegir un atributo como etiqueta:

  • Se prefiere que los atributos numéricos sean atributos categóricos como etiquetas, ya que la pérdida es más fácil de calcular y de interpretar para los atributos numéricos.

  • No uses atributos categóricos con cardinalidad \(\lesssim\) 100 como etiquetas. Si lo haces, la DNN no se verá forzada a reducir los datos de entrada a las incorporaciones, ya que una DNN puede predecir con facilidad etiquetas categóricas de baja cardinalidad.

  • Quita el atributo que usas como etiqueta de la entrada a la DNN; de lo contrario, la DNN predecirá perfectamente el resultado.

Según las etiquetas que elijas, la DNN resultante es una DNN de codificador automático o una DNN de predictor.

Función de pérdida para DNN

Para entrenar la DNN, debes crear una función de pérdida mediante estos pasos:

  1. Calcula la pérdida para cada resultado de la DNN. Para los resultados que sean:
    • Numérico, usa el error cuadrático medio (MSE).
    • Uso categórico univalente, usa pérdida logística. Ten en cuenta que no necesitarás implementar la pérdida de registros por tu cuenta, ya que puedes usar una función de la biblioteca para calcularla.
    • Multiclase categórica, usa pérdida de softmax entropía cruzada. Ten en cuenta que no necesitarás implementar la pérdida de entropía cruzada softmax porque puedes usar una función de biblioteca para calcularla.
  2. Calcular la pérdida total mediante la suma de la pérdida de cada resultado

Cuando sumes las pérdidas, asegúrate de que cada atributo contribuya proporcionalmente a la pérdida. Por ejemplo, si conviertes datos de color en valores RGB, tienes tres salidas. Sin embargo, sumar la pérdida de tres salidas significa que la pérdida del color se pondera tres veces más que otras funciones. En cambio, multiplica cada resultado por 1/3.

Usa DNN en un sistema en línea

Un sistema de aprendizaje automático en línea tiene un flujo continuo de datos de entrada nuevos. Deberá entrenar su DNN con los datos nuevos. Sin embargo, si vuelves a entrenar tu DNN desde cero, tus incorporaciones serán diferentes porque las DNN se inicializan con pesos aleatorios. En su lugar, siempre inicia la DNN en caliente con los pesos existentes y, luego, actualiza la DNN con datos nuevos.