You talk about the ML being reinforced over time by user actions so you must have suffered from the 'cold start' problem in the beginning. How did you address this? Did you initialize it with your own expert curated rules/weightings? Something else?
Have you done any automated mining of the elements in existing "good" company logos (e.g. Nike, AirBnB, etc.). I could see doing something manual too like Music Genome Project or Netflix's internal curated movie characteristics tagging. You'd go through assessing these gold standard logos for qualities like contrast, amount of whitespace, if brand name intersects the artwork, etc and then augment your model with these style rules.
Any insights you'd be willing to share would be appreciated!