29. 사이킷런을 활용한 추천 시스템 입문

j_hyun11·2022년 2월 22일
0

FUNDAMENTAL

목록 보기
10/11

추천 시스템

  • 사용자(user)에게 관련된 아이템(item)을 추천해 주는 것

    ex) 영화추천

<간단한 추천 로직>
1. 범주형, 이산적인 데이터를 숫자 벡터로 변환
2. 계산한 숫자 벡터의 유사도를 계산해서 유사도가 가까운 (혹은 높은) 제품을 추천해줌

코사인 유사도(Cosine Similarity)

  • 유사도를 계산하는 방법 중 가장 잘 알려진 방법
  • 두 벡터 간의 코사인 값을 이용해 두 벡터의 유사도를 계산

  • 코사인 유사도 범위 : -1 ~ 1사이의 값을 가짐
  • 코사인 유사도가 1에 가까울 수록 유사도가 높음

기타 다른 유사도 계산법

  • 유클리드 거리
  • 자카드 유사도
  • 피어슨 상관계수 등

추천시스템의 종류


출처: https://velog.io/@ijune97/RecommendationAlgorithm

콘텐츠 기반 필터링

  • 어떤 사람이 한 영화를 좋아했다면, 비슷한 콘텐츠의 아이템을 추천하는 방식
  • 순수하게 콘텐츠의 내용만을 비교해서 추천하는 방식
  • 특성(Feature)이 비슷한 콘텐츠를 고르는 요인이 됨

협업 필터링

  • 과거의 사용자 행동 양식(User Behavior) 데이터를 기반으로 추천하는 방식

사용자 기반

  • 유사도를 계산하는 방식
  • 평점행렬로 변환한 후, 평점행렬의 유사도를 계산하여 추천하는 방식
  • "당신과 비슷한 고객들이 다음 상품을 구매했습니다."

아이템 기반

  • 유사도를 계산하는 방식
  • 평점행렬로 변환한 후, 평점행렬의 유사도를 계산하여 추천하는 방식
  • "이 상품을 선택한 다른 고객들은 다음 상품을 구매했습니다."

잠재요인

  • 행렬 인수분해(matrix factorization)를 이용해 잠재요인을 분석
  • 평점행렬을 분해하여 더 많은 정보들을 고려하는 방식

행렬 인수분해

SVD(Singular Vector Decomposition)

  • ALS(Alternating Least Squares)
  • NMF(Non-Negative Factorization)

실제 추천 시스템

  • CTR(Click Through Rate) : 클릭률
  • CTR은 마케팅에서도 중요한 지표로 작용
  • 이러한 데이터들을 모아 추천을 한 뒤, 해당 아이템이 적절한 추천인지 여부를 평가

0개의 댓글