In “women’s style recommendation with artificial intelligence (part #1)”, I introduced my work toward developing artificial intelligence (AI) for fashion and style recommendation. Essentially, its an expert system built on a Bayesian belief network. Now I discuss model validation and next steps in the design iteration process.
I first wanted to see if the trained network correctly returned known recommendations (“wear” or “don’t wear”) based on known clothing selections. This procedure successfully validated the code I wrote. Then I wanted to see if the model can derive new style rules. Experienced partial success on this account; I will outline a possible strategy for improving it.
The rest of this article details the processes summarized in the previous paragraph:
Consider the following trained Bayesian belief network structure:
While calculating the structure, the learning algorithm also calculated the node value probability distributions from the training set:
We first evaluate the model on three fashion rules, asking whether the selected node combination’s values are okay to wear:
- IF body shape = “apple” AND skirt zipper = “on front” THEN wear = “No!” 
- IF body shape = “apple” AND skirt zipper = “on side” THEN wear = “Yes” 
- IF shoes = “flip-flops” THEN wear = “No!” 
(I trained the model upon 126 such rules simultaneously).
Running the inference code:
All looks good. As a control, I added “shoe = pumps” (instead of flip-flops) to the above calculation, and see that these are okay to wear as expected. (However, see the discussion below where I ran into trouble).
So now I start to derive novel new style rules from the model. Suppose we want to simply find out if it is okay to “wear” an “apple” body shape. We expect the model to report “yes”, as it does, assigning a probability to the conclusion:
However, the model cannot handle the addition of a shoe type to the “apple” body shape query above:
The problem is “fixed” when I add a style rule specifically allowing apple-shaped folks to wear pumps, but I am not happy with this. Ideal outcome would be for the inference to conclude this. I’m first going to check the dependencies encoding… which, if that solves the problem, stresses the importance of specifying dependencies well in additional to lateral relationships. For example, I might establish a “human” node, and indicate that each clothing article and feature proves appropriate for humans to wear. Then I’ll declare that each body shape associates with “human = true”.
Nonetheless, the progress reported here is significant!
I’ll keep you posted.
- Emily Marie Williams declares that proper ladies do not wear flip-flops in public. Do not argue with her!