Its a GAN (Generative adversarial network). It basically works like this
>you have a classifier and a discriminator
>discriminator is fed images of women with makeup on and women without makeup
>discriminator gets really good at identifying make up
>generator tries to generate images of women with and without makeup
>discriminator has to identify all fakes
>in the end the generator should be able to fool the discriminator
>you can now do cool shit like give the generator an image and do vector arithmetic to modify it
>woman-makeup=woman without make up
>woman+makeup=woman with make up
And so on, here is a paper that goes into more detail
https://arxiv.org/abs/1511.06434