Text this: SOLVE: A structured orthogonal latent variable framework for disentangling confounding in matrix data