I find Ghost Shrimp to be really good at eating algae. However if you go the route of Ghost Shrimp find big ones, otherwise the betta will eat them. I had Ghost Shrimp in my 5 gallon and they kept the tank really clean, and then even ate the food that sank to the bottom so I didn't have to go fishing to take out the un-eaten food.
I had to put those larger shrimp in my 10 gallon while I was medicating my betta however, so after I was done medicating I bought more Ghost Shrimp, they were really small but I thought it would be fine, but they got eating. So just make sure you get bigger ones, as I said above.