Light green spots on carpet (assuming that it's not a drink spill, etc.) are usually caused by an acid. Toilet bowl cleaners are the most common culprit. Carpet cleaners are the second most common culprits. They use rust removers and don't take the time (or realize the need) to rinse out the rust remover and neutralize the carpet to raise the pH back to something close to neutral.
Remember that most carpets are tertiary colors (meaning that they contain red, yellow, and blue). Strong acids such as toilet bowl cleaners and rust removers tend to bleach out the red, leaving the blue and yellow behind (blue + yellow = green). Very strong acids can actually leave bright blue spots as they can remove all of the red and yellow, leaving only the blue behind.
Roughly 5% of our business is repairing carpets that carpet cleaners have caused color damages on. Interestingly, it's not only rust removers that cause color damage. Concentrated high pH (alkaline) chemicals (such as pre-sprays and traffic lane cleaners) can also cause color loss.
It's a sad reality that many carpet cleaners don't know the pH of the chemicals that they are using on the carpet and therefore don't realize what types of damages they can cause.
Here are a couple of examples of green and blue spots on carpet that were caused by rust removers that were used by carpet cleaning companies.