사용자들은 Search를 통해 자신에게 필요한 정보를 찾는다.
Search하는 과정은 Query를 걸어 자신이 필요한 정보를 찾는 것이고 이것을 Pull이라고 한다.
반대로 Recommend는 사용자들에게 필요한 정보를 반대로 보여주는 것이고 이것을 Push라고 한다.
과거에는 상품, 컨텐츠가 제한적이여서 사람들이 다들 똑같은 상품, 컨텐츠를 소비했다.
하지만 지금은 웹, 모바일 환경 발달과 제조 혁신을 통해 상품, 컨텐츠가 풍요로워졌다.
그런데 지금도 인기있는 소수의 아이템이 많이 소비되고, 대다수의 아이템이 적게 소비된다.
아래 그래프를 보면 대다수의 아이템이 긴 꼬리처럼 보이는데,
이것을 "Long Tail Phenomenon"이라고 부른다.
그리고 상품, 컨텐츠가 넘쳐나면서 사용자가 원하는 것을 찾는데 오래 걸리기도 한다.
그래서 이것을 해결하기 위해서 추천시스템이 중요해지게 된 이유이며,
Long tail에 있는 아이템을 추천해주는게 추천 시스템이 나아가야할 방향이다.
사용자들은 Long tail 아이템 추천이 잘 될수록 개인화가 잘 되어있다고 느끼고 사용자 만족감도 상승한다.
유저 관련 정보
아이템 관련 정보
유저-아이템 상호 작용 정보
특정 유저에게 적합한 아이템을 추천 or 특정 아이템에 적합한 유저를 추천
→ 유저 - 아이템 상호 작용을 평가할 Score 값 필요
→ 추천을 위한 Score를 구하자
그럼 우선 문제 정의를 해보자면,
추천 문제는 랭킹 또는 예측으로 볼 수 있다.
랭킹 : 유저에게 적합한 아이템 Top K개를 추천하는 문제
랭킹 문제는 Top K를 선정하기 위한 기준 or Score 필요하지만,
유저가 아이템에 가지는 정확한 선호도는 구할 필요 없음
✅ 평가 지표 : Precision@K, Recall@K, MAP@K, nDCG@K
예측 : 유저가 아이템에 대한 선호도를 예측 (평점, 클릭/구매 확률)
- Explicit Feedback : 평점값 예측
- Implicit Feedback : 구매할 확률 예측
✅ 평가 지표 : MAE, RMSE, AUC