Causal Discovery as Semi-Supervised Learning