I've a good amount of experience playing with autoencoders but this is the first I've heard of contrastive learning.