Clasificación de varianza transversal por pares | Hacia la ciencia de los datos

Introducción

Este proyecto se trata de obtener mejores disparos cero Clasificación de imágenes y texto utilizando modelos CV/LLM sin gastar tiempo y dinero ajustado en el entrenamiento, o volver a ejecutar modelos en inferencia. Utiliza una nueva técnica de reducción de dimensionalidad en los incrustaciones y determina clases que utilizan la comparación de pares de estilo de torneo. Resultó en un aumento en el acuerdo de texto/imagen del 61% al 89% para un conjunto de datos de 50k en 13 clases.

https://github.com/doc1000/pairwise_classification

Donde lo usarás

La aplicación práctica está en la búsqueda de clase a gran escala donde la velocidad de la inferencia es importante y el gasto en el modelo es una preocupación. También es útil para encontrar errores en su proceso de anotación: clasificaciones erróneas en una gran base de datos.

Resultados

El puntaje F1 ponderado que comparó el acuerdo de clase de texto e imagen pasó del 61% al 88% para ~ 50k elementos en 13 clases. Una inspección visual también validó los resultados.

F1_Score (ponderado) modelo base a pareja
Multiclase 0.613 0.889
Binario 0.661 0.645
Centrándose en el trabajo de múltiples clases, la cohesión del recuento de clases mejora con el modelo.
Izquierda: base, incrustación completa, argmax en el modelo de similitud de coseno
Derecha: modelo de torneo por pares utilizando sub-segmentos de características puntuados por CrossRatio
Imagen del autor

Método: Comparación por pares de la similitud cosena de las subdimensiones de incrustación determinadas por la puntuación a escala media

Una forma directa de la clasificación vectorial es comparar los incrustaciones de imagen/texto con los incrustaciones de clase utilizando la similitud de coseno. Es relativamente rápido y requiere una sobrecarga mínima. También puede ejecutar un modelo de clasificación en las incrustaciones (regresiones logísticas, árboles, SVM) y apuntar a la clase sin más incrustaciones.

Mi enfoque era reducir el tamaño de la característica en los incrustaciones que determinaban qué distribuciones de características eran sustancialmente diferentes entre dos clases y, por lo tanto, contribuyeron con información con menos ruido. Para las características de puntuación, utilicé una derivación de varianza que abarca dos distribuciones, que me refiero como varianza cruzada (más a continuación). Utilicé esto para obtener dimensiones importantes para la categoría de ‘ropa’ (One-VS-the Rest) y reclasificarme usando las subfreaturas, que mostraron cierta mejora en el poder del modelo. Sin embargo, la comparación de la subfreición mostró mejores resultados al comparar las clases por pares (una frente a una/cabeza a cabeza). Por separado para imágenes y texto, construí un soporte de estilo ‘torneo’ en toda la matriz de comparaciones por pares, hasta que se determinó una clase final para cada elemento. Termina siendo bastante eficiente. Luego obtuve el acuerdo entre las clasificaciones de texto y imagen.

Utilizando la varianza cruzada, la selección de características específicas de combinación y la asignación de torneo por pares.

Todas las imágenes del autor a menos que se indique lo contrario en subtítulos

Estoy usando una base de datos de imágenes de producto que estaba fácilmente disponible con insertos de clip precalculados (gracias SQID (citado a continuación. Este conjunto de datos se publica bajo la licencia MIT), Amzn (Citado a continuación. Este conjunto de datos tiene licencia bajo la licencia de Apache 2.0) y se dirige a las imágenes de ropa porque ahí es donde vi por primera vez este efecto (gracias al equipo de DS en Nordstrom). El conjunto de datos se redujo de 150k elementos/imágenes/descripciones a ~ 50k elementos de ropa utilizando la clasificación de disparos cero, luego la clasificación aumentada basada en subarrañas dirigidas.

Estadística de prueba: varianza cruzada

Este es un método para determinar qué tan diferente es la distribución para dos clases diferentes cuando se dirige a una sola característica/dimensión. Es una medida de la varianza promedio combinada si cada elemento de ambas distribuciones se cae en la otra distribución. Es una expansión de las matemáticas de varianza/desviación estándar, pero entre dos distribuciones (que pueden ser de tamaño variable). No he visto que se usara antes, aunque puede aparecer en un apodo diferente.

Varianza cruzada:

Similar a la varianza, excepto sumar tanto las distribuciones como tomar una diferencia de cada valor en lugar de la media de la distribución única. Si ingresa la misma distribución que A y B, entonces produce los mismos resultados que la varianza.

Esto simplifica para:

Esto es equivalente a la definición alternativa de varianza (la media de los cuadrados menos el cuadrado de la media) para una sola distribución cuando las distribuciones I y J son iguales. El uso de esta versión es masivamente más rápido y más eficiente en la memoria que intentar transmitir las matrices directamente. Proporcionaré la prueba y entraré en más detalles en otro artículo. La desviación cruzada (ς) es la raíz cuadrada de Undefined.

Para obtener características, uso una relación. El numerador es la varianza cruzada. El denominador es el producto de IJ, igual que el denominador de la correlación de Pearson. Luego tomo la raíz (podría usar fácilmente la varianza cruzada, lo que se compararía más directamente con la covarianza, pero he encontrado que la relación es más compacta e interpretable usando Cross Dev).

Interpreto esto como el aumento de la desviación estándar combinada si intercambias clases por cada elemento. Un gran número significa que la distribución de características es probablemente bastante diferente para las dos clases.

Para una característica de incrustación con baja ganancia cruzada, la diferencia en las distribuciones será mínima … se pierde muy poca información si transfiere un elemento de una clase a otra. Sin embargo, para una característica con alta ganancia cruzada en relación con estas dos clases, hay una gran diferencia en la distribución de valores de características … en este caso tanto en media como en varianza. La función de alta ganancia cruzada proporciona mucha más información.
Imagen del autor

Esta es una diferencia alternativa a escala media ks_test; Las pruebas bayesianas 2DIST y la distancia de inicio de frechet son alternativas. Me gusta la elegancia y la novedad de Cross Var. Probablemente haré un seguimiento mirando a otros diferenciadores. Debo tener en cuenta que determinar las diferencias de distribución para una característica normalizada con la media general 0 y SD = 1 es su propio desafío.

Subdimensiones: reducción de dimensionalidad del espacio de incrustación para la clasificación

Cuando intentas encontrar un particular Característica de una imagen, ¿necesitas toda la incrustación? ¿El color o si algo es una camisa o un par de pantalones ubicados en una sección estrecha de la incrustación? Si estoy buscando una camisa, no necesariamente me importa si es azul o rojo, así que solo miro las dimensiones que definen la “camisa” y tiran las dimensiones que definen el color.

Las dimensiones resaltadas en rojo demuestran importancia al determinar si una imagen contiene ropa. Nos centramos en esas dimensiones cuando intentamos clasificar.
Imagen del autor

Estoy tomando un [n,768] Incrustación dimensional y reduciéndose a más de 100 dimensiones que realmente importan para un par de clases en particular. ¿Por qué? Porque la métrica de similitud de coseno (COSIM) se ve influenciada por el ruido de las características relativamente poco importantes. La incrustación conlleva una gran cantidad de información, gran parte de la cual simplemente no le importa en un problema de clasificación. Deshágase del ruido y la señal se fortalezca: Cosim aumenta con la eliminación de dimensiones “sin importancia”.

En lo anterior, puede ver que la similitud promedio de la coseno aumenta a medida que aumenta la relación cruzada mínima (correspondiente a menos características a la derecha), hasta que se derrumba porque hay muy pocas características. Utilicé una relación cruzada de 1.2 para equilibrar el ajuste aumentado con información reducida.
Imagen del autor

Para una comparación por pares, primero divide los elementos en clases utilizando similitud de coseno estándar aplicada a la incrustación completa. Excluyo algunos elementos que muestran muy bajos Cosim en el supuesto de que la habilidad del modelo es baja para esos elementos (límite de cosim). También excluyo elementos que muestran una baja diferenciación entre las dos clases (COSIM Diff). El resultado son dos distribuciones sobre las cuales extraer dimensiones importantes que deberían definir la diferencia ‘verdadera’ entre las clasificaciones:

Los puntos azules claros representan imágenes que parecen más probabilidades de contener ropa. Los puntos azules oscuros no son vestidos. La línea de durazno que va por el medio es un área de incertidumbre, y se excluye de los siguientes pasos. Del mismo modo, los puntos oscuros están excluidos porque el modelo no tiene mucha confianza en la clasificación de ellos. Nuestro objetivo es aislar las dos clases, extraer las características que las diferencian y luego determinar si hay un acuerdo entre la imagen y los modelos de texto.
Imagen del autor

Clasificación del torneo por pares de matriz

Obtener una asignación de clase global de comparaciones por pares requiere algo de pensamiento. Puede tomar la tarea dada y comparar solo esa clase con todos los demás. Si hubo una buena habilidad en la tarea inicial, esto debería funcionar bien, pero si varias clases alternativas son superiores, se encuentra con problemas. Un enfoque cartesiano donde compara todos los vs todo lo llevaría allí, pero se volvería grande rápidamente. Me decidí por un rango de estilo ‘torneo’ en toda la matriz de comparaciones por pares.

Esto tiene rondas log_2 (#Classes) y número total de comparaciones maximizando en SUGRATION_ROUND (combo (#Classes en redondeo)*n_items) en algunos#de características especificadas. Aleatorizo ​​el orden de los ‘equipos’ en cada ronda para que las comparaciones no sean las mismas cada vez. Tiene algún riesgo de pareja, pero llega a un ganador rápidamente. Está construido para manejar una variedad de comparaciones en cada ronda, en lugar de iterar sobre elementos.

Tanteo

Finalmente, obtuve el proceso determinando si la clasificación del texto y las imágenes coinciden. Mientras la distribución no tenga mucho sobrepeso hacia una clase ‘predeterminada’ (no lo es), esta debería ser una buena evaluación de si el proceso está sacando información real de las incrustaciones.

Miré la puntuación F1 ponderada que comparó las clases asignadas usando la imagen frente a la descripción del texto. Cuanto mejor se suponga, mejor es el acuerdo, más probable es que la clasificación sea correcta. Para mi conjunto de datos de ~ 50k imágenes y descripciones de texto de ropa con 13 clases, la puntuación inicial del modelo simple de similitud de coseno de incrustación completa pasó del 42% al 55% para la subfreición Cosim, al 89% para el modelo por pares con subfaturas. Una inspección visual también validó los resultados. La clasificación binaria no era el objetivo principal: era en gran parte obtener un subsegmento de los datos para luego probar el impulso de múltiples clases.

modelo base a pareja
Multiclase 0.613 0.889
Binario 0.661 0.645
La matriz de confusión combinada muestra una coincidencia más estricta entre la imagen y el texto. Nota El extremo superior de la escala es más alto en el gráfico derecho y hay menos bloques con asignaciones divididas.
Imagen del autor
Del mismo modo, la matriz de confusión combinada muestra una coincidencia más estricta entre la imagen y el texto. Para una clase de texto dada (abajo), existe un acuerdo mayor con la clase de imagen en el modelo por pares. Esto también resalta el tamaño de las clases en función del ancho de las columnas
Imagen del autor utilizando el código de Nils Flaschel

Pensamientos finales …

Este puede ser un buen método para encontrar errores en grandes subconjuntos de datos anotados, o hacer un etiquetado de disparos cero sin un tiempo adicional de GPU para ajuste y entrenamiento. Presenta algunos puntajes y enfoques novedosos, pero el proceso general no es demasiado complicado o CPU/GPU/memoria intensiva.

El seguimiento lo aplicará a otros conjuntos de datos de imagen/texto, así como conjuntos de datos de imagen o texto anotados/categorizados para determinar si se aumenta la puntuación. Además, sería interesante determinar si el impulso en la clasificación de disparo cero para este conjunto de datos cambia sustancialmente si:

  1. Se utilizan otras métricas de puntuación en lugar de una relación de desviación cruzada
  2. Se sustituyen incrustaciones de características completas por características específicas
  3. El torneo por pares se reemplaza por otro enfoque

Espero que lo encuentres útil.

Citas

@article {reddy2022shopping, title = {compras consultas DataSet: un punto de referencia {ESCI} a gran escala para mejorar la búsqueda de productos}, autor = {Chandan K. Reddy y Lluís Màrquez y Fran Valero y Nikhil Rago Ra Karthik Subbian}, año = {2022}, ePrint = {2206.06588}, ArchivePrefix = {arxiv}}

Compras de consultas de datos de imágenes (SQID): un conjunto de datos ESCC enriquecido con imágenes para explorar Aprendizaje multimodal En la búsqueda de productos, M. Al Ghossein, CW Chen, J. Tang