High-capacity networks are solving many different machine learning tasks, ranging from large-scale image classification, segmentation and image generation, to natural speech understanding and realistic text-to-speech, arguably passing some formulations of a Turing Test. A few general trends are easily identified in academia and industry: deeper networks show increasingly better results, as long as they are fed with ever bigger amounts of data, and labelled data in particular. Computational and economic costs increase linearly with the size of the dataset and for this reason, starting 2015 a number of unsupervised approaches aiming at the exploitation of unlabelled data are growing in popularity. The intuition behind many of these techniques is to emulate the ability of human brains to self determine the goal of a task and improve towards it. Starting 2015 advancements in algorithms able to exploit labels inherently contained within an unlabelled dataset gave rise to what is now referenced as self-supervised learning.