[기업 사례조사] Spotify 추천 시스템

jaylight·2021년 2월 26일
0

BigData / AI Academy

목록 보기
1/1

2020년 여름 ~ 가을까지 진행했던 포스텍 청년 AI, BIgData 아카데미에서 배웠던 내용들에 대해서 다시 한번 공부하기 위해 프로젝트 단위로 사용했던 라이브러리, 소스 등을 다시 공부해야겠다고 마음먹고 있었는데 면접 이전에 이력서에 작성한 내용을 중심으로 내가 무엇을 했는지 정리하려고 한다.

개요

가장 처음으로 제시받은 과제는 AI 기술을 활용하는 관심 기업을 조사하는 것이었다. Spotify는 우연한 기회로 잠시 사용해봤던 적이 있었는데 유튜브 알고리즘 만큼이나 음원 추천이 너무나 인상적이었던 Spotify를 대상으로 정했다.

당시에는 우리나라에 진출 루머가 한창 들리고 있었는데 어느새 해가 바뀌고 이제 VPN을 사용하지 않더라도 정식으로 사용할 수 있게 되었다. (물론 Apple Music 처럼 국내 음원 확보가 제대로 안되서 반쪽 짜리 서비스이긴 하지만)

이 이후 1차 프로젝트로 영화 OTT 서비스 개선에 관한 과제를 맡게 되어서 이 과제에서 공부한 내용들이 도움이 되었다.

Spotify는 2008년 시작한 서비스로 벌써 서비스 시작 14년차에 접어들었다. 2015~6년경 서비스를 시작한 애플뮤직이나 아마존 뮤직, 유튜브 뮤직 등에 비하면 굉장히 일찍부터 시장에 자리잡고 있었다.

그래서인지 음원 청취 데이터에 기반한 추천 알고리즘이 상당히 호평을 받고 있고, 대형 IT업체가 시장에 뛰어들었음에도 업계 1위 지위를 놓치지 않고 있다.

추천 서비스

따라서 당시 작성한 자료도 스포티파이의 음원 추천 알고리즘을 중심으로 서술하였다. 여기에서 정리된 내용은 협업 필터링, 자연어 처리, 합성곱 신경망 으로 세 가지이다. 물론 이 외에도 밝혀지지 않은 알고리즘 기법이 많을 것이라고 생각하지만 직관적으로 이해가 쉽도록 세 가지로 정리했다.

협업 필터링 (데이터: 유저 행동)

협업 필터링은 많은 유저로부터 수집한 각종 행동 데이터를 기반으로 각 유저들이 좋아할만한 컨텐츠를 추천하는 기법이다. 여기서 말하는 행동 데이터에는 노래 청취 및 스킵, 플레이리스트 저장, 좋아요 표시, 아티스트 페이지 조회 등 스포티파이 플랫폼 위에서 행하는 모든 행위를 뜻한다. 이렇게 수집된 데이터를 기반으로 행동 경향이 비슷한 유저 간에 좋아하는 컨텐츠를 상호 추천한다. 즉, 유저 A가 b곡을 좋아하고, 유저 B가 b, c곡을 좋아한다면 Ac곡을 좋아할 것으로 예측하는 것이다.

협업 필터링 기법은 추후 첫 번째 빅데이터 분석 과제였던 '영화 OTT 추천 서비스' 구현 때 외부 라이브러리를 활용하여 구현하였다.

자연어 처리 (데이터: 곡 메타 정보)

자연어 처리는 실제 사람이 말하는 인간의 언어를 컴퓨터가 이해하고 처리할 수 있도록 만드는 일을 뜻한다. 최근 모바일 OS에 내장된 음성 비서, AI 스피커 등을 통해 가장 손쉽게 접할 수 있다.

스포티파이에서 추천 서비스를 위해 자연어 처리를 활용한 방식은 특정 노래와 관련된 각종 메타 정보를 수집, 분석하여 해당 곡에 관련된 각종 키워드를 태그 형식으로 부여하여 유사한 태그를 가진 곡을 상호 추천하는 것이다. 메타 정보에는 곡에 대한 리뷰, 기사, 유저들의 댓글 등이 포함될 수 있다.

이후 빅데이터 분석과제에서도 영화 리뷰 데이터를 기반으로 자연어 처리를 시현했으나, 실제 추천 서비스에 적용하지는 않았다.

합성곱 신경망 (데이터: 음원 소스)

합성곱 신경망 기술은 이미지를 분석해서 지역적인 특징을 뽑아내 분류하는데 탁월한 성능을 보이는 신경망 기술이다. 이미지 처리가 아닌 오디오 처리에 어떻게 사용되는지 직관적으로 이해되지는 않았는데 이 논문여러 아티클들을 참고한 결과 음원의 파형 이미지를 활용하여 음원을 분석한 것으로 보인다.

Each song is converted into a raw audio file as a waveform. These waveforms are processed by the CNN and is assigned key parameters such as beats per minute, loudness, major/minor key and so on. Spotify then tries to match similar songs that have the same parameters as the songs their listeners like listening to.

위 기법을 통해 나온지 얼마 안된 신곡, 비인기곡 등 유저의 행동 데이터나 메타 데이터가 부족한 곡을 유형에 따라 분류하고 추천이 가능해진다.

기술 활용

음원 추천을 통한 개인화된 플레이리스트 외에도 사용 패턴 분석을 통해 시간대 별 인기있는 플레이리스트를 중심으로 메인 페이지를 재구성하고, 러닝 시 달리기 속도에 맞춘 BPM을 가진 플레이리스트 추천, 그리고 블록체인을 활용한 수익 배분 시스템까지 서비스 전반에 다양한 기술을 활용하고 있고, 신기술에 대한 적극적인 적용이 보이는 부분들이 많이 있었다.

참고

Recommending music on Spotify with deep learning

0개의 댓글