[’21 Nature Scientific Reports] FlavorGraph: a large‑scale food‑chemical graph for generating food representations and recommending food pairings

This entry is 4의 6 in the series FoodTech

1. 들어가며

이번 글에서는 2021년 Nature Scientific Reports에 발표된 FlavorGraph 논문의 핵심 내용을 정리해보려 합니다.

2020년대 초반, 다양한 FoodTech 연구들이 쏟아졌지만 대부분은 이미지나 텍스트 기반의 레시피 데이터를 활용한 멀티모달 모델이나 통계 기반 추천 시스템이 주류를 이루었습니다. 하지만 이러한 접근 방식은 요리의 구성 요소인 ‘재료’에 내재된 화학적 정보를 고려하지 못한다는 점에서 한계를 가집니다. 예를 들어, 단순히 “레드 와인에는 알코올이 들어 있다”는 정보보다 “레드 와인에는 어떤 화합물이 포함되어 있고, 이 화합물이 어떤 향미나 생리작용에 기여하는가”까지 알 수 있다면 훨씬 더 정밀하고 과학적인 응용이 가능할 것입니다.

FlavorGraph 논문은 이러한 문제의식을 바탕으로, 음식 재료와 이를 구성하는 화학 물질 간의 관계를 포괄적으로 표현하는 이질적 그래프를 제안합니다. 이 그래프는 Recipe1M, FlavorDB, HyperFoods 등 서로 다른 유형의 데이터셋을 통합해 구축되었으며, 단순한 통계 기반 분석을 넘어 화학적 특성을 반영한 음식 임베딩을 생성하는 데 초점을 맞춥니다.

이번 글에서는 FlavorGraph가 제안하는 데이터셋 구성 방식과 임베딩 학습 구조를 살펴보고, 이어서 이를 바탕으로 수행된 다양한 실험 결과들을 통해 해당 모델이 어떤 의미 있는 표현을 만들어내는지를 함께 정리해보겠습니다.

2. FlavorGraph

먼저 이번 논문의 핵심 내용인 제안 방법 부분을 살펴봅니다. 크게 두가지로 나누어 살펴볼텐데요. 먼저 재료와 화합물들로 구성되어 있는 이질적인 그래프 형태의 데이터셋을 어떻게 구성했는지 살펴보고, 이어서 모델 구성과 학습 방법을 살펴보겠습니다.

그림1. FlavorGraph 논문 표현
그림1. FlavorGraph 논문 표현

2-1. Dataset

먼저 FlavorGraph 데이터셋은 총 세가지의 데이터셋을 섞어 만든 데이터셋입니다.

첫 번째는 Recipe1M으로 요리에 대한 이미지와, 그 구성 재료, 레시피를 텍스트 형태로 갖고 있는 데이터셋입니다.
두 번째는 FlavorDB로, 각 식재료들이 어떠한 화합물로 구성되어 있는지에 대한 정보를 갖고 있는 데이터셋입니다.
세 번째는 Hyperfoods로, 기본적으로 FlavorDB와 동일하지만 약리 효과를 내는 성분들에 초점이 맞춰져 있는 데이터셋이라고 보시면 됩니다.

FlavorGraph의 목적은 이렇게 서로 다른 이질적인 정보들, 재료, 약리 재료, 화합물들을 하나의 데이터로 묶어주는것이었어요. 이 목적을 이루기 위해 그래프 형태의 데이터셋을 구성해주는데요. 우선 그래프의 노드는 방금 언급한 세가지의 서로 다른 정보들 (재료, 약리 재료, 화합물) 들로 구성해줍니다. 그럼 이제 각 노드들 끼리의 엣지를 어떻게 구성해줄것인가를 고민해야 하는데요. 크게 두가지로 나누어 생각해볼겁니다.

첫 번째는 재료와 재료간의 엣지입니다. 엣지는 노드간의 관계 정보라고 생각해봤을때, 각 식재료들끼리는 어떠한 관계로 묶어주면 합리적일까요? 저자들은 ‘동시 출현 정도’로 엣지를 계산해줍니다. Recipe1M 데이터셋에는 다양한 요리에 대한 구성 식재료들이 정리되어 있는데요. 이를 바탕으로 각 식재료들이 얼마나 자주 같은 요리에 쓰이는지를 계산할 수 있죠. 이를 계산한 뒤 정규화하여 -1~1 값으로 매핑해줍니다.

두 번째는 재료와 화합물간의 엣지입니다. 재료와 화합물은 어떠한 관계로 묶어주면 좋을까요? 각 식재료는 그 식재료를 구성하고 있는 다양한 화합물들로 구성되어 있습니다. 이렇게 각 재료가 어떠한 화합물들로 구성되어있는지를 엣지로 표현해주면 되겠네요. 이는 FlavorDB, 와 Hyperfoods 데이터셋에서 정리할 수 있습니다. 각 재료에 해당 화합물이 있으면 1로, 없으면 0으로 엣지를 구성해줍니다.

2-2. Model

이렇게 하면 각 식재료와 화합물들이 모두 묶인 그래프 형태의 데이터셋이 만들어졌습니다. 이제 모델을 만들어야 하는데요. 만들 모델의 목표는 각 노드들을 ‘그럴듯하게’ Embedding으로 표현해주는것입니다. 이때 ‘그럴듯하게’ 라고 표현한 이유는 특별한 목적함수가 없기 때문입니다. FoodTech 영역은 사람의 주관이 많이 개입되는 분야라, 해당 모델의 성능을 정확하게 표현해줄 수 있는 방법이 아직 없습니다.

그럼 앞서 구성한 FlavorGraph DB를 사용하여, 어떻게 하면 각 노드들을 그럴듯하게 표현해줄 수 있을까요? 저자들은 크게 두가지의 학습 목적 함수를 사용합니다.

첫 번째는 skip gram을 사용하는건데요. 이건 이렇게 생각해볼 수 있어요. 앞서 그래프 DB를 만들었는데요. 이 말은 이미 각 재료와 화합물들이 서로 어떠한 관계가 있는지를 표현해주고 있다는거에요. 즉 어떤 재료는 어떤 화합물이랑은 친하고, 어떤 화합물들하고는 안친한지를 이미 알고 있는 상태죠. 이를 embedding으로 표현해주자는거에요. 먼저 FlavorGraph DB를 바탕으로 각 재료와 화합물들을 ‘문장’ 처럼 만들어줍니다. 이때 Metapath라는 방법을 사용할거에요. 여기서 metapath 방법은 그래프의 엣지들을 따라가면서 중심 노드로부터 가까운 노드들은 더 가까운 단어로 위치하도록 문장을 구성해주는 방법 정도라고 이해할게요. 이제 이렇게 그래프 DB를 바탕으로 만든 문장에서, 중심 노드를 기준으로 가까운 노드 embedding은 가까워지도록, 먼 노드 embedding은 멀리 위치하도록 loss를 구성해줍니다.

그림2. skip gram
그림2. skip gram

이제 두번째는 Chemical Structure Prediction 부분인데요. skip gram으로만 학습을 하면 어떤 한계가 있을까요? skip gram은 각 노드들이 누구들은 가깝고, 누구들은 멀어야하는지를 학습해준거에요. 이때 각 화합물이 어떠한 애들인지에 대한 정보는 전혀 포함되지 않았죠. 그런데 만약 우리가 각 화합물들에 대한 정보를 알고 있다면 어떻게 될까요? 단순히 ‘1번 화합물과 2번 화합물은 비슷해’가 아니라 1번 화학물에는 어떠한 작용기가 있고, 끓는점은 몇도고, 점도는 몇인지 등 다양한 화학적 특성을 알고 있다면요? 이러한 정보를 모델에게 알려준다면, 모델은 재료와 화합물들간의 관계 뿐만 아니라 화합물들의 특성까지 같이 이해를 하여 노드들의 Embedding 위치를 조정해줄 수 있겠죠? 이를 위해 저자들은 CACTVS라는 분자 지문을 활용합니다. 이 데이터에는 각 분자별 특성을 정리하여 881 차원의 벡터로 표현해주고 있다고 이해하고 넘어가겠습니다. 이제 우리는 모델이 881차원으로 생성한 노드 Embedding을 CACTVS와 동일하도록 Binary Cross Entropy Loss로 학습해주는거에요.

그림3. Chemical Structure Prediction
그림3. Chemical Structure Prediction

지금까지 설명한 전체 내용을 하나의 그림으로 표현하면 아래와 같습니다.

그림4. FlavorGraph 전체 Flow
그림4. FlavorGraph 전체 Flow

우리가 표현할 노드는 총 세가지 종류이구요 (재료, 약리 재료, 화합물). 이들은 재료간 공출현 정도, 그리고 재료를 구성하고 있는 화합물 정보를 활용하여 그래프 DB로 만들어줍니다. 이제 Metapath 방식으로 재료와 화합물들을 단어로 하는 문장들을 만들어주고요. 이렇게 만든 DB를 반영하고 있는 문장을 skip gram 방식으로 학습해줍니다. 이렇게만 학습하면 각 단어들 (노드) 간의 가깝고 먼 정보만 학습을 하게 되니, 우리가 정보를 알고 있는 화합물들에 대해서는 이미 알려진 화합물 정보 (881차원)에 대해 binary cross entropy loss로 잘 맞추도록 같이 학습해줍니다!

3. Experiments

이제 FlavorGraph의 구조와 학습 방식에 대해 이해했으니, 본 논문에서 수행한 다양한 실험들을 살펴보겠습니다. 실험은 크게 두 가지 목적을 가지고 진행됩니다.

첫 번째는 FlavorGraph가 제안하는 음식–화합물 그래프 구조와 embedding 기법이 실제로 의미 있는 표현을 학습하고 있는지를 검증하는 것입니다. 예를 들어, 화학적으로 유사한 재료가 embedding 공간에서도 가깝게 배치되는지, 자주 함께 사용되는 재료쌍이 모델에서도 유사하게 표현되는지 등을 평가합니다.

두 번째는 이렇게 학습된 음식 벡터들이 실제 어플리케이션에 어떻게 활용될 수 있는지를 보여주는 것입니다. 예를 들어, 음식 페어링 추천, 새로운 compound–food 관계 예측 등 다양한 downstream task에의 응용 가능성을 정성적/정량적으로 분석합니다.

각 실험은 다음과 같은 순서로 정리해보겠습니다.
먼저 데이터 기반 사전 분석(Preliminary analysis)을 통해 레시피 공출현 정보와 화학 성분 정보가 각각 어떤 특성을 가지는지를 비교하고, 이어서 FlavorGraph 임베딩의 구조적 특성을 시각화 및 정량 평가합니다. 이후 실제 페어링 추천 및 화합물–음식 관계 예측 사례를 통해 모델의 활용 가능성을 살펴봅니다.

3-1. Preliminary analysis on food pairings with chemical compound information and recipe co‑occurrence.

FlavorGraph는 음식 재료 간의 화학적 유사성과 레시피 기반 공출현 정보가 서로 다른 유형의 관계를 설명한다는 전제에서 출발합니다. 이를 검증하기 위해 저자들은 두 가지 실험을 진행합니다. 첫 번째로, 동일 카테고리의 재료들이 유사한 화학 성분을 공유하는지를 확인하기 위해 Jaccard similarity를 계산합니다. 그 결과, 같은 카테고리 내 재료 쌍들은 평균적으로 더 높은 유사도를 보이며, 재료 분류가 어느 정도 화학적 특성을 반영하고 있음을 확인할 수 있었습니다.

두 번째로는, 레시피에서 자주 함께 등장하는 재료 쌍과 flavor compound를 많이 공유하는 쌍이 실제로 일치하는지를 분석합니다. 일부 재료 쌍은 공출현 빈도와 화학 유사성이 모두 높았지만, 반대로 자주 함께 사용되지만 화학적으로는 유사하지 않은 쌍도 존재했습니다. 또한 화학 성분을 많이 공유하더라도 레시피에서는 거의 함께 쓰이지 않는 경우도 많았습니다. 이를 통해 저자들은 공출현 정보와 화학 정보가 서로 다른 특성을 설명하며, 음식 페어링을 정확히 이해하기 위해서는 두 정보를 함께 사용하는 것이 필요하다는 결론을 도출합니다.

그림5. co-occurence, overlap 매칭 실험 결과
그림5. co-occurence, overlap 매칭 실험 결과

3-2. Representing food ingredients and chemical compounds in a vector space.

FlavorGraph는 재료와 화합물 간의 복합적인 관계를 벡터 공간에서 효과적으로 표현하기 위해 그래프 임베딩 기법을 사용합니다. 이때 각 노드는 metapath 기반의 random walk로 생성된 경로 내에서 skip-gram 방식으로 학습되며, 서로 자주 연결되는 노드일수록 embedding 공간에서 가깝게 배치되도록 합니다. 학습된 임베딩 결과를 t-SNE로 시각화하면, 같은 카테고리에 속하는 재료들이 자연스럽게 클러스터를 형성하며, 화학 정보를 포함한 재료일수록 화합물 노드 주변에 배치되는 경향을 보입니다.

또한 레드와인과 감귤류 과일처럼 flavor compound를 공유하는 재료들은 embedding 공간에서도 근접하게 나타났으며, 레시피 상에서 잘 어울리는 조합들도 유사한 위치에 매핑되는 것을 확인할 수 있습니다. 이를 통해 FlavorGraph 임베딩은 단순한 연결 정보뿐 아니라 화학적 특성과 조리 맥락 모두를 반영하고 있음을 보여줍니다.

그림6. Embedding representation
그림6. Embedding representation

3-3. Node clustering by food category

FlavorGraph 임베딩의 표현력을 평가하기 위해, 저자들은 음식 재료 노드들이 실제 카테고리 분류와 얼마나 잘 일치하는지를 확인하는 클러스터링 실험을 진행합니다. 이를 위해 chemical-hub 재료 416개를 대상으로 임베딩된 벡터를 활용해 클러스터링을 수행하고, 정답 카테고리와의 일치도를 Normalized Mutual Information (NMI) 지표로 측정합니다.

비교 대상은 FlavorDB의 one-hot 화합물 벡터, Im2Recipe의 텍스트 임베딩, 그리고 다양한 그래프 임베딩 기법들로 구성되며, FlavorGraph는 가장 높은 NMI 점수인 0.309를 기록합니다. 또한 t-SNE 시각화 결과에서도 유사한 카테고리 재료들이 명확하게 구분되어 나타나, FlavorGraph 임베딩이 카테고리 정보를 잘 반영하고 있음을 시각적으로도 확인할 수 있습니다.

그림7. t-SNE 비교 결과
그림7. t-SNE 비교 결과

3-4. Case Study 1: using the favor representations of FlavorGraph for food pairing.

FlavorGraph 임베딩의 실용 가능성을 확인하기 위해, 저자들은 이를 음식 페어링 추천에 활용하는 사례 연구를 진행합니다. 특정 재료를 기준으로 유사한 임베딩 벡터를 가진 재료들을 검색하고, 이를 실제 화학적 유사성 또는 레시피 맥락에서 평가합니다. 화학 정보를 포함한 노드들을 대상으로 한 추천에서는 실제로 많은 flavor compound를 공유하는 재료들이 상위에 위치하며, 반대로 화학 정보가 없는 non-hub 재료만을 대상으로 할 경우에도 레시피 맥락상 자연스러운 조합이 도출됩니다.

또한 기존 모델인 KitcheNette와의 비교에서도 FlavorGraph는 화학 정보가 없는 재료에 대해서도 더 다양하고 의미 있는 조합을 제안함으로써, chemical-hub 재료를 매개로 한 정보 전달이 효과적으로 이루어졌음을 보여줍니다. 이를 통해 FlavorGraph 임베딩이 단순 통계나 유사도 기반 모델보다 더 풍부한 표현력을 지니고 있음을 확인할 수 있습니다.

그림8. Food Pairing에의 응용
그림8. Food Pairing에의 응용

3-5. Case study 2: Can we also predict compound‑food relations?

FlavorGraph 임베딩은 음식 간 유사성뿐 아니라, 음식과 화합물 사이의 관계까지 예측할 수 있는지를 확인하기 위해, 저자들은 compound–ingredient 관계 예측 실험을 진행합니다. 학습된 임베딩 벡터를 기반으로 cosine similarity를 계산하고, 이를 통해 특정 flavor compound와 관련된 재료를 유사도 순으로 정렬해 예측합니다.

실제 FlavorDB에 기록된 기존 관계를 기준으로 예측 결과를 평가한 결과, 약 89.5%의 정확도와 0.784의 F1 score를 기록하며 높은 예측 성능을 보였습니다. 특히 데이터에 존재하지 않는 새로운 조합도 일부 예측되었으며, 이들 중 다수가 flavor profile 상 합리적인 추론으로 이어질 수 있는 사례임을 시각적으로 제시합니다. 이를 통해 FlavorGraph 임베딩이 기존의 명시된 관계뿐 아니라 잠재적인 화합물–음식 연관성까지 학습하고 있음을 확인할 수 있습니다.

그림9. Predicting food-compound relations
그림9. Predicting food-compound relations

4. 마치며

FlavorGraph는 기존의 FoodTech 연구들이 주로 텍스트 기반 정보에 의존하던 한계를 넘어, 화학 성분 정보까지 통합한 이질적 그래프 구조를 제안함으로써 음식 표현의 새로운 방향을 제시합니다. Recipe1M, FlavorDB, Hyperfoods 등 서로 다른 성격의 데이터들을 하나의 그래프 구조로 통합하고, 이를 기반으로 skip-gram과 chemical structure prediction을 결합한 임베딩 학습을 통해 보다 풍부한 의미를 담은 음식 표현을 생성해냅니다.

실험을 통해 학습된 임베딩은 음식 간 유사성, 카테고리 분류, 음식 페어링 추천, compound–ingredient 관계 예측 등 다양한 응용에서 유의미한 성능을 보였으며, 단순히 레시피 기반 통계를 넘어서 화학적 특성까지 반영한 복합적 표현이 가능함을 입증했습니다. 본 논문은 음식과 화합물의 관계를 과학적으로 이해하고, 이를 데이터 기반으로 모델링할 수 있는 가능성을 제시한 점에서 FoodTech 분야에서 중요한 출발점이 될 수 있는 연구라 할 수 있습니다.

FoodTech

[’19 IJCAI] KitcheNette: Predicting and Recommending Food Ingredient Pairings using Siamese Neural Networks [’24 Nature Communications] Predicting and improving complex beer flavor through machine learning
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top