Matrix Factorization







The whole is more
Than the sum of the parts
As molecules composing the weather
Do neurons play together
When one neuron activates
The other one does too
Just look at the recordings
It's true
Computations collect these neurons
Into one component
A group of neurons activating
Moment by moment
If data is like a door
Then what is the key
An algorithm to condense information
To the count of three

Are there patterns in neural activity? How do we extract them and what do they mean?

I'm working on matrix factorization algorithms for the analysis of large-scale neural calcium imaging recordings. Basically I have a data matrix X with the time series of neural activations for more than 10,000 neurons. This post is about two dual interpretations of matrix factorization, e.g. how to decompose one big matrix into a multiple of two smaller matrices.

There are two equivalent ways to understand matrix multiplication. The first way to do matrix multiplication is to take the dot product of a row of U (look at the figure) with a column of V to get the activation of one particular neuron at a particular time. This is the dimensionality reduction view of matrix factorization. The algorithm for learning U and V projects the original data into a lower dimensional space. The row vectors of U store which components each neuron participates in. The column of V stores which components were active for a particular time point. We thus have the component activations at an instant of time and which components the neuron was active in projected into the same space and we can take the dot product of these two vectors to approximate the activation of a neuron in a particular time point.

The second way to do matrix multiplication is to take a column of U and multiply it by a row of V to get a rank 1 matrix. This would be done for each column and a corresponding row and these rank 1 matrices would be added together to approximate the original matrix. Rank 1 matrices have a one dimensional column space, e.g. their columns all lie on the same line (they're scaled versions of each other). In this viewpoint, the column of U is a pattern of neural activation, e.g. which neurons are active. The population activity in X is approximated through a sum of these neural activation profiles. The row of V scales these neural activation patterns, indicating how active that pattern is at a particular time point.

This post was inspired by a wonderful lecture by professor Gilbert Strang from MIT. His course on Linear Algebra for Data Analysis, Signal Processing and Machine Learning is freely available at MIT OCW https://ocw.mit.edu/courses/mathematics/18-065-matrix-methods-in-data-analysis-signal-processing-and-machine-learning-spring-2018/index.htm

Kommentaarid