추천 시스템이란? (Recommendation System)

이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 사이트와, 다음 두 채널도 오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
●  잔재미코딩 뉴스레터 오픈 [구독해보기]
●  잔재미코딩 유투브 오픈 [구독해보기]

1. 추천 시스템이란? (Recommendation System)

  • Selection, Search로 부터의 한단계 진화
  • item 개수가 한명의 사용자가 한번에 열람 가능한 경우, 보통 사용자는 본인 기준에 의해 selection 함
  • item 개수가 많아지면, 사용자는 원하는 query(질의어)로 search를 시도
  • item 개수도 많고, 원하는 질의(query)가 무엇인지조차 모를 때, recommendation이 매우 유용
  • Amazon, Netflix 등이 recommendation으로 엄청난 성장을 이룸

Recommendation 기본 알고리즘

1.1. Popularity, High Rated Based (가장 단순함)

  • 가장 쉽게 인기도, 즉 높은 평점을 갖는 item을 추천 가능
  • 모두에게 동일한 item이 추천 됨

1.2. Collaborative Filtering (중간 단계)

  • user & item간의 rating을 이용하여, 사용자끼리의 유사도를 찾음
  • 특정 user와 유사한 사용자들이 남긴 평점을 기반으로 해당 user의 평점을 예측
    • explicit 한 평점이 있을 경우에는, 해당 평점을 사용
    • 그렇지 않은 경우에는 explicit한 평점으로 변환
      • e.g) music domain의 경우에는, user가 해당 음악을 들을 횟수로 평점으로 변환하여 사용
  • 즉, 해당 user가 해당 item을 얼마나 좋아할 것인지 수치적으로 예측하는 것을 의미
  • User-User 또는 Item-Item similarity를 이용.
    • 일반적으로 recommendation이 필요한 시스템에서는 Item개수가 user를 월등히 능가함
    • 각각 User-based CF, Item-based CF라고도 함
  • Similarity
    • Euclidean distance, cosine, pearson 등 여러 수학적 유사도 계산 방법이 존재
  • similarity가 높은 사용자 집단에서 각 사용자들이 남긴 평점을 weighted sum으로 계산하여 평점 예측
  • 또는 해당 사용자의 평균평점을 similarity가 높은 사용자 집단의 weighted 조정평균과 더하여 평점 예측
  • 문제점
    • Cold Start Problem
      • 첫 방문한 사용자는 유사한 사용자가 없기 때문에 추천이 되질 않음
      • 따라서, Netflix나 Watcha에서는 첫 방문 시, 일정 개수 이상의 영화에 평점을 남기는 것을 유도
    • User-Rating sparsity Problem
      • 대부분의 사용자는 평점을 잘 남기지 않는 경향이 있음
      • 이들에게는 개인화가 어려움, Popularity based 추천을 하기도 함

1.3. Personalization (개인화)

  • 모두에게 동일한 item이 아닌, 각 개인의 성향에 맞는 item을 추천
  • user-item rating으로 Collaborative Filtering Algorithm, SVD등이 사용 됨