KR102309558B1 - 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법 - Google Patents

날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR102309558B1
KR102309558B1 KR1020190136350A KR20190136350A KR102309558B1 KR 102309558 B1 KR102309558 B1 KR 102309558B1 KR 1020190136350 A KR1020190136350 A KR 1020190136350A KR 20190136350 A KR20190136350 A KR 20190136350A KR 102309558 B1 KR102309558 B1 KR 102309558B1
Authority
KR
South Korea
Prior art keywords
vector
weather
coffee
dimensional
recommendation
Prior art date
Application number
KR1020190136350A
Other languages
English (en)
Other versions
KR20210051287A (ko
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 KR1020190136350A priority Critical patent/KR102309558B1/ko
Publication of KR20210051287A publication Critical patent/KR20210051287A/ko
Application granted granted Critical
Publication of KR102309558B1 publication Critical patent/KR102309558B1/ko

Links

Images

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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/12Hotels or restaurants
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01WMETEOROLOGY
    • G01W1/00Meteorology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법이 개시된다. 본 발명에 따른 커피 메뉴 추천 장치 및 그 동작 방법은 날씨 정보와 기상 데이터에 따라 소정의 커피 메뉴를 추천할 수 있는 추천 모델을 기계학습을 기반으로 구축함으로써, 현재 시점에서의 날씨 정보와 기상 데이터를 기초로 상기 추천 모델을 통해 사용자에게 적절한 커피 메뉴를 추천할 수 있다.

Description

날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법{COFFEE MENU RECOMMENDATION APPARATUS THAT MAKES COFFEE MENU RECOMMENDATIONS THROUGH A LEARNING MODEL BASED ON WEATHER AND WEATHER CONDITION DATA AND OPERATING METHOD THEREOF}
본 발명은 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법에 대한 것이다.
로봇 기술 및 인공 지능 기술이 발전함에 따라, 인간의 행위를 유사하게 따라 할 수 있는 기계 장치들이 개발되고 있다. 이러한 기계 장치들의 일 예로, 재료들을 사전 설정된 비율에 따라 배출 및 혼합하여 커피를 제조하는 자동화 커피 머신들과 로봇 암(robot arm)이 재료들을 사전 설정된 비율에 따라 픽업한 후 혼합하여 커피를 제조하는 커피 로봇들이 존재한다.
이러한 커피 로봇이 개발됨에 따라, 관리 인원과 바리스타 등 직원을 최소화함으로써 영업 이익을 극대화 하기 위하여, 바리스타를 대신하여 커피를 제조하는 커피 로봇이 배치된 무인 커피 숍이 런칭(launching)되고 있다.
한편, 유인 커피 숍에서 이용되는 일반적인 커피 메뉴 추천 시스템의 경우에는 기존의 사용자들이 선택한 정보에 기초하여 다수의 커피 메뉴들 중 일부를 선택하거나, 관리자가 원하는 추천 커피 메뉴를 선택한 후 사용자들에게 제공한다.
관리자가 원하는 추천 커피 메뉴를 선택한 후 사용자들에게 제공하는 커피 메뉴 추천 방식의 경우, 사용자들은 추천 커피 메뉴가 일종의 광고 모델인 것으로 생각하는 문제점이 존재한다.
또한, 기존의 사용자들이 선택한 정보에 기초하여 다수의 커피 메뉴들 중 일부를 선택한 후 사용자들에게 제공하는 커피 메뉴 추천 방식의 경우, 현재 상황에 대한 정보의 부족으로 사용자들에게 적절한 커피 메뉴를 추천하지 못한다는 문제점이 있다.
따라서, 사용자들의 정보뿐만 아니라, 날씨와 기상 데이터와 같은 현재 상황에 대한 정보를 이용하여 사용자들에게 적절한 커피 메뉴를 추천할 수 있는 기술에 대한 연구가 필요하다.
본 발명에 따른 커피 메뉴 추천 장치 및 그 동작 방법은 날씨 정보와 기상 데이터에 따라 소정의 커피 메뉴를 추천할 수 있는 추천 모델을 기계학습을 기반으로 구축함으로써, 현재 시점에서의 날씨 정보와 기상 데이터를 기초로 상기 추천 모델을 통해 사용자에게 적절한 커피 메뉴를 추천할 수 있도록 지원하고자 한다.
본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치는 미리 정해진 서로 다른 n(n은 2이상의 자연수)가지 종류의 날씨 정보들 각각에 대응되는 미리 정해진 서로 다른 n차원의 날씨 벡터가 저장되어 있는 날씨 벡터 저장부, 미리 정해진 k(k는 2이상의 자연수)개의 커피 메뉴들에 대한 정보와 상기 k개의 커피 메뉴들 각각에 대응하는 미리 정해진 서로 다른 k차원의 원-핫(one-hot) 벡터가 저장되어 있는 커피 메뉴 저장부, 미리 정해진 복수의 훈련 데이터 세트들 - 상기 복수의 훈련 데이터 세트들 각각은 상기 n가지 종류의 날씨 정보들 중에서 선택된 하나의 날씨 정보와 미리 정해진 서로 다른 n가지 종류의 기상 데이터들로 구성된 데이터 세트를 의미함 - 과 상기 복수의 훈련 데이터 세트들 각각에 대한 상기 k개의 커피 메뉴들과의 매칭 정보 - 상기 매칭 정보는 상기 복수의 훈련 데이터 세트들 각각에 대해, 상기 k개의 커피 메뉴들 중 매칭되는 것으로 사전 결정된 어느 하나의 커피 메뉴에 대한 정보를 의미함 - 가 저장되어 있는 훈련 세트 저장부, 상기 훈련 세트 저장부를 참조하여 상기 복수의 훈련 데이터 세트들 중 어느 하나인 제1 훈련 데이터 세트를 확인한 후 상기 제1 훈련 데이터 세트에 포함된 제1 날씨 정보와 n가지 종류의 제1 기상 데이터들을 확인하고, 상기 날씨 벡터 저장부를 참조하여 상기 제1 날씨 정보에 대응하는 n차원의 제1 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제1 기상 데이터들을 성분으로 갖는 n차원의 제1 기상 벡터를 생성한 후 상기 n차원의 제1 날씨 벡터와 상기 n차원의 제1 기상 벡터 간의 아다마르 곱(Hadamard product)을 연산함으로써, n차원의 입력 벡터를 생성하는 입력 벡터 생성부, 상기 n차원의 입력 벡터에 대해 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 출력 벡터를 생성하는 출력 벡터 생성부, 상기 k차원의 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 스코어(score)를 생성하는 스코어 연산부 및 상기 k개의 커피 메뉴들 각각에 대응하는 스코어를 미리 설정된 활성화 함수(Activation Function)에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 훈련 세트 저장부 상에서 상기 제1 훈련 데이터 세트에 매칭된 제1 커피 메뉴에 대응하는 확률 값이 최대가 되도록 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행하는 학습 수행부를 포함한다.
또한, 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법은 미리 정해진 서로 다른 n(n은 2이상의 자연수)가지 종류의 날씨 정보들 각각에 대응되는 미리 정해진 서로 다른 n차원의 날씨 벡터가 저장되어 있는 날씨 벡터 저장부를 유지하는 단계, 미리 정해진 k(k는 2이상의 자연수)개의 커피 메뉴들에 대한 정보와 상기 k개의 커피 메뉴들 각각에 대응하는 미리 정해진 서로 다른 k차원의 원-핫(one-hot) 벡터가 저장되어 있는 커피 메뉴 저장부를 유지하는 단계, 미리 정해진 복수의 훈련 데이터 세트들 - 상기 복수의 훈련 데이터 세트들 각각은 상기 n가지 종류의 날씨 정보들 중에서 선택된 하나의 날씨 정보와 미리 정해진 서로 다른 n가지 종류의 기상 데이터들로 구성된 데이터 세트를 의미함 - 과 상기 복수의 훈련 데이터 세트들 각각에 대한 상기 k개의 커피 메뉴들과의 매칭 정보 - 상기 매칭 정보는 상기 복수의 훈련 데이터 세트들 각각에 대해, 상기 k개의 커피 메뉴들 중 매칭되는 것으로 사전 결정된 어느 하나의 커피 메뉴에 대한 정보를 의미함 - 가 저장되어 있는 훈련 세트 저장부를 유지하는 단계, 상기 훈련 세트 저장부를 참조하여 상기 복수의 훈련 데이터 세트들 중 어느 하나인 제1 훈련 데이터 세트를 확인한 후 상기 제1 훈련 데이터 세트에 포함된 제1 날씨 정보와 n가지 종류의 제1 기상 데이터들을 확인하고, 상기 날씨 벡터 저장부를 참조하여 상기 제1 날씨 정보에 대응하는 n차원의 제1 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제1 기상 데이터들을 성분으로 갖는 n차원의 제1 기상 벡터를 생성한 후 상기 n차원의 제1 날씨 벡터와 상기 n차원의 제1 기상 벡터 간의 아다마르 곱(Hadamard product)을 연산함으로써, n차원의 입력 벡터를 생성하는 단계, 상기 n차원의 입력 벡터에 대해 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 출력 벡터를 생성하는 단계, 상기 k차원의 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 스코어(score)를 생성하는 단계 및 상기 k개의 커피 메뉴들 각각에 대응하는 스코어를 미리 설정된 활성화 함수(Activation Function)에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 훈련 세트 저장부 상에서 상기 제1 훈련 데이터 세트에 매칭된 제1 커피 메뉴에 대응하는 확률 값이 최대가 되도록 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행하는 단계를 포함한다.
본 발명에 따른 커피 메뉴 추천 장치 및 그 동작 방법은 날씨 정보와 기상 데이터에 따라 소정의 커피 메뉴를 추천할 수 있는 추천 모델을 기계학습을 기반으로 구축함으로써, 현재 시점에서의 날씨 정보와 기상 데이터를 기초로 상기 추천 모델을 통해 사용자에게 적절한 커피 메뉴를 추천할 수 있다.
도 1은 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 커피 메뉴 추천 장치(110)는 날씨 벡터 저장부(111), 커피 메뉴 저장부(112), 훈련 세트 저장부(113), 입력 벡터 생성부(114), 출력 벡터 생성부(115), 스코어 연산부(116) 및 학습 수행부(117)를 포함한다.
날씨 벡터 저장부(111)에는 미리 정해진 서로 다른 n(n은 2이상의 자연수)가지 종류의 날씨 정보들 각각에 대응되는 미리 정해진 서로 다른 n차원의 날씨 벡터가 저장되어 있다.
여기서, 날씨 정보란 '맑음', '흐림', '비', '눈' 등과 같은 날씨와 관련된 정보를 의미하며, n을 4라고 하는 경우, 날씨 벡터 저장부(111)에는 하기의 표 1과 같이 정보가 저장되어 있을 수 있다.
날씨 정보 날씨 벡터
맑음 [2 3 4 5]
흐림 [1 3 4 6]
[5 6 8 9]
[3 5 7 2]
커피 메뉴 저장부(112)에는 미리 정해진 k(k는 2이상의 자연수)개의 커피 메뉴들에 대한 정보와 상기 k개의 커피 메뉴들 각각에 대응하는 미리 정해진 서로 다른 k차원의 원-핫(one-hot) 벡터가 저장되어 있다.
예컨대, k를 5라고 하였을 때, 커피 메뉴 저장부(112)는 하기의 표 2와 같이 정보가 저장되어 있을 수 있다.
커피 메뉴 원-핫 벡터
아메리카노 [1 0 0 0 0]
카페라테 [0 1 0 0 0]
모카커피 [0 0 1 0 0]
마키아토 [0 0 0 1 0]
에스프레소 [0 0 0 0 1]
훈련 세트 저장부(113)에는 미리 정해진 복수의 훈련 데이터 세트들과 상기 복수의 훈련 데이터 세트들 각각에 대한 상기 k개의 커피 메뉴들과의 매칭 정보가 저장되어 있다.
여기서, 상기 복수의 훈련 데이터 세트들 각각은 상기 n가지 종류의 날씨 정보들 중에서 선택된 하나의 날씨 정보와 미리 정해진 서로 다른 n가지 종류의 기상 데이터들로 구성된 데이터 세트를 의미하고, 상기 매칭 정보는 상기 복수의 훈련 데이터 세트들 각각에 대해, 상기 k개의 커피 메뉴들 중 매칭되는 것으로 사전 결정된 어느 하나의 커피 메뉴에 대한 정보를 의미한다.
그리고, n가지 종류의 기상 데이터들이란 '기온', '습도', '미세먼지 수치', '자외선 수치' 등과 같은 기상 데이터를 의미한다.
관련해서, n을 4라고 하였을 때, 훈련 세트 저장부(113)에는 하기의 표 3과 같이 정보가 저장되어 있을 수 있다.
훈련 데이터 세트 날씨 정보 4가지 종류의 기상 데이터들 매칭되는 커피 메뉴
훈련 데이터 세트 1 맑음 기온: 30도
습도: 30%
미세먼지 수치: 30ug/m3
자외선 수치: 4
아메리카노
훈련 데이터 세트 2 흐림 기온: 20도
습도: 60%
미세먼지 수치: 40ug/m3
자외선 수치: 3
카페라테
... ... ... ...
상기 표 3과 같은 복수의 훈련 데이터 세트들에 대한 커피 메뉴들과의 매칭 정보는 기계학습을 수행하기 위해서 개발자에 의해 미리 선정된 결과로, 개발자는 특정 날씨 정보와 기상 데이터를 가질 때 사용자들이 선호하는 커피 메뉴를 미리 조사하여 각 훈련 데이터 세트에 매칭시키는 방식으로 훈련 세트 저장부(113)의 데이터들을 구성할 수 있다.
입력 벡터 생성부(114)는 훈련 세트 저장부(113)를 참조하여 상기 복수의 훈련 데이터 세트들 중 어느 하나인 제1 훈련 데이터 세트를 확인한 후 상기 제1 훈련 데이터 세트에 포함된 제1 날씨 정보와 n가지 종류의 제1 기상 데이터들을 확인하고, 날씨 벡터 저장부(111)를 참조하여 상기 제1 날씨 정보에 대응하는 n차원의 제1 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제1 기상 데이터들을 성분으로 갖는 n차원의 제1 기상 벡터를 생성한 후 상기 n차원의 제1 날씨 벡터와 상기 n차원의 제1 기상 벡터 간의 아다마르 곱(Hadamard product)을 연산함으로써, n차원의 입력 벡터를 생성한다.
여기서, 아다마르 곱이란 같은 크기의 벡터나 행렬에서 각 성분을 곱하는 연산을 의미한다. 예컨대, [a b c]라는 벡터와 [x y z]라는 벡터 간의 아다마르 곱은 [ax by cz]로 연산될 수 있다.
관련해서, 상기 표 1, 2, 3과 같이 데이터가 구성되어 있다고 하고, 상기 제1 훈련 데이터 세트를 표 3에서의 '훈련 데이터 세트 1'이라고 하는 경우, 입력 벡터 생성부(114)는 '맑음'이라는 제1 날씨 정보에 대응하는 4차원의 제1 날씨 벡터로 '[2 3 4 5]'를 생성함과 동시에 '기온: 30도, 습도: 30%, 미세먼지 수치: 30ug/m3, 자외선 수치: 4'라는 제1 기상 데이터들을 성분으로 갖는 4차원의 제1 기상 벡터로 '[30 30 30 4]'를 생성한 후 상기 제1 날씨 벡터와 상기 제1 기상 벡터 간의 아다마르 곱을 연산함으로써, '[60 90 120 20]'이라고 하는 4차원의 입력 벡터를 생성할 수 있다.
출력 벡터 생성부(115)는 상기 n차원의 입력 벡터에 대해 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 출력 벡터를 생성한다.
이때, 상기 둘 이상의 가중치 행렬들은 모두 랜덤한 성분들로 구성된 행렬일 수 있다. 상기 둘 이상의 가중치 행렬들의 성분은 후술할 본 발명에 따른 기계학습을 통해 적절한 값으로 조정되게 된다.
스코어 연산부(116)는 상기 k차원의 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 스코어(score)를 생성한다.
예컨대, 전술한 예와 같이 k를 5라고 하는 경우, 스코어 연산부(116)는 5차원의 출력 벡터와 상기 표 2와 같은 5개의 커피 메뉴들 각각에 대한 5차원의 윈-핫 벡터 간의 내적을 연산함으로써, 5개의 커피 메뉴들 각각에 대응하는 스코어를 생성할 수 있다.
학습 수행부(117)는 상기 k개의 커피 메뉴들 각각에 대응하는 스코어를 미리 설정된 활성화 함수(Activation Function)에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 훈련 세트 저장부(113) 상에서 상기 제1 훈련 데이터 세트에 매칭된 제1 커피 메뉴에 대응하는 확률 값이 최대가 되도록 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행한다.
이때, 본 발명의 일실시예에 따르면, 상기 활성화 함수는 입력 값을 0~1 사이의 확률 값으로 출력하는 소프트맥스(softmax) 함수일 수 있다.
예컨대, 전술한 예시와 같이, 상기 제1 훈련 데이터 세트가 '훈련 데이터 세트 1'이라고 하고, 스코어 연산부(116)에서 5개의 커피 메뉴들 각각에 대응하는 스코어가 생성되었다고 하는 경우, 학습 수행부(117)는 5개의 커피 메뉴들 각각에 대응하는 스코어를 소프트맥스 함수에 입력으로 인가하여 5개의 커피 메뉴들 각각에 대응하는 0~1 사이의 확률 값을 생성할 수 있다.
그러고 나서, 학습 수행부(117)는 5개의 커피 메뉴들 각각에 대응하는 확률 값 중 '훈련 데이터 세트 1'에 매칭된 커피 메뉴인 '아메리카노'에 대응하는 확률 값이 최대가 되도록 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행할 수 있다.
이때, 학습 수행부(117)는 확률 값에 기초하여 역전파(Backpropagation) 처리를 수행함으로써, 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행할 수 있다.
본 발명의 일실시예에 따르면, 커피 메뉴 추천 장치(110)는 반복 수행 제어부(118)를 더 포함할 수 있다.
반복 수행 제어부(118)는 상기 복수의 훈련 데이터 세트들 전체에 대해 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습 과정의 반복 수행을 제어함으로써, 상기 둘 이상의 가중치 행렬들을 정교하게 결정할 수 있다.
본 발명의 일실시예에 따르면, 커피 메뉴 추천 장치(110)는 데이터 확인부(119), 추천용 입력 벡터 생성부(120), 추천용 출력 벡터 생성부(121), 추천용 스코어 연산부(122), 추천 커피 메뉴 선정부(123) 및 추천 커피 메뉴 전송부(124)를 더 포함할 수 있다.
데이터 확인부(119)는 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습이 완료된 이후, 사용자 단말(100)로부터 상기 k개의 커피 메뉴들 중 어느 하나의 커피 메뉴에 대한 추천 요청 신호가 수신되면, 사전 지정된 기상 데이터 서버에 접속하여 현재 시점에 대한 제2 날씨 정보와 현재 시점에서의 n가지 종류의 제2 기상 데이터들을 확인한다.
추천용 입력 벡터 생성부(120)는 날씨 벡터 저장부(111)를 참조하여 상기 제2 날씨 정보에 대응하는 n차원의 제2 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제2 기상 데이터들을 성분으로 갖는 n차원의 제2 기상 벡터를 생성한 후 상기 n차원의 제2 날씨 벡터와 상기 n차원의 제2 기상 벡터 간의 아다마르 곱을 연산함으로써, n차원의 추천용 입력 벡터를 생성한다.
추천용 출력 벡터 생성부(121)는 상기 n차원의 추천용 입력 벡터에 대해 기계학습이 완료된 상기 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 추천용 출력 벡터를 생성한다.
추천용 스코어 연산부(122)는 상기 k차원의 추천용 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 생성한다.
추천 커피 메뉴 선정부(123)는 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 상기 활성화 함수에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 추천용 확률 값이 최대인 커피 메뉴를 사용자 단말(100)로 전송할 추천 커피 메뉴로 선정한다.
추천 커피 메뉴 전송부(124)는 상기 추천 커피 메뉴에 대한 정보를 사용자 단말(100)로 전송한다.
즉, 본 발명에 따른 커피 메뉴 추천 장치(110)는 상기 둘 이상의 가중치 행렬들에 대한 기계학습이 완료된 이후, 사용자 단말(100)로부터 커피 메뉴에 대한 추천 요청이 수신되면, 현재 시점에서의 날씨 정보와 기상 데이터를 획득하여 소정의 입력 벡터를 만든 후 상기 입력 벡터를 상기 둘 이상의 가중치 행렬들로 구성되는 히든층에 인가해서 출력 벡터를 생성하고, 상기 출력 벡터와 커피 메뉴들에 대한 원-핫 벡터 간의 내적을 연산함으로써, 각 커피 메뉴에 대한 스코어를 연산한 후 스코어를 기초로 각 커피 메뉴에 대해서 연산되는 확률 값이 최대인 커피 메뉴를 사용자에게 추천할 커피 메뉴로 결정할 수 있다.
이때, 본 발명의 일실시예에 따르면, 커피 메뉴 추천 장치(110)는 인증된 사용자만이 본 발명에 따른 커피 메뉴 추천 서비스를 이용할 수 있도록 하기 위한 구성을 더 포함할 수 있다. 관련해서, 본 발명의 일실시예에 따르면, 데이터 확인부(119)는 유클리드 거리 저장부(125), 요청부(126), 인증부(127) 및 확인부(128)를 포함할 수 있다.
유클리드 거리 저장부(125)에는 사용자 인증에 사용하기 위한 기설정된 유클리드 거리(Euclidean Distance)에 대한 정보가 저장되어 있다.
여기서, 유클리드 거리란 두 개의 벡터가 존재한다고 하였을 때, 두 벡터 간의 거리를 의미하는 것으로 하기의 수학식 1에 따라 연산될 수 있다.
Figure 112019111086023-pat00001
상기 수학식 1에서 D는 유클리드 거리, Ai와 Bi는 두 벡터에 포함되어 있는 i번째 성분들을 의미한다. 보통, 두 벡터 간의 유클리드 거리가 작을수록 두 벡터는 유사한 벡터라고 볼 수 있고, 두 벡터 간의 유클리드 거리가 클수록 두 벡터는 비유사한 벡터라고 볼 수 있다.
요청부(126)는 사용자 단말(100)로부터 상기 커피 메뉴에 대한 추천 요청 신호가 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 상기 랜덤 벡터를 사용자 단말(100)로 전송하면서, 사용자 단말(100)로 상기 랜덤 벡터에 대응되는 피드백 벡터의 전송을 요청한다.
이때, 사용자 단말(100)은 메모리 상에 상기 기설정된 유클리드 거리를 저장하고 있으며, 커피 메뉴 추천 장치(110)로부터 상기 랜덤 벡터가 수신되면, 상기 랜덤 벡터와의 유클리드 거리가 상기 메모리 상에 저장되어 있는 상기 기설정된 유클리드 거리로 연산되는 제1 피드백 벡터를 랜덤하게 생성하여 커피 메뉴 추천 장치(110)로 전송할 수 있다.
인증부(127)는 사용자 단말(100)로부터 상기 랜덤 벡터에 대응되는 피드백 벡터로 상기 제1 피드백 벡터가 수신되면, 상기 제1 피드백 벡터와 상기 랜덤 벡터 간의 제1 유클리드 거리를 연산하고, 상기 제1 유클리드 거리가 상기 기설정된 유클리드 거리와 동일한지 확인함으로써, 사용자 단말(100)에 대한 인증을 수행한다.
즉, 상기 제1 유클리드 거리가 상기 기설정된 유클리드 거리와 동일한 것으로 확인되었다는 것은 사용자 단말(100)이 상기 기설정된 유클리드 거리를 사전에 공유하고 있는 인증된 사용자 단말이 맞는 것으로 볼 수 있기 때문에 인증부(127)는 두 유클리드 거리가 서로 일치하는 것으로 확인되면, 사용자 단말(100)에 대한 인증을 수행할 수 있다.
확인부(128)는 사용자 단말(100)에 대한 인증이 완료되면, 상기 기상 데이터 서버에 접속하여 상기 제2 날씨 정보와 상기 n가지 종류의 제2 기상 데이터들을 확인한다.
도 2는 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 미리 정해진 서로 다른 n(n은 2이상의 자연수)가지 종류의 날씨 정보들 각각에 대응되는 미리 정해진 서로 다른 n차원의 날씨 벡터가 저장되어 있는 날씨 벡터 저장부를 유지한다.
단계(S220)에서는 미리 정해진 k(k는 2이상의 자연수)개의 커피 메뉴들에 대한 정보와 상기 k개의 커피 메뉴들 각각에 대응하는 미리 정해진 서로 다른 k차원의 원-핫 벡터가 저장되어 있는 커피 메뉴 저장부를 유지한다.
단계(S230)에서는 미리 정해진 복수의 훈련 데이터 세트들(상기 복수의 훈련 데이터 세트들 각각은 상기 n가지 종류의 날씨 정보들 중에서 선택된 하나의 날씨 정보와 미리 정해진 서로 다른 n가지 종류의 기상 데이터들로 구성된 데이터 세트를 의미함)과 상기 복수의 훈련 데이터 세트들 각각에 대한 상기 k개의 커피 메뉴들과의 매칭 정보(상기 매칭 정보는 상기 복수의 훈련 데이터 세트들 각각에 대해, 상기 k개의 커피 메뉴들 중 매칭되는 것으로 사전 결정된 어느 하나의 커피 메뉴에 대한 정보를 의미함)가 저장되어 있는 훈련 세트 저장부를 유지한다.
단계(S240)에서는 상기 훈련 세트 저장부를 참조하여 상기 복수의 훈련 데이터 세트들 중 어느 하나인 제1 훈련 데이터 세트를 확인한 후 상기 제1 훈련 데이터 세트에 포함된 제1 날씨 정보와 n가지 종류의 제1 기상 데이터들을 확인하고, 상기 날씨 벡터 저장부를 참조하여 상기 제1 날씨 정보에 대응하는 n차원의 제1 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제1 기상 데이터들을 성분으로 갖는 n차원의 제1 기상 벡터를 생성한 후 상기 n차원의 제1 날씨 벡터와 상기 n차원의 제1 기상 벡터 간의 아다마르 곱을 연산함으로써, n차원의 입력 벡터를 생성한다.
단계(S250)에서는 상기 n차원의 입력 벡터에 대해 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 출력 벡터를 생성한다.
단계(S260)에서는 상기 k차원의 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 스코어를 생성한다.
단계(S270)에서는 상기 k개의 커피 메뉴들 각각에 대응하는 스코어를 미리 설정된 활성화 함수에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 훈련 세트 저장부 상에서 상기 제1 훈련 데이터 세트에 매칭된 제1 커피 메뉴에 대응하는 확률 값이 최대가 되도록 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행한다.
이때, 본 발명의 일실시예에 따르면, 상기 활성화 함수는 입력 값을 0~1 사이의 확률 값으로 출력하는 소프트맥스 함수일 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 커피 메뉴 추천 장치의 동작 방법은 상기 복수의 훈련 데이터 세트들 전체에 대해 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습 과정의 반복 수행을 제어하는 단계를 더 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 커피 메뉴 추천 장치의 동작 방법은 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습이 완료된 이후, 사용자 단말로부터 상기 k개의 커피 메뉴들 중 어느 하나의 커피 메뉴에 대한 추천 요청 신호가 수신되면, 사전 지정된 기상 데이터 서버에 접속하여 현재 시점에 대한 제2 날씨 정보와 현재 시점에서의 n가지 종류의 제2 기상 데이터들을 확인하는 단계, 상기 날씨 벡터 저장부를 참조하여 상기 제2 날씨 정보에 대응하는 n차원의 제2 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제2 기상 데이터들을 성분으로 갖는 n차원의 제2 기상 벡터를 생성한 후 상기 n차원의 제2 날씨 벡터와 상기 n차원의 제2 기상 벡터 간의 아다마르 곱을 연산함으로써, n차원의 추천용 입력 벡터를 생성하는 단계, 상기 n차원의 추천용 입력 벡터에 대해 기계학습이 완료된 상기 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 추천용 출력 벡터를 생성하는 단계, 상기 k차원의 추천용 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 생성하는 단계, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 상기 활성화 함수에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 추천용 확률 값이 최대인 커피 메뉴를 상기 사용자 단말로 전송할 추천 커피 메뉴로 선정하는 단계 및 상기 추천 커피 메뉴에 대한 정보를 상기 사용자 단말로 전송하는 단계를 더 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 제2 기상 데이터들을 확인하는 단계는 사용자 인증에 사용하기 위한 기설정된 유클리드 거리에 대한 정보가 저장되어 있는 유클리드 거리 저장부를 유지하는 단계, 상기 사용자 단말로부터 상기 커피 메뉴에 대한 추천 요청 신호가 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 상기 랜덤 벡터를 상기 사용자 단말로 전송하면서, 상기 사용자 단말로 상기 랜덤 벡터에 대응되는 피드백 벡터의 전송을 요청하는 단계, 상기 사용자 단말로부터 상기 랜덤 벡터에 대응되는 피드백 벡터로 제1 피드백 벡터(상기 제1 피드백 벡터는 상기 랜덤 벡터와의 유클리드 거리가 상기 사용자 단말에 기 저장되어 있는 상기 기설정된 유클리드 거리로 연산되도록 생성된 벡터임)가 수신되면, 상기 제1 피드백 벡터와 상기 랜덤 벡터 간의 제1 유클리드 거리를 연산하고, 상기 제1 유클리드 거리가 상기 기설정된 유클리드 거리와 동일한지 확인함으로써, 상기 사용자 단말에 대한 인증을 수행하는 단계 및 상기 사용자 단말에 대한 인증이 완료되면, 상기 기상 데이터 서버에 접속하여 상기 제2 날씨 정보와 상기 n가지 종류의 제2 기상 데이터들을 확인하는 단계를 포함할 수 있다.
이때, 상기 사용자 단말은 메모리 상에 상기 기설정된 유클리드 거리를 저장하고 있으며, 상기 커피 메뉴 추천 장치로부터 상기 랜덤 벡터가 수신되면, 상기 랜덤 벡터와의 유클리드 거리가 상기 메모리 상에 저장되어 있는 상기 기설정된 유클리드 거리로 연산되는 상기 제1 피드백 벡터를 랜덤하게 생성하여 상기 커피 메뉴 추천 장치로 전송할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법은 도 1을 이용하여 설명한 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치
111: 날씨 벡터 저장부 112: 커피 메뉴 저장부
113: 훈련 세트 저장부 114: 입력 벡터 생성부
115: 출력 벡터 생성부 116: 스코어 연산부
117: 학습 수행부 118: 반복 수행 제어부
119: 데이터 확인부 120: 추천용 입력 벡터 생성부
121: 추천용 출력 벡터 생성부 122: 추천용 스코어 연산부
123: 추천 커피 메뉴 선정부 124: 추천 커피 메뉴 전송부
125: 유클리드 거리 저장부 126: 요청부
127: 인증부 128: 확인부
100: 사용자 단말

Claims (12)

  1. 미리 정해진 서로 다른 n(n은 2이상의 자연수)가지 종류의 날씨 정보들 각각에 대응되는 미리 정해진 서로 다른 n차원의 날씨 벡터가 저장되어 있는 날씨 벡터 저장부;
    미리 정해진 k(k는 2이상의 자연수)개의 커피 메뉴들에 대한 정보와 상기 k개의 커피 메뉴들 각각에 대응하는 미리 정해진 서로 다른 k차원의 원-핫(one-hot) 벡터가 저장되어 있는 커피 메뉴 저장부;
    미리 정해진 복수의 훈련 데이터 세트들 - 상기 복수의 훈련 데이터 세트들 각각은 상기 n가지 종류의 날씨 정보들 중에서 선택된 하나의 날씨 정보와 미리 정해진 서로 다른 n가지 종류의 기상 데이터들로 구성된 데이터 세트를 의미함 - 과 상기 복수의 훈련 데이터 세트들 각각에 대한 상기 k개의 커피 메뉴들과의 매칭 정보 - 상기 매칭 정보는 상기 복수의 훈련 데이터 세트들 각각에 대해, 상기 k개의 커피 메뉴들 중 매칭되는 것으로 사전 결정된 어느 하나의 커피 메뉴에 대한 정보를 의미함 - 가 저장되어 있는 훈련 세트 저장부;
    상기 훈련 세트 저장부를 참조하여 상기 복수의 훈련 데이터 세트들 중 어느 하나인 제1 훈련 데이터 세트를 확인한 후 상기 제1 훈련 데이터 세트에 포함된 제1 날씨 정보와 n가지 종류의 제1 기상 데이터들을 확인하고, 상기 날씨 벡터 저장부를 참조하여 상기 제1 날씨 정보에 대응하는 n차원의 제1 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제1 기상 데이터들을 성분으로 갖는 n차원의 제1 기상 벡터를 생성한 후 상기 n차원의 제1 날씨 벡터와 상기 n차원의 제1 기상 벡터 간의 아다마르 곱(Hadamard product)을 연산함으로써, n차원의 입력 벡터를 생성하는 입력 벡터 생성부;
    상기 n차원의 입력 벡터에 대해 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 출력 벡터를 생성하는 출력 벡터 생성부;
    상기 k차원의 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 스코어(score)를 생성하는 스코어 연산부;
    상기 k개의 커피 메뉴들 각각에 대응하는 스코어를 미리 설정된 활성화 함수(Activation Function)에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 훈련 세트 저장부 상에서 상기 제1 훈련 데이터 세트에 매칭된 제1 커피 메뉴에 대응하는 확률 값이 최대가 되도록 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행하는 학습 수행부;
    상기 복수의 훈련 데이터 세트들 전체에 대해 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습 과정의 반복 수행을 제어하는 반복 수행 제어부;
    상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습이 완료된 이후, 사용자 단말로부터 상기 k개의 커피 메뉴들 중 어느 하나의 커피 메뉴에 대한 추천 요청 신호가 수신되면, 사전 지정된 기상 데이터 서버에 접속하여 현재 시점에 대한 제2 날씨 정보와 현재 시점에서의 n가지 종류의 제2 기상 데이터들을 확인하는 데이터 확인부;
    상기 날씨 벡터 저장부를 참조하여 상기 제2 날씨 정보에 대응하는 n차원의 제2 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제2 기상 데이터들을 성분으로 갖는 n차원의 제2 기상 벡터를 생성한 후 상기 n차원의 제2 날씨 벡터와 상기 n차원의 제2 기상 벡터 간의 아다마르 곱을 연산함으로써, n차원의 추천용 입력 벡터를 생성하는 추천용 입력 벡터 생성부;
    상기 n차원의 추천용 입력 벡터에 대해 기계학습이 완료된 상기 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 추천용 출력 벡터를 생성하는 추천용 출력 벡터 생성부;
    상기 k차원의 추천용 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 생성하는 추천용 스코어 연산부;
    상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 상기 활성화 함수에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 추천용 확률 값이 최대인 커피 메뉴를 상기 사용자 단말로 전송할 추천 커피 메뉴로 선정하는 추천 커피 메뉴 선정부; 및
    상기 추천 커피 메뉴에 대한 정보를 상기 사용자 단말로 전송하는 추천 커피 메뉴 전송부
    를 포함하는 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치.
  2. 제1항에 있어서,
    상기 활성화 함수는 입력 값을 0~1 사이의 확률 값으로 출력하는 소프트맥스(softmax) 함수인 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 데이터 확인부는
    사용자 인증에 사용하기 위한 기설정된 유클리드 거리(Euclidean Distance)에 대한 정보가 저장되어 있는 유클리드 거리 저장부;
    상기 사용자 단말로부터 상기 커피 메뉴에 대한 추천 요청 신호가 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 상기 랜덤 벡터를 상기 사용자 단말로 전송하면서, 상기 사용자 단말로 상기 랜덤 벡터에 대응되는 피드백 벡터의 전송을 요청하는 요청부;
    상기 사용자 단말로부터 상기 랜덤 벡터에 대응되는 피드백 벡터로 제1 피드백 벡터 - 상기 제1 피드백 벡터는 상기 랜덤 벡터와의 유클리드 거리가 상기 사용자 단말에 기 저장되어 있는 상기 기설정된 유클리드 거리로 연산되도록 생성된 벡터임 - 가 수신되면, 상기 제1 피드백 벡터와 상기 랜덤 벡터 간의 제1 유클리드 거리를 연산하고, 상기 제1 유클리드 거리가 상기 기설정된 유클리드 거리와 동일한지 확인함으로써, 상기 사용자 단말에 대한 인증을 수행하는 인증부; 및
    상기 사용자 단말에 대한 인증이 완료되면, 상기 기상 데이터 서버에 접속하여 상기 제2 날씨 정보와 상기 n가지 종류의 제2 기상 데이터들을 확인하는 확인부
    를 포함하고,
    상기 사용자 단말은
    메모리 상에 상기 기설정된 유클리드 거리를 저장하고 있으며, 상기 커피 메뉴 추천 장치로부터 상기 랜덤 벡터가 수신되면, 상기 랜덤 벡터와의 유클리드 거리가 상기 메모리 상에 저장되어 있는 상기 기설정된 유클리드 거리로 연산되는 상기 제1 피드백 벡터를 랜덤하게 생성하여 상기 커피 메뉴 추천 장치로 전송하는 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치.
  6. 미리 정해진 서로 다른 n(n은 2이상의 자연수)가지 종류의 날씨 정보들 각각에 대응되는 미리 정해진 서로 다른 n차원의 날씨 벡터가 저장되어 있는 날씨 벡터 저장부를 유지하는 단계;
    미리 정해진 k(k는 2이상의 자연수)개의 커피 메뉴들에 대한 정보와 상기 k개의 커피 메뉴들 각각에 대응하는 미리 정해진 서로 다른 k차원의 원-핫(one-hot) 벡터가 저장되어 있는 커피 메뉴 저장부를 유지하는 단계;
    미리 정해진 복수의 훈련 데이터 세트들 - 상기 복수의 훈련 데이터 세트들 각각은 상기 n가지 종류의 날씨 정보들 중에서 선택된 하나의 날씨 정보와 미리 정해진 서로 다른 n가지 종류의 기상 데이터들로 구성된 데이터 세트를 의미함 - 과 상기 복수의 훈련 데이터 세트들 각각에 대한 상기 k개의 커피 메뉴들과의 매칭 정보 - 상기 매칭 정보는 상기 복수의 훈련 데이터 세트들 각각에 대해, 상기 k개의 커피 메뉴들 중 매칭되는 것으로 사전 결정된 어느 하나의 커피 메뉴에 대한 정보를 의미함 - 가 저장되어 있는 훈련 세트 저장부를 유지하는 단계;
    상기 훈련 세트 저장부를 참조하여 상기 복수의 훈련 데이터 세트들 중 어느 하나인 제1 훈련 데이터 세트를 확인한 후 상기 제1 훈련 데이터 세트에 포함된 제1 날씨 정보와 n가지 종류의 제1 기상 데이터들을 확인하고, 상기 날씨 벡터 저장부를 참조하여 상기 제1 날씨 정보에 대응하는 n차원의 제1 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제1 기상 데이터들을 성분으로 갖는 n차원의 제1 기상 벡터를 생성한 후 상기 n차원의 제1 날씨 벡터와 상기 n차원의 제1 기상 벡터 간의 아다마르 곱(Hadamard product)을 연산함으로써, n차원의 입력 벡터를 생성하는 단계;
    상기 n차원의 입력 벡터에 대해 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 출력 벡터를 생성하는 단계;
    상기 k차원의 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 스코어(score)를 생성하는 단계;
    상기 k개의 커피 메뉴들 각각에 대응하는 스코어를 미리 설정된 활성화 함수(Activation Function)에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 훈련 세트 저장부 상에서 상기 제1 훈련 데이터 세트에 매칭된 제1 커피 메뉴에 대응하는 확률 값이 최대가 되도록 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습을 수행하는 단계;
    상기 복수의 훈련 데이터 세트들 전체에 대해 상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습 과정의 반복 수행을 제어하는 단계;
    상기 둘 이상의 가중치 행렬들을 결정하기 위한 기계학습이 완료된 이후, 사용자 단말로부터 상기 k개의 커피 메뉴들 중 어느 하나의 커피 메뉴에 대한 추천 요청 신호가 수신되면, 사전 지정된 기상 데이터 서버에 접속하여 현재 시점에 대한 제2 날씨 정보와 현재 시점에서의 n가지 종류의 제2 기상 데이터들을 확인하는 단계;
    상기 날씨 벡터 저장부를 참조하여 상기 제2 날씨 정보에 대응하는 n차원의 제2 날씨 벡터를 생성함과 동시에 상기 n가지 종류의 제2 기상 데이터들을 성분으로 갖는 n차원의 제2 기상 벡터를 생성한 후 상기 n차원의 제2 날씨 벡터와 상기 n차원의 제2 기상 벡터 간의 아다마르 곱을 연산함으로써, n차원의 추천용 입력 벡터를 생성하는 단계;
    상기 n차원의 추천용 입력 벡터에 대해 기계학습이 완료된 상기 둘 이상의 가중치 행렬들을 곱하여 벡터 차원 변환을 수행함으로써, k차원의 추천용 출력 벡터를 생성하는 단계;
    상기 k차원의 추천용 출력 벡터와 상기 k개의 커피 메뉴들 각각에 대한 k차원의 원-핫 벡터 간의 내적을 연산함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 생성하는 단계;
    상기 k개의 커피 메뉴들 각각에 대응하는 추천용 스코어를 상기 활성화 함수에 입력으로 인가하여 확률 값으로 변환함으로써, 상기 k개의 커피 메뉴들 각각에 대응하는 추천용 확률 값을 생성하고, 상기 k개의 커피 메뉴들 중 상기 추천용 확률 값이 최대인 커피 메뉴를 상기 사용자 단말로 전송할 추천 커피 메뉴로 선정하는 단계; 및
    상기 추천 커피 메뉴에 대한 정보를 상기 사용자 단말로 전송하는 단계
    를 포함하는 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법.
  7. 제6항에 있어서,
    상기 활성화 함수는 입력 값을 0~1 사이의 확률 값으로 출력하는 소프트맥스(softmax) 함수인 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법.
  8. 삭제
  9. 삭제
  10. 제6항에 있어서,
    상기 제2 기상 데이터들을 확인하는 단계는
    사용자 인증에 사용하기 위한 기설정된 유클리드 거리(Euclidean Distance)에 대한 정보가 저장되어 있는 유클리드 거리 저장부를 유지하는 단계;
    상기 사용자 단말로부터 상기 커피 메뉴에 대한 추천 요청 신호가 수신되면, 랜덤 벡터를 랜덤하게 생성하고, 상기 랜덤 벡터를 상기 사용자 단말로 전송하면서, 상기 사용자 단말로 상기 랜덤 벡터에 대응되는 피드백 벡터의 전송을 요청하는 단계;
    상기 사용자 단말로부터 상기 랜덤 벡터에 대응되는 피드백 벡터로 제1 피드백 벡터 - 상기 제1 피드백 벡터는 상기 랜덤 벡터와의 유클리드 거리가 상기 사용자 단말에 기 저장되어 있는 상기 기설정된 유클리드 거리로 연산되도록 생성된 벡터임 - 가 수신되면, 상기 제1 피드백 벡터와 상기 랜덤 벡터 간의 제1 유클리드 거리를 연산하고, 상기 제1 유클리드 거리가 상기 기설정된 유클리드 거리와 동일한지 확인함으로써, 상기 사용자 단말에 대한 인증을 수행하는 단계; 및
    상기 사용자 단말에 대한 인증이 완료되면, 상기 기상 데이터 서버에 접속하여 상기 제2 날씨 정보와 상기 n가지 종류의 제2 기상 데이터들을 확인하는 단계
    를 포함하고,
    상기 사용자 단말은
    메모리 상에 상기 기설정된 유클리드 거리를 저장하고 있으며, 상기 커피 메뉴 추천 장치로부터 상기 랜덤 벡터가 수신되면, 상기 랜덤 벡터와의 유클리드 거리가 상기 메모리 상에 저장되어 있는 상기 기설정된 유클리드 거리로 연산되는 상기 제1 피드백 벡터를 랜덤하게 생성하여 상기 커피 메뉴 추천 장치로 전송하는 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치의 동작 방법.
  11. 제6항, 제7항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항, 제7항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020190136350A 2019-10-30 2019-10-30 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법 KR102309558B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190136350A KR102309558B1 (ko) 2019-10-30 2019-10-30 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190136350A KR102309558B1 (ko) 2019-10-30 2019-10-30 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20210051287A KR20210051287A (ko) 2021-05-10
KR102309558B1 true KR102309558B1 (ko) 2021-10-05

Family

ID=75917843

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190136350A KR102309558B1 (ko) 2019-10-30 2019-10-30 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102309558B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113488142A (zh) * 2021-07-28 2021-10-08 珠海格力电器股份有限公司 一种菜谱推荐方法、装置、存储介质以及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165632A (ja) * 2003-12-02 2005-06-23 Sony Corp 情報処理装置および方法、プログラム、並びに、情報処理システムおよび方法
JP2015011712A (ja) * 2013-06-28 2015-01-19 アザパ アールアンドディー アメリカズ インク デジタル情報収集および解析方法およびその装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150121281A (ko) * 2014-04-17 2015-10-29 이형석 고객의 상품에 대한 선호도에 기초하여 상품을 추천하기 위한 방법 및 그 방법을 수행하기 위한 명령어가 저장된 컴퓨터 판독가능한 기록매체
KR20180133062A (ko) * 2017-06-05 2018-12-13 주식회사 달콤 날씨 및 사용자에 따라 선택된 커피 메뉴를 추천하는 장치 및 이의 동작 방법
KR102220273B1 (ko) * 2018-03-29 2021-02-26 네이버 주식회사 상품 추천 방법 및 이를 이용하는 서버

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005165632A (ja) * 2003-12-02 2005-06-23 Sony Corp 情報処理装置および方法、プログラム、並びに、情報処理システムおよび方法
JP2015011712A (ja) * 2013-06-28 2015-01-19 アザパ アールアンドディー アメリカズ インク デジタル情報収集および解析方法およびその装置

Also Published As

Publication number Publication date
KR20210051287A (ko) 2021-05-10

Similar Documents

Publication Publication Date Title
CN107766940B (zh) 用于生成模型的方法和装置
US11670058B2 (en) Visual display systems and method for manipulating images of a real scene using augmented reality
US20180316776A1 (en) User portrait obtaining method, apparatus, and storage medium
CN109101919B (zh) 用于生成信息的方法和装置
CN110232403A (zh) 一种标签预测方法、装置、电子设备及介质
US10146933B1 (en) Access control using passwords derived from phrases provided by users
CN109522950A (zh) 图像评分模型训练方法及装置和图像评分方法及装置
CN107995158A (zh) 认证装置、认证方法、电子设备以及记录介质
KR102309558B1 (ko) 날씨와 기상 데이터에 기초한 학습 모델을 통해 커피 메뉴의 추천을 수행하는 커피 메뉴 추천 장치 및 그 동작 방법
CN111292262A (zh) 图像处理方法、装置、电子设备以及存储介质
CN112685792A (zh) 一种模型验证方法、装置及电子设备
KR102144352B1 (ko) 문서에 대한 읽기 예측 시간의 산출이 가능한 전자 단말 장치 및 그 동작 방법
CN110135428A (zh) 图像分割处理方法和装置
KR102270321B1 (ko) 인공지능 기반의 기계학습을 통한 사용자 맞춤형 상품 추천 장치
JP7120326B2 (ja) 情報処理装置、情報処理方法、記録媒体
KR102253577B1 (ko) 사용자 인증 기반의 가상 데스크톱 환경의 제공이 가능한 컴퓨팅 장치
US11574020B1 (en) Identifying similar content in a multi-item embedding space
CN113051486A (zh) 基于交友场景的推荐模型的训练方法、装置、电子设备和计算机可读存储介质
KR102338354B1 (ko) 기념품에 삽입되는 2차원 코드와의 연동을 통해 데이터의 저장 및 관리를 가능하게 하는 블록체인 기반의 데이터 관리 서버 및 그 동작 방법
CN111784787B (zh) 图像生成方法和装置
CN108573250A (zh) 生成装置、存储介质、识别系统以及生成方法
KR102518509B1 (ko) 기획서를 작성하고자 하는 사용자의 기획서 작성을 보조하기 위한 기획 서비스 플랫폼 서버 및 그 동작 방법
KR102271983B1 (ko) 고객정보와 가상화폐 구매이력을 기반으로 한 기계학습 수행을 통해 사용자 맞춤의 가상화폐 추천을 제공하는 가상화폐 거래 플랫폼 서버 및 그 동작 방법
CN117395083B (zh) 基于联邦学习的数据保护方法及系统
US20240078095A1 (en) Electronic apparatus equipped with a ui development tool capable of recommending a template for a ui component based on the characteristics of the ui to be developed and the operating method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant