Absolutely. I talk a lot about the tech in the IH article, but I'll re-iterate here with as little jargon as possible, focusing on the machine learning part, as I assume that's what you're more interested in.
The logo generating algorithm is still in its infancy, so right now it's mostly acting as an idea source for most users.
So our logos are just combinations of ingredients — fonts, colors, layouts, symbols, etc. Logojoy uses machine learning specifically to learn which ingredients go better together.
It starts with tracking basically everything our users do. We track things like: the inspiration they selected, the logos they favorite, the changes they make to logos (e.g. changing the font), the time spent looking at certain logos, the commonalities between all of their favorited logos, the logos they purchase, and more. We currently track about 80 types of actions.
Every day, the learning algorithm reads all these actions and weights each one by how many times it occurred. Because of the structured way it reads actions, it's able to define rules based on "heavy" actions.
For example, an action might be defined as "user changed font weight from 100 (light) to 600 (bold)". This action object includes the number of times it occurred, every other preceding action, and all of the logo's ingredients. In this case, let's say the algorithm concluded that every time this happened, the color of the logo was classified as "light". The algorithm would presumably define a rule that says "if the color of the logo is light, do not use a light font weight".
Is it just rule-based, or are these "weights" being used to train a classifier, ANN, or some kind of genetic algorithm? Nothing wrong with the former, if it works for ya - but the latter would be interesting, too!
Could you say anything more about the ML portion? I'm curious how you account for the temporal/chaining aspect of actions, what kinds of learners worked well, etc. On the implementation side, did you find a usable ML library for PHP or roll your own implementations?
This is great. Sorry if this is a noob question but what did you use? Is this all coded in raw php? Or is there some sort of combination of tools/libraries you used to make this happen like tensorflow?
You may want to try using an ML algorithm called association rules, which produces rules automatically. Though acccounting for the sequence of events would be harder.