Giter Club home page Giter Club logo

recipemind's Introduction

RecipeMind: Guiding Ingredient Choices from Food Pairing to Recipe Completion using Cascaded Set Transformer

Abstract

We propose a computational approach for recipe ideation, a down-stream task that helps users select and gather ingredients for creating dishes. To perform this task, we developed RecipeMind, a food affinity score prediction model that quantifies the suitability of adding an ingredient to set of other ingredients. We constructed a large-scale dataset containing ingredient co-occurrence based scores to train and evaluate RecipeMind on food affinity score prediction. Deployed in recipe ideation, RecipeMind helps the user expand an initial set of ingredients by suggesting additional ingredients. Experiments and qualitative analysis show RecipeMind’s potential in fulfilling its assistive role in cuisine domain.

Overview of Recipe Ideation

img

Overview of RecipeMind

img

Prerequisites for running RecipeMind

  • Python 3.8.12
  • CUDA: 11.X
  • Download and extract data.tar.gz (link, 388.4MB) at directory ./data. These files are the datasets containing ingredient n-tuplets with food affinity scores and ingredient word embeddings.
  • Download and extract saved.tar.gz (link, 115.3MB) at directory ./saved. These files are the model checkpoints for each random seed (1001 ~ 1005).

Installing the Python (3.8.12) Conda Environment

conda env create -f recipemind.yml
conda activate recipemind

Training RecipeMind

Run the following code,

./train_script.sh {your_session_name} {random_seed_integer}

Testing RecipeMind in all ingredient set sizes from 2 to 7

Run the following code,

./test_script.sh {your_session_name} {random_seed_integer}

Analyzing RecipeMind

The jupyter notebook RecipeMind Post Analysis.ipynb contains the source code for deploying the trained RecipeModel model in recipe ideation scenarios starting with any number of ingredients. We provided example cells that output the ideation results and attention heatmaps for interpretation purposes. The example heatmaps are the following,

Case Study 1: Starting with Carrots and Onions

img

Case Study 2: Starting with Buttermilk and Flour

img

Contributors

Name Affiliation Email
Mogan Gim† Data Mining and Information Systems Lab,
Korea University, Seoul, South Korea
[email protected]
Donghee Choi† Data Mining and Information Systems Lab,
Korea University, Seoul, South Korea
[email protected]
Kana Maruyama Sony AI, Tokyo, Japan [email protected]
Jihun Choi Sony AI, Tokyo, Japan [email protected]
Donghyeon Park* Food & Nutrition AI Lab,
Sejong University, Seoul, South Korea
[email protected]
Jaewoo Kang* Data Mining and Information Systems Lab,
Korea University, Seoul, South Korea
[email protected]
  • †: Equal Contributors
  • *: Corresponding Authors

Citation

@inproceedings{gim2022recipemind,
  title={RecipeMind: Guiding Ingredient Choices from Food Pairing to Recipe Completion using Cascaded Set Transformer},
  author={Gim, Mogan and Choi, Donghee and Maruyama, Kana and Choi, Jihun and Kim, Hajung and Park, Donghyeon and Kang, Jaewoo},
  booktitle={Proceedings of the 31st ACM International Conference on Information \& Knowledge Management},
  pages={3092--3102},
  year={2022}
}

recipemind's People

Contributors

dongheechoi avatar mavenhyun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.