Learning to Predict Combinatorial Structures