Learning to Branch in Combinatorial Optimization with Graph Pointer Networks