Disentangled Representation with Causal Constraints for Counterfactual Fairness