Learning disentangled representations via product manifold projection