Jeden ze sposobów trenowania sieci, należący do rodziny Self-Supervised Learning.

Pomysł jest taki, że jeśli mamy wektor, augmentujemy go dwa razy, przepuszczamy przez sieć, dostajemy dwa embeddingi. Liczona jest macierz korelacji między dwoma embeddingami. Funkcja straty jest skonstruowana tak, że ma minimalizować podobieństwo tej macierzy do macierzy jednostkowej. Efekt mamy taki, że maksymalizujemy korelację (podobieństwo) między tymi samymi elementami dwóch wektorów (czyli chcemy, żeby były jak najbardziej podobne, bo reprezentują ten sam wektor wejściowy), a jednocześnie minimalizujemy korelację między różnymi elementami tych wektorów (więc dostajemy reprezentację bez redundancji)