paint-brush
Una nueva forma de extraer características para recomendaciones de IA más inteligentespor@yaml
Nueva Historia

Una nueva forma de extraer características para recomendaciones de IA más inteligentes

por YAML4m2025/02/16
Read on Terminal Reader

Demasiado Largo; Para Leer

La arquitectura de Ducho consta de tres módulos clave (Dataset, Extractor y Runner) diseñados para una extracción eficiente de características multimodales. Es compatible con TensorFlow, PyTorch y Transformers, lo que permite un procesamiento flexible de conjuntos de datos, selección de modelos y configuración basada en YAML para una integración perfecta en los sistemas de recomendación.
featured image - Una nueva forma de extraer características para recomendaciones de IA más inteligentes
YAML HackerNoon profile picture
0-item

Autores:

(1) Daniele Malitesta, Politecnico di Bari, Italia y [email protected] con autores correspondientes: Daniele Malitesta ([email protected]) y Giuseppe Gassi ([email protected]);

(2) Giuseppe Gassi, Politecnico di Bari, Italia y [email protected] con autores correspondientes: Daniele Malitesta ([email protected]) y Giuseppe Gassi ([email protected]);

(3) Claudio Pomo, Politecnico di Bari, Italia y [email protected];

(4) Tommaso Di Noia, Politecnico di Bari, Italia y [email protected].

Resumen y 1 Introducción y Motivación

2 Arquitectura y 2.1 Conjunto de datos

2.2 Extractor

2.3 Corredor

3 Tubería de extracción

4 Ducho como aplicación Docker

5 Demostraciones y 5.1 Demostración 1: características de elementos visuales y textuales

5.2 Demo 2: funciones de elementos de audio y texto

5.3 Demostración 3: funciones de interacción/elementos textuales 6

Conclusión y trabajo futuro, agradecimientos y referencias

2 ARQUITECTURA

La arquitectura de Ducho se basa en tres módulos principales, a saber, Dataset, Extractor y Runner, donde los dos primeros módulos proporcionan diferentes implementaciones según la modalidad específica (es decir, audio, visual, textual) que se tenga en cuenta. También recordamos que Configuration es uno de los componentes auxiliares. La arquitectura está diseñada para ser altamente modular, posiblemente integrando nuevos módulos o personalizando los existentes. A continuación, profundizamos en cada módulo/componente descrito.

2.1 Conjunto de datos

El módulo Dataset gestiona la carga y el procesamiento de los datos de entrada proporcionados por el usuario. Partiendo de un esquema general compartido para todas las modalidades disponibles, este módulo proporciona tres implementaciones independientes: Datasets de audio, visual y textual . Como enfoque habitual en la literatura, los Datasets de audio y visual requieren la ruta a la carpeta desde la que se cargan los archivos de imagen/audio, mientras que el Dataset textual funciona a través de un archivo tsv que asigna todas las características textuales a las entradas.


Cabe destacar que, a diferencia de otras soluciones existentes, Ducho puede manejar cada modalidad de dos maneras, dependiendo de si la modalidad específica describe los elementos (por ejemplo, descripciones de productos) o las interacciones entre usuarios y elementos (por ejemplo, reseñas [1]). Concretamente, mientras que los elementos se asignan a sus identificadores únicos (extraídos del nombre de archivo o del archivo tsv), las interacciones se asignan al par usuario-elemento (extraído del archivo tsv) al que hacen referencia. Aunque las fases de preprocesamiento y extracción no cambian a nivel de elementos e interacciones (ver más adelante), creemos que este esquema puede adaptarse perfectamente a los nuevos sistemas de recomendación con reconocimiento multimodal con modalidades que describen cada tipo de fuente de entrada (incluso usuarios ).


Otra tarea importante del módulo Dataset es gestionar la etapa de preprocesamiento de la entrada de datos. Dependiendo de la modalidad específica involucrada, Ducho ofrece la posibilidad de:


• audio: cargar el audio de entrada extrayendo la forma de onda y la frecuencia de muestreo, y volver a muestrearlo de acuerdo con la frecuencia de muestreo con la que se entrenó el modelo previamente entrenado;


• visual: convertir imágenes de entrada a RGB y redimensionarlas/normalizarlas para alinearlas con el modelo de extracción entrenado previamente;


• textual: (opcionalmente) limpia los textos de entrada para eliminar o modificar patrones textuales ruidosos como puntuación y dígitos


Después de la fase de extracción (ver más adelante), el módulo Conjunto de datos finalmente se encarga de guardar las características multimodales generadas en formato de matriz numpy siguiendo el esquema de nombres de archivo del mapeo anterior.


2.2 Extractor

El módulo Extractor crea un modelo de extracción a partir de una red entrenada previamente y trabaja en cada muestra de entrada cargada/preprocesada para extraer sus características multimodales. De manera similar al módulo Dataset, el módulo Extractor proporciona tres implementaciones diferentes para cada modalidad, a saber, los extractores de audio, visual y textual. Ducho expone una amplia gama de modelos entrenados previamente a partir de tres backends principales: TensorFlow, PyTorch y Transformers. Las siguientes combinaciones de modalidad/backend están disponibles actualmente:


audio: PyTorch (Torchaudio) y Transformers;


visual: Tensorflow y PyTorch (Torchvision);


• textual: Transformadores (y Transformadores de Sentencias).


Para realizar la extracción de características, Ducho toma como entrada la (lista de) capas de extracción de cualquier modelo entrenado previamente. Dado que cada backend maneja la extracción de capas ocultas dentro de una red de manera diferente, seguimos las pautas proporcionadas en la documentación oficial, asumiendo que el usuario seguirá el mismo esquema de nombres/indexación de las capas y conocerá la estructura del modelo entrenado previamente seleccionado de antemano. El lector interesado puede consultar el README[2] en la carpeta config/ en GitHub para obtener una explicación exhaustiva sobre cómo configurar la capa de extracción en cada configuración de modalidad/backend.


Finalmente, para el caso textual, el usuario también puede especificar la tarea específica en la que se debe entrenar el modelo pre-entrenado (por ejemplo, análisis de sentimientos), ya que cada red pre-entrenada puede venir con diferentes versiones dependiendo de la estrategia de entrenamiento.


2.3 Corredor

El módulo Runner es el orquestador de Ducho, cuyo propósito es instanciar, llamar y administrar todos los módulos descritos. Con sus métodos API, este módulo puede activar el pipeline de extracción completo (ver más adelante) de una sola modalidad o de todas las modalidades involucradas simultáneamente.


El módulo Runner se puede personalizar de forma conveniente a través de un componente de configuración auxiliar que almacena y expone todos los parámetros para configurar el flujo de extracción. Incluso si ya se ha puesto a disposición del usuario una configuración predeterminada, Ducho permite anular algunos (o todos) sus parámetros a través de un archivo de configuración externo (en formato YAML) y/o pares clave-valor como argumentos de entrada si se ejecutan los scripts desde la línea de comandos. Una vez más, sugerimos a los lectores que consulten el README en la carpeta config/ en GitHub para comprender el esquema general del archivo de configuración YAML.



Este artículo está disponible en arxiv bajo la licencia CC BY 4.0 DEED.