협업 필터링(Collaborative Filtering)

•
2026년 11월 01일 발행•2026년 11월 01일 수정
요약

다수 사용자의 행동 기록에서 유사한 사용자·아이템을 찾아 아직 접하지 않은 아이템의 선호를 예측하는 추천 기법

초급
벡터 유사도 계산과 추천 시스템의 기본 구조를 이해하고, 희소 행렬 데이터를 다룰 수 있어야 한다.

#개념

협업 필터링(Collaborative Filtering)은 다수 사용자의 과거 행동 기록을 모아 특정 사용자가 아직 접하지 않은 아이템에 대한 선호를 예측하는 추천 기법이다. 아이템의 속성 정보 없이 "비슷한 취향의 사용자는 비슷한 아이템을 좋아한다"는 가정만으로 동작하며, 추천 시스템(Recommender System)의 가장 대표적인 접근법으로 자리 잡았다.
협업 필터링의 입력은 행이 사용자, 열이 아이템인 사용자-아이템 행렬(User-Item Matrix)이다. 각 칸에는 평점·클릭·구매 같은 상호작용 값이 들어가며, 대부분의 칸은 비어 있다. 협업 필터링의 목표는 관측되지 않은 사용자-아이템 쌍의 선호도를 추정해 상위 아이템을 추천하는 것이며, 접근 방식에 따라 다음과 같이 나뉜다.
협업 필터링의 분류
  • 사용자 기반(User-based) 협업 필터링: 대상 사용자와 행동 패턴이 비슷한 이웃 사용자를 찾고, 이웃이 선호한 아이템을 추천한다. 사용자 수가 많고 취향이 자주 변하는 환경에서는 이웃 계산 비용이 커진다.
  • 아이템 기반(Item-based) 협업 필터링: 같은 사용자들에게 함께 소비된 아이템끼리 유사도를 계산하고, 사용자가 소비한 아이템과 유사한 아이템을 추천한다. 아이템 간 관계는 비교적 안정적이어서 미리 계산해 두기 쉽다.
  • 모델 기반(Model-based) 협업 필터링: 상호작용 데이터로 잠재 요인 모델이나 신경망을 학습해 선호도를 예측한다. 행렬 분해가 대표적이며, 희소한 데이터에서 이웃 기반 방법보다 일반화가 잘 되는 편이다.
아이템 기반 방법은 사와르(Sarwar) 등이 2001년 WWW 학회 논문에서 체계적으로 정리했다. 이들은 MovieLens 데이터에서 코사인, 상관계수, 조정 코사인 유사도를 비교했고, 아이템 기반 방법이 사용자 기반 방법보다 계산 성능이 크게 높으면서 추천 품질도 더 좋다는 결과를 보고했다. 아이템 유사도를 사전 계산해 두면 온라인 응답도 빨라진다.
2003년 린든(Linden) 등은 아마존(Amazon.com)의 아이템-투-아이템(Item-to-Item) 협업 필터링을 소개했다. 함께 구매된 아이템 쌍의 유사도 표를 오프라인에서 계산해 두고, 온라인에서는 사용자가 구매·평가한 아이템과 유사한 아이템만 모아 추천한다. 온라인 계산량이 전체 고객 수나 카탈로그 크기와 무관하다는 점에서 대규모 전자상거래 추천에서 널리 참고되는 설계가 되었다. 이웃 기반 방법의 핵심은 유사도 계산이다. 사용자 또는 아이템을 상호작용 벡터로 표현한 뒤, 다음과 같은 척도로 두 벡터의 가까움을 측정한다.
주요 유사도 척도
  • 코사인 유사도(Cosine Similarity): 두 벡터 사이 각도의 코사인으로, $\mathrm{sim}(a,b) = \frac{a \cdot b}{\|a\| \|b\|}$로 계산한다. 구현이 간단하고 희소 벡터 연산에 효율적이다.
  • 피어슨 상관계수(Pearson Correlation Coefficient): 각 사용자의 평균 평점을 뺀 뒤 공통으로 평가한 항목에 대해 상관을 계산한다. 평점을 후하게 또는 짜게 주는 사용자별 성향을 보정한다.
  • 조정 코사인(Adjusted Cosine): 아이템 기반 방법에서 각 사용자의 평균 평점을 빼고 코사인을 계산한다. 사와르 등의 실험에서 아이템 유사도 척도로 가장 좋은 결과를 보였다.
  • 자카드 유사도(Jaccard Similarity): 두 집합의 교집합 크기를 합집합 크기로 나눈 값으로, $\frac{|A \cap B|}{|A \cup B|}$이다. 클릭·구매 여부처럼 이진 데이터에 적합하다.
유사도를 구한 뒤에는 이웃의 선호를 가중 평균해 예측값을 만든다. 아이템 기반 방식에서 사용자 $u$의 아이템 $i$에 대한 예측 평점은 $\hat{r}_{ui} = \frac{\sum_{j \in N(i)} \mathrm{sim}(i,j) \, r_{uj}}{\sum_{j \in N(i)} |\mathrm{sim}(i,j)|}$로 계산하며, $N(i)$는 사용자 $u$가 평가한 아이템 중 $i$와 가장 유사한 $k$개 아이템이다. 이웃 수 $k$가 너무 작으면 예측이 불안정하고, 너무 크면 관련성이 낮은 아이템이 섞여 품질이 떨어진다.
협업 필터링이 사용하는 피드백은 성격에 따라 두 가지로 나뉜다. 명시적 피드백(Explicit Feedback)은 별점·좋아요처럼 사용자가 직접 선호를 표현한 데이터로, 신호가 분명하지만 양이 적다. 암묵적 피드백(Implicit Feedback)은 클릭·조회·구매·체류 시간처럼 행동에서 추론한 데이터로, 양이 많지만 부정 신호가 없고 잡음이 크다. 관측되지 않은 쌍은 싫어서가 아니라 몰라서일 수도 있으므로 암묵적 피드백에는 별도의 모델링이 필요하다.
모델 기반 협업 필터링의 대표는 행렬 분해(Matrix Factorization)다. 사용자와 아이템을 같은 저차원 잠재 공간의 벡터로 표현하고 두 벡터의 내적으로 선호도를 예측한다. 2017년 허(He) 등은 내적 대신 다층 퍼셉트론으로 상호작용 함수를 학습하는 신경망 협업 필터링(Neural Collaborative Filtering, NCF)을 제안했다.
다만 2020년 렌들(Rendle) 등은 하이퍼파라미터를 적절히 조정하면 단순한 내적이 다층 퍼셉트론으로 학습한 유사도보다 성능이 높다고 보고했다. 다층 퍼셉트론은 내적을 학습하기 어렵고 서빙 비용도 크다는 지적이며, 모델 복잡도보다 튜닝과 평가 설계가 중요하다는 점을 보여 준다. 협업 필터링은 실무에서 다음과 같은 고질적인 문제를 안고 있다.
협업 필터링의 주요 문제
  • 희소성(Sparsity): 사용자 한 명이 소비하는 아이템은 전체 카탈로그의 극히 일부라서 행렬 대부분이 비어 있다. 공통으로 소비한 아이템이 적으면 유사도 추정이 불안정해진다.
  • 콜드 스타트(Cold Start): 상호작용 기록이 없는 신규 사용자나 신규 아이템은 이웃을 찾거나 잠재 벡터를 학습할 근거가 없다. 콘텐츠 정보나 인기 기반 추천으로 보완한다.
  • 인기 편향(Popularity Bias): 상호작용이 많은 인기 아이템이 유사도 계산과 학습을 지배해 추천이 소수 아이템에 쏠린다. 롱테일 아이템의 노출 기회가 줄고 추천 다양성이 낮아진다.
  • 확장성(Scalability): 사용자와 아이템이 수천만 단위로 늘면 모든 쌍의 유사도를 계산하는 비용이 급격히 커진다. 계산 범위를 줄이는 별도의 설계가 필요하다.
확장성 문제는 계산 범위를 줄여 해결한다. 아이템 유사도를 배치로 사전 계산해 상위 $k$개만 저장하거나, 사용자·아이템 임베딩을 근사 최근접 이웃(Approximate Nearest Neighbor, ANN) 인덱스나 벡터 데이터베이스(Vector Database)에 올려 내적 또는 코사인 기준으로 후보를 빠르게 검색한다. 대규모 서비스에서는 협업 필터링을 후보 생성 단계에 두고, 이후 랭킹 모델이 다양한 특징으로 최종 순서를 정하는 다단계 구조가 흔하다.
평가는 오프라인과 온라인으로 나뉜다. 평점 예측 문제에서는 평균 제곱근 오차(Root Mean Squared Error, RMSE)를 쓰고, 상위 $N$개 추천 문제에서는 Precision@K, Recall@K, NDCG, Hit Rate 같은 순위 지표를 쓴다. 오프라인 평가는 과거로 학습하고 미래를 예측하도록 시간 순서로 분할해야 데이터 누수(Data Leakage)를 피할 수 있으며, 최종 효과는 클릭률·전환율 기준의 A/B 테스트(A/B Testing)로 확인한다. 협업 필터링은 다른 추천 방식과 다음과 같이 비교된다.
추천 방식 비교
  • 협업 필터링: 상호작용 데이터만으로 동작해 도메인 지식 없이도 의외성 있는 추천이 가능하다. 반면 상호작용이 없는 대상에는 추천하기 어렵다.
  • 콘텐츠 기반 필터링(Content-based Filtering): 아이템 속성(카테고리, 텍스트, 이미지)과 사용자 프로필의 유사도로 추천한다. 신규 아이템에도 적용할 수 있지만 사용자가 이미 아는 범위의 비슷한 아이템만 추천하기 쉽다.
  • 하이브리드(Hybrid) 추천: 두 방식을 결합하거나 아이템 속성을 협업 모델의 입력으로 함께 사용한다. 콜드 스타트와 다양성 문제를 완화할 수 있어 실무 시스템에서 널리 쓰인다.
전자상거래에서 협업 필터링은 상품 상세 페이지의 "이 상품을 본 고객이 함께 본 상품", 장바구니의 "함께 구매한 상품", 홈 화면의 개인화 추천 등에 쓰인다. 패션 커머스처럼 신상품 유입이 빠르고 상품 수명이 짧은 도메인에서는 아이템 기반 협업 필터링을 세션 행동과 결합하고, 신규 상품은 이미지·텍스트 임베딩 같은 콘텐츠 신호로 보완하는 구성이 자주 쓰인다.
협업 필터링을 도입할 때는 암묵적 피드백의 신호 정의(클릭과 구매의 가중치), 봇·어뷰징 트래픽 제거, 인기 편향 보정, 추천 결과의 다양성과 신선도 관리를 함께 설계해야 한다. 협업 필터링은 단순하지만 강력한 기준선이므로, 복잡한 딥러닝 추천 모델을 도입하기 전에 성능 비교의 출발점으로 삼는 것이 좋다.

#관련 용어

사용자-아이템 행렬
행이 사용자, 열이 아이템이고 각 칸에 상호작용 값을 담은 희소 행렬
코사인 유사도
두 벡터 사이 각도의 코사인으로 계산하는 유사도 척도
행렬 분해
사용자-아이템 행렬을 저차원 사용자·아이템 행렬의 곱으로 근사하는 모델 기반 협업 필터링 방법
암묵적 피드백
클릭·조회·구매처럼 사용자 행동에서 추론한 선호 신호
콜드 스타트
상호작용 기록이 없는 신규 사용자·아이템에 추천하기 어려운 문제
근사 최근접 이웃(ANN)
정확도를 일부 양보해 고차원 벡터의 최근접 이웃을 빠르게 찾는 검색 방법

#직무 연관도

DA
Data Analyst
보통
추천 영역의 클릭률·전환율과 인기 편향·다양성 지표를 분석해 추천 효과를 평가
DS
Data Scientist
밀접
추천 모델을 설계하고 유사도 척도·이웃 수·피드백 정의를 실험해 추천 품질을 개선
DE
Data Engineer
높음
대규모 유사도 사전 계산 배치와 ANN 기반 후보 검색, 추천 결과 서빙 파이프라인을 구축

#사용 사례

전자상거래미디어인터넷 서비스
개요
협업 필터링은 사용자 행동 데이터가 풍부한 서비스에서 개인화 추천의 기본 기법으로 쓰인다. 전자상거래에서는 함께 본 상품·함께 구매한 상품과 홈 화면 개인화 추천에, 미디어에서는 영화·음악·동영상 추천에, 인터넷 서비스에서는 콘텐츠 피드와 친구·그룹 추천에 활용된다.
사례
패션 커머스 앱의 상품 상세 페이지에서 같은 세션에 함께 조회된 상품 쌍으로 아이템 유사도를 사전 계산하고, '이 상품을 본 고객이 함께 본 상품' 영역에 상위 유사 상품을 노출한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.