¿Por qué las matrices dispersas son una consideración importante en la optimización y el aprendizaje automático?

La respuesta es simple. En el aprendizaje automático, puede tener una matriz de correlación o matriz estocástica cuyos bordes definen una relación entre los puntos de datos. El algoritmo utilizado por Google para clasificar las páginas para su motor de búsqueda es una matriz estocástica, lo que significa que cada elemento denota cierta probabilidad de una “transición” de una [página web] a otra, mediante un clic o algo similar por parte del usuario. Es un gráfico de internet, en cierto sentido.

Pero está bastante claro por qué este gráfico no debe estar densamente poblado. ¿Cuál es la probabilidad de que saltes a un artículo de CNN sobre Ucrania desde un sitio web de tutoría de matemáticas? Muy pequeño, ya que es bastante improbable. La mayoría de las cosas no tienen conexiones directas entre sí, una declaración que va en contra de la frase de uso frecuente, “todo está conectado, hombre” (no es que esto esté mal, solo falta la información sobre cómo están conectadas las cosas, que es decir, muy indirectamente).

La matriz estocástica de Google para todos los artículos de Wikipedia tiene un rango de aproximadamente 3 millones. Si almacena la matriz completa, incluidos los ceros, está almacenando 9 billones de números de coma flotante de 64 bits. Para un número arbitrario de páginas, el número de números que tiene que almacenar va como el cuadrado, que rápidamente se vuelve inmanejable incluso para las supercomputadoras más rápidas del mundo (que generalmente también tienen los recuerdos más grandes). Para Google, esto es simplemente inaceptable. Pero dado el ejemplo anterior, sabemos que el gráfico codificado por la matriz estocástica es escaso. En la práctica, verá que los números que necesita para almacenar caen en varios órdenes de magnitud.

Por lo general, la escasez es una buena suposición, pero incluso si la realidad del problema no está de acuerdo con esto, lo que ciertamente puede ser el caso, generalmente es muy beneficioso suponer que no, tanto para la capacidad de cálculo como para la interpretabilidad de su modelo. Por ejemplo, modelar un sistema físico como un estanque se puede hacer usando un modelo estadístico que une muchas cosas, como la temperatura del agua, la humedad, el viento, la radiación solar, el oxígeno disuelto, la presión del aire, etc. Sin embargo, si desea predecir el temperatura del agua a cierta profundidad a lo largo del tiempo, es poco probable que la humedad afecte el tipo de oscilaciones verticales que verá en una columna de agua. La explicación más probable se debe a las variaciones en la radiación solar (noche y día, más las tendencias estacionales) y a los seiches internos debido al viento. Esto no significa que la humedad sea completamente independiente de la temperatura del agua, por supuesto. Encontrará que esto es cierto utilizando un modelo dinámico o de regresión simple.

La mayoría de los métodos de optimización de vainilla comienzan a ralentizarse a medida que agrega variables para buscar. Esto es obvio: ¿cuál es el área de un círculo, en comparación con el volumen de una esfera con el mismo radio? Siga extendiéndose a un caso donde tenga 100 dimensiones y verá que el espacio de búsqueda crece enormemente. Los métodos de reducción de la dimensionalidad intentan, de alguna manera, imponer un tipo de escasez en un problema (no suele ser lo mismo en un sentido técnico, sin embargo, esto es solo intuición). Para el lector interesado, vea esta muy buena respuesta de Charles Yang Zheng sobre el muestreo en espacios de alta dimensión y cómo se relaciona con la optimización.

Cuando tiene matrices muy grandes, digamos 1000 x 1000, que puede encontrar resolviendo algunos sistemas grandes de ecuaciones diferenciales parciales, la optimización se vuelve muy importante. Dicha matriz tiene 1 millón de entradas, y cuando intentas factorizarla, consumirá muchísima memoria. Pero si sabe que la matriz es escasa, no tiene que perder el tiempo revisando cada una de esas entradas. En su lugar, puede representarlo utilizando una estructura de datos de matriz dispersa y aplicar técnicas numéricas especiales para resolverlo. Una matriz que tarda horas en resolverse puede factorizarse en minutos.