Use a phosphate removing media that also targets silicate. I know Phosguard does(GAO), I think GFO does- you'll have to read the bottle.
A diatom filter will not work. It uses the tiny diatom skeleton to capture particles in the water to polish the water, not combat a surface algae.