¿Cómo puedes agrupar marcas de ropa similares con el aprendizaje automático?

Lo primero que debe hacer es hacer un inventario de nuestros datos disponibles: cada marca está asociada a un producto. Cada producto tiene: título, descripción, categoría, (subcategoría si corresponde), género, imagen (es). Tenemos imágenes, texto y metadatos. No tenemos muchos datos (solo más de 5000 ejemplos), pero puede ser suficiente para realizar una especie de agrupación.

Aquí es donde comenzaría. Primero, diseñaría, implementaría e hiper-optimizaría una red neuronal convolucional (CNN) que trataría de predecir marcas (1 de 200), categorías / subcategorías a partir de imágenes de productos. Luego, procedería de manera similar con un perceptrón multicapa (MLP) para tratar de predecir lo mismo, pero a partir de las entradas de texto (encabezados y descripciones) en una bolsa de formato de palabras, utilizando solo las palabras que aparecen más de 3 veces o qué no.

Una vez que tenga una idea de los hiperparámetros correctos para cada modelo, creo un solo modelo para ambos tipos de entradas (imagen y texto), y tal vez incluso agregue los metadatos como otro tipo de entrada, y luego me una al último o la penúltima capa completamente conectada (no convolucional). Entrenaría este nuevo modelo para predecir las mismas cosas: marcas, categorías, etc. Una vez entrenado, pasaría cada ejemplo a través del modelo para obtener su representación en la última capa oculta, o tal vez la penúltima. Mi expectativa es que estas representaciones posteriores capturarán el “estilo” de cada producto / marca, pero el estilo es una idea muy abstracta …

Esto me proporcionaría un nuevo conjunto de datos con representaciones distribuidas para cada producto. Reduciría su dimensionalidad usando algo como el Análisis de Componentes Principales (PCA) o un Codificador Automático de Denoising (DAE) para reducir la dimensionalidad de la representación. Luego usaría un algoritmo de agrupamiento como k-means o una mezcla de gaussianos para dividir los ejemplos en grupos de productos distintos pero similares. Cada marca que tiene muchos productos, una marca todavía se encontrará en muchos grupos. Podemos hacer una especie de tf-idf en estos donde las marcas son análogas a los términos, y los grupos son análogos a los documentos (esto reduce el peso de las marcas que tienen más productos en el catálogo, o para continuar la analogía, en el corpus). Entonces podemos concluir que las marcas de clasificación más altas de tf-idf de cada grupo son similares entre sí.

De todos modos, el diablo está en los detalles, y puede que haya complicado demasiado el asunto. También se debe tener en cuenta que los diferentes modelos (MLP / CNN) no deben sobreajustar los datos de tal manera que las últimas representaciones ocultas codifiquen cada ejemplo perfectamente, no generalicen, no sean representaciones distribuidas, etc.

Muy interesante problema. ¿Implementaste el enfoque sugerido por Nicholas? ¿Tienes resultados satisfactorios?