SCIENCE
알고리즘,
취향을 읽는 과학
10초짜리 영상 하나를 봤을 뿐인데, 다음날 피드에는 비슷한 영상이 줄줄이 올라온다.
“혹시 내 폰이 내 마음을 도청하나?” 하는 농담 섞인 의심이 들 법도 하다. 하지만 이 신통방통한 능력 뒤에는 초능력이 아니라 꽤 구체적인 과학적 원리가 자리하고 있다.
바로 추천 알고리즘이다.
오늘은 우리가 매일 마주치지만 잘알지 못하는 이 알고리즘의 세계를, 과학자의 시선을 빌려
슬쩍 들여다보려 한다.
글 김민재 사이언스타임즈 리포터, 천문학자
- 나와 닮은 사람을 찾는 방법
협업 필터링 -
추천 알고리즘의 가장 기본적인 방식은 협업 필터링(Collaborative Filtering)이다. 원리는 의외로 단순하다. 나와 비슷한 취향을 가진 사람들이 좋아한 것을 나에게도 추천하는 것이다.
예를 들어 A와 B라는 두 사용자가 최근 본 영상 열 개 중 여덟 개가 겹친다면, 두 사람은 취향이 매우 비슷하다고 볼 수 있다. 이때 B가 봤지만 A는 아직 보지 않은 나머지 두 개의 영상이 있다면, 알고리즘은 그것을 A에게 슬쩍 들이민다. 수백만 명의 시청 기록을 놓고 이런 유사도를 계산하면, 마치 취향 하나는 기가 막히게 아는 친구가 옆에서 골라준 것 같은 정교한 추천이 만들어진다.
이 원리는 사실 천문학자들이 별빛의 정체를 알아내는 방식과 놀랍도록 닮아 있다. 처음 보는 별의 스펙트럼을 분석할 때, 우리는 이미 알려진 수많은 별들의 스펙트럼 데이터베이스와 비교한다. 온도, 화학 조성, 밝기 변화 패턴이 비슷한 별들을 찾아내고, 그 유사성을 근거로 새로운 별의 정체와 진화 단계를 추정하는 것이다. 협업 필터링이 “당신과 비슷한 사람들”을 찾는다면, 천문학은 “이 별과 비슷한 별들”을 찾는다는 점에서 접근법의 뼈대가 같다. 결국 둘 다 거대한 데이터 속에서 유사성의 패턴을 읽어내는 작업인 셈이다.
이때 핵심이 되는 것은 ‘유사도’를 어떻게 정의하느냐는 문제다. 두 사용자의 취향이 얼마나 비슷한지, 두 별의 스펙트럼이 얼마나 닮았는지를 숫자 하나로 표현하려면 수학적인 거리 개념이 필요하다. 대표적인 것이 코사인 유사도라는 계산법으로, 각 사용자나 대상을 수많은 항목으로 이루어진 벡터로 표현한 뒤, 두 벡터가 이루는 각도가 얼마나 좁은지를 계산한다. 각도가 좁을수록, 즉 방향이 비슷할수록 취향도 닮았다고 보는 것이다. 이런 벡터 공간의 개념은 은하의 형태를 분류하거나 외계행성 후보를 걸러낼 때 쓰이는 통계 기법과도 본질적으로 다르지 않다. 실제 서비스를 들여다보면 이 원리가 어떻게 응용되는지 더 뚜렷이 보인다. 온라인 동영상 서비스 넷플릭스는 초창기부터 이용자 간 평점 데이터를 이용한 협업 필터링으로 유명세를 얻었고, 글로벌 음원 플랫폼 스포티파이의 ‘취향 저격’ 플레이리스트 역시 나와 음악 취향이 겹치는 수많은 이용자의 재생 목록을 분석해 만들어진다. 온라인 쇼핑몰에서 "이 상품을 산 고객이 함께 구매한 상품"이라는 문구를 본 적이 있다면, 그 뒤에도 협업 필터링이 작동하고 있는 것이다.
- 콘텐츠 그 자체를 이해하는 방법
콘텐츠 기반 필터링 -
협업 필터링은 강력하지만 한 가지 약점이 있다. 이제 막 가입한 사용자처럼 시청 기록이 거의 없는 경우에는 비교할 데이터 자체가 부족해 추천이 어려워진다. 이럴 때 힘을 발휘하는 것이 콘텐츠 기반 필터링(Content-based Filtering)이다.
이 방식은 다른 사용자를 참고하는 대신, 콘텐츠 자체의 속성을 분석한다. 영상이라면 장르, 출연진, 사용된 음악, 영상의 색감이나 편집 속도, 자막에 등장하는 단어 같은 특징을 수치화한다. 그리고 내가 방금 본 영상과 이런 특징이 비슷한 다른 영상을 찾아 추천한다. 좋아하는 영화 한 편의 감독, 장르, 분위기를 분석해 비슷한 영화를 골라주는 방식도 같은 원리다.
이 접근 역시 천문학의 스펙트럼 분석과 맞닿아 있다. 우리는 별빛을 파장별로 분해해 어떤 원소가 얼마나 포함되어 있는지, 온도는 어느 정도인지를 스펙트럼 선의 위치와 세기로 읽어낸다. 콘텐츠 기반 필터링이 영상의 '지문'이라 할 수 있는 특징들을 뽑아내듯, 분광학은 빛 속에 숨겨진 별의 '지문'을 뽑아낸다. 두 경우 모두 대상 자체가 지닌 고유한 신호를 정밀하게 해독하는 일이다.
뉴스 서비스를 예로 들어보자. 한 기사를 다 읽고 나면 하단에 관련 기사들이 뜨는경우가 많은데, 이는 기사에 등장하는 핵심 단어의 빈도와 조합을 분석해 의미적으로 가까운 다른 기사를 찾아내는 콘텐츠 기반 필터링의 결과다. 음악 서비스에서 노래의 박자, 음색, 코드 진행 같은 요소를 수치화해 비슷한 곡을 추천하는 것도 같은 원리다. 사람이 아니라 콘텐츠 자체의 고유한 성질에서 출발한다는 점이 이 방식의 특징이다.
실제 서비스에서는 이 두 방식을 함께 쓰는 경우가 많다. 신규 이용자에게는 콘텐츠 기반 필터링으로 시작해 최소한의 취향을 파악하고, 데이터가 쌓이면 협업 필터링의 비중을 높여가는 식이다. 최근에는 여기에 인공신경망을 접목한 딥러닝 기반 추천 모델까지 더해지면서, 단순한 유사도 계산을 넘어 이용자가 언제, 어떤 순서로, 얼마나 오래 콘텐츠를 소비했는지까지 학습에 반영한다. 서로 다른 원리를 결합해 약점을 보완하는 방식은, 여러 관측 장비의 데이터를 함께 분석해 하나의 결론에 도달하는 다중 파장 관측과도 통하는 면이 있다.
- 알고리즘은 정답이 아니라 확률을 다룬다
-
여기서 짚고 넘어갈 부분이 있다. 알고리즘이 내미는 추천은 확정된 사실이 아니라 확률적 예측이라는 점이다. 관측 데이터로 별의 나이를 추정할 때 오차 범위를 함께 제시하듯, 추천 알고리즘도 “이 콘텐츠를 좋아할 가능성이 높다”라는 확률적 판단을 내릴 뿐이다.
가끔 알고리즘이 전혀 엉뚱한 것을 추천하는 이유도 여기에 있다. 한 번의 클릭이나 우연히 재생된 영상 하나가 데이터에 잡음처럼 섞여 들어가면, 알고리즘은 그것을 하나의 신호로 오인하기도 한다. 과학 실험에서 노이즈와 신호를 구분하는 일이 언제나 도전적인 과제이듯, 알고리즘에게도 진짜 취향과 우연한 클릭을 구별하는 일은 여전히 어려운 숙제다.
여기에 더해 ‘콜드 스타트 문제’라는 것도 있다. 앞서 말한 콘텐츠 기반 필터링이 신규 이용자 문제를 상당 부분 풀어주긴 하지만, 정작 그조차 기댈 데이터가 하나도 없는 순간은 여전히 남는다. 갓 등록된 콘텐츠는 아직 조회수도 평점도 쌓이지 않아 ‘특징’을 뽑아낼 근거가 부족하고, 막 가입한 이용자 역시 첫 클릭 한 번을 하기 전까지는 어떤 특징에 반응할지조차 알 수 없다. 관측 이력이 전혀 없는 천체를 처음 마주했을 때 기존 데이터베이스와 비교할 표본 자체가 없어 판단을 내리기 까다로운 상황과 비슷하다. 이 진짜 ‘0의 순간’에는 알고리즘도 별수 없이 인기순 정렬이나 전문가 큐레이션 같은 보조 수단을 빌려 초기 데이터를 빠르게 쌓아 올린다.
- 알고리즘 시대를 살아가는 우리의 자세
-
추천 알고리즘은 이제 영상 플랫폼을 넘어 쇼핑, 음악, 뉴스, 심지어 만남 서비스까지 우리 삶 구석구석에 스며들어 있다. 그 편리함은 분명하지만, 동시에 알고리즘이 보여주는 세계가 전체가 아니라 나의 과거 선택이 만들어낸 좁은 창일 수 있다는 점도 기억할 필요가 있다. 이런 현상을 가리켜 ‘필터 버블(Filter Bubble)’이라 부른다. 내가 좋아할 만한 콘텐츠만 반복해서 노출되다 보면, 어느새 나와 다른 의견이나 낯선 분야는 피드에서 점점 사라진다. 관심사가 비슷한 정보만 계속 소비하다 보면 세상 전체가 원래 그런 모습이라고 착각하기 쉬운 것이다.
물론, 편리함을 마다할 이유는 없다. 다만 알고리즘이 보여주는 화면이 세상의 전부가 아니라는 점만 기억하면 될 것이다. 이들은 겨우 ‘내가 지금까지 남긴 흔적의 반영’이라는 사실일 뿐이다. 평소 보지 않던 카테고리를 한 번 검색해 보거나, 낯선 채널을 슬쩍 구독해 보는 것만으로도 알고리즘이 그리는 나의 지도는 조금씩 넓어진다. 결국 알고리즘은 나를 가두는 벽이 아니라 나를 읽어내는 도구이기 때문이다. 다음에 피드에서 낯선 영상 하나가 튀어나온다면, 그것을 오류로 넘기지 말고 한 번 눌러보자. 그 작은 클릭 하나가 알고리즘에게 보내는 새로운 신호가 되고, 알고리즘은 다시 그 신호를 읽어 내가 미처 몰랐던 취향의 문을 열어줄 것이다.