Learning Canonical Embedding for Non-rigid Shape Matching