Los ultimos cuatro años me he dedicado a dos áreas que aparentemente son especializadas e independientes: el Procesamiento de imágenes digitales y el análisis estadístico de texto como datos. De hecho, he escrito manuales de uno y otro.
Últimamente me asaltó la pregunta: ambos son datos no estructurados que se vierten en matrices y se trabajan con mucha álgebra lineal y algo de estadística, pero ¿hay más en común?
La respuesta fue positiva.
Las dos áreas se parecen más de lo que sugiere su superficie. Las conexiones están presentes en varios niveles.
La diferencia superficial
Una imagen en escala de grises es una matriz de intensidades, y un corpus es una matriz documento a término de frecuencias. En los dos casos el primer problema es el mismo: la dimensionalidad es enorme y hace falta reducirla o resumirla. La diferencia de fondo está en la naturaleza de los datos. Los píxeles son valores ordinales de 0 a \(256\) ó continuos entre cero y uno, están ordenados en un espacio bidimensional y tienen fuerte correlación local. Las palabras son símbolos nominales, dispuestos en una secuencia unidimensional, y la matriz documento-término, que indica para cada documento cuántas veces figura una palabra, genera una matriz muy dispersa, con la mayoría de las entradas en cero. Casi todas las adaptaciones de un método de un campo al otro consisten en negociar estas diferencias.
Descomposición espectral: LSA y eigenfaces
En ambas se utiliza la descomposición en valores singulares. En texto, aplicar SVD a la matriz documento-término proporciona el análisis semántico latente (LSA), donde los primeros vectores singulares capturan temas o tópicos o dimensiones semánticas. En imágenes, aplicar PCA a un conjunto de rostros vectorizados resulta en las eigenfaces de Turk y Pentland. Matemáticamente es la misma operación: proyectar observaciones de alta dimensión sobre un subespacio de baja dimensión que conserva la mayor parte de la varianza. También la compresión de una imagen individual por SVD truncada es análoga a quedarse con los \(k\) temas latentes más importantes de un corpus.
Coocurrencias: GLCM y colocaciones
Las matrices de coocurrencia de niveles de gris (GLCM) de Haralick cuentan con qué frecuencia un píxel de intensidad \(i\) se presenta a cierta distancia y dirección de otro de intensidad \(j\). De ellas salen descriptores de textura como contraste, homogeneidad, entropía y correlación. En lingüística de corpus, una matriz de coocurrencia de palabras dentro de una ventana cuenta exactamente lo mismo para símbolos, y de ella salen las collocations, la información mutua puntual (PMI) y, en última instancia, los word embeddings, ya que la técnica GloVe factoriza precisamente una matriz de coocurrencias. En ambos casos la idea es que el significado, o la textura, está en las relaciones de vecindad y no en los elementos aislados.
Histogramas y distribuciones de frecuencia
El histograma de intensidades de una imagen y la distribución de frecuencias léxicas de un texto cumplen el mismo papel: resumen el objeto ignorando la posición. Por eso las mismas medidas funcionan en los dos lados: entropía de Shannon, distancias entre distribuciones como \(\chi^2\), Kullback-Leibler o Hellinger y similitud coseno. La ecualización de un histograma tiene incluso un eco en la ponderación tf-idf, porque ambas reescalan para que los valores muy frecuentes no dominen la representación.
Bolsa de palabras y bolsa de palabras visuales
En visión por computador, el modelo bag of visual words (Sivic y Zisserman, 2003; Csurka et al., 2004) extrae descriptores locales como SIFT, los agrupa con k-means para formar un “vocabulario visual” y representa cada imagen como un histograma de esas “palabras”. Después se le aplica tf-idf, stopwords visuales y búsqueda con índices invertidos, todo tomado directamente de la recuperación de información. Fei-Fei y Perona (2005) fueron más lejos y usaron LDA, el modelo de tópicos de Blei, para clasificar escenas. Una imagen de playa resulta ser una mezcla de “tópicos visuales” como arena, agua y cielo. Para los que no han realizado análisis de texto, estábamos hablando de bolsas de palabras, a las cuales se les elimina las palabras tan frecuentes que son ruido para el análisis, y con las restantes se aplican técnicas que agrupan por medio de métodos de clustering palabras que dan pistas de los temas (tópicos) presentes en el corpus.
Contexto local: convolución y n-gramas
Un kernel de convolución (2D) que recorre una imagen y una ventana de n-gramas (1D) que recorre un texto modelan la misma intuición: la información relevante es local. La conexión se volvió literal con las redes convolucionales para texto (Kim, 2014), que aplican filtros 1D sobre secuencias de embeddings. En sentido inverso, los campos aleatorios de Markov para segmentación y restauración de imágenes son la generalización bidimensional de las cadenas de Markov que sustentan los modelos de lenguaje de n-gramas.
El puente literal: OCR
Hay además una conexión muy práctica. El reconocimiento óptico de caracteres es procesamiento de imágenes (binarización, eliminación de ruido, corrección de inclinación, segmentación de líneas y caracteres) al servicio de construir corpus. Cualquiera que digitalice archivos históricos o documentos escaneados sabe que la calidad del preprocesamiento de imagen se propaga como error en las frecuencias léxicas y en todo el análisis estadístico posterior.
Redes neuronales
En deep learning las imagenes se fueron por el lado de CNN y los textos por el de RNN entre 2012 y 2017, pero con el advenimieto de los Trasnformers, ambos mundos utilizan dicha arquitectura. El Vision Transformer (ViT) corta la imagen en parches, los trata como tokens y les aplica exactamente la arquitectura diseñada para lenguaje. Modelos como CLIP aprenden un espacio de embeddings común para imágenes y textos, de modo que la similitud coseno entre una foto y una frase tiene sentido.