From superposition to sparse codes: interpretable representations in neural networks | Synapse