메모리 기반 협업 필터링의 원리와 응용

김동준·2025년 12월 1일

Recommend System

목록 보기
3/14

메모리 기반 협업 필터링의 원리와 응용: 이론, 예시, 한계를 중심으로

메모리 기반 협업 필터링은 추천 시스템 분야에서 사용자들의 상호작용 정보를 바탕으로 실시간 또는 준실시간으로 개인 맞춤형 추천을 제공하는 대표적인 기법이다. 이 장문의 글에서는 해당 알고리즘의 작동 구조, 수식, 실제 응용 상황, 그리고 한계와 현대적 대안을 실제 예시와 함께 체계적으로 정리하고자 한다.

서론: 협업 필터링의 핵심과 메모리 기반 방식의 위상

협업 필터링(Collaborative Filtering, CF) 기법은 대중적으로 영화, 쇼핑, 음악 등 다양한 서비스에서 활용되는 추천 알고리즘의 뼈대를 이룬다. 크게 메모리 기반과 모델 기반으로 양분할 수 있는데, 본고에서는 가장 고전적이면서도 직관적으로 이해하기 쉬운 메모리 기반 협업 필터링에 집중한다. 이 접근법은 데이터가 모델에 '기억'되어 있다는 점과, 실시간 계산을 통해 가까운 이웃(즉, 유사한 사용자나 아이템)을 탐색함으로써 추천을 만들 수 있다는 점에서 명명되었다[1][2][3].

핵심 원리:

  • “비슷한 사용자는 비슷한 아이템을 선호한다.”
  • “내가 좋아한 아이템을 좋아한 다른 사람이 좋아한 새 아이템도 나에게 추천할 만하다.”

이러한 집단 지성의 개념을 수학적 행렬로 일반화하여 효율적으로 추천 결과를 도출한다는 점에서, 메모리 기반 방식은 데이터 과학의 기본 실무 능력을 함양하는 데에도 중요하게 다뤄진다.


1. 메모리 기반 협업 필터링의 동작 구조

1.1 사용자-아이템 매트릭스(User-Item Matrix) 개념

핵심 데이터 구조는 사용자-아이템 행렬이다.
이 행렬은 행은 개별 사용자, 열은 상품이나 영화와 같은 아이템으로 구성되며, 각 셀의 값은 명시적 평점(예: 1~5점), 클릭 여부, 구매, 시청 등의 상호작용(암시적 피드백)이 들어간다.
아래 시각화는 대표적인 사용자-아이템 평점 희소행렬의 예시이다.

메모리 기반 협업 필터링의 사용자-아이템 희소행렬 예시
실제 업무에서는 대부분 값이 비어 있는 희소 행렬(Sparse Matrix)의 형태로 나타난다.

1.2 근접 이웃(Nearest Neighbor) 탐색 원리 및 단계

프로세스는 다음과 같이 나눌 수 있다.

  1. 유사도 측정
    사용자 간(사용자 기반) 또는 아이템 간(아이템 기반) 유사도를 다양한 수치적 척도(코사인 유사도, 피어슨 상관계수 등)로 계산한다.
  2. 이웃 선정
    Top-k(보통 10~50명 또는 개)의 가장 유사한 사용자를 선택(사용자 기반)하거나, 가장 비슷한 아이템을 선택(아이템 기반)한다.
  3. 평점/선호 예측
    이웃의 행동 데이터(평점, 구매 등)를 기반으로 타겟 사용자가 아직 평가하지 않은 아이템에 대한 예측 평점을 계산한다.
  4. 상위 N개(Top-N) 추천
    평점 예측값이 높은 순서대로 미처 경험하지 않은 아이템을 추천한다[1][4].

1.3 수식으로 표현되는 구조

대표적인 사용자 기반 협업 필터링의 예측 평점 공식은 다음과 같다:

Rui^=∑u′sim(u,u′)×Ru′i∑u′∣sim(u,u′)∣\hat{R_{ui}} = \frac{\sum_{u'} sim(u,u') \times R_{u'i}}{\sum_{u'} |sim(u,u')|}
  • $$ \hat{R_{ui}} : 사용자 $$u가 아이템 ii에 줄 것으로 예측되는 평점
  • $$ sim(u, u') $$: 두 사용자 간의 유사도(코사인, 피어슨 등)
  • $$ R_{u'i} : 유사 사용자 $$u'가 아이템 ii에 실제 준 평점

아이템 기반도 유사 구조로 식이 구성되며, 그 차이점은 '유사도'와 '평점' 계산 주체가 행(사용자)에서 열(아이템)로 바뀐다[5][6].


2. 사용자 기반 vs 아이템 기반 협업 필터링

2.1 사용자 기반 협업 필터링 (User-Based CF)

  • 핵심 아이디어:
    비슷한 취향의 사용자들은 향후 행동도 비슷할 확률이 높다.
  • 예시:
    "김철수"와 취향이 유사한 "박영희"가 최근 본 영화를 추천받음. 즉, 박영희가 높게 평가한 영화 중 김철수가 아직 안 본 영화를 추천.
  • 적용 분야:
    SNS 친구 추천, 커뮤니티에서 팔로우할 만한 사용자 등.

2.2 아이템 기반 협업 필터링 (Item-Based CF)

  • 핵심 아이디어:
    사용자가 어떤 아이템을 좋아했다면, 유사한 아이템도 좋아할 가능성이 높다.
  • 예시:
    "아이언맨"을 극찬한 사용자가 있다면, 그가 아직 시청하지 않은 유사작품("토르", "어벤져스" 등)을 추천.
  • 적용 분야:
    영화, 서적, 상품, 음악 등 대규모 아이템군에서 출현 빈도가 잦음.

2.3 구조적 특성과 행렬 연산

다음은 유사도 계산의 과정 중 하나인 코사인 유사도로 구한 사용자 간(4명 예시) 유사도 행렬을 시각화한 예제다.

코사인 유사도를 활용한 사용자 간 유사도 행렬 예시


3. 실제 예시 시나리오와 코드

3.1 실제 예시 - 사용자 기반

다음은 사용자-아이템 평점 행렬을 통한 영화를 추천하는 상황이다.

아이언맨노팅힐토이 스토리올드보이
김철수5–2–
이영희–3–1
박영수4––5
최수정–24–

김철수는 '노팅힐'과 '올드보이'에 대한 평점을 내리지 않았다. 이때, 김철수와 유사도가 가장 높은 이의 평점(또는 이웃 여러 명의 가중 평균 평점)을 예측값으로 활용, 미시청 작품을 추천하게 된다.

3.2 실제 예시 - 아이템 기반

"박영수"가 '토이 스토리'를 높게 평가했다면, '올드보이' 등 유사도 높은 아이템(영화)을 추천.

3.3 현실 상황의 인포그래픽 예시

넷플릭스와 같은 서비스에서 사용자의 시청 이력(파란색 블록)과 다른 사용자의 추천 영화가 어떻게 최종 추천 리스트로 연결되는지 한눈에 보여주는 인포그래픽이 실제 업무에서 자주 활용된다.

예시와 함께 넷플릭스 추천엔진 이해하기 : 사용자 기반 필터링 인포그래픽


4. 메모리 기반 협업 필터링의 장/단점 및 한계

4.1 장점

  • 도메인 지식 불필요: 별도의 아이템 속성 정보 없이 사용자 행동 데이터만으로 추천 가능[5][1].
  • 직관적 고찰과 설명: 추천 결과의 논리적 원리와 근거를 쉽게 인지, 설명 가능[7][3].
  • 랜덤 또는 규칙 없는 데이터셋에도 적용 가능: 특별한 데이터 전처리 없이 바로 사용 가능.

4.2 단점

  • 콜드 스타트(Cold-Start) 문제: 신규 사용자/아이템 데이터 부족 시 추천 불가 혹은 성능 급감[3].
  • 희소성(Sparsity) 문제: 대부분의 셀에 데이터 부족, 유사도 계산의 신뢰도 하락[3].
  • 대규모 스케일에서 연산 효율 저하: 데이터가 늘수록 메모리 소모와 연산량이 폭증[6].
  • 오버피팅 리스크: 노이즈나 이상치에 과도하게 민감해질 수 있음.
  • 유사도 기반 예측의 한계: 행렬 계산상 코-레이팅(co-rated) 적은 경우 등 예측력 저하.

4.3 인구통계 및 Hybrid 기법 보완

이러한 한계 해결을 위해 모델 기반(행렬 분해, 딥러닝 등), 콘텐츠 기반, 하이브리드(혼합형) 방식이 등장했다. 콜드 스타트 문제에 대해서는 인구통계 정보를 병합하여 유사사용자 추정, 신규 사용자에게 최소한의 피드백을 유도(별점 몇 개 강제 입력)하는 디자인이 일반적이다[3][7].


5. 메모리 기반 협업 필터링의 확장 및 현대적 흐름

  • 딥러닝 및 강화학습: 딥러닝 기반 Feature Embedding, 강화학습과 하이브리드 구조 통합 연구가 활발하다.
  • 대규모 데이터 환경: Apache Spark, PySpark 등 분산기반 연산 적용, 희소 행렬 최적화 활용 사례 증가[6][8].
  • 실제 산업 적용: 유튜브, 아마존, 쿠팡, 넷플릭스 등 세계적 플랫폼의 실시간/근실시간 추천 엔진에 적극 활용.

결론

메모리 기반 협업 필터링은 추천 시스템의 기본이자 대표적인 “탐색적” 접근법으로, 기계학습 모델 구축 전 단계 혹은 베이스라인 알고리즘으로 널리 쓰인다. 단순성과 직관성, 그리고 데이터 확장성, 설명 용이성 등의 장점 덕분에 여전히 추천 시스템 구성 필수요소로 자리 잡고 있다. 그러나 희소성, 콜드 스타트, 대규모 스케일의 한계 등 실무적 과제에 대해선 하이브리드, 모델 기반 방법, 최신 딥러닝 기법 등과 병행이 필요하다. 추천 시스템을 설계할 때 데이터 구조(희소 및 결측치)와 비즈니스에 따라 가장 적합한 방식을 융합적으로 선택하는 것이 전문가적 설계의 핵심이다.


출처
[1] R4TINGS Workbook 5.1 메모리 기반 협업 필터링 https://r4tings.com/recommender/docs/workbook/latest/ch-05-sec-01
[2] 협업 필터링(Collaborative Filtering) https://openads.co.kr/content/contentDetail?contsId=15951
[3] 메모리 기반 CF 추천시스템의 문제점 - 데하 - 티스토리 https://data-science-hi.tistory.com/133
[4] 𒀭R4TINGS 🢖 Workbook 🢖 5. 이웃 기반 협업 필터링 추천 https://r4tings.com/recommender/docs/workbook/latest/ch-05
[5] 추천 시스템 기본 - 협업 필터링(Collaborative Filtering) - ① https://kmhana.tistory.com/31
[6][Spark] Spark 로 Memory-Based Collaborative Filtering 구현하기 https://westlife0615.tistory.com/1047
[7][이론정리]Collaborative Filtering https://www.blossominkyung.com/recommendersystem/collaborative-filtering
[8] Apache Spark: 인메모리 데이터 처리 엔진 활용 🚀 https://www.jaenung.net/tree/3120
[9] 알고리즘 추천 시스템을 위한 '협업 필터링'이란? https://www.elancer.co.kr/blog/detail/291
[10] #추천시스템 : 콘텐츠 기반 필터링(Contents-based-filtering), 협업필터링(Collaborate Filtering) https://blog.naver.com/th9231/221984972779
[11] Memory-based Collaborative Filtering - Studying data - 티스토리 https://my-mindpalace.tistory.com/7
[12] Practical Spark – Memory (10) - 1ambda https://1ambda.blog/2021/12/27/practical-spark-10/
[13] 추천 알고리즘의 이해와 활용: 콘텐츠 기반 필터링과 협업 필터링 - F-Lab https://f-lab.kr/insight/understanding-recommendation-algorithms-20250207

profile
Story Engineer

0개의 댓글