2013년 10월 25일 금요일

사용자의 현재 상황을 고려한 감성적 음악 추천시스템

이번에 소개 할 내용은 디지털정보융합전공 음악/오디오 연구실 (이교구 교수)의 형지원 박사과정 학생의 연구 내용이다. 현재 디지털 음원의 확산과 스마트 폰의 보급으로 남녀노소 불문하고 과거보다 훨씬 쉽게 음악을 청취 할 수 있게 되었다. 오전에 출근하면서 음악을 듣는 사람, 운동을 하면서 음악을 듣는 사람, 일을 하면서 음악을 듣는 사람, 쉴 때 음악을 듣는 사람 등 음악을 듣는 상황도 매우 다양해졌다. 이처럼 음악의 접근이 용이해진 지금 음악 청취자들은 어떤 음악을 들을지 또는 나의 취향에 맞는 어떤 음악을 들을지에 대한 고민을 많이 하게 되었다. 따라서 음악 추천 시스템의 중요성이 부각되었고 이미 많은 음원 제공 업체들은 추천 시스템을 도입한 상태이다. 하지만 이러한 추천 시스템은 사용자의 감정 상태 또는 사용자가 처해 있는 상황을 고려한 추천 방식은 아니다. 여기에서는 사용자의 상황을 직접적으로 고려하는 음악 추천 시스템에 대한 내용을 자세히 알아본다.



라디오 사연의 텍스트 분석을 통한 음악 추천 시스템

글:형지원
(서울대학교 융합과학기술대학원 디지털정보융합전공)
1. 시스템 개요

한국 라디오 방송을 살펴보면 프로그램을 맡고 있는 DJ가 있고 사용자들이 개인이 듣고 싶은 노래와 그 노래와 얽힌 사연을 보낸다. 프로그램의 DJ는 적합하다고 생각되는 사연들을 선택해서 소개해주고 원하는 신청곡을 틀어준다. 우리는 이 사연들이 사용자가 처해 있는 상황 또는 사용자가 해당 노래를 듣고 싶어 할 때의 감정 등의 정보를 보유하고 있다고 가정한다. 추가로 비슷한 상황의 사람들은 원하는 노래가 유사할 것으로 가정하였다. 따라서 이 사연들을 이용하면 사용자의 상황을 직접적으로 비교해서 비슷한 상황에서 다른 사람들이 듣고 싶은 노래를 추천해줄 수 있을 것으로 생각된다. 이 시스템의 개요는 <그림 1>과 같다.

<그림 1> 시스템 개요

우선 라디오 프로그램의 인터넷 게시판에 등록 된 사연들을 모은다. 지금부터 이 사연들을 "문서"로 단어를 통일하여 사용하겠다. 각 문서마다 신청한 노래가 있는데 이를 찾아내서 문서-노래 (Document-Song)의 데이터베이스를 구축한다. 모인 문서-노래 데이터를 이용하여 문서 분석 (Document Analysis)을 실시하여 문서의 의미를 파악하고 마지막으로 사용자가 어떠한 글을 인풋으로 제공하면 해당 글과 유사한 문서를 찾아서 그 문서에서 신청하는 노래를 상위 몇 개를 추천해주는 방식이다.


2. 핵심 알고리즘

이 연구에서는 문서 분석을 통하여 유사한 문서들을 찾고 해당 문서에 신청되어 있는 노래를 추천하기 때문에 가장 중요한 알고리즘은 문서 분석 알고리즘이다. 여기에서는 크게 2가지 알고리즘을 사용하여 비교 분석하였다. 분석에 앞서 문서를 어떠한 형태로 표현을 해야 하는데 우리는 단어의 빈도수로 문서를 표현하였다. 이를 위해서 국민대학교에서 제공하고 있는 형태소 분석기를 사용하여 각 문서의 단어들을 추출하였다. 그리고 전체 문서에서 사용된 단어들을 사전으로 사용하여 각 문서에서 어떤 단어가 몇 번 사용 되었는지를 구했다. 대체적으로 한 문서는 평균적으로 100개 정도의 단어로 구성되어 있기 때문에 이 문서를 나타내는 벡터는 대부분이 0인 아주 sparse하다. 이러한 sparse한 벡터를 있는 그대로 비교하면 대부분 유사하지 않다고 나온다. 따라서 단어의 의미를 표현할 수 있는 새로운 n차원의 벡터 공간에 다시 뿌려주는 과정을 거쳐야한다. 이를 위해 이 연구에서는 언어 처리 분야에서 사용되는  Probabilistic Latent Semantic Analysis (pLSA) 알고리즘을 사용한다. 이 알고리즘은 매우 sparse한 단어 행렬의 숨겨진 의미를 확률 모델로 표현한다. 즉, 단어와 문서의 확률모델 P(d, w)는 <그림 2>와 같이 표현된다.

<그림 2> 문서와 단어를 확률 모델로 표현하는 공식
위의 모델을 구현하기 위해서 pLSA는 EM 알고리즘 학습 방식을 이용한다. EM 알고리즘은 E-step과 M-step으로 나뉘다. <그림 3>에서 알 수 있듯이 E-step에서는 단어와 문서가   숨겨진 의미 z의 확률 분포, 즉 P(z|w,d)를 예측하는 단계이다.



<그림 3> EM 알고리즘의 E-step

M-step에서는 숨겨진 의미 z가 주어졌을 때 문서가 나타날 확률 분포 P(d|z), 숨겨진 의미 z가 주어졌을 때 단어가 나타날 확률 분포 P(w|z), 그리고 숨겨진 의미 z가 나타날 확률 분포 P(z) 이 3개를 학습 데이터를 이용하여 학습한다. <그림 4>는 M-step의 공식들을 나타낸다.
 


<그림 3> EM 알고리즘의 M-step

위 공식들을 통해 단어의 문맥적 의미를 표현하는 확률 분포, 즉 P(w|z)를 구하고 새로운 인풋 문서 q가 들어왔을 때 <그림 4>의 공식을 통해 새로운 문서를 문맥적 의미가 있는 벡터 공간으로 투사해준다.

<그림 4> 새로운 인풋 문서의 문맥적 의미를 찾는 공식

  
3. 음악 추천

학습 데이터를 앞에서 언급한 pLSA 알고리즘을 이용하여 문맥적 의미가 표현되는 벡터 공간에 뿌려주고 새로운 문서 데이터가 들어오면 이 역시 <그림 4>를 이용하여 같은 문맥적 의미가 있는 벡터 공간에 뿌린다. 그리고 그 문서와 다른 문서들의 거리를 구해서 가장 가까운 거리에 있는 n개의 문서에서 신청한 노래들을 추천해준다. 그러면 가정에 따라 상황이 비슷한 문서들을 찾게 될 것이고 그러면 그 상황에 맞는 노래가 신청곡이라고 가정하였기에 사용자의 상황을 직접적으로 고려한 음악 추천이 가능한 것이다.

4. 평가 및 결론

실험은 크게 유사한 문서를 찾는 pLSA의 성능 비교와 사용자 평가로 나뉜다. 앞서 말한 가정에 따라 같은 노래를 신청한 문서들을 유사한 문서로 설정하였고 이에 따라 pLSA 성능 평가에 사용 된 데이터는 같은 노래를 20개 이상 신청한 사연들로 설정하였다. 12개의 다른 노래들과 이 노래들을 신청한 사연들을 실험 데이터로 사용하였다. 그 후 pLSA의 성능을 확인하기 위해 실험 데이터를 128차원의 문맥적 의미가 있는 벡터 공간에 투사하였고 Mean Average Precision (MAP)Mean Reciprocal Rank (MRR)를 구하였다. MAPMRR은 정보 검색 시스템의 성능을 평가할 때 흔히 사용 되는 척도이다. MAP는 하나의 문서를 쿼리로 하고 그와 유사한 문서들의 검색에서 정확도 (Precision)를 구한다. 정확도는 유사한 문서가 나올 때마다 변하기 때문에 상위 10개 검색 결과에 대해서 정확도를 평균 냈다 (Average Precision). 그리고 마지막으로 각 실험 노래를 신청한 문서들이 여러 개 있기 때문에 각 문서를 인풋으로 사용하여 여러 개의 평균 정확도를 계산 할 수 있고 이를 다시 한 번 평균 낸 것이 MAP이다. 우리 시스템이 찾은 검색 결과의 MAP와 무작위로 나열한 문서들의 MAP를 비교하였고 그 결과는 <그림 5>와 같다.

<그림 5> 시스템과 무작위 나열의 MAP 결과 비교

결과에서 보이듯이 우리 시스템이 대부분의 경우 무작위로 나열한 결과보다 높은 MAP를 보이는 것을 알 수 있다. 이가 실제로 같은 노래를 신청한 문서들은 유사함을 보였고 우리 시스템은 이 유사함을 상당히 잘 찾아내는 것을 의미한다. MAP를 통해 우리는 비슷한 상황의 사람들은 비슷한 노래를 신청할 것이라는 것을 보였고 이를 실제로 확인하기 위해서 추가로 무작위로 10개의 다른 문서-노래 데이터를 선정해서 참가자에게 문서와 해당 문서가 신청한 노래, 우리 시스템에서 찾은 해당 문서와 가장 유사한 문서에서 신청한 노래, 그리고 무작위로 선정된 문서에서 신청한 노래를 제공하고 제공 된 문서와 가장 어울리는 음악을 5점 척도로 평가하게 하였다. 총 46명의 참가자가 있었고 평균 낸 결과는 <그림 6>과 같다.

<그림 6> 사용자 평가의 평균 점수와 표준 편차

우리 시스템이 추천해준 노래가 실제로 사용자들이 신청한 노래에 비해서는 점수가 낮았지만 무작위로 추천해준 음악보다는 훨씬 어울린다는 결과를 얻었고 또 각각의 실험 문서에 대한 결과를 살펴본 결과 특정 상황들에서는 사용자들이 공감하는 노래가 있었다는 것을 알 수 있었다. 따라서 글로 표현 되는 사용자들의 상황을 고려한 음악 추천시스템이 가능성이 있다는 것을 확인 할 수 있었다.

0 개의 댓글:

댓글 쓰기

차세대융합기술연구원 │ 서울대학교 융합과학기술대학원. Powered by Blogger.