[AI in meal planning] 여러 식단에 대한 정보를 쌓고, 사람들의 의견/상태를 반영하기

2년 전

안녕하세요, @doctorbme 입니다. 오늘은 앞서 살펴본, 식단 구성에 대한 최적화 문제 정의최적 식단을 찾는 방법에 이어, 여러 식단에 대한 정보를 쌓고, 식단에 대한 사람들의 의견/상태를 반영하는 방법에 대해 알아보도록 하겠습니다.


24863070074_9ae7711749_z.jpg

그림 1. 여러 음식들과 IBM watson

우리는 음식을 통해, 새로운 조리법을 발견할 수 있을까요? 레시피의 새로운 시도를 통해 창의적인 맛을 낼 수 있을까요? 이러한 문제에 대해 IBM은 사실 고민을 해오고, 이에 따라 셰프 왓슨(Chef Watson)을 런칭합니다. 쉐프 왓슨은 식재료에 따라 레시피를 어떻게 구성해야할지, 식재료가 어떻게 달라지는지, 음식의 궁합과 맛은 어떠한지에 대한, 요리법을 조합합니다. 이를 위해서는 왓슨이 가지고 있는 기본적인 음식/식재료에 대한 지식과, 사람들이 구성해낸 레시피들을 바탕으로 조합하는 것이 필요합니다.

채식주의자, 특정 음식에 알러지가 있는 사람들을 위한 레시피 등도 구성할 수 있으며, 음식쓰레기를 줄이기 위한 레시피 같은 것도 가능합니다. 이러한 레시피들을 발전 시켜서 Cognitive Cooking with Chef Watson: Recipes for Innovation from IBM & the Institute of Culinary Education이라는 책까지 출판했지요.

18836492225_59f0bc647c_z.jpg

그림2. IBM Chef Watson의, 음식 조합을 위한 초기 화면

열심히 식재료를 고르다보면, 아래와 같이 괜찮은 조합을 통한 음식을 추천해줍니다.
딸기, 망고 등을 골랐더니, 우선 딸기 파이를 추천해주는군요.

18810247426_001c4bae1e_z.jpg

그림3. 식재료를 고른 뒤, 추천해주는 음식의 리스트를 뽑아줍니다.

조금더 애매한 조합을 볼까요? 딸기와 연어와 꿀과 위스키 조합을 살펴봅시다. 무슨 레시피가 나올까 기대가 되지요? 한번 살펴봅시다.

18831404922_1b92d3b848_z.jpg

그림4. 새로운 레시피의 등장

딸기 물고기 요리라니, 참신하네요. 물론 시도해본 사람이 없어서 그런지, 음식 그림은 없습니다. (...)

어떤 음식을 하든, 만드는 방법이 있어야, 실제로 만들어 보겠지요? 그래서 Chef Watson은 그 방법을 제시합니다.

18831404652_31517ec818_z.jpg

그림5. 딸기 카레 레시피 (...)

딸기 카레 레시피라니, 참신하네요. 물론 실제로 먹어보진 않았습니다만, 생각보다 의외로 어울릴 수도 있을 것 같습니다. 가끔 카레에 사과를 넣기도 하니까요.

이러한 서비스들의 등장은, 요리에 대한 인간의 관심을 반영함과 동시에, 인간이 느낄 수 있는 맛있음과 도움이 되는 영향을 벗어나지 않는 선에서, 새로운 창의성을 발휘하게 해줍니다.


그러면 이러한 서비스를 하기 위해, 어떻게 사람들의 의견을 반영할 수 있을까요? 여러 방법이 있겠지만, 그 중에 하나는 RDR(Ripple down rules)입니다. 이는, 다양한 케이스를 반영하는 데에 있어서, 어떤 조건( condition)이 충족될 때와 충족되지 않을 때를 구분하게 되는데, 충족되지 않을 경우, 다른 라벨을 붙이거나 새로운 라벨을 생성할 수 있습니다.

rdr1.png

그림6. RDR의 기본적인 구조

위 그림에서 조건2를 만족하면 action2를 아니면 조건3로 넘어가게 되지만, 조건 2에 대해 세분화된 조건을 부여할 수 있습니다. 조건2 를 충족하는 경우 중 일부 집합에 대해 새로운 조건4를 판별하게 되는 것이지요.

rdr3.png

그림 7. 식단 구성의 제한 조건 수정에 대한 RDR의 예

예를 들어, 1) 남성인지 판단하고 남성인 경우에는 식단의 칼로리를 증량, 2) 그 다음 기저 질환이 있는지 판단하고, 기저 질환 없는 정상의 경우 식단 구성을 그대로 유지, 3) 기저 질환이 있는 경우 우선 당뇨가 있는지 판단하여, 탄수화물을 제한하는 과정을 구성한다고 가정해봅시다.

그리고 여기에 임신부에 해당하는 룰을 추가하는 경우가 있을 수 있습니다. 그러면 우리는 두 가지 상황을 생각해볼 수 있는데, 하나는 당뇨 조건 판별 이후에 이 룰을 추가하는 것이고, 다른 하나는 기저 질환을 판단하는 부분에 예외처리를 추가 하는 것입니다. 각 사용자, 혹은 전문가들은 이러한 룰을 어디든지 추가적으로 붙일 수 있습니다. 여기에서는 예외 처리로 하는 것이 적당합니다. 정상인 상태이지만, 정상인 상태에서 세부적으로 임신의 상황을 세부적으로 작게 '분류' 하는 것입니다. 예외 처리의 특징은, 일련의 기존 판별 구조를 뒤엎지 않으면서, 각 상황에 대한 추가적인 세부 상황을 조건으로 부여할 수 있다는 것입니다.

그리고 이러한 조건을 부여하는 것은, 결국 제한 조건을 조절하는 것과 연관 됩니다. 룰을 추가하고 액션을 설정함으로써 칼로리나 영양소에 대한 적정 범위를 수정하고 있는 것이기 때문입니다.

간단하게 요약드리자면, 어떠한 룰에 대해서 충족되거나 충족되지 않거나(ELSE), 충족되긴 하는데 세부적인 추가 분류가 필요할 경우 (EXCEPT)가 존재하고, 충족되지 않거나 세부적 분류가 필요할 때에, 추가적인 (조건과 액션으로 구성된) 룰을 생성/수정/삭제할 수 있다는 것입니다.

따라서 제가 생각하는 RDR의 장점은 아래와 같습니다.

  1. 사용자나 전문가의 의견이, 판단 구조에 직접적으로 반영될 수 있음.
  2. 새로운 조건 부여에 대해 설명하기가 용이함
  3. 룰의 종류와 특성을 고려하여, 식단 구성에 대한 일반적인 원칙을 추출하거나 정리할 수 있음.

여담이지만, 참고로 제가 생각하는 RDR의 단점은 아래와 같습니다.

  1. 추가적인 룰이 계속해서 생성될 수 있으므로, 구조가 매우 복잡해질 수 있고, 구조들이 정리가 안될 수 있음.
  2. 계층적인 구조를 미리 생각해두지 않으면, 룰 간의 상하 관계가 엉키면서, 판단과 처리가 비효율적일 수 있음.

결국 룰이 연쇄적으로 적용되면, 종합적인 룰의 구성도 가능합니다.

<조합된 룰>
Rule: 1) 배고픔을 자주 느끼고 , 2) 지방 섭취를 줄이고 싶은 의향이 존재한다면,
Action: 1) 소화가 잘되면서도 부피가 큰 음식으로 구성하고 2) 삼겹살, 마요네즈 등과 같은 지방함량이 높은 음식을 샐러드, 오리엔탈 드레싱으로 치환한다.

이런 식의 부여가 가능합니다. 각 사용자들의 레시피가 쌓이고, 이러한 레시피에서 반영되는 룰의 정보들이 축적되면, 특정 상황에서 발생할 수 있는 룰의 집합을 고려하여, 개인의 취향과 상황에 맞는 룰이 반영된 새로운 레시피를 만들 수 있게 됩니다.

또한 RDR을 이용하면, 이러한 룰을 추가/삭제/수정이 용이하기 때문에, 사용자의 외부 상황, 조건과의 연계가 가능합니다. 사용자의 다양한 정보를 받아들여, 이를 가공해서, 룰에 반영할 수 있는 것이지요. 이에 대해서는 다음 글에서 알아보도록 하겠습니다.


그림출처 (출처, 저작권 표시)

그림 1, https://www.flickr.com/photos/ibm_es/24863070074 , Public domain
그림 2, https://www.flickr.com/photos/ibm_research_zurich/18836492225/in/album-72157645397988715/ , CC-BY-ND 2.0
그림3, https://www.flickr.com/photos/ibm_research_zurich/18810247426/in/album-72157645397988715/ , CC-BY-ND 2.0
그림4, https://www.flickr.com/photos/ibm_research_zurich/18831404922/in/album-72157645397988715/, CC-BY-ND 2.0
그림5, https://www.flickr.com/photos/ibm_research_zurich/18831404652/in/album-72157645397988715/ , CC-BY-ND 2.0
그림6, 자체작성
그림7, 자체작성


참고문헌
[1] Khan AS, Hoffmann A. , Building a case-based diet recommendation system without a knowledge engineer, Artif Intell Med. 2003 Feb;27(2):155-79.
[2] Gaál B, Vassányi I, Kozmann G. , A novel artificial intelligence method for weekly dietary menu planning. , Methods Inf Med. 2005;44(5):655-64.
[3] Johan Aberg, Dealing with Malnutrition: A Meal Planning System for Elderly, AAAI Spring Symposium: Argumentation for Consumers of Healthcare, 2006
[4] Alessandro Mazzei, Luca Anselma, Franco De Michieli, Andrea Bolioli, Matteo Casu, Jelle Gerbrandy, Ivan Lunardi, Mobile Computing and Artificial Intelligence for Diet Management, ICIAP 2015 Workshops pp 342-349
[5] “왓슨과 함께 신메뉴 개발에 도전해 보세요!”, https://www-03.ibm.com/press/kr/ko/pressrelease/47402.wss
[6] Rodrigo Zenun Franco, Rosalind Fallaize, Julie A Lovegrove, and Faustina Hwang, Popular Nutrition-Related Mobile Apps: A Feature Assessment, JMIR Mhealth Uhealth. 2016 Jul-Sep; 4(3): e85.
[7] Gergely Kovásznai, Developing an expert system for diet recommendation, 2011 6th IEEE International Symposium on, Applied Computational Intelligence and Informatics (SACI)


M-SHAPE 배너.png
투명배경.png

전문가들이 직접 쓰는 최초의 STEEM 의학 매거진

https://mediteam.us

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT
Sort Order:  trending

엄청나네요^^
좋은 글 감사합니다!

·

감사합니다! 쉐프 왓슨 생각보다 재미있는 서비스 입니다. 한번 이용해보세요 :)

선생님의 글을 최근에 바쁘다는 핑계로 잘 못봤는데... 식단에 관한 시리즈가 연재되고 있었네요. 왓슨이 레시피까지 제안하고 있었군요? 그 퀴즈에서 발휘한 실력이 요리에까지... 직접 도전해보면 꼭 태그 드리겠습니다. ^^/

·

오랜만입니다. :)

이번에 다소 생뚱맞지만 식단과 AI라는 주제로 연재 중입니다. 어떻게 보면 왓슨 AI는 다소 범용적이라, 여러 분야에 맞추어서 (특히 사용자와 소통해서 즉각적인 피드백을 줄 수 있는 분야들에 대해), 적용되고 있다는 느낌을 받습니다. 재미있는 요리 레시피 찾아내시면 한번 도전해보셔도 좋겠습니다. (진짜로 맛이 괜찮은지 validation 과정인 것 같네요...)

이쯤에서 셰프왓슨의 존재의 의의에 대한 근원적인 질문을 던지지 않을 수가 없군요.

저거 개발하는 엔지니어들이 자신들이 직접 요리는 안하고 '오늘 뭐 먹지(더 정확히는 오늘 저녁밥은 뭐 하지)'라고 고민하는 (높은 확률로) 와이프의 고민만 듣다가 저런걸 개발하게 된 것은 아닌지! 라는 ㄱㅅㄹ를 한번 남겨봅니다 ㅋㅋㅋㅋㅋ

내가 뭘 먹으면 좋을지 인공지능이 알려줘도 결국 그걸 만드는 노동은 내가 해야 하잖아요?!
전 제가 뭘 먹을지 알려주는 인공지능이 필요한게 아니라 내가 뭘 먹을지는 내가 생각할테니까 그걸 만들어주는 로봇이 필요한데말이죠!!! 심지어는 그걸 만드는 노동은 내가 하는데 쉐프란 이름은 지가 가지고 말이죠!!!

결론은 인공지능쉐프 같은 참신한 쓸데없는거 말고 로봇쉐프같은 구태의연한 쓸모있는걸 만들어달라 이겁니..........

너무 흥분했나봐요. 죄송합니다 ㅋㅋㅋ

·

'저거 개발하는 엔지니어들이 자신들이 직접 요리는 안하고'
내가 뭘 먹을지는 내가 생각할테니까 그걸 만들어주는 로봇

역시 엔지니어의 관점은 엔지니어가 아닌 사람과의 관점과 종종 다른 것이군요.
참산하고 쓸데없는 것 < 구태의연하지만 쓸모있는 것 (이게 맞긴 합니다.)
(때가 되면) 만들어 드...드리겠습니다. (...)

한번 찾아보니, 지금도 개발을 하고 있는 것 같군요.
Robot Chef That Can Cook 2,000 Meals Set To Go On Sale In 2017
로봇이 요리하는 동영상

인공지능 쉐프와 로봇쉐프가 만나서 재미있는 요리들을 하면 참 즐겁겠다는 생각을 해봅니다. :)

사람들끼리 온갖 괴식을 만들어 자랑하는건 보았으나 이건 괴식을 추천해주는거네요 ㅎㅎㅎㅎ

·

네. 그래도 먹을만한 음식 레시피를 추천해주는 것일테니, 한번 믿어볼만(?) 할 겁니다. :)

@yourwisedentist님이 당신의 글을 번역 요청했습니다

의뢰시간언어금액거래번호송금기한
2018-5-23KO → EN26.58 STEEM094fdb8acc8d59a2372fbc9b62b535252018-5-23 14:38
  • 현재는 베타 버전이며 단어당 0.02 STEEM의 고정단가를 적용하였습니다.
  • 송금기한까지 송금을 완료하여야 Steemit에서 활동하는 번역가가 작업을 시작합니다.
  • Steemit에서 콘텐츠를 간편하게 번역하고 싶다면 Steemit Translation by CICERON을 설치하세요.
  • Steemit 번역가 등록하고 STEEM으로 보상받으세요.

Powered by Steemit Translation by CICERON