A comprehensive perspective of contrastive self-supervised learning