목차
1. 추천시스템 분류
2. 추천시스템 Overview
- 2.1 Challenges
- 2.2 Data
- 2.3 Models
- 2.4 Evaluation
추천시스템을 처음 접했던 건 고3..
빅데이터나 AI가 지금만큼은 아니지만 막 화두되고 있던 시기
이쪽으로 입시를 하기로 맘먹고, 관련 도서를 뒤적거리다가
원래 광고나 마케팅에도 관심이 있어서 자연스럽게 추천시스템이 끌렸다.
한창 넷플릭스의 추천 알고리즘이 떠올랐을 때라 넷플릭스 알고리즘 '시네매치'랑 아마존 추천 시스템을 비교하는 활동을 했었던 것 같다.
그러면서 collaborative filtering, cold start, long tail 등 용어를 처음 알게 됐었다.
그리고 휴학하면서는 서비스(모각작)를 만들었는데, 우리가 뭐 이커머스 같은 추천이 필요한 서비스는 아니지만, 그럼에도 이를 홍보하거나 SEO최적화를 할 때는 추천시스템에 대한 이해가 있으면 좋겠다는 생각을 하곤 했다.
그러다, 드디어 4-1인 이번에 "추천시스템 설계"라는 교과를 수강하게 되었다!! ㄷㄱㄷㄱ
대학교 내내 가장 로망이던 수업이라 무척 기대가 된다.
교수님도 휴학 전에 수업 들었던 교수님인데, 넘 좋아하는 교수님이라 너무 기대된다.
짧고 굵게, 동시에 재밌고 이해 쏙쏙 되게 설명해주시는 교수님이다~~ 아자스!!

앞으로 복습겸 주요 내용을 리뷰해보겠다.
오늘은 추천시스템에 대한 전반적인 개요!
여러 기준에 따라 분류가 가능하다

출처 : https://github.com/jihoo-kim/awesome-RecSys
추천 시스템에서 고려해야 하는 challenge
데이터들의 유형
User-Item Interaction Matrix (상호작용 행렬)
위에서 언급한 User와 Item 간의 피드백 데이터를 수학적으로 구조화한 것을
"User-Item Interaction Matrix, Utility Matrix, Rating Matrix" 등으로 부른다.
알고리즘의 복잡도, 데이터 활용의 범위 등에 따라 Basic, Advanced 로 분류할 수 있다.
Basic
이번 학기엔 대부분 Basic models을 주로 배우게 된다
Basic 모델을 분류하는 기준에는 크게 두 가지 관점이 있다.
관점 1 : "어떤 정보를 사용"해서 선호를 추정하는지
Collaborative Filteirng (CF) : ‘사용자-아이템 상호작용 데이터’를 사용해서 추천.
"나와 비슷한 사람(User)은 이것도 좋아하겠지?" 혹은 "이 아이템을 산 사람은 저것도 사더라(Item)"
왜 'collaborative' 라고 이름 붙였을까 생각해보면,
내가 영화 A를 보고 남긴 별점이 나와 취향이 비슷한 다른 사람에게 영화 A를 추천할지 말지 결정하는 중요한 근거가 되듯이, 데이터들이 서로의 추천을 돕는(collaborate) 구조라는 의미 같다.
Content-base Filtering (CBF) : 아이템 속성(카테고리, 설명, 키워드, 장르)만을 사용해서 추천
관점 2 : "학습의 유무"
memory-based Approach : 이전에 사용자가 봤던 영화와 비슷한 영화를 추천.
사용자/아이템 속성 간의 유사성을 직접 계산하여 추천
Similarities
- Cosine Similarity: 두 벡터 사잇각의 cosine 값.
같은 방향(가까울수록) 1, 다른 반대 방향(유사도가 멀수록) 0- Pearson Correlation Coefficient (CenteredCosineSimilarity): ???
- Jaccard Similarity : 두집합의 합집합 크기 대비 교집합 크기 비율
→ 이 3가지는 다음 포스팅에서 자세히 다루겠다!
model-based : 인공지능이 파라미터를 학습해서 추천
Advanced
Offline evaluation
사용중에 말고, 나중에 떼와서. 즉, 이미 수집된 과거 데이터를 사용하여 평가하는 방식
Online evaluation
실제 운영 중인 서비스 환경에서 '실제 사용자'를 대상으로 평가하는 방식
- Rating Prediction (별점/평점 오차 측정 방법)
사용자가 특정 아이템에 부여할 구체적인 수치를 정확하게 예측하는 것이 목표
- RMSE (Root Mean Square Error)
- MAE (Mean Absolute Error)
- Item Ranking (추천 순서를 고려한 오차 측정 방법)
사용자가 좋아할 만한 아이템을 순서대로 나열하는 것이 목표
추천은 기존 머신러닝보다 “순서”가 훨씬 중요하다는 차이점이 있음
- MAP (Mean Average Precision ) : 모든k에 대한 Precision@k의평균
- NDCG (NormalizedDiscountedCumulativeGain)
- MRR (Mean Reciprocal Rank)
끝!