5.1 메모리 기반 협업 필터링

"메모리 기반 협업 필터링"에서는 메모리 기반 협업 필터링에 대한 개념을 개략적으로 살펴봅니다. 5.2 "유사도 가중 평균 기반 평점 예측"에서는 유사도 데이터와 평점 데이터로 예측 평점을 계산하고 상위 N개 아이템을 추천하는 방법에 대해 살펴봅니다. 5.3 "평점 평균과 유사도 평균 중심 가중 평균 기반 평점 예측"에서는 평점 데이터와 유사도 데이터, 그리고 평점 평균과 유사도 평균 중심 가중 평균 기반으로 예측 평점을 계산하고 상위 N개 아이템을 추천하는 방법에 대해 살펴봅니다. 5.4 "평점 평균과 유사도 Z점수 가중 평균 기반 평점 예측"에서는 평점 데이터와 유사도 데이터, 그리고 평점 평균과 유사도 Z점수 가중 평균 기반으로 예측 평점을 계산하고 상위 N개 아이템을 추천하는 방법에 대해 살펴봅니다. 5.5 "예제 코드 실행해보기"에서는 5.2에서 5.4의 "직접 계산하기"의 계산 결과에 대해 평점 데이터 파일과 예제 코드를 사용하여 재확인합니다.

5.1 메모리 기반 협업 필터링

협업 필터링은 유사한 사용자들의 아이템에 대한 평점이나 유사한 아이템에 대한 사용자들의 평점을 바탕으로 한 사용자의 선호 이력이 없는 아이템들에 대한 평점을 예측하는 추천 방법입니다. 협업 필터링 추천 모델은 보통 메모리 기반과 모델 기반으로 구분됩니다. 쉽게 설명하자면 예컨대 사용자와 아이템, 그리고 평점으로 구성된 평점 데이터를 모두 메모리에 읽어 들여 특정 사용자에게 아이템을 추천하는 접근 방식을 메모리 기반 협업 필터링이라고 하며, 평점 데이터들을 통하여 모델을 사전에 학습하고 이 모델을 통하여 추천하는 접근 방식을 모델 기반 협업 필터링이라고 합니다. 이 장에서 다루는 이웃 기반 협업 필터링은 추천 시스템에서 가장 많이 사용되는 전통적인 추천 모델 중 하나로 메모리 기반 협업 필터링입니다.

이웃 기반 협업 필터링은 평점 데이터를 바탕으로 보통 유사도를 계산하여 근접 이웃(Nearest Neighbor)을 선정하고 이를 통해 추천을 위한 아이템 리스트를 생성하여 추천이 이루어집니다. 이때 유사도를 계산하는 방법에 따라 사용자 기반 협업 필터링과 아이템 기반 협업 필터링으로 다시 구분됩니다. 사용자 기반 협업 필터링은 한 사용자와 유사한 이웃 사용자들은 아이템들에 대한 선호도가 유사하여 비슷한 평점을 매길 것이라는 가정으로 평점을 매긴 사용자를 중심으로 유사도를 계산하여 아이템을 추천하는 방법입니다. 그리고, 아이템 기반 협업 필터링은 한 아이템과 유사한 이웃 아이템들은 사용자들의 선호도가 유사하여 비슷한 평점을 매겨질 것이라는 가정으로 아이템에 매겨진 평점을 중심으로 유사도를 계산하여 아이템을 추천하는 방법입니다.

  • 사용자 기반 협업 필터링
  • 아이템 기반 협업 필터링

이 장에서 다루는 이웃 기반 협업 필터링은 일반적인 절차는 다음과 같습니다.

  • 단계1: 사용자 또는 아이템 간 유사도 계산대상 사용자와 다른 사용자 또는 대상 사용자가 평가한 아이템과 평가하지 않은 아이템들 사이의 유사도를 계산한다.
  • 단계 2: 이웃 선정1단계에서 계산된 유사도를 기반으로 대상 사용자나 대상 사용자가 평가한 아이템과 가장 유사한 k개의 이웃을 선정한다.
  • 단계 3: 평점 예측단계 2에서 선정된 k개의 이웃 평점을 기반으로 사용자가 평가하지 않은 아이템들의 평점을 예측한다.
  • 단계 4: 상위 N개 아이템 추천대상 사용자에게 예측 평점이 높은 순으로 정렬된 아이템 중 상위 N개를 추천한다
한글:1193 영어:24 숫자:22

추천 시스템: 워크북

Comments

Do you have a problem, want to share feedback, or discuss further ideas? Feel free to leave a comment here! Please follow Rust's code of conduct. This comment thread directly maps to a discussion on GitHub, so you can also comment there if you prefer.

Instead of authenticating the giscus application, you can also comment directly on GitHub.