우리는 매일 '알 수 없는 알고리즘'에 이끌려 영상을 보고 쇼핑을 합니다. 나보다 나를 더 잘 아는 것 같은 이 추천 시스템의 중심에는 '협업 필터링'이라는 강력한 수학적 장치가 있습니다. "당신과 비슷한 취향을 가진 다른 사람들은 이 상품도 좋아했습니다"라는 단순한 논리를 수조 단위의 데이터 연산으로 구현해 낸 것이죠.
추천 알고리즘은 단순히 과거 기록을 나열하는 것이 아니라, 사용자-아이템 행렬 사이의 숨겨진 관계를 찾아내는 고도의 선형대수학적 작업입니다. 오늘은 취향을 숫자로 변환하고, 그 숫자들 사이의 거리를 측정하여 미래의 선호도를 예측하는 협업 필터링의 내막을 분석해 보겠습니다.

사용자-아이템 행렬(User-Item Matrix): 취향을 담는 그릇
협업 필터링의 첫 단계는 모든 사용자를 행(Row)으로, 모든 아이템을 열(Column)로 하는 거대한 행렬을 만드는 것입니다. 각 칸에는 사용자가 아이템에 남긴 평점이나 클릭 여부가 기록됩니다.
하지만 현실에서 한 사용자가 모든 아이템을 소비할 수는 없습니다. 그래서 이 행렬의 대부분은 비어있는 '희소 행렬(Sparse Matrix)' 상태가 됩니다. 추천 시스템의 본질은 바로 이 비어있는 칸(Unknown)에 들어갈 숫자를 수학적으로 예측하여, 가장 높은 점수가 예상되는 아이템을 사용자에게 제안하는 것입니다.
유사도 측정의 핵심: 코사인 유사도(Cosine Similarity)의 기하학
"비슷한 취향"을 판별하려면 두 데이터 사이의 거리를 측정해야 합니다. 이때 가장 널리 쓰이는 것이 코사인 유사도입니다. 이는 두 사용자의 평점 데이터를 고차원 공간상의 '벡터'로 간주하고, 두 벡터 사이의 각도를 측정하는 방식입니다.
단순한 유클리드 거리와 달리 코사인 유사도는 벡터의 크기(평점을 얼마나 많이 남겼는가)보다 벡터의 방향(어떤 성향의 평점을 남겼는가)에 집중합니다. 수식으로는 두 벡터의 내적을 각각의 크기로 나눈 값($\cos \theta = \frac{A \cdot B}{\|A\|\|B\|}$)으로 표현됩니다. 값이 1에 가까울수록 두 사람의 취향은 완벽하게 일치한다고 판단합니다. 공간상의 각도가 마음의 거리를 증명하는 셈입니다.
사용자 기반(User-Based) vs 아이템 기반(Item-Based) CF
협업 필터링은 크게 두 가지 관점으로 나뉩니다. 사용자 기반은 "나와 닮은 이웃"을 찾아 그들이 좋아한 것을 추천합니다. 반면 아이템 기반은 "내가 좋아했던 아이템과 닮은 다른 아이템"을 찾습니다.
실무에서는 보통 아이템 기반 방식이 더 선호됩니다. 사용자의 취향은 변덕스럽지만, 영화나 상품 자체의 특성은 변하지 않아 유사도 계산이 더 안정적이기 때문입니다. 넷플릭스에서 "영화 A를 본 시청자가 많이 본 다른 영화"를 추천해 주는 원리가 바로 이 아이템 간 유사도 행렬에 근거합니다.
희소성 문제(Sparsity Problem)와 텅 빈 행렬의 역설
협업 필터링의 최대 난제는 앞서 언급한 '희소성'입니다. 데이터가 너무 없으면 유사도를 계산할 공통 분모 자체가 사라지기 때문입니다. 이를 '콜드 스타트(Cold Start)'라고도 부르는데, 신규 사용자나 신규 아이템은 추천 데이터가 없어 알고리즘이 작동하지 않는 현상입니다.
이 문제를 해결하기 위해 데이터 과학자들은 성별, 연령 등 사용자 정보를 결합한 하이브리드 방식을 쓰거나, 다음에 설명할 '행렬 분해' 기법을 동원합니다. 수학은 텅 빈 공간에서도 데이터의 상관관계를 추출해 내는 놀라운 회복력을 보여줍니다.
행렬 분해(Matrix Factorization): 잠재 요인(Latent Factor)의 발견
현대 추천 알고리즘의 정수는 행렬 분해에 있습니다. 거대한 평점 행렬을 '사용자 특징 행렬'과 '아이템 특징 행렬'이라는 두 개의 작은 행렬로 쪼개는 것이죠. 이 과정에서 우리는 눈에 보이지 않는 잠재 요인(Latent Factor)을 발견하게 됩니다.
아래 표는 협업 필터링의 진화 과정과 그 수학적 특징을 정리한 내용입니다.
| 기술 단계 | 주요 수학 모델 | 핵심 가치 |
|---|---|---|
| 기본 CF | 코사인 유사도, 피어슨 상관계수 | 유사한 이웃의 단순 평점 반영 |
| 행렬 분해 (MF) | SVD (특이값 분해), ALS | 취향의 본질(잠재 요인) 파악 |
| 딥러닝 기반 추천 | Neural Collaborative Filtering | 비선형적인 복잡한 취향 패턴 학습 |
| 콘텐츠 기반 필터링 | TF-IDF, Word2Vec | 아이템의 텍스트/이미지 속성 활용 |
데이터로 그리는 인간의 취향 지도, 그 무한한 확장성
협업 필터링은 우리에게 중요한 교훈을 줍니다. "나의 개성은 사실 수많은 타인의 데이터와 연결되어 정의된다"는 점이죠. 내가 고른 영화 한 편이 행렬의 한 칸을 채우고, 그 데이터가 다시 타인의 취향을 결정하는 이 거대한 피드백 루프는 현대 데이터 사회를 움직이는 가장 강력한 엔진입니다.
수학적 유사도를 통해 파편화된 개인들을 하나의 취향 지도로 엮어내는 과정은 단순히 매출을 올리는 도구를 넘어, 인간의 행동 양식을 이해하는 새로운 지평을 열어주었습니다. 2,000자라는 긴 호흡으로 정리한 유사도의 수학이, 여러분이 추천 알고리즘의 화려한 겉모습 너머에 숨겨진 '연결의 미학'을 발견하는 계기가 되길 바랍니다.
지금까지 추천 알고리즘의 근간인 협업 필터링의 원리와 수학적 기법을 살펴보았습니다. 숫자로 마음을 읽고 데이터로 미래의 즐거움을 예측하는 이 흥미로운 세계에서 여러분만의 분석 통찰을 더욱 넓혀 가시길 응원합니다.