Applying to Computer Science PhD Programs
At least in the top-4 (I'm an ML PhD in one of them and helped pre-screening candidates) Machine Learning has become incredibly competitive. We almost always asked for 1 publication (if possible in ML, although not always). Third recommendation letter is probably irrelevant, the two most relevant things were the most informative letter (the professor that knows you best) and indication that you can become an independent creative researcher (1st author papers, out-of-ordinary projects or accomplishments). GPA almost didn't matter. Note that I've heard some of these criteria are different outside top-tier.
Applying to CS will likely increase your chances of getting in. I know many students doing ML in non-ML labs, but this also has downsides and you have to find an advisor that accepts you. Not applying to Reinforcement Learning within Machine Learning will also increase your chances (at least last year).
It's hard to know if you have good chances of getting into top schools, but if you have money and time I would apply widely, it doesn't seem impossible. I applied to 10 schools and have friends that applied to 15. It's pretty stochastic, I got into 3 of the top 4 but got rejected by multiple others.
Focus on doing good research in ML, if possible a workshop at a top conference, and impressing your current advisor.
Best of luck!