Clasificación de secuencias vectoriales.

9

Mi conjunto de datos se compone de secuencias vectoriales. Cada vector tiene 50 dimensiones de valor real. El número de vectores en una secuencia varía de 3-5 a 10-15. En otras palabras, la longitud de una secuencia no es fija.

Una buena cantidad de secuencias (¡no vectores!) Están anotadas con una etiqueta de clase. Mi tarea es aprender un clasificador que, dada una secuencia de vectores, se calcule la etiqueta de clase para toda la secuencia.

No puedo decir la naturaleza exacta de los datos, pero la naturaleza de las secuencias no es temporal. Sin embargo, un vector no puede intercambiarse con un vector sin cambiar la etiqueta ( ). En otras palabras, el orden de los vectores es importante. Los vectores en sí son comparables, por ejemplo, tiene sentido calcular un producto de puntos y utilizar este valor de similitud.XyoXjyoj

Mi pregunta es: ¿cuáles son las herramientas / algoritmos que pueden ayudar a clasificar dichos datos?

ACTUALIZACIÓN: Los datos tienen una propiedad tal que uno o muy pocos vectores influyen fuertemente en la etiqueta de la clase.

POSIBLE SOLUCIÓN: Después de algunas investigaciones, parece que las Redes Neuronales Recurrentes (RNN) se ajustan perfectamente a la factura. La idea general es elegir un tamaño de contexto , concatenar vectores de palabras, hacer una agrupación máxima y alimentarlo a través de NN clásico. En cada posible posición de ventana de contexto en una oración, se construye un vector de características. El vector de características final se construye utilizando la agrupación máxima, por ejemplo. La retropropagación se realiza para ajustar los parámetros de la red. Ya obtuve algunos resultados positivos (GPU es imprescindible).k

Vladislavs Dovgalecs
fuente

Respuestas:

3

Como no puedes revelar muchos detalles, me veo obligado a ser un poco genérico en mi respuesta. Sin embargo, espero que sea útil. En primer lugar, solo consideraría reducir las secuencias antes de la clasificación (ya sea mediante el uso del producto punto u otra cosa) si puede asegurarse de no perder la información que necesita para la clasificación posterior. Por lo tanto, este enfoque solo es factible si tiene alguna idea de la naturaleza de la clasificación. Para dar un ejemplo simple: si la etiqueta de clase es solo el número de vectores en su secuencia, no tendrá mucho éxito al predecir la etiqueta de clase a partir del producto punto.

Por lo tanto, tomaría la secuencia completa como entrada para la clasificación e impondría un máximo en la longitud de secuencia que desea considerar. Puede hacer esto al encontrar primero la longitud máxima de secuencia m en su conjunto de entrenamiento y luego convertir cada secuencia de vectores de 50 dimensiones en un vector de dimensión 50 * m, posiblemente con algunos valores faltantes al final si su secuencia no tiene longitud máxima Probablemente querrá deshacerse de estos valores faltantes y puede simplemente reemplazarlos por ceros.

Hay dos caminos que puede seguir desde aquí: 1.) Aplica directamente métodos de clasificación que se sabe que son adecuados para grandes dimensiones. Pruebe algo simple que no necesita mucha sintonía como Bayes ingenuo. De esta manera, puede ver si este enfoque es factible sin perder demasiado tiempo si no lo es. 2.) Intenta primero reducir la dimensión y comprender mejor la naturaleza de la clasificación. Es posible que desee utilizar algo como el análisis de componentes principales o analizar la correlación / asociación entre cada componente de vector y la etiqueta de clase. Si tiene éxito, sabe cómo reducir adecuadamente la dimensión de su entrada antes de aplicar la clasificación.

Si desea seguir alguna de estas ideas, tenga en cuenta que los detalles concretos de sus datos y la clasificación pueden hacer que cualquiera de las ideas propuestas anteriormente sea inviable. Por lo tanto, tenga cuidado de verificar cualquier detalle que conozca pero que no pueda publicar aquí antes de intentar asegurarse de no perder el tiempo.

MightyCurious
fuente
0

Los datos tienen una propiedad tal que uno o muy pocos vectores influyen fuertemente en la etiqueta de clase.

El mejor (y más fácil) enfoque probablemente sería simplemente entrenar a un clasificador en cada vector y luego promediar las predicciones a través de los vectores para una secuencia dada. Los vectores importantes serían muy influyentes en sus predicciones, mientras que las predicciones para los vectores sin importancia serían cercanas a 0.5 (o similar para un problema de clasificación no binario).

pir
fuente
Realmente no. Especialmente si tiene muchos vectores sin información importante ... Si sigue esa ruta, definitivamente use LSTM :)
pir