Skip to content

[2022-2학기 DSL 모델링 프로젝트 추천시스템] 딥러닝 기반의 메뉴 추천 시스템 what2eat

Notifications You must be signed in to change notification settings

Suhyeon-Kwon/menu-recommendation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

Menu Recommendation

B조: C조였으면 추천C스템

💫 프로젝트 목표

  • 사용자가 최근 먹었던 메뉴를 고려하여 사용자가 선호할 메뉴 추천
  • This service recommends a new menu based on what the user has eaten so far using the BERT4Rec model trained by the menu planner data and the survey data.

💻 활용 장비

개발환경

  • Ubuntu 18.04.6 LTS
  • GPU Tesla T4

Colaborate

  • Notion
  • Zoom

🏃🏃‍♂️ 프로젝트 팀 구성 및 역할

  • 권수현: 데이콘 식단 데이터 수집 및 전처리, 모델 서치, RNN 기반 모델 튜닝, 설문조사 데이터셋 전처리, 발표자료 정리 및 제작
  • 김채은: 나이스 급식 식단 데이터 수집 및 전처리, 발표
  • 김형민: 설문조사 포맷 제작, 데이터셋 태깅, 성능평가지표 수정 및 적용
  • 손승진: 프로젝트 리딩 및 일정 관리, 데이터셋 EDA, 결측치 제거 및 태깅, 모델 서치, GNN 기반 모델 튜닝
  • 전혜령: 아이디어 제시, 데이터 및 모델 서치, 데이터셋 EDA. Transformer, AutoEncoder 기반 모델 튜닝, 설문조사 데이터셋 전처리, 수정된 성능평가지표 적용

📌 개요

image

  • 다양한 모델의 실험을 통하여 가장 Hit rate가 좋은 모델 서치 후, 자체적으로 수정한 Hit rate를 적용하여 모델 성능 평가

📊 데이터 소개

데이콘 구내 식당 식단 데이터셋

  • 총 1255일의 구내 식당 식단표
  • 각 조식메뉴, 중식메뉴, 석식메뉴 별로 메인 메뉴추출 후 MenuID 부여
  • 날짜 및 시간 순서대로 SessionID 부여
  • category, property column 추가하여 사용
  • 데이콘 구내 식당 식단 데이터셋

나이스 교육정보 개방 포털 급식 식단 정보 데이터셋

설문조사 데이터셋

  • 51명을 대상으로 지난 3일 동안 먹은 메뉴 조사
    • 1일째 아침/점심/저녁, 2일째 아침/점심/저녁, 3일째 아침/점심/저녁
  • 일부 메뉴들에 대해서는 위의 구내 식당 식단 데이터셋, 급식 식단 정보 데이터셋의 메뉴명으로 통일
    • 예) 돼지갈비 → 돼지갈비찜
    • 동일 메뉴에 대해 MenuID를 동일하게 가져가기 위함
  • 응답 순서대로 SessionID 부여
  • category, property column 추가하여 사용

사용한 데이터프레임 형식 예시

SessionID(userID) time stamp Menu MenuId category property
0 0 마라샹궈 0 중식 볶음류
0 1 고등어구이 1 한식 구이류
0 2 피자 2 양식 패스트푸드류

📝 모델 결과

image

  • Transformer 기반의 모델인 BERT4Rec의 성능이 가장 좋은 것을 확인 가능

메뉴 추천 결과 예시

먹은 메뉴 추천 메뉴
제육볶음, 삼겹살 구이, 간장 계란장, 청국장 찌개, 컵라면&찐계란, 시리얼 과일 샐러드, 된장찌개 동파삼겹수육

📱 프로젝트 결과

image

  • 위와 같이 활용 가능할 것으로 기대됨

💭 Reference

About

[2022-2학기 DSL 모델링 프로젝트 추천시스템] 딥러닝 기반의 메뉴 추천 시스템 what2eat

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 98.3%
  • Python 1.7%