BBM 406 Class Projects
An integral part of the course is the class project (25% of the grade), which gives students a chance to apply the algorithms discussed in class to a research oriented project. This semester the theme is Machine Learning and Food.
Some example project titles are as follows:
- Recipe Cuisine Classification by Ingredients. Identifying the cuisine or the food from the ingredients of a recipe.
- Sentiment Analysis on Restaurant Reviews. Guessing a restaurant review's rating from its text.
- Food Recognition from Images. Classifying food plates and inferring calorie intake.
- Identifying Popular Dishes. Grouping dishes according to reviews to explore popular foods.
In your projects, you may use a dataset available on the web (some example datasets are listed below) or collect your own data. However, if you choose the latter option, you must you must keep in mind that data collection can be fun and exciting, but it is also time-consuming.Recommended reading
- Shulin (Lynn) Yang, Mei Chen, Dean Pomerleau, and Rahul Sukthankar. 2010. Food Recognition Using Statistics of Pairwise Local Features. In Proceedings of CVPR.
- Victor Chahuneau, Kevin Gimpel, Bryan R Routledge, Lily Scherlis, and Noah A Smith. 2012. Word salad: Relating food prices and descriptions. In Proceedings of EMNLP-CoNLL.
- Michael Wiegand, Benjamin Roth, and Dietrich Klakow. 2014. Automatic Food Categorization from Large Unlabeled Corpora and Its Impact on Relation Extraction. In Proceedings of EACL.
- Lukas Bossard, Matthieu Guillaumin, and Luc Van Gool. 2014. Food-101 – Mining Discriminative Components with Random Forests. In Proceedings of ECCV.
- Vinay Bettadapura and Edison Thomaz and Aman Parnami and Gregory Abowd and Irfan Essa. 2015. Leveraging Context to Support Automated Food Recognition in Restaurants. In Proceedings of WACV.
- Oscar Beijbom, Neel Joshi, Dan Morris, Scott Saponas, and Siddharth Khullar. 2015. Menu-Match: Restaurant-Specific Food Logging from Images. In Proceedings of WACV.
- Erica Greene. 2015. Extracting structured data from recipes using conditional random fields. The New York Times Open Blog.
- Jonathan Malmaud, Jonathan Huang, Vivek Rathod, Nick Johnston, Andrew Rabinovich, and Kevin Murphy. 2015. What’s cookin’? Interpreting cooking videos using text, speech and vision. In Proceedings of NAACL.
- Ozan Sener, Amir R. Zamir, Silvio Savarese, and Ashutosh Saxena. 2015. Unsupervised Semantic Parsing of Video Collections. In Proceeding of ICCV.
- Jingjing Chen and Chong-Wah Ngo. 2016. Deep-based Ingredient Recognition for Cooking Recipe Retrieval. In Proceedings of MM.
- Sina Sajadmanesh, Sina Jafarzadeh, Seyed Ali Ossia, Hamid R. Rabiee, Hamed Haddadi, Yelena Mejova, Mirco Musolesi, Emiliano De Cristofaro, Gianluca Stringhini. 2016. Kissing Cuisines: Exploring Worldwide Culinary Habits on the Web. In CoRR, abs/1610.08469.
You are encouraged to learn and use the following machine learning and deep learning frameworks in your projects. Links to some useful NLP tools are also provided.
- Caffe: A deep learning framework made with expression, speed, and modularity in mind
- Tensorflow: Open Source Software Library for Machine Intelligence
- Theano: A Python framework for fast computation of mathematical expressions.
- Keras: Keras: Deep Learning library for Theano and TensorFlow
- MatConvNet: CNNs for MATLAB
- mxnet: Flexible and Efficient Library for Deep Learning
- Torch: A scientific computing framework for LuaJIT
- LIBSVM: A Library for Support Vector Machines
- scikit-learn: Machine learning in Python
- Stanford CoreNLP: A suite of core NLP tools
- NLTK: Natural Language Toolkit
- NYTimes Ingredient Phrase Tagger
Proposals: due October 31, 2016.
Progress reports: due December 12, 2016.
Final reports: due January 6, 2017.
Each project should be done in groups of 3 students. Of course, there may be some exceptions, depending on the enrollment. Note that students without a team will be randomly assigned to one project group.
- Proposal (2.5%)
- Blog posts (5%)
- Progress report (5%)
- Presentation (5%)
- Final report and code (7.5%)
In preparing your progress and final project reports, you should use the provided LaTeX template and submit them electronically in PDF format.
Each project group should submit a half page project proposal on their specific project idea by October 31. The proposal should provide
- The research topic to be investigated,
- What data you will use,
- Related work
Each project group should maintain a blog sharing their steady progress, ideas, and experiments, and they must write at least one blog post per week (excluding exam weeks).
Due: December 12, 2016 (23:59:59)
Each student should submit a project progress report by December 12. The report should be 2-4 pages and should describe the following points as clearly as possible:
- Problem to be addressed. Give a short description of the problem that you will explore. Explain why you find it interesting.
- Related work. Briefly review the major works related to your research topic.
- Methodology to be employed. Describe the neural architecture that is expected to form the basis of the project. State whether you will extend an existing method or you are going to devise your own approach.
- Experimental evaluation. Briefly explain how you will evaluate your results. State which dataset(s) you will employ in your evaluation. Provide your preliminary results (if any).
Due: January 6, 2017 (23:59:59)
As the last deliverable of the course project, each student is expected to submit a project report prepared using the style files provided in the course web page. The report should be 6-8 pages and should be structured as a research paper. It will be graded based on clarity of presentation and technical content. A typical organization of a report might follow:
- Title, Author(s).
- Abstract. This section introduces the problem that you investigated by providing a general motivation and briefly discusses the approach(es) that you explored to solve this problem.
- Related Work. This section discusses relevant literature for your project topic.
- The Approach. This section gives the technical details about your project work. You should describe the representation(s) and the algorithm(s) that you employed or proposed as detailed and specific as possible.
- Experimental Results. This section presents some experiments in which you analyze the performance of the approach(es) you proposed or explored. You should provide a qualitative and/or quantitative analysis, and comment on your findings. You may also demonstrate the limitations of the approach(es).
- Conclusions. This section summarizes all your project work, focusing on the key results you obtained. You may also suggest possible directions for future work.
- References. This section gives a list of all related work you reviewed or used.