I believe I'm looking for some kind of preference algorithm.
Imagine we have three lists. List 1 is appetizers, List 2 is main courses, and List 3 is deserts. Lets assume each list has 50 options in it. I want to randomly present the user with a combination of three items, one from List 1, one from List 2, and one from List 3. The user will give a thumbs up or down to the combo, and over time I'd like the to be able to "learn" the user's preferences, so a chicken fingers > fried chicken > fried ice cream combo that gets a thumbs down the first time should never be suggested again. However, a combo consisting of chicken fingers > fried chicken > sorbet would still be valid.
That all seems pretty simple: I could just maintain a list of rejected combos. However, I'd like the algorithm to have some sense that chicken fingers > friend chicken might be a problem, regardless of what desert it is paired with. This "sense" of those two being a bad combo would get stronger if the chicken fingers > fried chicken > sorbet option was rejected as well.
Are there any types of algorithms that are used for this sort of thing?