brunch

매거진 AI

You can make anything
by writing

C.S.Lewis

눈으로 듣는 음악 추천 시스템

[카카오AI리포트] 발표: 최규민 / 글: 김태훈


if kakao 2018 대학(원)생 기자단의 콘퍼런스 취재 글


01. 지식그래프 : 카카오미니와 검색 적용 소개 (발표: 남기훈 / 글: 김동현)

02. 눈으로 듣는 음악 추천 시스템 (발표: 최규민 / 글: 김태훈)

03. 이미지로 이미지 검색하기 (발표: 이주영 / 글: 이가람)

04. 딥러닝을 활용한 뉴스 메타 태깅 (발표: 김기도 / 글: 김규형)

05. 딥러닝을 이용한 실시간 인코딩 효율 최적화 (발표: 여욱형 / 글: 정소영)

06. 카카오 봇 플랫폼 소개 (발표: 황지수 / 글: 이형남)

07. 카카오가 가지고 있는 음성처리 기술 (발표: 노재근 / 글: 이형남)

08. 딥러닝을 이용한 얼굴 인식 (발표: 신종주 / 글: 김동현)

09. TOROS N2 (발표: 김성진 / 글: 김태훈)

10. 텐서플로로 OCR 개발해보기: 문제점과 문제점과 문제점 (발표: 모종훈·오형석 / 글: 이가람)

11. S2Graph와 GraphQL (발표: 윤도영 / 글: 김규형)

12. AI시대에 맞는 서비스 개발(발표: 이석영 / 글: 정소영)





이번 글은 음악 추천 시스템에서 임베딩(embedding)한 음원 벡터(song vector)를 장르와 인기도, 발매 연도의 관점에서 고찰해보는 발표 내용을 담았다. 실제 추천팀에서는 하루 1억 5000만 건의 스트리밍(streaming) 데이터, 5600만 개의 사용자 플레이리스트 데이터, 18만 개의 디제이(DJ) 플레이리스트 데이터를 협업 필터링(collaborative filtering, CF) 방식으로, 3000만 곡의 음원 및 메타 정보는 콘텐츠 기반 접근 방식(contents based filtering, CBF)을 통해 다양한 음원 벡터를 모델링하고 있다.



음악 추천 시스템에 담긴 추천 알고리즘: CF와 CBF


[ 그림 1 ] 협업 필터링 방법 중 대표적으로 쓰이는 행렬분해(matrix factorization)  방법


[그림 1]과 같이 협업 필터링 방식 중 성능이 뛰어나다고 알려진 행렬분해(matrix factorization, MF)를 이용해 유저(user)와 아이템(song)의 잠재 특징(latent feature)들을 원본보다 밀도 있는 특정 차원의 벡터들로 뽑아낼 수 있는데, 카카오에서는 40차원의 벡터를 사용한다. 또한 계산상의 이점을 얻기 위해 잘 알려진 ALS(alternating least square) 기법을 사용해 매트릭스 컴플리션(matrix completion)을 진행한다. 협업 필터링을 통해 얻는 음원 벡터는 여기서 바로 아이템에 대해 얻은 잠재 특징(latent feature) 벡터이고, 각 벡터들은 사용자들의 소비 특성에 기반해 유사한 속성을 가진 음원들의 벡터 간 거리를 가깝게 표현했을 것이라 기대된다.


[ 그림 2 ] 콘텐츠 기반 음원 벡터를 뽑는 과정


음원의 오디오 특성을 이용해 음원 벡터를 구성할 수도 있는데, 카카오에서는 음원의 멜-스펙트로그램(Mel-Spectrogram)과 같은 낮은 수준 특성(low-level feature)을 뽑아 입력으로 사용하고, 가지고 있는 메타 정보를 이용해 분류 태스크(장르 혹은 태그)를 진행하는 딥 뉴럴 네트워크(deep neural network, DNN)를 구성한다. 해당 네트워크로 학습을 시킨 후 특정 레이어(layer)를 가져오면 각 음원의 콘텐츠 기반 특성으로부터 클래스를 분류하는 데 사용된 벡터를 얻을 수 있다. 이것을 콘텐츠 기반 접근을 통해 얻은 음원 벡터로 사용하는 것이다([그림 2] 참조).



음악 추천을 위해 사용하는 음원 벡터와 그 특징


[ 그림 3 ] 카카오 추천팀에서 사용하는 6가지 음원 벡터


카카오는 크게 6가지의 음원 벡터를 가지고 있다. 각각은 [그림 3]에서 볼 수 있는 것처럼 스트리밍 데이터 + 행렬분해, 스트리밍 데이터 및 사용자들이 직접 만든 플레이리스트를 Word2Vec(word to vector, W2V)으로 처리한 것, 전문 DJ의 플레이리스트를 Word2Vec으로 처리한 것, 그리고 장르 분류 모델을 이용한 콘텐츠 기반의 음원 벡터, 감정 태그를 분류하는 모델로부터 얻을 수 있는 음원 벡터이다. 각기 다른 데이터와 방법론을 거쳐 만들어진 음원 벡터이다 보니 특정 쿼리(query) 곡에 대한 유사곡 추천 결과 양상도 조금씩 다르게 나타난다.

    

음원 벡터를 통해 유사한 곡이 추천되는 과정을 눈으로 듣는 과정은 다음과 같다. 먼저 1만 6000개의 곡을 샘플링(가용 가능한 전체 곡에서 상위 1000곡+나머지 랜덤 샘플링 1만5000곡)한 뒤, 각 방법론에 의해 뽑힌 음원 벡터를 t-분포 확률적 임베딩(t-distributed Stochastic Neighbor Embedding, t-SNE)으로 차원을 낮춰 평면에 시각화한다. 거기에 각 음원의 메타 정보(장르, 발매 연도, 스트리밍 순위 등)를 매핑(mapping)해서 살펴보고, 멜론 안에서 각 곡이 소비되는 정도에 따라 4가지로 분류(light, medium, heavy, extreme으로 분류했으며 뒤로 갈수록 대중적으로 많이 소비되는 곡을 뜻한다)해 별도의 그림을 그려보기도 하였다.

    

스트리밍 데이터 기반의 행렬분해(Stream + MF) 방법론을 통해 뽑아낸 음원 벡터의 특징은 헤비(heavy)한 정도의 인기를 가진 노래의 장르들은 잘 식별되고, 상위 1000곡에 속하는 노래들을 인기도로 구분된 분포를 보면 일정한 패턴(상위 1000곡끼리 모여 있는 등)이 나타나는 데 반해 노래가 발매된 연도의 경우 뚜렷한 패턴이 나타나지 않는다는 것이다.


[ 그림 4 ] Stream + W2V를 통해 뽑아낸 음원 벡터의 시각화 - 장르별 군집화 관찰


스트리밍 데이터를 가지고 Word2Vec 방법론을 통해 뽑아낸 음원 벡터(Stream + W2V)의 특징은 [그림 4]와 같이 장르별 군집화가 잘된다는 점이다. 이 방법은 행렬분해의 경우와 달리, 인기도에 큰 영향을 받지 않고 비슷한 장르는 동일 공간에 표현되는 특성을 보였고, 장르와 장르 간의 연관성도 어느 정도 반영된 모습을 보여주었다. 노래의 발매 연도 역시 ‘Stream + MF’보다는 상대적으로 분리가 잘되는 경향을 보였으나, 여전히 상위 1000곡의 노래들은 같은 순위 안의 노래끼리 모이는 특성이 존재하였다.


[ 그림 5 ] Playlist + W2V를 통해 뽑아낸 음원 벡터의 시각화 - 발매 연도 관찰


사용자들의 플레이리스트 데이터를 가지고 Word2Vec 방법론을 통해 뽑아낸 음원 벡터(Playlist + W2V)의 경우 [그림 5]와 같이 발매 연도의 군집화가 ‘Stream + W2V’보다 더 잘되어 있는 경향을 보였으며, 장르 식별의 수준이나 상위 1000곡끼리 모여 있는 정도는 ‘Stream + W2V’와 비슷한 수준을 보였다.

    

지금까지 살펴본 3개의 음원 벡터 간 특징을 비교해보면 다음과 같이 정리해볼 수 있다.


'Stream + MF', 'Stream + W2V', 'Playlist + W2V' 3개 음원 벡터 간의 비교(상대적으로 어떤 음원 벡터에서 해당 특성이 잘 나타나는지를 부등호로 표현)


각 방법론을 통해 음원 벡터가 나오므로, 이것은 곧 벡터 간의 거리를 구하는 과정을 통해 쿼리 곡에 대해 유사곡 목록을 뽑아낼 수 있다는 것이다. 1000여 곡에 대해 유사곡 추천을 해보았을 때, 쿼리곡 장르와 유사곡으로 추천된 곡들의 장르가 같은 비율은 ‘Stream + MF’가 45.2%, ‘Stream + W2V’가 60.1%, ‘Playlist + W2V’가 59.9%로 조금씩 다른 비율을 보여주었다.


[ 그림 6 ] Stream + MF 음원 벡터로 유사곡을 추천한 경우 인기도 분포


또한 Stream + MF 음원 벡터의 경우는 쿼리곡이 스트리밍 순위로 몇 위의 곡이든 유사곡들의 평균 순위를 내보면 대부분 100위~1만 위 사이 곡들로 추천된다([그림 6] 참조).


[ 그림 7 ] 각 음원 벡터 방법론으로 유사곡을 추천한 결과, 추천된 곡들의 평균 인기도 분포 비교


이에 반해 ‘Stream + W2V’와 ‘Playlist + W2V’의 경우에는 쿼리곡의 순위에 비해 유사곡으로 추천되는 곡들의 평균 순위가 더 낮은 경향을 보여주었다([그림 7] 참조). 


[ 그림 8 ] 각 음원 벡터 방법론으로 유사곡을 추천한 결과, 추천된 곡들의 평균 발매 연도 분포 비교


또한 비슷한 방식으로 쿼리곡에 대해 유사곡으로 추천되는 곡들의 평균 발매 연도를 살펴본 경우, [그림 8]과 같이 ‘Stream + MF’는 쿼리곡보다 최신곡들이 추천되었다면, ‘Playlist + W2V’는 쿼리곡과 같은 시대의 곡들이 유사곡으로 추천되었고, ‘Stream + W2V’는 그 중간 정도 성격을 나타내었다.


[ 그림 9 ] 콘텐츠 기반 방법론(장르 분류 모델)으로 뽑아낸 음원 벡터의 시각화


마지막으로 콘텐츠 기반 방법론으로 뽑아낸 음원 벡터의 경우 장르끼리 적절히 잘 군집화되는 특징을 보였으며, 접근 방법의 특색대로 인기도와 상관없이 고르게 분포되어 있는 모습을 보여 앞의 경우들과는 달리 상위 1000곡에 속하는 노래들도 음악적 특성에 의해 군집화되는 경향을 확인할 수 있었다([그림 9] 참조).

    

또한 장르별로 나누어 그림을 그려보면 OST, 인디음악 등 ‘음악적 특성으로 구분되기보다는 일종의 구분에 의한 장르’의 경우, 다른 장르들의 경우와는 달리 별도의 군집 특성 없이 전체적으로 흩어져서 분포되는 것을 확인할 수 있었으며, 발매 연도를 살펴봐도 딱히 상관성을 발견할 수는 없었다. 앞에서 살펴본 바와 같이 음원 벡터마다 다양한 특성을 갖고 있는데, 실제 음악 추천 환경(멜론, 카카오뮤직)에서 어떠한 음원 벡터가 좋은지는 내년 콘퍼런스 행사를 기약하며 세션이 마무리되었다.

    

‘눈으로 듣는 음악 추천 시스템’ 세션은 ‘음악’이라는 대상에 접근하는 방법에 따라 ‘유사하다’는 개념이 얼마나 다를 수 있는지를 보여주었다고 생각한다. 인기도에 따른 바이어스(popularity bias)를 피해 유사곡을 추천하려면 콘텐츠 기반으로 접근해볼 수 있다. 같은 스트리밍 데이터를 가지고도 음원 벡터를 만들어내는 방법에 따라 추천된 유사곡들의 평균 인기도나 발매 연도와 같은 특성이 달라졌다. 각 방법들의 장점을 청취 맥락이나 유저의 취향에 맞게 잘 살린다면 보다 다양한 유사곡 추천 성능을 보일 수 있을 것이다.




콘퍼런스 발표 | 최규민 pi.314@kakaocorp.com


글 | 김태훈 th.kim@snu.ac.kr 

서울대학교 음악오디오연구실에서 음악을 비롯한 콘텐츠 추천 시스템을 연구하고 있습니다. 추천 시스템의 발전은 창작하는 사람과 향유하는 사람 사이의 피드백 선순환을 일으켜 양질의 콘텐츠 생산에 기여할 수 있다고 믿고, 기술로써 그에 조금이나마 보탬이 되기 위해 노력 중입니다.







[카카오 AI 리포트] Vol. 14 (2018년 9월 호) 다음 내용으로 구성되어 있습니다.


[1] Special Topic

01. 김동현 | 지식그래프 : 카카오미니와 검색 적용 소개

02. 김태훈 | 눈으로 듣는 음악 추천 시스템

03. 이가람 | 이미지로 이미지 검색하기

04. 김규형 | 딥러닝을 활용한 뉴스 메타 태깅

05. 정소영 | 딥러닝을 이용한 실시간 인코딩 효율 최적화

06. 이형남 | 카카오 봇 플랫폼 소개


[2] In-Depth

07. 김준래 | 디지털 사회로의 변화와 스포츠

08. 박성건, 이수원 | 스포츠 경기력 향상을 위한 AI 활용 방안 

09. 최형준 | 스포츠 경기 분석 전문가와 AI의 만남

10. 신동윤 | 로봇 심판과 판정 알고리즘의 의미 있는 도전

11. 박주희 | 스마트 도핑 검사의 도입과 발전 과제

12. 김동환 | 스포츠 저널리즘의 변화와 AI의 활용

13. 유승원 | 만능 스포츠봇의 등장과 발전 방향


[3] Tech Insider

14. 윤도영 | Apache S2Graph 기반 머신러닝 모델 환경 구축

15. 이수경, 박규병 | 딥러닝이 탐구하지 못한 언어와 5가지 태스크

16. 박찬연 | 2018 ICML을 통해 살펴보는 AI 연구 동향

17. 황순민 | 2018 CVPR 논문 동향 및 주요 연구 소개

18. 최은필 | 카카오 크루들의 커피 주문 방식


[카카오 AI리포트] Vol. 14 전체글 다운받기

[카카오 AI리포트] Vol. 14_2 다운받기



매거진의 이전글 지식그래프 : 카카오미니와 검색 적용 소개
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari