Similarity Learning via Kernel Preserving Embedding