Autoencoders – Using Autoencoder for Sparse Data Analysis

autoencoderssparse

Suppose I have a big (1,000×20,000) sparse (95% of elements are zeros) matrix with counts. I want to use autoencoder to encode-decode this matrix. How should I do it? Are there any tricks or guidelines to do it efficiently?

Thank you

Best Answer

I never used autoencoders for sparse data, but my first reaction was "why should this matter?". I found the question interesting, so I made a small Google search and among the first search results, I found an answer by Ian Googfellow to a similar question, who says

You shouldn't need to do anything special for this. Standard good practices for initialization and training should take care of it.

I guess, this could be considered as an authoritative answer for your question.

I don't know how other frameworks, but Keras and TensorFlow support sparse matrices (if it is a matter of memory performance). All you need is a dense, convolutional, or recurrent (depending on nature of your data) layer, or layers, as encoder, and same things for decoder, where on the output layer you would need something like exp function to transform the outputs to non-negative values, if it is counts data (think of Poisson regression).

Related Question