Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

협업 필터링(Collaborative Filtering)이란? 개념부터 작동 원리까지

협업 필터링(Collaborative Filtering)의 개념

협업 필터링은 메모리 기반 추론(memory-based reasoning)의 한 유형으로, 개인화된 추천 서비스를 지원하는 데 특히 적합한 기술입니다. 협업 필터링 시스템은 사용자들의 선호 이력에서 출발하며, 거리 함수(distance function)가 선호도의 겹침 정도를 바탕으로 유사성을 판단합니다. 즉, 같은 것을 좋아하는 사람일수록 서로 가까운 위치에 있다고 간주하는 방식입니다.

나아가 평점(투표)에는 거리에 따른 가중치가 부여됩니다. 따라서 자신과 더 가까운 이웃, 즉 취향이 비슷한 사람들의 평가가 최종 추천 결과에 더 큰 영향을 미치게 됩니다.

사회적 정보 필터링으로서의 역할

관점을 바꾸어 말하면, 협업 필터링은 비슷한 취향을 가진 또래 집단(peer group)의 판단을 활용해 특정 사용자의 현재 선호에 맞는 음악, 도서, 와인 등을 찾아내는 방법입니다. 이러한 방식은 '사회적 정보 필터링(social information filtering)'이라고도 불립니다.

협업 필터링은 입소문(word-of-mouth)을 통해 어떤 것이 마음에 들지 판단하는 과정을 자동화합니다. 단순히 여러 사람이 좋아했다는 사실만으로는 충분하지 않습니다. 사람마다 어떤 추천을 더 중요하게 여기는지가 다르기 때문입니다. 예컨대 그동안의 추천이 번번이 적중해 온 절친한 친구의 추천 하나만으로도, 평소 선호하지 않는 장르의 영화라도 관람을 결심할 만큼 강력한 설득력을 가집니다.

신규 사용자를 위한 추천 생성 3단계

자동화된 협업 필터링 시스템에서 새로운 사용자에게 추천을 제공하는 과정은 다음 세 단계로 구성됩니다.

  • 1단계 – 프로필 구축: 신규 고객에게 영화, 음악, 음식점 등 다양한 항목에 대한 평점을 입력받아 사용자 프로필을 작성합니다.
  • 2단계 – 유사도 비교: 일정한 유사도 측정 기준을 사용해 신규 사용자의 프로필을 기존 사용자들의 프로필과 비교합니다.
  • 3단계 – 평점 예측: 유사한 프로필을 가진 사용자들의 평점을 조합하여, 신규 사용자가 아직 평가하지 않은 항목에 부여할 평점을 예측합니다.

협업 필터링의 과제: 희소한 프로필(Sparse Profile)

협업 필터링이 직면한 주요 난제 중 하나는, 평가 가능한 항목의 수가 한 사람이 실제로 경험했거나 평가할 의향이 있는 항목의 수보다 훨씬 많다는 점입니다. 그 결과 프로필은 대체로 희소(sparse)하며, 추천을 생성하기에 사용자 간 선호도의 겹침이 매우 적은 상황이 발생합니다.

프로필의 벡터 표현

사용자 프로필을 벡터(vector)로 표현할 수 있습니다. 벡터의 각 구성 요소는 평가 대상 항목 전체 집합 중 하나의 항목에 해당하며, 각 원소 값은 해당 항목에 대한 프로필 소유자의 평점을 나타냅니다. 평점 척도는 -5부터 5까지이며, 0은 중립, 빈 값은 의견 없음을 의미합니다.

희소성이 만드는 딜레마

벡터에 수천 개의 구성 요소가 있고 각 사용자가 스스로 평가할 항목을 선택한다면, 임의의 두 사용자 프로필 사이에는 어느 정도의 겹침이 생길 가능성이 높습니다. 반대로 사용자에게 특정 항목 집합의 평가를 강제하면 흥미로운 데이터를 놓칠 수 있습니다. 일반적인 항목보다 생소한 항목에 대한 평점이 오히려 해당 사용자의 성향을 더 잘 드러내는 경우가 많기 때문입니다.