<aside> 💡 Content-based filtering

상품 설명 + 사용자 프로필 → 좋아하는 타입/과거에 좋아했던 타입 상품 추천

item에 대한 설명(description)과 사용자 선호에 대한 profile을 기반

Content-based 추천 시스템에서, 키워드는 item을 설명(describe)하는데 사용되고 사용자의 프로필은 이 사용자가 좋아하는 류(type)의 item을 가리키게(indicate) 만들어짐

과거에 사용자가 좋아했던 것들(또는 현재 보고 있는 것들)과 비슷한 items을 추천

구체적으로 말하면, 다양한 후보 items은 사용자에 의해 현재 평가되는 (rated) items과 비교되고 best-matching items은 추천

이 접근법은 information retrieval과 information filtering에 뿌리를 두고 있음

사용자 선호 모델 → 추천 시스템과 사용자의 상호작용 정보

상품 특성의 weighted vector를 기반으로 content-based profile 만듦

Weights는 사용자에게 각각의 feature의 중요도를 나타내고 개별적으로 점수 매겨진(rated) content vectors로부터 다양한 방법으로 계산될 수 있음 → 사용자가 좋아할것 같은 확률(probability)을 계산

좋아요/싫어요 → 직접적 피드백 → 속성의 중요도에 대한 weight 할당 사용

  1. 특징 추출 아이템을 설명할 수 있는 특징을 추천 시스템이 이해할 수 있도록 벡터화 (데이터 전처리 필요)
  2. 알고리즘 사용 + 유사 아이템 선정 자연어의 경우, 자연어 처리 기술(TF-IDF, Word2Vec - CBOW, Bert)을 이용하여 아이템을 벡터 형태로 표현한 후 벡터 간의 유사도를 계산하여 아이템을 추천 (유클라디안, 코사인, 피어슨 유사도 사용)

</aside>

음식 + 카테고리 데이터셋을 사용해 카테고리를 기준으로 유사도 추출 후 메뉴 추천

<aside> 💡 콘텐츠 기반 음식 추천 시스템

  1. 데이터 준비
  2. 데이터전처리 (필요한 컬럼 형식 통일 → 음식 카테고리 등… 기준으로 벡터화 → 유사도 추출)
  3. 사용자 추천 함수 생성 (유사한 음식 추천) </aside>

음식에 대한 평점은 크롤링할 수 없음 ! ⇒ 음식 카테고리가 있는 데이터셋 구하기

→ 가게에 대한 평점은 있어도 정확한 메뉴명에 대한 언급은 없기 때문

알레르기나 재료에 따른 추천 어려움

→ 음식을 구성하는 재료까지 포함된 데이터셋이 없기 때문



데이터셋