110 lines
5.4 KiB
TeX
110 lines
5.4 KiB
TeX
\documentclass[times, 08pt,twocolumn]{article}
|
|
\usepackage{latex8}
|
|
|
|
\usepackage{titlesec}
|
|
\usepackage[margin=0.5in]{geometry}
|
|
\usepackage{graphicx}
|
|
|
|
\titleformat{\section}{\large\bfseries}{\thesection}{1em}{}
|
|
|
|
\begin{document}
|
|
\pagestyle{empty}
|
|
|
|
\title{A Baysian Approach to Collaborative Dish Selection}
|
|
\author{Team 10}
|
|
\date{February 23, 2012}
|
|
|
|
\maketitle
|
|
|
|
\section*{Introduction}
|
|
As anyone who has ever planned a catered event can attest, attempting
|
|
to satisfy the various palates, dietary requirements and tastes of a
|
|
group of diners can be a daunting task. This is particularly true
|
|
given the exponential number of dishes which can be created from a
|
|
small number of ingredients, as well has hard constraints such as
|
|
allergies and religious beliefs. Many professional catering services
|
|
handle this problem by allowing guests to select from a very limited
|
|
menu. We propose to develop a dish recommendation system
|
|
based on Bayesian Networks modeling user preferences and
|
|
which proposes meals that most likely match the varied tastes
|
|
of the customers, using a limited set of ingredients. This type of expert system
|
|
would be of great use to a catering service or restaurant which needs to rapdily decide on
|
|
a small number of dishes which would be acceptable for a large dinner party,
|
|
given diverse requirements and preferences.
|
|
|
|
\section*{Related Work}
|
|
Boekel and Corney propose using Bayesian Networks to model
|
|
consumer needs in food production chains \cite{vanboekel} \cite{corney}.
|
|
Janzen and Xiang propose an intelligent refrigerator capable of
|
|
generating meal plans based on inventory
|
|
and past food choices \cite{janzenxiang}. Baysian networks have also been
|
|
applied to recommendation systems before in on-line social
|
|
networks \cite{truyen} making predictions of the form
|
|
``if you bought those items what is the probability you would like to
|
|
buy that''. We suggest that these approaches are limited in that they only consider the preferences of a single (or supposed 'typical') user rather than a group.
|
|
|
|
\section*{Proposed Approach}
|
|
|
|
The approached problem is to pick a single meal which best meets the requirements
|
|
and tastes of different people dining together.
|
|
|
|
%\subsection*{Application Framework}
|
|
First, we will accumulate a diverse collection of sample recipes using the open source AnyMeal application
|
|
to convert freely available MealMaster format (flat file) recipes to XML format for input into the Java Bayesian network / optimization
|
|
application we propose.
|
|
|
|
%\subsection*{Data Collection}
|
|
Next, we will gather data representing several diners' preference for approximately 20 meals using a simple survey of the type 'rate on a scale of 1 to 10, 10 being favorite and 1 being least favorite'. A value of 0 for a given dish will be taken to mean that one or more ingredients trigger and allergy or violate a religous constraint, and the diner cannot consume the dish.
|
|
|
|
%\subsection*{Model}
|
|
We will model each individual user's preferences and needs
|
|
as a Bayesian network, which means a set of independence and
|
|
conditional independence relationships between variables
|
|
\cite{russelnorvig}. Our model consists of 4 layers,
|
|
each modeling a different aspect of taste and needs.
|
|
In the first layer we capture general meal preferences, like
|
|
being vegetarian or not liking your food steamed.
|
|
The second layer models a general preference towards
|
|
different food categories like vegetables or beef.
|
|
As one can see, the food categories are dependent
|
|
on the general meal preference. For example
|
|
being vegetarian will exclude beef and will
|
|
support vegetables. The third category models
|
|
different ingredients. Each ingredient is conditioned
|
|
by the food category it belongs to.
|
|
In the last layer we have hard constraints like allergies
|
|
(that will exclude a particular ingredient) or
|
|
the overall calorie content of the meal given
|
|
someone suffers from diabetes.
|
|
The overall net is shown in Figure \ref{img:bayes_net}.
|
|
Given a recipe with a list of ingredients $I = i_1,...,i_n$
|
|
and a Bayesian network capturing user preferences
|
|
we can calculate the probability of users liking the dish as
|
|
$P(i_1 \wedge i_2 \wedge ... \wedge i_n) = \Pi_{i =
|
|
1}^{n} p(i_i \mid parents(i_i))$ \cite{russelnorvig}.
|
|
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{bayes.jpeg}
|
|
\caption{Our Baysian net modeling user preferences}
|
|
\label{img:bayes_net}
|
|
\end{figure}
|
|
|
|
In order to estimate the model parameters, the
|
|
system will be trained with statistics about taste
|
|
and preferences given a set of dishes with ratings
|
|
from multiple users. From that information we can directly calculate
|
|
the probabilities for the ingredients.
|
|
|
|
%\subsection*{Meal Optimization}
|
|
When learning the rest of the variables (that are not observed and therefore
|
|
hidden / latent) we will use Expectation Maximization \cite{russelnorvig}.
|
|
|
|
\section*{Evaluation}
|
|
The application model will be trained using a sparse subset (25-50\%) of the survey data and the optimization problem soled for the inferred constraints.
|
|
Next, we will calculate the correlation between the application's ranking of all dishes and the actual ranking as determined by the user surveys. We suggest that a high degree of correlation indicates that the system has the potential to accurately appraise constrained group food preferences for dishes which are not part of the survey, given sufficiently detailed recipe information.
|
|
|
|
\bibliographystyle{plain}
|
|
\bibliography{p2refs}
|
|
|
|
\end{document} |