추천 모델의 대표적인 방법으로는 ML/DL을 통한 학습모델, CBF 기반 추천 알고리즘 구현 등이 존재한다.
특히 CBF는 이전에 학습한대로 Item based (nearest neighbor 기법)와 Latent Factor (Matrix Factorization like SVD)를 사용한다.
-> 작동 방식은 다음과 같다.
이때 2개의 컬럼을 기반으로 pivot table을 이용하여 데이터를 변형한 후 SVD라는 특이값 분해 개념을 적용해준다.이때 SVD (Singular Value Decomposition)이란, 행렬 m x n의 크기를 가진 행렬 A를 다음으로 분리하는 작업이다.
A (mxn) = U (mxm) Σ (mxn) Vt (nxn)으로 쪼개어 표현할 수 있다.
이때, 시그마는 대각행렬 성질을 띄며 대각 성분이 행렬 A의 특이값을 나타내고 나머지는 0의 값을 갖게 된다.-> 파이썬에 적용하기 위해선 scikit learn - TruncateSVD를 사용하면 된다.
-> 해당 라이브러리를 통해 Σ 행렬의 대각원소 가운데 상위 n개만 고른 것. (행렬 A와 거의 근사값 제공)-> 해당 CBF의 경우 사용자가 특정 게시글에 평점을 준 상황에 대해 추천해주는 것에 유용하다.
-> 현재 우리가 진행하려는 프로젝트에는 부적합❗
💡 To do list
현재 상황 복기.
category meta data 테이블 생성 완료
Data Warehouse 구축 완료
-> 단순히 food_name을 통해 데이터 프레임을 병합시켜 주기엔, 구축한 Data Warehouse에서의 음식 이름이 게시글 제목으로 되어 있는 상황.category meta data table 내 한 음식이어도 여러 카테고리로 분류되는 경우도 다반.
따라서 앞서 본 벡터화를 통한 코사인 유사도 기반 추천 시스템이 아닌 TF-IDF의 컨텐츠 기반 추천 시스템을 구축하고자 한다. TF-IDF 기반 추천시스템의 사용 이유는 한가지다. 텍스트에 매유 유용하기 때문이다.