# How do I approach this problem?

Let's say I have a dataset with multiple types of multiple ingredients ($$salt_1$$,$$salt_2$$, etc). Each $$n\text{-th}$$ variation of each ingredient vs flavor may be represented by an $$n \times k$$ matrix that where an ingredient corresponds with a particular value of "flavor".

A recipe consists of a $$1\times n$$ vector (where $$n$$ is the number of ingredients) where each value corresponds to the quantity of ingredient in the recipe.

A particular combination of ingredients, with particular weights, with some transformation, would result in a particular $$1 \times k$$ "flavor" profile, in this simple model.

One approach could be to formulate this as a Probabilistic Matrix Factorization problem (I think), with $$k$$ being the number of flavor parameters. And combining the recipe vector with the flavor matrix might do the trick.

But the problem is, the flavor value of each ingredient (and each variation of the ingredient) in the ingredient-flavor matrix would be very very limited. The recipe flavor profile might have a corresponding flavor vector, that too would be limited, and would not be available, at the beginning. So in order to capture the relationship between the ingredients and the flavor, the system would be dependent on user-submitted data on recipe/ingredient flavors.

Is there a way I could create clusters of recipes based on user flavor ratings and extrapolate these to the constituent ingredients or vice versa? Could this be done via some unsupervised learning algorithm?

I am quite new to this, I would appreciate some help or some pointers to which mathematical approaches I should be looking at to model this problem.