Social networking services (in short, SNS) allow users to share their own data with family, friends, and communities. Since there are many kinds of information that has been uploaded and shared through the SNS, the amount of information on the SNS keeps increasing exponentially. Particularly, Facebook has adopted some interesting features related to entertainment (e.g., movie, music and TV show). However, they do not consider contextual information of users for recommendation (e.g., time, location, and social contexts). Therefore, in this paper, we propose a novel approach for movie recommendation based on the integration of a variety contextual information (i.e., when the users watched the movies, where the users watched the movies, and who watched the movie with them). Thus, we developed a Facebook application (called MyMovieHistory) for recording the movie history of users and recommending relevant movies.
소셜 네트워크 서비스인 페이스북, 트위터, 구글+ 등은 사람들이 자신들의 생각을 올리고 공유하는 장소로 이미 우리 삶의 일부분이 되면서 급속히 성장 하고 있다. 통합된 상황적 정보를 이용하는 몇몇 응용시스템을 봤을 때, 이 상황정보 모형은 모든 유형의 응용프로그램에 있어 잠재력이 높은 기회임을 알 수 있다. 성장하고 있는 SNS 안에서, 소셜 상황맥락은 사용자 이력(History)에 대한 새로운 접근법이다. 소셜 상황은 개인사용자나 사용자 그룹을 위한 일련의 특정 상황을 포함한다. 따라서 소셜 상황(정보)의 추출은 SNS상의 사용자 활동을 이해하는데 있어 중요한 과정이다.
영화 추천 시스템은 사용자들의 선호도에 기초하여 영화를 추천함으로써 정보 과부하 문제를 극복할 수 있는 개인화(개인 맞춤형)된 기술이다. 특정 상황에서의 사용자의 선호를 연구하는 것은 특정한 순간에 그 사용자에게 흥미 있을 수 있는 영화 목록을 예측하는데 중요한 정보가 된다. 사용자들에게 더 큰 만족을 주기 위해, 시스템은 사용자의 현재 상황, 감정 그리고 다른 소셜 상황 정보에 기반 해 개발 될 수 있다.
[표 1]은 세 명의 사용자(
상황기반 사용자 모형
본 논문의 구성은 다음과 같다. 2장에서는 기존의 관련연구에 대하여 설명하고 3장에서는 소셜 상황에 기반을 둔 추천 모형을 설명하며 4장에서는 영화 추천 과정을 설명한다. 그리고 5장에서는 실험을 위해 새롭게 개발된 MyMovieHistory 응용프로그램을 설명하고 6장에서는 결론 및 향후과제를 제안한다.
추천 시스템들은 SNS에 적용되어 왔으나 소셜 상황에 기반을 둔 추천시스템은 아직 고려되지 않고 있다. Jung et al.는 영화의 관련성을 발견하기 위해 영화 이야기의 정서적 유사성에 기반을 둔 등장인물들 간의 상호작용에 초점을 맞추고 있다[1]. Mori et al.는 SNS 상의 실체(실제 이용객) 사이에서의 기저 관계를 추출하는 방법을 제안 하였다[2]. Lee et al.은 사용자들이 같은 소셜 상황에서 같은 소셜 일치성을 가질 것이라고 가정한 추천 시스템을 제안 하였다[3]. Sanchez et al.에서는 페이스북 응용프로그램으로 집단 추천 시스템이 소개되었다[4]. 여기서는 사용자들을 위한 세 가지 요소(개성, 사회적 신뢰, 이전의 추천이력)에 기초해 추천하였다. 사용자들의 적합한 그룹에 합류하기가 쉽지 않기 때문에 기존의 페이스북에서는 이러한 측면을 다룬 응용프로그램은 존재하지 않는다.
이 문제를 해결하기 위해, Baatarjav et al.은 사용자의 영화관람 이력에 기반을 둔 계층적 모집과 결정-관계도(Tree)를 이용한 집단 추천시스템을 소개하기도 하였다[5]. Fijalkowski et al. 과 Kandhan et al.은 초기 시작(Cold-start) 문제를 해결하기 위해 SNS 이력 기반 추천 시스템을 적용하였다[6].
이 장에서는 소셜 상황 기반 영화 추천의 설명과 더불어 소셜 상황에 대한 형식적 정의가 제시된다. 소셜상황에서 Joly et al.은 사용자의 위치, 활동, 주변 사람들, 관심분야[7], 그리고 Jung et al 은 감정과 같은 내용을 제안하고 있다[1]. 예를 들어 어떤 사람들은 혼자서 코미디 영화 보는 것을 싫어한다. 그러나 만약 사용자의 친구들이 코미디 영화를 함께 보자고 제안한다면 이들은 동의할 수도 있고, 심지어 이 영화에 흥미를 느낄수도 있다.
SNS 사이트에서는 상황적 정보는 사용자와 시스템 또는 사용자와 그들의 활동 사이의 상호작용 자료로써 언급되고 있다. 응용프로그램의 종류에 따라서 상황맥락은 다른 측면을 가지는 것으로 해석 한다. Kaminskas와 Ricci는 음악추천 시스템에서의 상황적 정보, 즉 위치, 시간, 날씨 등의 환경적 상황과 상용자의 활동, 정서적 상황 등 사용자 상황에 대해 다루고 있다[8].
이 논문에서는 사용자들이 같은 소셜 상황에서 같은 소셜 일치성을 가질 것이라고 가정한다.
[표 1]로부터 여러 소셜 상황에 따라 사용자들의 영화 관람 이력을 아래와 [그림 1] 같이 묘사 할 수 있다.
소셜 상황 안에서의 사용자와 영화 간 관계는 형식적으로 아래와 같이 정의된다.
일련의 사용자들의 집합(
여기서
[그림 1]에서 여러 사용자들이 다양한 소셜 상황에서 영화관람 이력을 볼 수 있다. 사용자에 따라 위치, 시간이 같을 수도 있다. 어떤 사용자들은 같은 장소에서 다른 영화를 봤을 수도 있다.
SNS에서 사용자들 간의 관계는 매우 중요하다. SNS의 역할은 정보를 공유하게 하고, 사람들이 서로 접속하도록 돕는 것이다. 예를 들어 어떤 사용자가 김기덕 감독의 영화를 좋아하고 나도 그렇다면, 전에 서로 모르는 사이 일지라도 페이스북에서 친구가 될 수 있다. 아래의 정의는 사용자의 영화 이력에 기초한 사용자 간 관계를 나타낸다.
여기서
두 사용자 간 관람영화에 대한 유사도를 계산을 위해 자카드 계수를 활용하면 다음과 같이 계산된다.
예를 들면 [그림 2]와 같이 한 사용자가 본 영화의 집합
사용자 별 관람 영화표는 [표 2]와 같이 표현된다.
사용자별 관람 영화표
[표 2]의 사용자별 관람 영화표를 자카드 계수 기반으로 사용자별 유사도(영화 선호도)를 [식 3]에 의해 계산하면 [표 3]과 같이 나타난다.
사용자 간 선호영화 유사도
사용자 선호도가 높은 항목에 가중치를 부여하기 위해 [표 3]과 [표 2]의 행렬을 곱하면 [표 4]와 같이 가중치가 부여된 테이블을 생성할 수 있다.
가중치가 부여된 사용자기반 데이터
SNS 안에서 우리는 주로 두 종류의 정보를 고려한다. 첫째, 개별 사용자 정보이다. 이 정보는 한 명의 사용자에 의해 정해진다. 이 한명의 개인은 “초청자(inviter)”가 될 것이다. 둘째, 집단(그룹) 정보이다. 이 정보는 사용자(초청자)의 친구들에 의해 받아들여지고 공유되는 정보이다. 이때 친구들은 “초청대상자(invitees)”가 될 것이다. Thomsen et al.은 사용자 이력에는 개인 사용자 기록(history)과 집단 기록 이력으로 두 가지 종류로 표현한다[9].
한 사용자의 영화 기록 이력은 두 부분으로 구성된다. 한 부분은 사용자가 관람한 일련의 관람 영화의 속성을 추출함으로써 알 수 있는 제목, 감독, 장르 등의 정보이다. 다른 한 부분은 사용자 상황에 따른 상황적 정보를 포함한다. 상황기반 사용자 이력은 다음 두 가지 측면으로 고려 될 수 있다.
- 시간 기반: 사용자가 페이스 북에 접속하는 시간이 고려된다.- 위치 기반: 사용자의 현재 위치에 따라, 시스템은 추천들을 조절한다.
집단 기록이력은 집단 선호도를 나타낸다. 이것은 이 선호도가 집단 내 각 사용자가 타인과 공유한 영화목록과 그들이 함께 관람했던 위치와 시간 목록을 포함한다.
주어진 소셜 상황(
이 논문에서 소셜 상황에 기초한 두 사용자 간 유사성을 산출하는 협동적 여과 기법을 적용하며 두 가지 소셜 상황 요소(시간, 위치)를 고려한다.
소셜 상황요소
상황 유사도 측정을 위한 식은 [식 6]과 같이 표현된다.
여기서
소셜 상황 정보 기반 영화 추천 시스템은 사용자의 일련의 상황정보를 이용함으로써 사용자들에게 추천 영화를 제시한다. 특정 상황에 따라, 시스템은 구체적인 추천을 제공할 것이다.
두 명이 함께 영화를 관람할 때 두 사람이 만족하는 영화를 추천하기 위해서는 먼저 공통의 관심사를 분석, 소셜 상황에 대한 상관관계분석(누구의 의견을 존중 할 것인지), 유사도가 높은 순으로 두 명이 보지 않은 영화를 추천해야 한다.
사용자간 관계분석을 위해 3.2 소셜 관계, 3.3 소셜관계의 가중치 분석에서 설명한 바와 같이 [식 2]와 [식 3]에 의해 계산 할 수 있다. 예를 들어보면 사용자별 영화 관람표가 [표 5]와 같다고 가정하자.
사용자 별 영화 관람 표
[식 3]에 의해 사용자별 유사도를 계산해보면 [표 6]과 같이 나타난다.
자카드 계수기반 사용자간 유사도
추천을 위해 가중치를 부여하면 [표 7]과 같다.
[표 7.] 가중치가 부여된 사용자 기반 영화 관람 표
가중치가 부여된 사용자 기반 영화 관람 표
사용자별 관람 영화별 선호도는 이미지 저장된 DB로부터 사용자가 본 영화의 전체 영화에서 중심 벡터를 찾음으로 해서 해당 사용자의 중심 포인터를 찾을 수 있다. 중심 벡터
사용자 이력에 따른 장르별 관람한 영화 분포가 [그림 3]과 같다고 가정하자. Lys가 관람한 영화는 ☆로 표시하고 Duc가 관람한 영화는 +, Tu가 관람한 영화는 ○, Tri가 관람한 영화는 △로 표시하였다. ♣는 사용자중 중복으로 관람한 영화이고, ●는 아무도 관람하지 않은 영화라고 가정한다. 두 명의 사용자에게 추천되는 아이템은 두 명의 사용자가 모두 관람하지 않은 ●에 해당하는 아이템들로 추천 할 수 있다.
두 사용자간 관심 영역을 찾기 위해서는 [식 7]에 의해 사용자별 관람 영화별 선호를 나타내는 중심 벡터
두 사용자간의 무게중심 벡터는 [식 8]와 같이 계산된다.
원점에서 G까지 거리는 [식 9]와 같이 계산된다.
따라서 추천영역(
특정 아이템
[식 5]에서 정의된 바와 같이 소셜 상황 맥락에 기반을 둔 사용자 간 유사성은 소셜 상황요소에서의 유사성을 이용하여 산출된 두 사용자간 유사성이 아래와 같다고 가정하자.
[표 8.] Lys 기준 소셜 상황에 대한 사용자별 유사도
Lys 기준 소셜 상황에 대한 사용자별 유사도
새로운 사용자 1명 (Duc) 기준으로 본 예제 테이블이 아래와 같다고 가정한다.
[표 9.] Duc 기준 소셜 상황에 대한 사용자별 유사도
Duc 기준 소셜 상황에 대한 사용자별 유사도
두 사용자가 함께 영화를 관람 할 때에는 두 사용자 중 어느 쪽에 의존적인지 분석하여야 한다. 사용자간 의존도 분석을 위한 식은 [식 11]과 같다.
소셜 상황에서 본 Lys 입장에서 Duc의 의존도 분석을 해보면
상관관계에서 두 사용자간 의존도를 위해
두 사용자가 함께 영화를 관람 할 때에는 의존도가 높은 사용자 입장의 소셜 상황을 우선적으로 고려하여 추천영화중 가중치가 부여된 영화 관람 표에서 두 명이 보지 못한 영화에서 가중치가 높은 영화 순으로 추천되며, [식 12]와 같이 정의된다.
Lys, Duc가 함께 영화 관람 시에는 의존도가 높은 Duc 입장의 소셜 상황을 우선적으로 고려하여 Lys, Duc의 공통의 관심 영화 중 두 명이 보지 못한 영화에서 높은 순으로 추천한다.
여기서
MyMovieHistory는 영화 추천을 위한 페이스북 응용프로그램으로 [그림 6]와 같이 소셜 상황을 고려하여 사용자별 이력에 따른 영화 관람 이력을 확인 할 수 있다.
이 응용프로그램은 소셜 상황 정보 추출을 토대로 한 보다 나은 영화추천 처리과정을 제공한다. 이 응용시스템을 사용하기 위해서, 사용자들은 페이스북 계정을 가지고 있어야 하고, APPS 섹션에서 MyMovieHistory를 운영해야 한다. 이 응용시스템을 사용하는 또 다른 방법은 link1
이 소셜 상황 정보 기반 영화 추천 시스템은 아래와 같은 요소들로 구성되어 있다.
- 사용자 관람이력(영화제목, 관람일, 친구, 장소) 생성하기- 사용자의 소셜 상황 추출하기: 시스템은 이 영화와 관련된 사용자의 상황정보(시간, 위치, 친구)를 수집한다.- 사용자의 관계 발견하기 : 시스템은 페이스북에 나타난 이력으로부터 사용자의 친구들을 추출한다.- 영화 속성 추출하기 : Pham과 Jung.은 지배적 특성 가치는 관람 영화 목록으로부터의 속성 가치 쌍들을 활용함으로써 확인할 수 있게 제안하였다[10]. 이 응용프로그램에서는 세 가지 영화 속성(장르, 배우, 감독)에 초점을 맞춘다.- 추천 : 사용자들이 응용시스템에 로그인 할 때, 잠재적 영화 목록이 사용자의 상황에 따라 매번 다른 영화들을 사용자에게 추천된다.
SNS는 세계적 현상이 되었다. 이 온라인 공동체 안의 내용과 사용자 수는 급격히 증가해 오고 있다. 사용자들의 상황정보에 기초한 페이스북 응용프로그램 형태의 영화 추천 시스템을 개발하는 것은 사용자에게 만족을 제공하는 기회를 가져줄 수 있는 새로운 접근법이다. 이 논문에서 그러한 응용프로그램 개발을 위한 새로운 기본 틀을 제안하였다.
MyMovieHisrtory 응용프로그램은 페이스북에서 이용가능하다. 이를 통해 사용자들이 자신의 관람 영화내용을 기록하고, 그 기록을 친구들과 공유하는 것을 가능케 한다. 그리고 사용자들이 자신의 관람 영화 내용을 기록하고, 그 기록을 친구들과 공유하는 것을 가능케한다.
앞으로의 작업에서 자료 수집 후 실험 결과를 제안할 것이다. 또한 소셜 상황을 고려하여, 2명을 위한 추천이 아닌 다수의 사용자가 동시에 만족할만한 추천을 위한 방법에 대해서도 제안하고자 한다.