for my own interest, I am interested to know if there are any recommended unsupervised models (maybe ML) that is capable of doing the following. I would like to try it in the exact way (no modifications to methodology). It sounds very convoluted but I would like to see if there are any current architecture capable of doing something along these lines, and how they would incorporate features as part of the training process.
Say I have some restaurants, which I would like the model to calculate the probability of me liking n restaurants for all in n meals in a day (for simplicity i will use n=3 below). I would like the model to calculate the scores based on the following:
First look at the menu of each restaurant, and produce a score [0,1] for each food item on the menu. I will also like to include some features of which it can try to scale the score on (for example ingredient allergies, quality etc. These features will be done by a person).
Then the model will use some function to generate a restaurant score. This score would be [0,1] as well, reflecting the probability that I would like to visit the restaurant. These will also be influenced by additional features that are hand curated (eg. ratings given by other users).
Lastly the model would provide an "overall cumulative score", which will provide me a final score, as well as the 3 restaurants. This will also have to be influenced by other hand curated features that creates a form of "chain" between restaurants. Say for example if I have a list of cuisines that I somehow enjoy consecutively (in a particular group), the model can look at that data and adjust the final scores such that if one of them is recommended, it is more likely for the other to be recommended too.
It would be ideal if I could also see the scores generated at each stage. So far, I think an expectation maximization framework might be plausible since it can generate probabilities of the scores, but I would like to know if there are other methods capable of such tasks.
Thank you in advance!