KR20230116355A - 개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치 - Google Patents

개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치 Download PDF

Info

Publication number
KR20230116355A
KR20230116355A KR1020220013187A KR20220013187A KR20230116355A KR 20230116355 A KR20230116355 A KR 20230116355A KR 1020220013187 A KR1020220013187 A KR 1020220013187A KR 20220013187 A KR20220013187 A KR 20220013187A KR 20230116355 A KR20230116355 A KR 20230116355A
Authority
KR
South Korea
Prior art keywords
recipe
recipes
information
learning
vectors
Prior art date
Application number
KR1020220013187A
Other languages
English (en)
Inventor
조수필
문혜영
최윤종
손종수
Original Assignee
씨제이올리브네트웍스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 씨제이올리브네트웍스 주식회사 filed Critical 씨제이올리브네트웍스 주식회사
Priority to KR1020220013187A priority Critical patent/KR20230116355A/ko
Publication of KR20230116355A publication Critical patent/KR20230116355A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Software Systems (AREA)
  • Marketing (AREA)
  • Artificial Intelligence (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 개인맞춤형 레시피를 추천하는 방법, 그리고 이를 위한 연산장치에 관한 것이다. 구체적으로는 학습이 가능한 알고리즘, 특히 벡터 임베딩을 수반하는 알고리즘을 활용하여 특정 사용자의 성향 및 다양한 상황에 맞는 개인맞춤형 레시피를 추천하는 방법 및 이를 위한 연산장치에 관한 것이다.

Description

개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치{METHOD AND APPARATUS FOR RECOMMENDING PERSONALIZED RECIPE}
본 발명은 개인맞춤형 레시피를 추천하는 방법, 그리고 이를 위한 연산장치에 관한 것이다. 구체적으로는 학습이 가능한 알고리즘, 특히 벡터 임베딩을 수반하는 알고리즘을 활용하여 특정 사용자의 성향 및 다양한 상황에 맞는 개인맞춤형 레시피를 추천하는 방법 및 이를 위한 연산장치에 관한 것이다.
개인 별 음식 취향에 대해 조사를 하는 과정에서는 일반적으로 유사한 음식 취향을 가진 사람들 간에 선호하는 음식 목록도 비슷한 상호 관련성을 보이는 경우가 많이 있다. 이러한 관련성에 착안하여, 최근 각 개인 별 레시피를 추천하는 서비스에서는 해당 개인유저와 음식 취향이 비슷한 사람들이 다수 선호하는 음식을 필터링 하여 추천하는 방식, 또는 해당 개인유저가 좋아하는 음식과 특성이 비슷한 음식을 필터링 하여 추천하는 방식을 활용하고 있다.
그러나 데이터 필터링 방식은 빅데이터를 분석하는 데에 있어 한계가 분명할 뿐만 아니라, 데이터 수집 비용도 많이 소요되고, 또한 새로운 종류의 음식이 선보여졌을 때에 단기간 내에 이 새로운 음식을 서비스 내에서 추천하기 어려운 문제점도 있다. 또한, 개인이 신규 유저인 경우 해당 개인에 대한 누적된 정보가 없어 음식 추천이 어려운 콜드 스타트(cold start) 문제도 존재한다.
본 발명은 이와 같은 문제점에 착안하여 제안된 것으로, 대량의 음식과 관련된 문서정보들, 레시피 문서정보들을 수집 및 벡터 임베딩하고, 학습이 가능한 알고리즘을 활용함으로써 개인 사용자로부터 수집 가능한 정보가 적다 할지라도 효과적인 레시피 추천이 이루어질 수 있도록 한 발명에 관한 것이다.
대한민국 공개특허 제10-2020-0080355호(2020.07.07. 공개)
본 발명은 사용자에게 개인화 된 레시피를 추천하는 방법 및 이를 가능하게 하는 연산장치를 제공하는 것을 목적으로 한다.
특히 본 발명은 사용자의 상황에 따라 사용자가 보유하고 있는 식자재를 활용한 레시피를 추천해 주는 것을 목적으로 하며, 이에 더하여 사용자와 관련된 다양한 주변 정보들을 활용함으로써 효과적인 레시피 추천이 이루어질 수 있게 하는 것을 목적으로 한다.
또한 본 발명은 외부로부터 수집된 대량의 식문화 콘텐츠들을 벡터 임베딩 하고, 알고리즘으로 하여금 식문화 콘텐츠들로부터 유추될 수 있는 음식 또는 레시피 특징을 학습하게 함으로써 실제 사용자에게 레시피 추천 시 최신의 식문화까지도 반영이 이루어질 수 있게 하는 것을 목적으로 한다.
또한 본 발명은 사용자에게 레시피를 추천하는 과정에서 특정 기업의 프로모션 상품 및 이 상품이 레시피가 함께 노출이 되도록 함으로써 기업의 상품 프로모션을 가능하게 하는 것을 목적으로 한다.
한편, 본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명은 위와 같은 문제점을 해결하기 위한 것으로, 본 발명에 따른개인맞춤형 레시피를 추천하는 방법은, (a) 특정 사용자에 대한 기초정보들 - 상기 기초정보들은 상기 특정 사용자의 보유식재료 정보, 및 식사성향 정보를 포함함 - 을 수집하는 단계; (b) 기 저장된 레시피들에 대해, 상기 기초정보들 중 보유식재료 정보와의 비교연산을 함으로써 복수 개의 레시피들에 대한 적합도를 연산하고, 복수 개의 후보 레시피들을 결정하는 단계; (c) 상기 (b)단계에서 결정된 후보 레시피들에 대해, 상기 기초정보들 중 식사성향 정보와의 매칭도를 연산하는 단계; (d) 상기 적합도 및 매칭도를 참고하여 개인맞춤형 레시피를 결정하는 단계; 를 포함할 수 있다.
또한 상기 개인맞춤형 레시피 추천 방법에 있어서 상기 (a) 단계에서 기초정보들을 수집하는 단계는, 임의의 인터페이스를 통해 상기 특정 사용자가 기초정보들을 입력한 것을 수신하는 단계인 것을 특징으로 할 수 있다.
또한 상기 개인맞춤형 레시피 추천 방법에 있어서 상기 (a) 단계에서 기초정보들을 수집하는 단계는, 기초정보들 중 일부의 기초정보를, 상기 특정 사용자에 대한 정보들을 저장하고 있는 외부 장치로부터 수신하는 단계를 포함할 수 있다.
또한 상기 개인맞춤형 레시피 추천 방법에 있어서 상기 기초정보들은, 식사성향 정보 및 보유식재료 정보 외에 레시피 추천 계수를 더 포함하되, 상기 레시피 추천 계수는, 상기 (d) 단계에서의 개인맞춤형 레시피 결정 시 적합도 및 매칭도의 반영 비율을 결정하기 위한 것을 특징으로 할 수 있다.
또한 상기 개인맞춤형 레시피 추천 방법에 있어서 상기 기 저장된 레시피들은, 레시피 벡터의 형태로 데이터베이스화 된 것이고, 레시피 벡터를 정의하는 구성(component)들은, 레시피와 관련 있는 복수 개의 텍스트들인 것을 특징으로 할 수 있다.
이 때 상기 레시피와 관련 있는 복수 개의 텍스트들은, 상기 레시피에 필요한 음식명, 음식종류, 식재료명, 용량, 조리 방법, 조리 난이도, 조리 시간, 또는 음식 소개 키워드를 포함하는 것을 특징으로 할 수 있다.
또한 상기 개인맞춤형 레시피 추천 방법에 있어서 상기 (b)단계에서 결정되는 복수 개의 후보 레시피들은, 기 저장된 레시피들 중 적합도가 기준값 이상인 레시피들 또는 적합도가 높은 순으로 정렬되었을 때 기준순위 이상인 레시피들인 것을 특징으로 할 수 있다.
또한 상기 개인맞춤형 레시피 추천 방법에 있어서 상기 (c)단계는, 상기 식사성향 정보 내 포함된 적어도 하나의 키워드로부터 복수 개의 유사단어들을 탐색하는 단계; 탐색된 복수 개의 유사단어들을 레퍼런스 벡터로 임베딩 시키는 단계; 및 상기 레퍼런스 벡터와 후보 레시피 벡터들 - 상기 후보 레시피 벡터들은, 상기 (b)단계에서 결정된 복수 개의 후보 레시피들에 대응되는 레시피 벡터들임 - 간 매칭도를 연산하는 단계; 를 포함할 수 있다.
이 때 상기 (c)단계에서의 매칭도 연산은 학습 가능한 매칭 알고리즘에 의해 수행되는 것을 특징으로 할 수 있다.
한편, 본 발명의 또 다른 실시예에 따른 매칭 알고리즘을 학습시키는 방법은, 레시피 텍스트들을 수집하는 단계; 수집된 레시피 텍스트들을 레시피 벡터로 임베딩시키는 단계; 임의의 학습용 키워드를 학습용 벡터로 임베딩시키는 단계; 및 상기 학습용 벡터와 레시피 벡터 간 유사도를 연산하고, 유사도가 상대적으로 높은 벡터들을 유사도가 상대적으로 낮은 벡터들 대비 매칭가능성이 더 높은 것으로 학습시키는 단계;를 포함할 수 있다.
또한 상기 매칭 알고리즘을 학습시키는 방법은 상기 수집된 레시피 텍스트들을 레시피 벡터로 임베딩시키는 단계 이전, 상기 수집된 레시피 텍스트들을 전처리 하는 단계;를 더 포함할 수 있다.
또한 상기 매칭 알고리즘을 학습시키는 방법에 있어서 상기 학습용 키워드를 학습용 벡터로 임베딩시키는 단계는, 상기 학습용 키워드를 복수 개의 키워드들로 확장시키는 단계; 및 상기 복수 개의 키워드들을 성분으로 하는 학습용 벡터를 생성하는 단계;를 포함할 수 있다.
또한 상기 매칭 알고리즘을 학습시키는 방법에 있어서 상기 수집된 레시피 텍스트들은, 웹 크롤링(web crawling)에 의해 수집된 것을 특징으로 할 수 있다.
한편, 본 발명의 또 다른 실시예에 따른 개인맞춤형 레시피 추천을 위한 연산장치는, 특정 사용자로부터 기초정보들 - 상기 기초정보들은 상기 특정 사용자의 보유식재료 정보, 및 식사성향 정보를 포함함 - 을 수집하는 기초정보 수집부; 기 저장된 레시피들에 대해, 상기 기초정보들 중 보유식재료 정보와의 비교연산을 함으로써 복수 개의 레시피들에 대한 적합도를 연산하고, 복수 개의 후보 레시피들을 결정하는 제1 연산부; 상기 제1 연산부에 의해 결정된 후보 레시피들에 대해, 상기 기초정보들 중 식사성향 정보와의 매칭도를 연산하는 제2 연산부; 상기 적합도 및 매칭도를 참고하여 개인맞춤형 레시피를 결정하는 레시피 추천부; 및 상기 기초정보 수집부, 제1 연산부, 제2 연산부, 및 레시피 추천부를 제어하는 제어부; 를 포함할 수 있다.
또한 상기 연산장치에 있어서 상기 기 저장된 레시피들은, 레시피 벡터의 형태로 데이터베이스화 된 것을 특징으로 할 수 있다.
또한 상기 연산장치에 있어서 상기 제2 매칭부는, 상기 식사성향 정보 내 포함된 적어도 하나의 키워드로부터 복수 개의 유사단어들을 탐색하고, 탐색된 복수 개의 유사단어들을 레퍼런스 벡터로 임베딩 시킨 후, 상기 레퍼런스 벡터와 상기 후보 레시피들에 대응되는 후보 레시피 벡터들 간 매칭도를 연산하는 것을 특징으로 할 수 있다.
또한 상기 연산장치는 상기 매칭도 연산에 이용되는 매칭 알고리즘을 학습시키는 학습부;를 더 포함하되, 상기 학습부는, 수집된 레시피 텍스트들이 임베딩되어 생성된 레시피 벡터, 및 임의의 학습용 키워드가 임베딩되어 생성된 학습용 벡터 간 유사도 연산을 수행하고, 유사도가 상대적으로 높은 벡터들을 유사도가 상대적으로 낮은 벡터들 대비 매칭가능성이 더 높은 것으로 학습시키는 것을 특징으로 할 수 있다.
본 발명에 따르면 종전에 비해 초개인화 된 레시피를 각 사용자에게 추천 제공할 수 있는 효과가 있다.
특히 본 발명에 따르면 사용자가 현재 보유하고 있는 식자재, 그리고 사용자의 식사성향 정보를 기반으로 매칭 연산이 이루어지므로 사용자의 현재 상황에 맞는 정확한 레시피 추천이 이루어질 수 있을 뿐만 아니라, 임베딩 된 벡터들을 활용한 알고리즘 연산이 이루어지므로 더 빠르고 정확한 연산이 가능할 수 있다.
또한 본 발명에 따르면 최신의 식문화가 반영된 콘텐츠들을 레시피 추천에 활용할 수 있게 되므로, 그만큼 사용자들에게 추천되는 레시피 역시 최신의 경향성을 가지게 되는 효과도 있다.
또한 본 발명에 따르면 기업에서 프로모션 중인 상품도 함께 노출 시킬 수 있으므로 상품 광고 효과도 꾀할 수 있다.
한편, 본 발명에 의한 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 개인맞춤형 레시피 추천 방법의 기본 원리를 쉽게 이해하기 위한 개념도이다.
도 2는 본 발명에 따른 개인맞춤형 레시피 추천 방법을 단계 별로 나열한 것이다.
도 3은 개인맞춤형 레시피 추천을 위한 연산장치의 모습을 구체적으로 도시한 것이다.
도 4는 연산장치가 사용자 기초정보를 수집하는 모습을 도시한 것이다.
도 5는 보유식재료 정보를 활용하여 레시피 적합도를 연산하는 단계를 설명하기 위한 것이다.
도 6은 사용자로부터 수신된 키워드를 기초로 레시피 매칭도를 연산하는 단계를 설명하기 위한 것이다.
도 7은 임베딩 된 벡터를 기반으로 매칭도가 연산되는 과정을 이해하기 위한 것이다.
도 8은 적합도 및 매칭도를 참고하여 최종 레시피 추천이 이루어지는 과정을 설명하기 위한 것이다.
도 9는 사용자에게 추천되는 레시피를 예시적으로 나타낸 것이다.
도 10은 매칭 알고리즘을 학습시키는 단계들을 나열한 것이다.
도 11은 연산장치가 학습을 할 때에 요구되는 학습데이터를 예시적으로 나타낸 것이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.
본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 “개방형”의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
나아가 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.
도 1은 본 발명에 따른 개인맞춤형 레시피 추천 방법의 기본 원리를 쉽게 이해하기 위한 개념도이다. 도면을 참고할 때, 개인맞춤형 레시피 추천 방법은 기본적으로 사용자(10)가 연산장치(200) 측에 기초정보를 제공하고, 연산장치가 기초정보를 활용하여 적어도 하나 이상의 레시피를 위 사용자(10)에게 제공하는 것을 골자로 한다. 이 때 기초정보란, 연산장치가 레시피 추천 알고리즘을 실행시킬 때에 필요한 정보들을 의미하는데, 여기에는 대표적으로 사용자(10)가 어떤 식재료를 현재 가지고 있는지에 대한 보유식재료 정보, 그리고 상기 사용자(10)가 어떤 음식을 즐겨먹는지, 혹은 현재 어떤 류의 식사를 하고 싶은지에 관한 정보인 식사성향 정보가 포함될 수 있다.
쉬운 예로, 사용자(10)는 자신이 사용하는 스마트폰에 설치되어 있는 어플리케이션 상에서 현재 요리를 하는 데에 바로 활용이 가능한 식재료들, 예를 들어 달걀, 베이컨, 식빵 및 이들 식재료들의 수량 등을 몇 번의 터치 또는 문자 및 숫자 등으로 입력할 수 있으며, 또한 사용자(10)는 아침시간에 간단하게 조리해서 먹을 수 있는 음식을 추천 받기 위해 "아침식사", "간편식", "서양식" 등의 키워드도 입력할 수 있다. 위 입력 중 식재료와 관련된 입력들은 도 1의 "보유식재료 정보"에, 그리고 아침식사, 간편식, 서양식 등의 입력들은 도 1의 "식사성향 정보"에 해당할 수 있다. 위와 같은 입력을 수신한 연산장치(200)는 후술하게 될 일련의 연산 과정을 거쳐 최종적으로 상기 사용자(10)의 스마트폰 어플리케이션에 "베이컨 치즈 계란말이", "크로와상 샌드위치", "베이컨말이 주먹밥" 과 같은 레시피들, 즉, 상기 사용자(10)가 입력한 현재 상황에 맞는 음식의 레시피들을 선별해 제공할 수 있다.
이처럼 본 발명에 따른 개인맞춤형 레시피 추천 방법 및 연산장치는 사용자(10)와 관련된 기초정보들을 수집한 후 이들 기초정보를 활용하여 현재 사용자(10)의 상황에 맞는 레시피를 추천해 주는 것을 특징으로 한다.
도 2는 본 발명에 따른 개인맞춤형 레시피 추천 방법을 순서대로 나열한 것이며, 도 3은 이러한 방법을 실행시키는 연산장치(200)의 세부구성들을 도시한 것이다. 이하에서는 도 2와 도 3을 참고하여 개인맞춤형 레시피 추천 방법이 진행되는 과정에 대해 알아보기로 한다.
도 2를 참고할 때, 개인맞춤형 레시피 추천 방법은 가장 먼저 사용자로부터 기초정보를 수집하는 단계(S101)로부터 시작되며, 도 3 상에서는 연산장치(200)의 기초정보 수집부(210)를 통해 본 단계가 실행될 수 있다. 기초정보란 연산장치(200)가 레시피 추천 알고리즘을 실행시킬 때에 필요한 정보들을 통칭하는 것이라고 앞서 설명하였으며, 여기에는 대표적으로 사용자(10)의 보유식재료 정보, 그리고 식사성향 정보가 포함될 수 있다고 언급하였다. 그러나 기초정보는 비단 위 두 가지 정보를 포함하는 것에 그치지 않으며, 위 두 정보 외에도 레시피 추천 알고리즘에 참고될 수 있는 더 많은 정보들이 포함될 수 있다. 예를 들어, 사용자의 성별, 나이, 출생지, 또는 현재 주소지와 같은 사용자 개인정보(상기 사용자 개인정보는 별도의 사용자 데이터베이스 내에 저장되어 있을 수 있음)가 포함될 수 있으며, 이들 정보들은 빅데이터로부터 상기 사용자와 유사한 조건을 가진 타사용자들이 어떤 레시피를 추천 받았는지, 또는 어떤 레시피를 선호 하였는지에 대한 데이터를 획득하는 데에 이용될 수 있다. 또한, 상기 기초정보에는 상기 사용자가 어떤 식당들을 방문하는지에 대한 식당 정보들도 포함될 수 있다. 식당 정보들은 사용자가 어떤 종류의 음식들을 선호하는지를 보는 데에 이용될 수 있으며, 또한 각 식당들을 방문하는 시간대, 방문 주기 역시 사용자의 환경 내지 상황에 맞는 레시피를 선별하는 데에 이용될 수 있다. 또한, 상기 기초정보에는 상기 사용자가 어떤 식재료를 구매했었는지에 대한 식재료 구매 정보들도 포함될 수 있다. 식재료 구매 정보들은 식재료를 판매하는 업체와의 제휴 등을 통해 얻어진 것일 수 있으며, 이 역시 사용자가 선호하는 식재료, 이로부터 만들어질 수 있는 음식을 파악하는 데에 이용될 수 있다.
또 다른 한편, 위 S101 단계는 사용자가 직접 스마트폰 또는 데스크탑 PC를 통해 정보들을 입력하는 방식으로도 진행이 될 수도 있으나, 위 S101 단계는 기초정보들을 수집하는 단계인 만큼 반드시 사용자로부터의 입력이 없더라도 자동으로 정보들을 수집하는 메커니즘에 의해서도 진행이 될 수 있다. 도 4는 기초정보들이 수집되는 단계를 쉽게 이해하기 위해 도시한 것이다. 예를 들어, 보유식자재 정보의 경우 네트워크 기능을 가지는 냉장고(50)로부터 연산장치(200)가 필요할 때마다 수신할 수 있으며, 식사성향 정보의 경우에도 사용자 스마트폰(55)의 어플리케이션과 연동되어 수집될 수 있다. 식사성향 정보의 경우 사용자가 과거에 선호한 것으로 표시한 레시피들, 사용자가 과거 방문하였던 식당 정보들, 또는 사용자가 과거 구매하였던 식재료들이 참고되어 어플리케이션 상에서 산출된 정보일 수 있다. 다른 한편, S101 단계는 냉장고(50), 사용자 스마트폰(55) 말고도 외부 데이터베이스(60, 65)들로부터도 정보를 수집하는 과정을 포함할 수 있는데, 예를 들어 사용자가 편의점에서 어떤 식재료를 구매하였는지에 관한 식재료 구매 정보, 편의점 보관 어플리케이션(예. 나만의 냉장고 서비스)에 저장되어 있는 식재료 보관 정보 등이 편의점 데이터베이스로부터 수집될 수 있거나, 또는 사용자가 회원가입이 되어 있어 방문기록이 남는 식당의 데이터베이스로부터 수집될 수 있다. 이처럼 위 S101 단계는 반드시 사용자로부터의 입력행위가 있어야만 하는 단계는 아닐 수 있으며, 외부로부터 정보가 네트워크를 통해 전달되는 단계일 수도 있음을 이해한다.
다른 한편, S101 단계에서는 보유식재료 정보, 식사성향 정보 외에 레시피 추천 계수가 더 수집될 수 있다. 레시피 추천 계수는 후술하게 될 레시피 결정 단계(S107)에서 활용될 수 있는 것으로, 보유식재료 정보로부터 연산되는 적합도, 그리고 식사성향 정보로부터 연산되는 매칭도라는 두 개의 값들을 합산할 때에 합산비율을 결정하는 용도로 활용될 수 있다. 도 3는 기초정보 수집부(210)로부터 총 세 개의 정보가 후속 구성들로 전달되는 것을 확인할 수 있는데, 이 세 개의 정보들이 보유식재료 정보, 식사성향 정보, 그리고 레시피 추천 계수임을 알 수 있다.
다시 도 2를 참고할 때, S101 단계 이후에는 사용자로부터 수집된 보유식재료 정보를 활용하여 적합도가 연산되는 단계(S103)가 진행될 수 있다. 도 3에 의할 때, 적합도 연산은 제1 연산부(230)에 의해 이루어질 수 있다. S103 단계에서는 기 저장되어 있는 레시피들에 필요한 식재료들, 그리고 위 보유식재료 정보를 비교하여 레시피에 필요한 식재료 중 이미 보유하고 있는 식재료 비율을 연산하는 것을 특징으로 할 수 있다.
도 5에는 수집된 보유식재료 정보가 "굴소스, 소고기, 햇반, 양파, 고추, 계란, 마늘, 새우살"일 때에 몇몇 레시피에 필요한 식재료들과 비교하여 보유 식재료 비율이 얼마나 되는지를 연산한 결과가 도시되어 있다. 레시피#1의 경우 소고기, 고추, 다진생강, 우유를 필요로 하는 데, 이 중 소고기, 고추를 포함하므로 50%의 보유 식재료 비율 값이, 레시피#2의 경우 굴소스, 소고기, 햇반, 양파, 계란, 마늘을 필요로 하는데 이들 모두가 갖추어져 있으므로 100%의 보유 식재료 비율 값이, 레시피#3의 경우 햇반, 계란, 마늘, 새우살을 필요로 하는데 이 역시 모두 갖추고 있으므로 100%의 보유 식재료 비율 값이 연산될 수 있다. 또한, 이렇게 연산된 보유 식재료 비율은 곧바로 적합도로 정의될 수도 있다. 적합도란, 사용자가 보유하고 있는 식재료들로부터 미루어 볼 때, 어떤 레시피가 적합한지를 평가하기 위한 지표일 수 있다.
한편, 도 5에는 단순히 보유하고 있는 식재료의 명칭과 레시피에 필요한 식재료의 명칭을 비교하는 것만으로 적합도를 연산하는 과정이 소개되어 있으나, 적합도 연산에는 보유 식재료의 양에 대한 정보가 더 참고될 수 있다. 예를 들어, 보유식재료 정보에는 굴소스 20g, 소고기 150g, 햇반 1개, 양파 반 개 등과 같이 보유하고 있는 식재료량까지 포함되어 있을 수 있으며, 레시피 역시 소고기 100g, 고추 1개, 다진생강 1큰술, 우유 100ml 등의 정보를 포함하고 있어 이들 간의 비교가 이루어질 때에 보유 식재료뿐만 아니라 레시피에 필요한 양까지 보유하고 있는지가 더 참고될 수 있다. 이 경우 당연히 레시피에 필요한 식재료 및 식재료량이 현재 사용자가 보유하고 있는 보유식재료 정보와 매칭이 될수록 적합도가 높게 산출될 것이다.
한편, S103 단계에서는 적합도를 연산하는 것에 그치는 것이 아니라 복수 개의 후보 레시피들을 결정하는 단계도 포함될 수 있다. 후보 레시피들은 기 정해진 값보다 높은 적합도의 레시피들, 또는 높은 적합도의 순서대로 레시피들이 나열되었을 때 기준순위 이상의 레시피들일 수 있다. 이와 같이 후보 레시피들로 결정된 것들은, 현재 사용자가 보유하고 있는 식재료 상황으로 볼 때 지금 당장 요리를 하기에 무리가 없는 레시피들이며, 이러한 후보 레시피들은 후술하게 될 매칭도 연산 단계에서 연산의 대상이 되는 것들이기도 하다.
다시 도 2를 참고할 때, S103단계 이후에는 사용자로부터 수집된 식사성향 정보를 활용하여 매칭도가 연산되는 단계(S105)가 실행될 수 있다. 매칭도란, 사용자의 음식 취향, 식습관 등을 고려하였을 때 현재 사용자의 상태에 적합한 레시피를 평가하기 위해 도입된 지표로 이해될 수 있다. 도 3을 참고할 때 본 단계는 제2 연산부(250)에 의해 실행될 수 있는데, S105 단계를 조금 더 자세히 살펴보면 도 6과 같이 세분화 될 수 있다.
도 6은 사용자로부터 수집된 식사성향 정보 중 "아침식사"라는 키워드가 포함되어 있을 때를 기준으로 한 매칭도 연산 과정을 순서대로 나열한 것이다. 쉬운 예로, 사용자가 아침에 일어나 스마트폰 어플리케이션을 통해 "아침식사 레시피 추천해 주세요"라는 명령어를 음성 또는 타이핑으로 입력하였을 때, 사용자의 식사성향 정보(또는 식사성향 키워드)로 "아침식사"가 수신(S1051)되어 이를 기초로 레시피가 추천되는 상황을 가정한 것이다.
매칭도 연산 단계는, 가장 먼저 위 키워드로부터 복수 개의 유사단어들을 탐색 및 확장하는 과정(S1053)을 포함할 수 있다. S1053 과정은 사용자로부터 수집된 키워드가 소수일 때 매칭도 연산을 수월하게 하게 위하여 관련 소스들, 즉 키워드들을 더 풍부하게 하기 위한 것으로 임의의 키워드들에 대한 유사단어들은 사전에 구비되어 있는 데이터베이스가 참고될 수 있다. "아침식사"라는 키워드에 대해서는 "간편, 식사대용, 브런치, 베이커리" 또는 이 밖에 데이터베이스 내에 관련성이 있다고 정의되어 있는 단어들이 탐색 및 확장될 수 있다.
S1053 과정 이후에는 상기 키워드 및 유사단어들이 임의의 벡터들로 변환하는 단계(S1055)가 진행될 수 있다. 본 상세한 설명에서는 이러한 임의의 벡터들을 편의상 특정 사용자의 '레퍼런스 벡터'들이라 부르기로 한다. S1055 단계에서는, 이전 단계에서 출력된 각 식사성향 키워드 및 유사단어들을 각각 DB(350)에 저장되어 있는 단어 별 임베딩 벡터 값들로 변환한다. 각각의 레퍼런스 벡터(또는 더 직관적인 표현으로는 단어 벡터로 칭해질 수도 있음)는 학습 가능한 알고리즘(또는 이미 학습된 알고리즘)이 단어 또는 레시피들 간의 거리관계를 학습하고 각 벡터를 벡터 공간 내에서 재배치하는 과정의 결과로써 각 단어가 현재 위치하게 된 벡터 공간 상의 위치를 수치적으로 연산 가능하게 정의할 수 있다. 이렇듯 단어를 벡터화 하여 활용하는 경우, 크롤링(crawling) 된 새로운 단어들이 추가되더라도 알고리즘 내에서 즉각적으로 활용이 가능할 수 있으며, 특히 시대의 흐름에 따라 단어들 간의 거리관계(거리관계는 반드시 레시피 또는 음식과 관련성이 있는 단어에 대해서만 파악되는 것은 아님), 단어와 레시피 간 거리관계, 단어와 요리 간 거리관계, 단어와 식재료 간 거리관계 등은 지속적으로 변할 수 있는데 이러한 거리관계의 변화를 벡터 공간 내에서의 재배치라는 형태로 반영시킬 수가 있게 되므로 매칭 알고리즘의 정확도를 높일 수 있는 효과가 있다.
한편, 사용자로부터 수집된 키워드 및 이로부터 확장된 단어들을 기초로 생성된 레퍼런스 벡터들은 하나의 그룹이 특정 사용자의 특정 환경(상황)에 대응될 수 있으며, 이러한 레퍼런스 벡터들 각각은 후보 레시피 벡터들과 매칭도(유사도)가 연산(S1057)될 수 있다. 후보 레시피 벡터들이란, 앞서 제1 연산부(230)에 의해 선별된 후보 레시피들이 벡터로 변환된 것들을 의미한다. 한편, 각 레시피 별로 연산된 각 레퍼런스 벡터들과의 매칭도 중 최대값을 해당 래시피의 최종 매칭도로 정의할 수 있다. 참고로 도 7에는 "간편, 아침식사, 식사대용"이라는 키워드들이 각각 레퍼런스 벡터들로 변환된 모습, 그리고 이러한 벡터들은 "전복 소갈비찜" 레시피 벡터에 비해 "햄치즈 토스트" 레시피 벡터와 유사한 경향성을 보이는 모습, 다시 말해 매칭도가 상대적으로 더 높은 모습이 도시되어 있다. 본 발명의 주요한 특징 중 하나는 사용자로부터 수집된 기초정보 내에 사용자의 식사성향 또는 식사조건을 파악할 수 있는 키워드가 하나뿐일 지라도 이로부터 여러 개의 유사단어들을 탐색 및 확장시켜 늘어난 개수의 키워드들을 기초로 레퍼런스 벡터들을 생성한다는 점이며, 벡터가 존재하는 공간 상에서 벡터들 간의 상대적 유사성을 연산하여 상기 사용자가 좋아하는 음식, 사용자가 원하는 조건의 레시피를 높은 정확도로 찾을 수 있다는 점이다. 복수 개의 레퍼런스 벡터들을 기초로 이와 유사한 레시피 벡터(들)를 찾고자 하는 경우 다양한 알고리즘이 활용될 수 있는데, 예를 들어 복수 개의 레퍼런스 벡터들과 유사도 연산을 한 뒤 연산 결과의 총합이 가장 큰 값이 나오는 레시피 벡터를 추천 레시피로 결정을 하거나, 또는 복수 개의 레퍼런스 벡터들과 복수 개의 레시피 벡터들 간 유사도 연산을 한 결과 가장 높은 유사도 값을 기록한 레퍼런스 벡터 및 레시피 벡터 페어(pair)를 찾아 이 레시피 벡터를 추천 레시피로 결정을 하는 등의 알고리즘이 활용될 수 있다. 이처럼 키워드 확장을 수반하는 벡터 변환 및 후보 레시피 벡터와의 유사도 연산 과정은 최종적으로 사용자에게 최적의 추천 레시피를 제공하는 데에 큰 기여를 할 수 있다.
다른 한편, S1055는 각 단어 별로 여러 개의 벡터들이 생성되는 것이 아니라, 복수 개의 단어들이 하나의 레퍼런스 벡터로 임베딩 되는 단계로도 구현이 가능할 수 있다. 즉, 앞선 S1053단계에서 사용자가 입력한 특정 키워드 및 이로부터 확장된 복수 개의 유사단어들이 결정되었다면, S1055단계에서는 이들 단어들이 개별 구성들이 되어 하나의 레퍼런스 벡터가 될 수 있다. 그리고 이렇게 생성된 하나의 레퍼런스 벡터는 앞서 S103 단계에서 결정된 후보 레시피의 벡터들과 매칭도가 연산(S1057)될 수 있다. 참고로 레시피 벡터에 대해 잠시 언급을 하자면, 레시피 벡터들은 사전에 데이터베이스화 되어 있을 수 있으며, 레시피 벡터를 정의하는 구성(component)들은, 각 레시피와 관련 있는 복수 개의 텍스트들일 수 있고, 이러한 텍스트들은 네트워크 상의 다양한 소스들(블로그, 카페, 또는 그 밖의 웹 문서)로부터 크롤링(crawling)된 것일 수 있다. 특히, 위 텍스트들 중에는 레시피에 필요한 식재료, 조리 과정을 설명하기 위한 텍스트뿐만 아니라 레시피가 어떤 상황에서 주로 이용될 수 있는지, 레시피가 어떤 목적으로 이용될 수 있는지 등과 같이 레시피의 특성을 설명하기 위한 텍스트들이 전반적으로 모두 포함될 수 있다. 레시피와 관련 있는 텍스트들이 주기적으로 크롤링 되는 네트워크 상의 최신 문서들로부터 획득되는 것이기 때문에, 상기 텍스트들은 항상 최신의 식문화 트렌드를 반영할 수 있다. 예를 들어 "혼술혼밥", "초스피드 이지레시피", "치맥파티", "돈쭐식당", "무야호" 등과 같은 키워드들 역시 레시피와 관련성 있는 텍스트들로 포함될 수 있는데, 이러한 키워드들은 과거에는 존재하지 않았던 신조어들로 본원 발명에서와 같이 네트워크 상의 다양한 소스들로부터 레시피와 관련된 키워드들을 주기적으로 크롤링 및 분석함으로써 얻을 수 있는 것들이다. 본 발명에서는 이와 같이 최신의 식문화 트렌드를 나타내는 신조어들을 적극적으로 탐색해 냄으로써 사용자들로 하여금 자신이 원하는 레시피를 정확하게 추천해 줄 수 있다.
한편, 이처럼 레시피를 벡터의 형태로 변환하여 표현한 것을 데이터베이스화 해 두는 경우, 유사한 텍스트가 많이 등장하는 벡터들 간에는 서로 유사한 것으로 연산이 가능하도록 체계화 할 수 있으며, 위에서 살펴 본 실시예에서와 같이 사용자의 음식 취향, 상황 등을 나타내는 키워드 및 단어들이 벡터(레퍼런스 벡터)화 되었을 때에 이러한 벡터와의 비교 판단도 쉬워지는 효과를 꾀할 수 있다. 또한, 레시피-텍스트 간의 관계를 정량적으로 유추할 수 있어 레시피 도메인의 지식 정보를 수치적으로 해석하는 데에 활용이 가능할 수도 있다.
이처럼 벡터의 형태로 변환된 레시피, 사용자 식사성향 등을 활용하는 경우 기존의 필터링 기반 레시피 추천 방식 대비 다양한 장점을 가질 수 있다. 우선, 후술하게 될 알고리즘 학습과 관련하여서는 학습 데이터(각 레시피에 대한 블로그, 카페 문서 등을 포함하는 웹문서들)를 확보하는 것이 빠르고 저렴하며 신규 레시피가 포착되는 경우 즉각적으로 추가 학습이 가능할 수 있다. 또한, 사용자 별 식사성향 및 레시피가 모두 벡터화 되어 있기 때문에 모든 사용자가 모든 레시피에 대한 개인화 된 스코어(매칭도 또는 적합도 중 적어도 하나)를 정량적으로 제공받을 수 있게 되는 효과도 있다. 또한, 신규 사용자가 서비스 이용을 원할 때에도 이른바 콜드스타트(Cold-start), 즉 신규 사용자에게는 정확한 추천 정보를 제공하기 어려운 문제 없이 객관적 데이터를 기반으로 한 추천 정보 제공이 가능하다는 점에서도 장점이 있다.
다시 도 2를 참고할 때, S105단계 이후에는 앞서 S103단계 및 S105단계에서 연산된 적합도 및 매칭도를 참고하여 개인맞춤형 레시피를 결정하는 단계(S107)가 실행될 수 있다. 본 단계에서는 앞서 수집되었던 레시피 추천 계수가 활용되며, 더 정확하게는 적합도 및 매칭도의 반영 비율을 결정하는 데에 활용될 수 있다. 본 단계는 레시피 추천부(270)에 의해 실행될 수 있다.
도 8에는 본 단계의 이해를 돕기 위해 적합도와 매칭도를 합산하는 과정이 도시되어 있다. 도 8을 참고할 때, 특정 사용자의 기초정보로부터 연산해 보았을 때, 레시피#1은 적합도 70점, 매칭도 80점이고, 레시피 추천 계수가 적합도 20%를 가산하는 값인 경우 최종적으로는 적합도 84점, 매칭도 80점이 되어 총합 164점의 점수를 기록할 수 있다. 같은 방식으로 레시피#2는 적합도 50점, 매칭도 90점이고, 레시피 추천 계수는 동일하게 적합도에 20%를 가산하는 값일 때 최종적으로 적합도 60점, 매칭도 90점이 되어 총합 150점을 기록할 수 있다. 또한, 레시피#3은 적합도 90점, 매칭도 75점이고 레시피 추천 계수가 적합도 20% 가산하는 값일 때 최종적으로 적합도 108점, 매칭도 75점이 되어 최종 183점을 기록할 수 있다. 결과적으로 도 8의 예시에서는 레시피#3이 가장 높은 합산 점수를 기록하였으므로 연산장치(200)는 최종적으로 사용자에게 레시피#3을 가장 우선순위의 추천 레시피로 제공할 수 있다. 레시피#2, #3 등은 필요에 따라 후순위로 상기 사용자에게 제공될 수 있다.
도 9는 사용자에게 제공되는 개인맞춤형 레시피의 일 예시를 도시한 것이다. 도 9를 참고할 때, 사용자에게 제공되는 정보에는 개인맞춤형 레시피가 제공되는 것은 물론이고, 그 외에 상기 사용자가 보유하고 있는 식재료, 그리고 사용자의 식사성향에 관한 키워드, 또는 사용자의 특성에 관한 키워드들 중 적어도 하나의 것이 함께 표시될 수 있다. 구체적으로, 도 9는 사용자에게 2개의 레시피가 추천된 예를 도시한 것이며, 여기에는 추천 레시피에 대응되는 음식사진, 음식명이 표시되어 있음을 알 수 있다. 도면에는 따로 표시하지 않았지만, 어느 하나의 추천 레시피를 선택하면 해당 레시피에 대한 더 구체적인 정보들, 예를 들어 음식을 조리하는 과정들이 텍스트, 이미지, 또는 동영상 중 적어도 하나의 형태로 제공될 수 있다. 이에 더하여, 사용자에게 제공되는 정보에는 현재 사용자가 보유하고 있는 식재료에 관한 정보, 그리고 위 레시피들을 추천하는 데에 참고된 키워드들이 사용자 식사성향이라는 항목 내에 더 표시될 수 있다. 즉, 사용자에게 제공되는 개인맞춤형 레시피에는 연산장치(200)에 의해 추천된 레시피들에 관한 기본적인 정보 외에, 위 레시피들이 어떤 기초정보를 근거로 추천되었는지를 사용자에게 보여 주기 위한 부가적인 정보들이 더 포함될 수 있다. 도 9에 도시되어 있는 정보 중 사용자 식사성향과 관련하여 설명을 덧붙이자면, 사용자 식사성향 내에는 상기 사용자가 어떤 종류의 음식이나 식재료를 선호하는지, 사용자가 레시피 추천을 요청하였던 시점에 어떤 종류의 음식을 원했는지, 레시피를 따라 음식을 완성하는 데에 걸리는 조리시간은 짧은지 등에 대한 키워드가 포함될 수 있다. 예를 들어, "아침식사, 밥, 소시지, 빵, 간편, 한국식, 미국식, 파티, 짧은 조리시간" 등과 같은 키워드들은 사용자로부터 수집된 기초정보를 근거로 상기 사용자의 실시간 식사성향 내지 식사조건을 정의하기 위한 키워드들일 수 있다. 한편, 위 키워드들 중에는 최신의 식문화 트렌드가 반영된 신조어들이 키워드로 더 포함될 수 있다. 도 9의 사용자 식사성향 중에는 "제1 키워드", "제2 키워드"가 포함되어 있는 것을 확인할 수 있는데, 예를 들어 제1 키워드는 "군싹", 제2 키워드는 "알잘딱깔센"과 같은 신조어가 추천 레시피1 및 2 각각이 추천되는 데에 활용된 키워드일 수 있다. "군싹", "알잘딱깔센"과 같은 키워드들은 최신의 트렌드를 반영하는 신조어들로 각각 "군침이 싹 도노", "알아서 잘 딱 깔끔하고 센스있게"의 줄임말인데, 엄밀한 의미에서 위 예시로 든 신조어들은 특정 음식에 대한 신조어라고 단정하기 어려우나 본 상세한 설명에서는 발명의 이해를 돕기 위해 각각의 신조어들이 특정 종류의 음식이나 식재료, 레시피와 연관성이 있는 것이라고 가정하기로 한다. 이러한 신조어 키워드들은 상기 사용자로부터 기초정보를 수집하는 단계에서 상기 사용자가 직접 입력한 것이거나, 또는 상기 사용자가 입력한 키워드로부터 유사한 단어들이 탐색 및 확장된 것일 수 있다. 크롤링 된 단어가 신조어인지 여부, 또는 사용자에 의해 입력된 단어가 신조어인지 여부는 데이터베이스 내에 기 저장되어 있는 단어들과의 비교를 통해 판단이 되거나, 혹은 공개되어 있는 국어사전 데이터베이스를 참고하여 판단이 될 수 있다. 또한, 해당 신조어가 특정 식재료, 레시피와 연관성이 있는 것인지를 판정하기 위해서는 그 특정 식재료, 레시피와 관련된 문헌 내에 적어도 몇 회 이상 삽입이 되었는지, 또는 특정 식재료, 레시피와 관련하여 해당 신조어가 포함된 문헌이 적어도 몇 건 검색되었는지가 기준이 될 수 있다. 예를 들어, 최소 10회 이상 특정 식재료, 레시피와 관련되어 검색이 되었다면 그 신조어는 해당 식재료, 레시피와의 연관성이 있는 단어, 또는 거리관계가 기준치(연관성이 높은 수준의 거리값)가 되는 단어로 정의될 수 있다. 한편, 이와 같은 신조어 키워드들이 추천 레시피들과 함께 제공되는 경우 사용자는 자신이 선택하고자 하는 레시피가 어떤 종류의 레시피인지, 자신이 선호하는 종류의 레시피인지, 자신의 현재 상황에 적합한 레시피인지를 직관적으로 파악할 수 있게 되는 효과가 있다. 또한, 사용자 식사성향 내에는 상기 사용자의 개인정보에 관한 키워드들도 포함될 수 있는데, 도 9에서는 "장년층"이 이러한 키워드에 해당할 수 있다. 이와 같이 사용자에게 제공되는 정보에는 위 레시피들을 추천하는 데에 참고된 보유식재료, 그리고 사용자 식사성향에 관한 키워드들이 더 제공됨으로써 사용자로 하여금 레시피의 추천 근거를 확인하게 할 수 있다.
또 다른 한편, 사용자에게 제공되는 추천 레시피들은 특정 업체에서 생산한 식품 및 해당 식품의 조리법이 포함된 것을 특징으로 할 수 있다. 예를 들어, 도 9에 도시되어 있는 추천 레시피1에는 소시지 2개가 식재료로 포함되는데, 상기 소시지 2개는 특정 업체에서 판매하는 식재료일 수 있으며, 상기 추천 레시피1에 포함되는 조리 과정 중에는 상기 특정 업체에서 상기 소시지에 대해 정해 둔 조리법이 포함될 수 있다. 특정 업체에서 판매하는 식재료에 대해 정해 둔 조리법이라면 해당 식재료에 가장 최적화 된, 많은 연구 및 실험 끝에 완성된 조리법이라 할 것인데, 이러한 조리법이 추천 레시피 내에 포함되도록 하는 경우 사용자로서는 더 좋은 맛의, 더 좋은 질의 음식을 접할 수 있게 되는 효과가 있다. 또한, 레시피 내에 특정 업체의 식품 및 조리법이 자연스럽게 포함되도록 함으로써 해당 식재료에 대한 프로모션 및 광고 효과를 꾀할 수 있게 되는 효과도 있다.
이상 도 2 내지 도 9를 참고하여 개인맞춤형 레시피 추천 방법에 대해 살펴 보았다.
도 10은 알고리즘을 학습시키는 방법, 더 정확하게는 사용자로부터 임의의 키워드가 입력되었을 때 이와 매칭되는 레시피를 탐색하는 매칭 알고리즘을 학습시키는 방법에 대해 살펴보기로 한다.
매칭 알고리즘을 학습시키는 방법은 가장 먼저 레시피 텍스트들을 수집하는 단계(S201)를 포함할 수 있다. 이 단계는 도 3의 데이터 수집부(310)에 의해 실행될 수 있는 것으로, 데이터 수집부(310)는 사전 정의된 식품 목록과 레시피 목록 내 있는 각각의 식품 및 레시피에 대해 웹 크롤링을 통해 텍스트를 검색 및 수집할 수 있다. 도 11은 데이터 수집부(310)에 의해 웹 크롤링 된 텍스트의 예시를 나타낸 것이다. 여기에는 수집된 텍스트가 음식제품에 관한 설명인지, 아니면 레시피인지 등을 구별하기 위한 카테고리 항목이 존재할 수 있으며, 수집된 텍스트가 어떤 식품 또는 음식에 관한 것인지를 구별하기 위한 항목, 수집된 데이터가 블로그 데이터인지 등을 구별하기 위한 항목, 그리고 텍스트 콘텐츠가 포함될 수 있다.
참고로 도면에는 따로 도시하지 않았지만 S201 단계에서는 전처리 단계가 더 포함될 수 있다. 수집된 텍스트들 중에는 음식, 식품, 레시피와 무관한 키워드들이 다수 포함될 수 있는데, 이러한 키워드들을 필터링 하는 과정이 전처리 단계에서 실행될 수 있다.
이 단계 후에는 수집된 레시피 텍스트들을 레시피 벡터로 임베딩시키는 단계(S202)가 실행될 수 있다. 본 단계는 식문화 트렌드를 벡터로 표현하는 단계로, 동일 임베디드 벡터 공간 내에 레시피 키워드들과 식품 또는 음식이 벡터로 표현되며, 레시피 벡터들은 상호 유사성이 높을수록 서로 가깝게 위치한다. 임베디드 벡터 공간 내에는, 예를 들어 음식 블로그에서 자주 등장하는 키워드, 특히 식문화 트렌드를 나타낼 수 있는 키워드들도 의미 관계가 고려되어 벡터화 될 것이므로 음식 또는 식품과 관련된 단어(예. "간편")와 레시피(예. "햄치즈 토스트"), 식품(예. "치즈") 간에는 벡터들 간의 유사도 비교 연산을 통해 상호 연관성의 높고 낮음이 유추될 수 있다.
S202 단계 후에는 임의의 학습용 키워드가 학습용 벡터로 임베딩시키는 단계(S203)가 실행될 수 있다. 본 단계는 사용자가 키워드를 입력하면 이를 벡터화 하는 단계에 대응될 수 있는 것으로, 앞서 도 6에서 보았던 "아침식사", 또는 "아침식사" 외에 이 키워드로부터 확장된 복수 개의 학습용 키워드들이 벡터의 형태로 변환되는 단계라 할 것이다.
S203 단계 후에는 상기 학습용 벡터와 레시피 벡터 간 유사도를 연산하고, 유사도가 상대적으로 높은 벡터들을 유사도가 상대적으로 낮은 벡터들 대비 매칭가능성이 더 높은 것으로 학습시키는 단계(S204)가 실행될 수 있다. 즉, 벡터들 간 상대적 유사도를 기준으로 어떤 키워드가 어떤 식품, 음식, 레시피와 연관성이 있는지를 파악할 수 있도록 학습시키는 단계라 할 수 있다. 앞서 언급된 단계들 중 S202단계 내지 S204단계는 도 3의 학습부(330)에 의해 실행될 수 있다. 이상 도 10 및 도 11을 참고하여 알고리즘을 학습시키는 방법에 대해 알아 보았다.
마지막으로, 도 3에는 별도로 도시하지 않았으나 앞서 설명한 연산장치(200)의 각 세부구성들을 모두 제어하기 위한 제어부가 더 존재할 수 있다. 제어부는 실질적으로는 중앙처리유닛에 해당할 수 있다. 중앙처리유닛은 컨트롤러(controller), 마이크로 컨트롤러(microcontroller), 마이크로 프로세서(microprocessor), 마이크로 컴퓨터(microcomputer) 등으로도 불릴 수 있다. 또한 중앙처리유닛은 하드웨어(hardware) 또는 펌웨어(firmware), 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있는데, 하드웨어를 이용하여 구현하는 경우에는 ASIC(application specific integrated circuit) 또는 DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array) 등으로, 펌웨어나 소프트웨어를 이용하여 구현하는 경우에는 위와 같은 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등을 포함하도록 펌웨어나 소프트웨어가 구성될 수 있다. 또한, 상기 연산장치(200)는 메모리도 당연한 구성으로 포함할 수 있는데, 메모리는 ROM(Read Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래쉬(flash) 메모리, SRAM(Static RAM), HDD(Hard Disk Drive), SSD(Solid State Drive) 등으로 구현될 수 있다.
마지막으로 데이터베이스(350)는 상기 개인맞춤형 레시피 추천 방법을 실행시키는 데에 필요한 명령어들, 상기 매칭 알고리즘을 학습시키기 위해 수집된 복수의 수집된 텍스트들 및 임베딩 된 벡터들, 그리고 이 밖에 존재할 수 있는 다양한 정보들이 저장될 수 있는 구성이다.
이상 본 발명에 따른 개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치에 대해 살펴보았다. 한편, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.
특히, 본 명세서에 첨부된 도면에 도시된 블록도와 순서도에 포함된 본 발명의 기술적 특징을 실행하는 구성들은 상기 구성들 사이의 논리적인 경계를 의미한다. 그러나 소프트웨어나 하드웨어의 실시 예에 따르면, 도시된 구성들과 그 기능들은 독립형 소프트웨어 모듈, 모놀리식 소프트웨어 구조, 코드, 서비스 및 이들을 조합한 형태로 실행되며, 저장된 프로그램 코드, 명령어 등을 실행할 수 있는 프로세서를 구비한 컴퓨터에서 실행 가능한 매체에 저장되어 그 기능들이 구현될 수 있으므로 이러한 모든 실시 예 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
따라서, 첨부된 도면과 그에 대한 기술은 본 발명의 기술적 특징을 설명하기는 하나, 이러한 기술적 특징을 구현하기 위한 소프트웨어의 특정 배열이 분명하게 언급되지 않는 한, 단순히 추론되어서는 안 된다. 즉, 이상에서 기술한 다양한 실시 예들이 존재할 수 있으며, 그러한 실시 예들이 본 발명과 동일한 기술적 특징을 보유하면서 일부 변형될 수 있으므로, 이 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
또한, 순서도의 경우 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 가장 바람직한 결과를 얻기 위하여 도시된 것으로서, 도시된 특정한 순서나 순차적인 순서대로 그러한 동작들을 반드시 실행되어야 한다거나 모든 도시된 동작들이 반드시 실행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티 태스킹과 병렬 프로세싱이 유리할 수 있다. 아울러, 이상에서 기술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
10 사용자
200 연산장치
210 기초정보 수집부 230 제1 연산부 250 제2 연산부
270 레시피 추천부
310 데이터 수집부 330 학습부 350 DB

Claims (17)

  1. 개인맞춤형 레시피를 추천하는 방법에 있어서,
    (a) 특정 사용자에 대한 기초정보들 - 상기 기초정보들은 상기 특정 사용자의 보유식재료 정보, 및 식사성향 정보를 포함함 - 을 수집하는 단계;
    (b) 기 저장된 레시피들에 대해, 상기 기초정보들 중 보유식재료 정보와의 비교연산을 함으로써 복수 개의 레시피들에 대한 적합도를 연산하고, 복수 개의 후보 레시피들을 결정하는 단계;
    (c) 상기 (b)단계에서 결정된 후보 레시피들에 대해, 상기 기초정보들 중 식사성향 정보와의 매칭도를 연산하는 단계;
    (d) 상기 적합도 및 매칭도를 참고하여 개인맞춤형 레시피를 결정하는 단계;
    를 포함하는,
    개인맞춤형 레시피 추천 방법.
  2. 제1항에 있어서,
    상기 (a) 단계에서 기초정보들을 수집하는 단계는,
    임의의 인터페이스를 통해 상기 특정 사용자가 기초정보들을 입력한 것을 수신하는 단계인 것을 특징으로 하는,
    개인맞춤형 레시피 추천 방법.
  3. 제1항에 있어서,
    상기 (a) 단계에서 기초정보들을 수집하는 단계는,
    기초정보들 중 일부의 기초정보를, 상기 특정 사용자에 대한 정보들을 저장하고 있는 외부 장치로부터 수신하는 단계를 포함하는,
    개인맞춤형 레시피 추천 방법.
  4. 제1항에 있어서,
    상기 기초정보들은,
    식사성향 정보 및 보유식재료 정보 외에 레시피 추천 계수를 더 포함하되,
    상기 레시피 추천 계수는, 상기 (d) 단계에서의 개인맞춤형 레시피 결정 시 적합도 및 매칭도의 반영 비율을 결정하기 위한 것을 특징으로 하는,
    개인맞춤형 레시피 추천 방법.
  5. 제1항에 있어서,
    상기 기 저장된 레시피들은, 레시피 벡터의 형태로 데이터베이스화 된 것이고,
    레시피 벡터를 정의하는 구성(component)들은, 레시피와 관련 있는 복수 개의 텍스트들인 것을 특징으로 하는,
    개인맞춤형 레시피 추천 방법.
  6. 제5항에 있어서,
    상기 레시피와 관련 있는 복수 개의 텍스트들은,
    상기 레시피에 필요한 음식명, 음식종류, 식재료명, 용량, 조리 방법, 조리 난이도, 조리 시간, 또는 음식 소개 키워드를 포함하는 것을 특징으로 하는,
    개인맞춤형 레시피 추천 방법.
  7. 제1항에 있어서,
    상기 (b)단계에서 결정되는 복수 개의 후보 레시피들은,
    기 저장된 레시피들 중 적합도가 기준값 이상인 레시피들 또는 적합도가 높은 순으로 정렬되었을 때 기준순위 이상인 레시피들인 것을 특징으로 하는,
    개인맞춤형 레시피 추천 방법.
  8. 제1항에 있어서,
    상기 (c)단계는,
    상기 식사성향 정보 내 포함된 적어도 하나의 키워드로부터 복수 개의 유사단어들을 탐색하는 단계;
    탐색된 복수 개의 유사단어들을 레퍼런스 벡터로 임베딩 시키는 단계; 및
    상기 레퍼런스 벡터와 후보 레시피 벡터들 - 상기 후보 레시피 벡터들은, 상기 (b)단계에서 결정된 복수 개의 후보 레시피들에 대응되는 레시피 벡터들임 - 간 매칭도를 연산하는 단계;
    를 포함하는,
    개인맞춤형 레시피 추천 방법.
  9. 제8항에 있어서,
    상기 (c)단계에서의 매칭도 연산은 학습 가능한 매칭 알고리즘에 의해 수행되는 것을 특징으로 하는,
    개인맞춤형 레시피 추천 방법.
  10. 매칭 알고리즘을 학습시키는 방법에 있어서,
    레시피 텍스트들을 수집하는 단계;
    수집된 레시피 텍스트들을 레시피 벡터로 임베딩시키는 단계;
    임의의 학습용 키워드를 학습용 벡터로 임베딩시키는 단계; 및
    상기 학습용 벡터와 레시피 벡터 간 유사도를 연산하고, 유사도가 상대적으로 높은 벡터들을 유사도가 상대적으로 낮은 벡터들 대비 매칭가능성이 더 높은 것으로 학습시키는 단계;
    를 포함하는,
    매칭 알고리즘을 학습시키는 방법.
  11. 제10항에 있어서,
    상기 수집된 레시피 텍스트들을 레시피 벡터로 임베딩시키는 단계 이전,
    상기 수집된 레시피 텍스트들을 전처리 하는 단계;
    를 더 포함하는 것을 특징으로 하는,
    매칭 알고리즘을 학습시키는 방법.
  12. 제10항에 있어서,
    상기 학습용 키워드를 학습용 벡터로 임베딩시키는 단계는,
    상기 학습용 키워드를 복수 개의 키워드들로 확장시키는 단계; 및
    상기 복수 개의 키워드들을 성분으로 하는 학습용 벡터를 생성하는 단계;
    를 포함하는 것을 특징으로 하는,
    매칭 알고리즘을 학습시키는 방법.
  13. 제10항에 있어서,
    상기 수집된 레시피 텍스트들은,
    웹 크롤링(web crawling)에 의해 수집된 것을 특징으로 하는,
    매칭 알고리즘을 학습시키는 방법.
  14. 개인맞춤형 레시피 추천을 위한 연산장치에 있어서,
    특정 사용자로부터 기초정보들 - 상기 기초정보들은 상기 특정 사용자의 보유식재료 정보, 및 식사성향 정보를 포함함 - 을 수집하는 기초정보 수집부;
    기 저장된 레시피들에 대해, 상기 기초정보들 중 보유식재료 정보와의 비교연산을 함으로써 복수 개의 레시피들에 대한 적합도를 연산하고, 복수 개의 후보 레시피들을 결정하는 제1 연산부;
    상기 제1 연산부에 의해 결정된 후보 레시피들에 대해, 상기 기초정보들 중 식사성향 정보와의 매칭도를 연산하는 제2 연산부;
    상기 적합도 및 매칭도를 참고하여 개인맞춤형 레시피를 결정하는 레시피 추천부; 및
    상기 기초정보 수집부, 제1 연산부, 제2 연산부, 및 레시피 추천부를 제어하는 제어부;
    를 포함하는,
    연산장치.
  15. 제14항에 있어서,
    상기 기 저장된 레시피들은, 레시피 벡터의 형태로 데이터베이스화 된 것을 특징으로 하는,
    연산장치.
  16. 제14항에 있어서,
    상기 제2 매칭부는,
    상기 식사성향 정보 내 포함된 적어도 하나의 키워드로부터 복수 개의 유사단어들을 탐색하고, 탐색된 복수 개의 유사단어들을 레퍼런스 벡터로 임베딩 시킨 후, 상기 레퍼런스 벡터와 상기 후보 레시피들에 대응되는 후보 레시피 벡터들 간 매칭도를 연산하는 것을 특징으로 하는,
    연산장치.
  17. 제14항에 있어서,
    상기 매칭도 연산에 이용되는 매칭 알고리즘을 학습시키는 학습부;를 더 포함하되,
    상기 학습부는,
    수집된 레시피 텍스트들이 임베딩되어 생성된 레시피 벡터, 및 임의의 학습용 키워드가 임베딩되어 생성된 학습용 벡터 간 유사도 연산을 수행하고, 유사도가 상대적으로 높은 벡터들을 유사도가 상대적으로 낮은 벡터들 대비 매칭가능성이 더 높은 것으로 학습시키는 것을 특징으로 하는,
    연산장치.
KR1020220013187A 2022-01-28 2022-01-28 개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치 KR20230116355A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220013187A KR20230116355A (ko) 2022-01-28 2022-01-28 개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220013187A KR20230116355A (ko) 2022-01-28 2022-01-28 개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치

Publications (1)

Publication Number Publication Date
KR20230116355A true KR20230116355A (ko) 2023-08-04

Family

ID=87568716

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220013187A KR20230116355A (ko) 2022-01-28 2022-01-28 개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치

Country Status (1)

Country Link
KR (1) KR20230116355A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117558410A (zh) * 2024-01-12 2024-02-13 吉林大学 基于人工智能的糖尿病肾病患者饮食管理系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200080355A (ko) 2018-12-14 2020-07-07 주식회사 엔유씨전자 빅데이터를 이용한 레시피 추천 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200080355A (ko) 2018-12-14 2020-07-07 주식회사 엔유씨전자 빅데이터를 이용한 레시피 추천 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117558410A (zh) * 2024-01-12 2024-02-13 吉林大学 基于人工智能的糖尿病肾病患者饮食管理系统及方法
CN117558410B (zh) * 2024-01-12 2024-03-22 吉林大学 基于人工智能的糖尿病肾病患者饮食管理系统及方法

Similar Documents

Publication Publication Date Title
Osadchiy et al. Recommender system based on pairwise association rules
US11669557B2 (en) Iterative image search algorithm informed by continuous human-machine input feedback
US10839151B2 (en) Systems and methods for automatic analysis of text-based food-recipes
Atkinson et al. Class and cuisine in contemporary Britain: the social space, the space of food and their homology
JP5824532B2 (ja) サーフショッピングのための関連抽出のシステム及び方法
US8838517B2 (en) Personal taste assessment method and system
US20130339163A1 (en) Food Recommendation Based on Order History
AU2017232140A1 (en) System and method for providing flavor advisement and enhancement
CN116821308B (zh) 生成方法、模型的训练方法、设备及存储介质
US20150169758A1 (en) Multi-partite graph database
US20210090154A1 (en) System for personalized recommendations
CN103858142A (zh) 店铺信息提供系统
US20200226661A1 (en) Encoding textual data for personalized inventory management
JP2019045902A (ja) 情報処理システム、方法、およびプログラム
KR20230116355A (ko) 개인맞춤형 레시피 추천 방법 및 이를 위한 연산장치
JP2017134744A (ja) 情報処理システム、情報処理方法、および情報処理プログラム
US20200380888A1 (en) Methods and systems for self-fulfillment of a dietary request
KR20220026255A (ko) 빅데이터를 이용한 건강식품 추천시스템
US20220058981A1 (en) Methods and systems for self-fulfillment of a dietary request
Görür et al. Analysing food image branding of turkey from instagram social media platform
US20200394727A1 (en) Food ordering system based on predefined variables
KR20220007783A (ko) 속성정보를 이용한 성형상품 추천시스템
CN117541359B (zh) 一种基于偏好分析的用餐推荐方法及系统
Guidotti et al. Interpretable next basket prediction boosted with representative recipes
KILIÇ YOU ARE WHERE YOU EAT FROM: PREDICTING SOCIOECONOMIC STATUS FROM RESTAURANT MENUS AND USER REVIEWS