I think that also depends. What makes you think that self-taught applicants can't learn compilers, distributed systems, or machine learning? If the candidate has proven the same amount of knowledge acquired during the interview, I'd definitely go for the self-taught one.
I think back to the best developers I've ever worked with, and one of them did have a Masters... in Philosophy.
I just haven't seen any correlation between skill and education level. Ha, with the exception of people who get a
PMP... I've found them to almost always be bad at running projects.