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

안녕하세요, @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

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now