HierarchyNet: Learning to Summarize Source Code with Heterogeneous Representations