나는 아무 음악이나 듣지 않아. 누구나 아는 인기곡은 싫어하고 아무도 모르는 인디음악★을 좋아하지. 누구보다 빨리 좋은 노래를 찾는 게 기뻐. 나처럼 유행을 거부하지만 유행을 이끌려는 사람을 ‘힙스터’라 부르더군. 때로는 허세라고 비난받지만 상관없어. 누구보다 빠르게 남들과는 다르게 노래를 낚는 것만이 목표일 뿐. 그런 나에게 요즘 관심 가는 일이 생겼어. 개인화 추천 서비스를 제공하는 유튜브 뮤직과 애플 뮤직이 한국 서비스를 시작했고 멜론도 개인에게 꼭 맞는 곡을 추천하겠다고 나섰거든. 이제 사람이 아니라 컴퓨터가 나 한 사람을 위해 음악을 추천하는 거야. 과연 힙스터에게도 유용할지 궁금하지 않아?
인디음악★ ‘인디펜던트 음악’의 줄임말로 독립음악을 뜻한다. 상업적인 거대 자본과 유통시스템에서 독립해 음반 제작, 유통, 홍보를 스스로 해내는 뮤지션의 음악이다.
확률로 빈칸 채우기
나만을 위한 음악을 추천하려면 컴퓨터가 내 취향을 알아야겠지. 컴퓨터는 나를 숫자로 인식해. 예를 들어 멜론에 혁오의 ‘와리가리’와 송대관의 ‘네 박자’, 볼빨간사춘기의 ‘좋다고 말해’가 있다고 해보자. 나는 힙스터니까 혁오에 ‘좋아요’를, 송대관에 ‘싫어요’를 줬고 볼빨간사춘기의 노래에는 아무 정보도 주지 않았어. 이걸 행렬이라는 수학적 표기법으로 적으면 오른쪽 그림과 같지. 이제 컴퓨터가 할 일은 빈칸에 0이 들어갈지 1이 들어갈지 맞히는 일이야.
이건 통계학의 오랜 숙제인 잃어버린 데이터를 예측하는 문제와 같아. 데이터를 전부 구하지 못했거나 실수로 빠뜨렸을 때 이미 수집한 정보를 바탕으로 잃어버린 데이터의 값을 예측하는 거지. 추천 서비스의 경우에는 컴퓨터가 빈칸의 답이 1이 될 확률과 0이 될 확률을 각각 계산해 확률이 큰 값을 출력할 거야. 1이면 추천하고 0이면 추천하지 않아.
수학으로 닮은꼴을 찾아라
컴퓨터가 계산한 확률이 내가 실제로 볼빨간사춘기를 좋아할 확률과 같을지는 몰라. 그래서 둘을 조금이라도 가깝게 하려고 확률 계산법을 고민했지. 가장 대표적인 건 나와 취향이 닮은 사람을 찾아주는 거야. 그 사람이 볼빨간사춘기의 노래를 좋아했다면, 나에게도 추천하는 거지.
나와 닮은 사람이 누구인지는 그림으로 찾을 수 있어. 위 행렬을 삼차원 공간의 한 점 (x,y,z)로 생각하고 원점에서 출발하는 화살표를 그리면, 이걸 벡터라고 해. 상관관계는 아래와 같이 벡터 사이의 각도로 결정해. 수리통계학자 칼 피어슨이 만든 복잡한 상관관계 공식을 간단한 그림으로 표현한 거야. 이밖에도 두 점 사이의 거리를 계산하는 방법도 있어.
다음으로 컴퓨터는 나와 닮은 사람끼리 그룹을 만들어. 새로운 사용자가 등장하면 그 사람과 가장 비슷한 그룹에 넣기만 하면 되지. 내 그룹 구성원 중 볼빨간사춘기의 노래 칸에 ‘1’이 오는 사람이 많다면 내 빈칸에도 1을 넣을 거야. 그룹을 만드는 걸 군집화, 새로운 사람을 그룹에 넣는 걸 분류, 이 모든 과정을 통틀어 ‘협력 필터링’이라고 해.
다음으로 컴퓨터는 나와 닮은 사람끼리 그룹을 만들어. 새로운 사용자가 등장하면 그 사람과 가장 비슷한 그룹에 넣기만 하면 되지. 내 그룹 구성원 중 볼빨간사춘기의 노래 칸에 ‘1’이 오는 사람이 많다면 내 빈칸에도 1을 넣을 거야. 그룹을 만드는 걸 군집화, 새로운 사람을 그룹에 넣는 걸 분류, 이 모든 과정을 통틀어 ‘협력 필터링’이라고 해.
협력 필터링에는 ‘콜드 스타트’라는 치명적인 단점이 있어. 그룹으로 분류하려면 사용자의 정보가 많이 필요해서 신규사용자에겐 먹통이야. 또 신곡은 사람들의 평가가 전혀 없으니 아무리 좋아도 추천을 못하지. 그래서 ‘콘텐츠 기반 필터링’을 함께 사용해. 신곡의 장르와 분위기 같은 특징을 분석해놓고 사용자가 좋아하는 음악과 비슷한 걸 추천하는 거지. 이 경우엔 사용자가 좋아하는 곡 2~3개만 선택하면 추천이 가능해. 다만 손이 많이 가는 작업이라 효율성이 떨어지지.
좋아하는 이유까지 알 수 있다면
한국 음원사이트는 아직 멀었어. 나를 단단히 착각하고 있더라고. 나는 힙스터지만 남자 아이돌을 좋아하는데 음원 사이트가 자꾸 여자 아이돌 음악도 추천하지 뭐야. 내 취향을 뭘로 보는 건지!
마침 그들도 이 문제를 개선한 ‘모델 기반 협력 필터링’을 연구한대. 방탄소년단의 ‘피 땀 눈물’에 ‘좋아요’를 누를 때 내가 남자 아이돌을 좋아하는지, 댄스를 좋아하는지 이유를 맞히는 거지. 그러면 컴퓨터는 더 정교해질 수 있어. 아래 그림처럼 나랑 같은 곡을 좋아하는 사람이 트와이스를 좋아 해도 나에겐 추천하지 않는거지. 나는 댄스가 아니라 남자 아이돌을 좋아하니까!
좋아하는 이유까지 알 수 있다면
한국 음원사이트는 아직 멀었어. 나를 단단히 착각하고 있더라고. 나는 힙스터지만 남자 아이돌을 좋아하는데 음원 사이트가 자꾸 여자 아이돌 음악도 추천하지 뭐야. 내 취향을 뭘로 보는 건지!
마침 그들도 이 문제를 개선한 ‘모델 기반 협력 필터링’을 연구한대. 방탄소년단의 ‘피 땀 눈물’에 ‘좋아요’를 누를 때 내가 남자 아이돌을 좋아하는지, 댄스를 좋아하는지 이유를 맞히는 거지. 그러면 컴퓨터는 더 정교해질 수 있어. 아래 그림처럼 나랑 같은 곡을 좋아하는 사람이 트와이스를 좋아 해도 나에겐 추천하지 않는거지. 나는 댄스가 아니라 남자 아이돌을 좋아하니까!
‘좋아요’의 이유를 찾는 방법 중 하나는 조건부 확률을 활용하는 거야. 내가 ‘피 땀 눈물’을 좋아할 때 남자 아이돌 혹은 댄스를 좋아할 확률을 각각 계산해 충분히 높으면 그 특징을 내 취향이라 보는 거지. 반대로 신곡이 나오면 남자 아이돌이어서 좋아할 확률과 댄스곡이어서 좋아할 확률을 더해서 내가 신곡을 좋아할 확률을 구해. 이걸 베이지안 네트워크라 불러.
인디음악까지 잘 발굴해내려면?
하지만 추천 알고리즘은 나같은 힙스터를 만족시키기엔 역부족인 것 같아. 다수가 좋아하는 곡을 추천하기 때문에 잘해봐야 ‘내가 좋아할 유명한 노래’를 고를 뿐이거든. ‘내가 좋아할 알려지지 않은 노래’는 찾기 힘든 거지. 전문가들은 추천 서비스의 이런 특징이 다양성을 해칠 거라고 우려해.
최근에는 관련 연구가 이뤄지고 있어서 다행이야. 이교구 서울대학교 융합과학기술대학원 교수가 여러 논문을 냈어. 특정 장르의 ‘덕후’가 높이 평가한 노래에 가중치를 줘서 그 장르에 문외한인 사람에게도 쉽게 추천하도록 하는 거지. 추천 서비스가 효율성을 넘어 다양성까지 확보하기를 기대하자고.
인디음악까지 잘 발굴해내려면?
하지만 추천 알고리즘은 나같은 힙스터를 만족시키기엔 역부족인 것 같아. 다수가 좋아하는 곡을 추천하기 때문에 잘해봐야 ‘내가 좋아할 유명한 노래’를 고를 뿐이거든. ‘내가 좋아할 알려지지 않은 노래’는 찾기 힘든 거지. 전문가들은 추천 서비스의 이런 특징이 다양성을 해칠 거라고 우려해.
최근에는 관련 연구가 이뤄지고 있어서 다행이야. 이교구 서울대학교 융합과학기술대학원 교수가 여러 논문을 냈어. 특정 장르의 ‘덕후’가 높이 평가한 노래에 가중치를 줘서 그 장르에 문외한인 사람에게도 쉽게 추천하도록 하는 거지. 추천 서비스가 효율성을 넘어 다양성까지 확보하기를 기대하자고.