Contrastive Learning with Hard Negative Samples