Semi-Supervised Generation with Cluster-aware Generative Models