상기 목적을 달성하기 위해 본 발명에서 제공하는 협업 필터링 방법은 컨텐츠 제공 서버로부터 사용자들의 컨텐츠 이용 정보를 전달받아 저장하는 과정; 상기 컨텐츠 이용 정보를 분석하여 각 컨텐츠에 대한 사용자의 행위 및/또는 이용시간 정보를 판단하고, 상기 사용자의 행위 및/또는 이용 시간 정보에 따른 가중치를 적용하여 컨텐츠 각각에 대한 사용자별 컨텐츠 선호도를 산출하는 과정; 상기 컨텐츠 이용 정보를 분석하여 함께 이용된 경우가 많은 컨텐츠 쌍을 판단하고, 상기 컨텐츠 쌍의 이용 형태 및 상기 쌍을 이루는 컨텐츠들 각각의 속성에 따른 가중치를 적용하여 상기 컨텐츠 쌍들의 유사도를 산출하는 과정; 및 상기 사용자별 컨텐츠 선호도 및 상기 컨텐츠 쌍의 유사도를 이용하여 사용자별 추천 데이터를 생성하는 과정을 포함한다.
이 때 상기 사용자별 컨텐츠 선호도 산출 과정은 상기 컨텐츠 이용 정보를 분석하여 각 컨텐츠에 대한 사용자의 행위를 판단하는 단계; 미리 설정된 행위별 선호도 가중치를 상기 판단된 사용자의 행위 각각에 적용하여 해당 컨텐츠에 대한 사용자별 행위 선호도를 산출하는 단계; 컨텐츠들 각각의 이용 시간 정보를 판단하고, 그 이용 시간 정보에 따른 시간 가중치를 적용하여 해당 컨텐츠에 대한 사용자별 시간 선호도를 산출하는 단계; 및 상기 사용자별 행위 선호도와 사용자별 시간 선호도를 이용하여 해당 컨텐츠에 대한 사용자별 컨텐츠 선호도를 산출하는 단계를 포함하는 것이 바람직하다.
또한 상기 사용자별 컨텐츠 선호도 산출 과정은 미리 설정된 비정상 사용자 판단 기준에 의거하여 비정상 사용자 정보를 필터링하는 단계를 더 포함하는 것이 바람직하다.
또한 상기 사용자별 컨텐츠 선호도 산출 과정은 사용자 속성(예컨대, 성, 연령 및 지역 등)을 이용하여 상기 사용자별 컨텐츠 선호도 산출 결과를 분리한 후 사용자 속성별 선호도를 산출하는 단계를 더 포함하는 것이 바람직하다.
또한 상기 시간 가중치 적용 단계는 해당 컨텐츠의 가장 최근 이용시간과 현재 시간과의 간격에 반비례하는 시간 가중치를 적용하는 것이 바람직하다.
또한 상기 유사도 산출 과정은 상기 컨텐츠 이용 정보를 분석하여, 미리 설정된 시간 간격 이내에 동일 사용자에 의해 연속적으로 이용된 서로 다른 2이상의 컨텐츠들 중 선택 가능한 2개의 컨텐츠 조합을 유사 컨텐츠 쌍으로 결정하는 단계; 상기 유사 컨텐츠 쌍에 대하여 동일 사용자에 의해 이용된 이용 시점간 간격에 반비례하는 시간 가중치를 적용하는 단계; 및 상기 유사 컨텐츠 쌍을 이루는 컨텐츠들 각각의 속성에 따른 속성 가중치를 적용하는 단계를 포함하는 것이 바람직하다.
또한 상기 유사도 산출 과정은 상기 컨텐츠 쌍을 함께 이용한 사용자들의 수가 미리 설정된 소수 사용자 결정값 이하인 경우 상기 컨텐츠 쌍을 필터링하는 단계를 더 포함하는 것이 바람직하다.
또한 상기 유사 컨텐츠 쌍 결정 단계는 서로 다른 2이상의 컨텐츠들이 미리 설정된 시간 간격 이내에 동일 사용자에 의해 연속적으로 사용된 횟수가 미리 설정된 횟수 이상인 경우 그 컨텐츠들 중 선택 가능한 2개의 컨텐츠 조합을 유사 컨텐츠 쌍으로 결정하는 것이 바람직하다.
또한 상기 시간 가중치 적용 단계는 상기 유사 컨텐츠 쌍에 대하여 동일 사용자에 의해 이용된 이용 시점간 간격을 판단하는 단계; 소정 시간 간격마다 그 시간 간격에 반비례하도록 미리 설정된 시간 가중치 중 상기 이용 시점간 간격에 대응된 시간 가중치를 선별하는 단계; 및 상기 선별된 시간 가중치를 적용하는 단계를 포함하는 것이 바람직하다.
또한 상기 속성 가중치 적용 단계는 상기 컨텐츠들이 속한 카테고리의 유사도에 비례하는 속성 가중치를 적용하는 것이 바람직하다.
한편 상기 목적을 달성하기 위해 본 발명에서 제공하는 협업 필터링 시스템은 사용자들에게 컨텐츠 서비스를 제공하는 컨텐츠 제공 서버와의 인터페이스를 통해 상기 컨텐츠 제공 서버로부터 사용자들의 컨텐츠 이용 정보를 수신하는 컨텐츠 제공서버 인터페이스부; 상기 사용자들의 컨텐츠 이용 정보를 저장/관리하는 컨텐츠 이용 정보 관리 데이터베이스부; 상기 컨텐츠 이용 정보 관리 데이터베이스부에 저장된 사용자들의 컨텐츠 이용 정보를 분석하여 각 컨텐츠에 대한 사용자의 행위 및/또는 이용 시간 정보에 따른 가중치가 적용된 사용자별 컨텐츠 선호도를 산출하는 사용자별 컨텐츠 선호도 산출부; 상기 컨텐츠 이용 정보 관리 데이터베이스부에 저장된 사용자들의 컨텐츠 이용 정보를 분석하여 함께 이용된 경우가 많은 컨텐츠 쌍을 판단하고, 상기 컨텐츠 쌍의 이용 형태 및 상기 쌍을 이루는 컨텐츠들 각각의 속성에 따른 가중치를 적용하여 상기 컨텐츠 쌍들의 유사도를 산출하는 컨텐츠 유사도 산출부; 및 상기 선호도 산출부의 사용자별 컨텐츠 선호도 산출결과와 상기 컨텐츠 유사도 산출부의 컨텐츠 쌍들의 유사도 산출결과를 이용하여 사용자별 추천 데이터를 생성하는 사용자별 추천 데이터 생성부를 포함한다.
이 때 상기 사용자별 컨텐츠 선호도 산출부는 상기 컨텐츠 이용 정보를 분석하여 각 컨텐츠에 대한 사용자의 행위를 판단하고, 미리 설정된 행위별 선호도 가중치를 상기 판단된 사용자의 행위 각각에 적용하여 사용자별 행위 선호도를 산출한 후 그 사용자별 행위 선호도를 포함하는 컨텐츠 선호도를 산출하는 것이 바람직하다.
또한 상기 사용자별 컨텐츠 선호도 산출부는 상기 컨텐츠 이용 정보를 분석하여 컨텐츠들 각각의 이용 시간 정보를 판단하고, 그 이용 시간 정보에 따른 시간 가중치를 적용하여 해당 컨텐츠에 대한 사용자별 시간 선호도를 산출한 후 그 사용자별 시간 선호도를 포함하는 컨텐츠 선호도를 산출하는 것이 바람직하다.
또한 상기 사용자별 컨텐츠 선호도 산출부는 미리 설정된 비정상 사용자 판단 기준에 의거하여 비정상 사용자 정보를 필터링한 후 상기 사용자별 컨텐츠 선호도를 산출하는 것이 바람직하다.
또한 상기 사용자별 컨텐츠 선호도 산출부는 사용자 속성을 이용하여 상기 사용자별 컨텐츠 선호도 산출결과를 분리한 후 사용자 속성별 선호도를 산출하는 것이 바람직하다.
또한 상기 사용자별 컨텐츠 선호도 산출부는 해당 컨텐츠의 가장 최근 이용 시간과 현재 시간과의 간격에 반비례하는 시간 가중치를 적용하여 사용자별 컨텐츠 선호도를 산출하는 것이 바람직하다.
또한 상기 컨텐츠 유사도 산출부는 상기 컨텐츠 이용 정보를 분석하여 미리 설정된 시간 간격 이내에 동일 사용자에 의해 연속적으로 이용된 서로 다른 2이상의 컨텐츠들 중 선택 가능한 2개의 컨텐츠 조합을 유사 컨텐츠 쌍으로 결정한 후 그 유사 컨텐츠 쌍에 대하여 동일 사용자에 의해 이용된 이용 시점간 간격에 반비례하는 시간 가중치를 적용한 유사도를 산출하는 것이 바람직하다.
또한 상기 컨텐츠 유사도 산출부는 서로 다른 2이상의 컨텐츠들이 미리 설정된 시간 간격 이내에 동일 사용자에 의해 연속적으로 사용된 횟수가 미리 설정된 횟수 이상인 경우 그 컨텐츠들 중 선택 가능한 2개의 컨텐츠 조합을 유사 컨텐츠 쌍으로 결정하는 것이 바람직하다.
또한 상기 컨텐츠 유사도 산출부는 상기 유사 컨텐츠 쌍을 이루는 컨텐츠들 각각의 속성에 따른 속성 가중치를 적용한 유사도를 산출하는 것이 바람직하다.
또한 상기 컨텐츠 유사도 산출부는 상기 유사 컨텐츠 쌍을 함께 이용한 사용자 수가 미리 설정된 소수 사용자 결정값 이하인 경우 상기 유사 컨텐츠 쌍을 필터링하는 것이 바람직하다.
이하, 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 이 때 첨부한 도면들 중 동일한 구성요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 1은 본 발명의 일실시 예에 따른 협업 필터링 시스템에 대한 개략적인 블록도이다. 도 1을 참조하면 본 발명의 일실시 예에 따른 협업 필터링 시스템(100)은 컨텐츠 제공서버 인터페이스부(105), 컨텐츠 이용정보 저장부(110), 컨텐츠 이용 정보 저장 관리 데이터베이스(DB: Data Base)(115), 사용자별 컨텐츠 선호도 산출부(120), 사용자별 컨텐츠 선호도 관리 DB(125), 컨텐츠 유사도 산출부(130), 유사도 데이터 관리 DB(135), 사용자별 추천 데이터 생성부(140), 유사도 데이터 관리 DB(145) 및 사용자별 추천 데이터 제공부(150)를 포함한다.
컨텐츠 제공서버 인터페이스부(105)는 사용자들에게 컨텐츠 서비스를 제공하는 컨텐츠 제공 서버(미도시)와의 인터페이싱을 수행한다. 예를 들어 컨텐츠 제공서버 인터페이스부(105)는 상기 컨텐츠 제공 서버로부터 사용자들의 컨텐츠 이용 정보를 전달받아 이를 컨텐츠 이용정보 저장부(110)로 전달하고, 사용자별 추천 데이터 제공부(150)로부터 사용자별 추천 데이터를 전달받아 이를 상기 컨텐츠 제공 서버로 전달한다. 이 때 컨텐츠 제공서버 인터페이스부(105)는 사용자들의 컨텐츠 이용 정보를 수신하거나 사용자별 추천 데이터의 제공을 일정 시간 단위로 수행하는 것이 바람직하다.
컨텐츠 이용정보 저장부(110)는 사용자들의 컨텐츠 이용 정보를 저장/관리한다. 예를 들어 컨텐츠 제공서버 인터페이스부(105)로부터 수신된 컨텐츠 이용 정보를 컨텐츠 이용 정보 관리 DB(115)에 저장한다.
컨텐츠 이용 정보 관리 DB(115)는 컨텐츠 이용정보 저장부(110)를 통해 전달 된 사용자들의 컨텐츠 이용 정보를 저장/관리한다. 이때 컨텐츠 이용 정보 관리 DB(115)는 사용자의 컨텐츠에 대한 행위를 행위별로 구분한 3치원 배열로 저장하는 것이 바람직하다. 컨텐츠 이용 정보 관리 DB(115)에서 상기 컨텐츠 이용 정보를 관리하기 위한 테이블 구조의 예가 도 2에 예시되어 있다.
도 2의 예에서는 상기 컨텐츠 이용 정보와 상기 컨텐츠 이용 정보 항목별로 가중치가 적용된 선호도 판단 결과를 함께 저장하는 테이블 구조를 예시하고 있다. 특히, 도 2의 예에서는 사용자의 컨텐츠에 대한 행위 정보를 시간 순으로 정렬한 예를 도시하고 있다. 도 2를 참조하면 상기 컨텐츠 이용 정보는 임의의 컨텐츠에 대한 컨텐츠 이용시간, 상기 컨텐츠를 이용한 사용자 정보 및 상기 컨텐츠 이용 대상이 된 컨텐츠 정보를 포함하고, 상기 컨텐츠에 대한 사용자의 행위 정보(예컨대, 행위수, 행위 타입 및 행위별 가중치)를 포함한다. 이 때 언급되지 않은 시간선호도, 행위별 가중치, 행위 선호도 및 선호 점수는 상기 컨텐츠 이용 정보를 참조하여 사용자별 컨텐츠 선호도 산출부(120)에서 산출한 결과로서, 컨텐츠 선호도 산출부(120)에 대한 동작 설명시에 상기 언급되지 않은 항목들에 대하여 보다 구체적으로 설명할 것이다.
다시 도 1을 참조하면, 사용자별 컨텐츠 선호도 산출부(120)는 도 2에 예시된 바와 같은 컨텐츠 이용 정보(예컨대, 컨텐츠 이용시간, 그 사용자 및 이용 대상이 된 컨텐츠들에 대한 정보)를 이용하여 각 컨텐츠에 대한 사용자별 컨텐츠 선호도를 산출한다. 예를 들어, 사용자별 컨텐츠 선호도 산출부(120)는 컨텐츠 이용 정보 관리 DB(115)에 저장된 사용자들의 컨텐츠 이용 정보를 분석한 후, 그 결과에 따라 가중치가 적용된 사용자별 컨텐츠 선호도를 산출한다. 특히 사용자별 컨텐츠 선호도 산출부(120)는 각 컨텐츠에 대한 사용자의 행위를 고려한 행위 선호도 및 컨텐츠 이용 시간 정보를 고려한 시간 선호도를 각각 산출한 후 그 두 값을 함께 고려한 사용자 선호도를 산출하는 것이 바람직하다.
이를 위해 사용자별 컨텐츠 선호도 산출부(120)는 상기 컨텐츠 이용 정보를 분석하여 각 컨텐츠에 대한 사용자의 행위를 판단하고, 미리 설정된 행위별 선호도 가중치를 상기 판단된 사용자의 행위 각각에 적용하여 사용자별 행위 선호도를 산출한다. 도 2에는 행위 타입 ‘읽기’, ‘구매’, ‘감상평 작성’에 대하여 행위별 가중치가 각각 ‘1’, ‘5’, ‘3’으로 설정된 경우 특정 컨텐츠에 대한 사용자의 행위별로 행위 선호도를 산출한 경우의 예가 도시되어 있다. 즉 도 2의 예에서 첫 번째 항목에 등록된 컨텐츠 이용 정보는 ‘사용자 1’이 ‘컨텐츠 1’에 대하여 ‘읽기’, ‘구매’, ‘감상평 작성’의 행위를 모두 수행한 경우이므로 그들 각각에 설정된 가중치를 모두 합한 가중치 '9' 가 행위 선호도로 산출되었고, 두 번째 항목에 등록된 컨텐츠 이용 정보는 ‘사용자 3’이 ‘컨텐츠 1’에 대하여 ‘읽기’, ‘구매’의 행위를 수행한 경우이므로 그들 각각에 설정된 가중치를 합한 가중치 ‘6’이 행위 선호도로 산출되었다.
또한 사용자별 컨텐츠 선호도 산출부(120)는 상기 컨텐츠 이용 정보를 분석하여 컨텐츠들 각각의 이용 시간 정보를 판단하고, 그 이용 시간 정보에 따른 시간 가중치를 적용하여 해당 컨텐츠에 대한 사용자별 시간 선호도를 산출한다. 이 때 상기 이용 시간 정보는 ‘특정 컨텐츠의 가장 최근 이용시간과 현재 시간과의 간격 ’인 것이 바람직하다. 즉 사용자별 컨텐츠 선호도 산출부(120)는 도 3에 예시된 바와 같이 ‘특정 컨텐츠의 가장 최근 이용시간과 현재 시간과의 간격’ 반비례하는 시간 가중치를 적용하여 사용자별 시간 선호도를 산출하는 것이 바람직하다. 이는 최근에 이용된 컨텐츠에 높은 가중치를 적용하기 위한 것이다.
그리고 상기 행위 선호도 및 시간 선호도를 함께 적용하여 해당 컨텐츠에 대한 사용자의 선호도를 산출한다. 도 2에서는 상기 행위 선호도 및 시간 선호도를 합한 값을 선호 점수로 산출한 예를 도시하고 있다.
한편 사용자별 컨텐츠 선호도 산출부(120)는 비정상 사용자 판단 기준을 미리 설정하고 그 기준을 만족하는 사용자의 컨텐츠 이용 정보는 필터링한다. 즉 상기 비정상 사용자로 판단된 사용자의 컨텐츠 이용 정보는 사용자별 컨텐츠 선호도 산출시 고려하지 않는다. 이는 서비스를 사용하는 사용자 중 일부가 스팸 광고와 같이 불특정한 다수에게 광고를 게재하는 등, 자신의 선호 분야에 맞추어 선별적으로 컨텐츠를 이용하지 않고 무작위로 컨텐츠에 접근할 경우, 컨텐츠 간의 연관도를 계산하는 데에 있어서 부정확한 결과를 유도하는 것을 방지하기 위한 것이다.
이를 위해 사용자별 컨텐츠 선호도 산출부(120)는 사용자의 속성 또는 행위 형태에 의거하여 비정상 사용자를 판단하기 위한 기준을 미리 설정하고 그 기준에 만족하는 사용자의 컨텐츠 이용 정보를 필터링하는 것이 바람직하다. 이 때 사용자별 컨텐츠 선호도 산출부(120)는 사용자의 직업이 해당 컨텐츠를 판매하는 온/오프라인 쇼핑몰 주인이거나 해당 컨텐츠를 개발하는 프로그램 개발자인 경우 또는 사용자의 국적이 해당 컨텐츠의 판매 대상국 이외의 국가인 경우 그 사용자를 비정상 사용자로 판단한다. 또한 사용자의 행위 형태를 분석하여 동일 컨텐츠에 대하여 최소 접근시간 간격 이내에 최대 접근횟수 이상 접근하는 행위 형태를 보이는 사용자 또는 최소 수행 시간 간격 이내에 최대 수행 횟수 이상 동일한 행위를 수행하는 사용자를 비정상 사용자로 판단한다. 특히 상기 동일 행위의 대상이 불특정 다수의 사용자인 경우 상기 사용자를 비정상 사용자로 판단하는 것이 바람직하다.
도 2의 예에서 'yy/mm/dd hh:mm:ss 6_1 ~ yy/mm/dd hh:mm:ss 6_3'의 시간간격이 미리 설정된 최소 접근시간 간격 이내이고 상기 최대 접근횟수가 3회라면, 도 2의 테이블 6번째부터 8번째 항목의 컨텐츠 이용 정보는 ‘동일 컨텐츠에 대하여 최소 접근시간 간격 이내에 최대 접근횟수 이상 접근하는 행위 형태’에 해당된다. 따라서 사용자별 컨텐츠 선호도 산출부(120)는 상기 항목을 필터링 대상으로 판단한다.
또한 사용자별 컨텐츠 선호도 산출부(120)는 소수 집단에 속한 사용자의 특성이 반영되지 않는 문제점을 해결하기 위해 사용자 속성을 이용하여 상기 사용자별 컨텐츠 선호도 산출 결과를 분리한 후 사용자 속성별 선호도를 산출하는 것이 바람직하다. 예를 들어, 성, 연령 및 지역 중 적어도 하나 이상의 사용자 속성에 의해 상기 사용자별 컨텐츠 선호도 산출 결과를 분리하는 것이 바람직하다.
이를 위해 사용자별 컨텐츠 선호도 산출부(120)는 먼저 도 2에 예시된 바와 같은 사용자별 컨텐츠 선호도가 표시된 컨텐츠 이용 정보 관리 테이블을 도 4a 내지 도 4c에 예시된 바와 같이 사용자 별로 분리한다. 즉, 도 4a는 도 2에 예시된 테이블로부터 ‘사용자 1’의 컨텐츠 이용 정보 및 선호도 정보를 분리한 예이고, 도 4b는 도 2에 예시된 테이블로부터 ‘사용자 3’의 컨텐츠 이용 정보 및 선호도 정보를 분리한 예이고, 도 4c는 도 2에 예시된 테이블로부터 ‘사용자 4’의 컨텐츠 이용 정보 및 선호도 정보를 분리한 예를 나타낸다.
이와 같이 사용자별 컨텐츠 이용 정보 및 선호도 정보를 분리하였으면, 컨텐츠 선호도 산출부(120)는 도 5에 예시된 바와 같은 사용자 정보 관리 테이블로부터 사용자들의 속성을 판단한 후 특정 사용자 속성이 동일한 사용자들에 대한 컨텐츠 이용 정보 및 선호도 정보 테이블을 병합함으로써 사용자 속성별 컨텐츠 이용 정보 및 선호도 정보 관리 테이블을 생성한다.
도 6a 및 도 6b는 상기 과정에 의해 생성된 사용자 속성별 컨텐츠 이용 정보 및 선호도 정보 관리 테이블의 예를 도시하고 있다. 즉, 도 6a는 서울/경기 지역 여자의 컨텐츠 선호도를 관리하는 테이블을 예시하고, 도 6b는 충청 지역 남자의 컨텐츠 선호도를 관리하는 테이블을 예시하고 있다.
이와 같이 사용자별 컨텐츠 선호도 산출부(120)에서 산출된 사용자별 컨텐츠 선호도 산출 결과는 사용자별 컨텐츠 선호도 관리 DB(125)에 저장/관리된다.
컨텐츠 유사도 산출부(130)는 컨텐츠 이용 정보 관리 DB(115)에 저장된 사용자들의 컨텐츠 이용 정보를 분석하여 함께 이용된 경우가 많은 컨텐츠 쌍을 판단하고, 상기 컨텐츠 쌍의 이용 형태 및 상기 쌍을 이루는 컨텐츠들 각각의 속성에 따른 가중치를 적용하여 상기 컨텐츠 쌍들의 유사도를 산출한다.
이를 위해 컨텐츠 유사도 산출부(130)는 상기 컨텐츠 이용 정보를 분석하여 미리 설정된 시간 간격 이내에 동일 사용자에 의해 연속적으로 이용된 서로 다른 2 이상의 컨텐츠들 중 선택 가능한 2개의 컨텐츠 조합을 유사 컨텐츠 쌍으로 결정한다. 그리고 그 유사 컨텐츠 쌍에 대하여 동일 사용자에 의해 이용된 이용 시점간 간격에 반비례하는 시간 가중치를 적용한 유사도를 산출한다. 예를 들어 30일전 같은 날에 ‘컨텐츠 A’와 ‘컨텐츠 B’를 함께 사용한 사용자가 10인이고, 10일전에 ‘컨텐츠 C’를 사용하고 1일전에 ‘컨텐츠 D’를 사용한 사용자가 10인이라면 두 번째 경우가 더 최근에 일어난 일이지만 ‘컨텐츠 A’와 ‘컨텐츠 B’는 같은 날에 일어난 현상이므로 ‘컨텐츠 A’와 ‘컨텐츠 B’가 ‘컨텐츠 C’와 ‘컨텐츠 D’보다 더 유사도가 높게 계산되도록 가중치를 부여하는 것이다.
이 때 컨텐츠 유사도 산출부(130)는 서로 다른 2이상의 컨텐츠들이 미리 설정된 시간 간격 이내에 동일 사용자에 의해 연속적으로 사용된 횟수가 미리 설정된 횟수 이상인 경우에 그 컨텐츠들 중 선택 가능한 2개의 컨텐츠 조합을 유사 컨텐츠 쌍으로 결정하는 것이 바람직하다. 한편 컨텐츠 유사도 산출부(130)는 클러스터링에 의해 상기 유사 컨텐츠 쌍을 결정하며, 상기 클러스터링 방법은 널리 알려진 바와 같이 피어슨 상관관계, 인기도차 방법, 코사인 유사도 방법 등 일반적인 협업 필터링에서 사용되는 모든 알고리즘을 사용하는 것이 가능하다. 따라서 본 명세서에서는 유사 컨텐츠 쌍을 생성하기 위핸 구체적인 클러스터링 과정에 대한 설명은 생략할 것이다.
또한 컨텐츠 유사도 산출부(130)는 상기 유사 컨텐츠 쌍을 이루는 컨텐츠들 각각의 속성에 따른 속성 가중치를 적용한 유사도를 산출하는 것이 바람직하다. 즉 컨텐츠 유사도 산출부(130)는 상기 유사 컨텐츠 쌍을 이루는 컨텐츠들이 속한 카테 고리의 유사도에 비례하는 속성 가중치를 적용하는 것이 바람직하다. 예를 들어 ‘컨텐츠 A’, ‘컨텐츠 B’, ‘컨텐츠 C’, ‘컨텐츠 D’가 미술작품이라고 하고 행위 기록에 의해 계산된 순수한 ‘컨텐츠 A’와 ‘컨텐츠 B’간 유사도가 ‘0.3’, ‘컨텐츠 C’와 ‘컨텐츠 D’간 유사도가 ‘0.3’으로 동일하다고 할 때, ‘컨텐츠 A’는 서양화, ‘컨텐츠 B’는 동양화, ‘컨텐츠 C’는 조각, ‘컨텐츠 D’는 비디오 아트라고 한다면, ‘컨텐츠 A’와 ‘컨텐츠 B’가 그림이라는 이미 알려진 유사 속성이 있으므로, 컨텐츠 유사도 산출부(130)는 ‘컨텐츠 A’와 ‘컨텐츠 B’의 유사도 점수에 가중치를 부여하여 ‘컨텐츠 C’와 ‘컨텐츠 D’보다 더 높은 유사도가 산출되도록 하는 것이다.
한편 컨텐츠 유사도 산출부(130)는 상기 유사 컨텐츠 쌍을 함께 이용한 사용자 수가 미리 설정된 소수 사용자 결정값 이하인 경우 상기 유사 컨텐츠 쌍을 필터링한다. 이는 소수 사용자에 의해 의도적으로 컨텐츠간 유사도가 실제와는 다르게 산출되는 것을 방지하기 위한 것으로서, 보다 정확한 컨텐츠 유사도를 산출하기 위한 방법 중 하나인 것이다. 이 때 컨텐츠 유사도 산출부(130)는 상기 소수 사용자들의 속성을 비교하여 그 속성이 미리 설정된 개수 이상 동일한 경우 상기 소수 사용자들의 속성 및 필터링된 컨텐츠 쌍 정보를 상기 사용자별 컨텐츠 선호도 산출부로 전달하여 해당 사용자 그룹의 선호도 정보로 관리하도록 하는 것이 바람직하다. 이는 소수의 사용자 그룹이라 하더라도 그 사용자들이 서로 공통적인 속성을 가지는 그룹이라면 그들의 성향을 고려해야할 필요가 있기 때문이다.
이와 같이 컨텐츠 유사도 산출부(130)에서 산출된 컨텐츠 쌍들의 유사도 산 출 결과는 유사도 데이터 관리 DB(135)에 저장/관리된다.
도 7은 이러한 유사도 데이터를 저장/관리하는 테이블의 예로서, 본 발명에의한 유사도 데이터는 상기한 바와 같이 일반 클러스터링 결과에 시간 가중치 및 속성 가중치를 부가한 값이므로 도 7에 예시된 바와 같이 관리하는 것이 가능하다.
사용자별 추천 데이터 생성부(140)는 사용자별 컨텐츠 선호도 관리 DB(125)에 저장된 사용자별 컨텐츠 선호도 산출결과와 유사도 데이터 관리 DB(135)에 저장된 컨텐츠 쌍들의 유사도 데이터를 이용하여 사용자별 추천 데이터를 생성한다. 이 때 상기 사용자별 추천 데이터의 생성 방법은 이미 공지된 다양한 기술을 이용하는 것이 가능하다. 사용자별 추천 데이터 생성부(140)는 상기 사용자별 추천 데이터 생성 결과를 사용자별 추천 데이터 관리 DB(145)에 저장한다.
사용자별 추천 데이터 제공부(150)는 사용자별 추천 데이터를 해당 사용자에게 제공하기 위해 사용자별 추천 데이터 관리 DB(145)에 저장된 생성부에서 생성된 사용자별 추천 데이터를 컨텐츠 제공서버 인터페이스부(105)로 전달한다.
도 8은 본 발명의 일실시 예에 따른 협업 필터링 방법을 이용하여 사용자별 추천 데이터를 제공하는 과정에 대한 처리 흐름도이다. 즉 도 8은 도 1에 예시된 협업 필터링 시스템에 의한 협업 필터링 과정의 예를 도시하고 있다.
도 1 및 도 8을 참조하면 본 발명의 일실시 예에 따른 협업 필터링 방법을 설명하면 다음과 같다.
본 발명은 컨텐츠들 각각에 대한 사용자의 행위 정보 및 컨텐츠들의 이용 형태에 따라 사용자별 컨텐츠 선호도 및 컨텐츠의 유사도를 산출하고, 그 결과에 의거하여 사용자별 추천 데이터를 생성한다. 따라서 본 발명의 협업 필터링 방법은 컨텐츠 제공 서버로부터 사용자들의 컨텐츠 이용 정보를 전달받아 저장하는 과정(미도시)이 선행되어야 한다.
상기 컨텐츠 이용 정보가 저장되면 협업 필터링 시스템(100)은 그 컨텐츠 이용 정보를 분석하여 각 컨텐츠에 대한 사용자의 행위 및/또는 이용시간 정보를 판단하고, 상기 사용자의 행위 및/또는 이용 시간 정보에 따른 가중치를 적용하여 컨텐츠 각각에 대한 사용자별 컨텐츠 선호도를 산출한다(S100). 그리고 상기 컨텐츠 이용 정보를 분석하여 함께 이용된 경우가 많은 컨텐츠 쌍을 판단하고, 상기 컨텐츠 쌍의 이용 형태 및 상기 쌍을 이루는 컨텐츠들 각각의 속성에 따른 가중치를 적용하여 상기 컨텐츠 쌍들의 유사도를 산출한다(S200).
상기와 같이 사용자별 컨텐츠 선호도 및 컨텐츠 쌍의 유사도가 산출되면 협업 필터링 시스템(100)은 그 사용자별 컨텐츠 선호도 및 상기 컨텐츠 쌍의 유사도를 이용하여 사용자별 추천 데이터를 생성한다(S300). 그리고 그 사용자별 컨텐츠 추천 데이터 제공 조건을 만족하면 해당 사용자에게 컨텐츠 추천 데이터를 제공한다(S400). 이 때 상기 컨텐츠 추천 데이터 제공 조건은 해당 사용자가 컨텐츠 제공 서버에 접근한 경우인 것이 바람직하다.
도 9는 본 발명의 일실시 예에 따른 사용자별 컨텐츠 선호도 산출 과정에 대한 처리 흐름도이다. 도 9를 참조하면 도 8에 예시된 컨텐츠 선호도 산출과정(S100)은 다음과 같다.
먼저 도 1에 예시된 바와 같은 협업 필터링 시스템(100)은 미리 저장된 컨텐 츠 이용 정보를 분석하여 각 컨텐츠에 대한 사용자의 행위 정보를 저장한다(S110). 즉 각 컨텐츠에 대한 사용자의 행위 정보를 판단하고 그 결과를 저장한다. 그리고 그 행위 종류에 따른 행위 가중치가 적용된 행위 선호도를 산출한다(S120). 이를 위해 협업 필터링 시스템(100)은 미리 설정된 행위별 선호도 가중치를 상기 판단된 사용자의 행위 각각에 적용하여 해당 컨텐츠에 대한 사용자별 행위 선호도를 하는 것이 바람직하다.
또한 본 발명의 컨텐츠별 사용자 선호도 산출과정은 컨텐츠 이용 시간에 따른 시간 가중치가 적용된 시간 선호도를 산출한다(S130). 이를 위해 본 발명의 협업 필터링 시스템(100)은 컨텐츠들 각각의 이용 시간 정보를 판단하고, 그 이용 시간 정보에 따른 시간 가중치를 적용하여 해당 컨텐츠에 대한 사용자별 시간 선호도를 산출하는 것이 바람직하다.
그리고 상기 사용자별 행위 선호도와 사용자별 시간 선호도를 이용하여 해당 컨텐츠에 대한 사용자별 컨텐츠 선호도를 산출한다.
한편 이와 같이 사용자별 컨텐츠 선호도를 산출한 본 발명의 협업 필터링 시스템(100)은 비정상 사용자 정보를 필터링한 후(S140) 그 사용자 속성별 컨텐츠 선호도를 분석한다(S150). 이 때 상기 비정상 사용자 정보 필터링 및 사용자 속성별 컨텐츠 선호도 분석 과정은 도 1을 참조한 사용자별 컨텐츠 선호도 산출부(120)의 동작 설명시 언급된 바와 유사하므로 그 구체적인 설명을 생략한다.
이와 같은 본 발명의 사용자별 컨텐츠 선호도 산출과정은 비정상 사용자의 컨텐츠 사용 이력 정보를 무시하면서 소수 집단의 컨텐츠 이용 성향을 고려함으로 써 보다 정확한 추천 데이터를 산출할 수 있는 장점이 있을 것이다.
도 10은 본 발명의 일실시 예에 따른 컨텐츠 유사도 산출 과정에 대한 처리 흐름도이다. 도 10을 참조하면 도 8에 예시된 컨텐츠 쌍의 유사도 산출과정(S200)은 다음과 같다.
먼저 도 1에 예시된 바와 같은 협업 필터링 시스템(100)은 미리 저장된 컨텐츠 이용 정보를 분석하여, 미리 설정된 시간 간격 이내에 동일 사용자에 의해 연속적으로 이용된 서로 다른 2이상의 컨텐츠들 중 선택 가능한 2개의 컨텐츠 조합을 유사 컨텐츠 쌍으로 결정한다(S210).
그리고 클러스터링된 컨텐츠 쌍에 대하여 이용시점간 간격에 반비례하는 시간 가중치를 부여하고(S220), 클러스터링된 컨텐츠 쌍에 대하여 그 속성에 따른 속성 가중치를 부여함으로써(S230) 상기 유사 컨텐츠 쌍을 이루는 컨텐츠들간의 유사도를 산출한다. 이 때 상기 클러스터링 과정(S210)과, 시간 및 속성 가중치 적용 과정(S220, S230)에 대한 구체적인 설명은 도 1을 참조한 컨텐츠 유사도 산출부(130)의 동작 설명시 언급된 바와 유사하므로 그 구체적인 설명을 생략한다.
이 때 상기와 같이 유사도를 산출한 본 발명의 협업 필터링 시스템(100)은 유사 컨텐츠 쌍으로 분류된 컨텐츠 쌍을 함께 이용한 사용자들의 수가 미리 설정된 소수 사용자 결정값 이하인 경우 상기 컨텐츠 쌍을 필터링(S240)한다. 이는 소수 사용자에 의해 의도적으로 컨텐츠간 유사도가 실제와는 다르게 산출되는 것을 방지하기 위한 것이다.
한편 본 발명의 협업 필터링 시스템(100)은 상기 소수 사용자들의 속성을 비 교하여 그 속성이 미리 설정된 개수 이상 동일한 경우 상기 소수 사용자들의 속성 및 필터링된 컨텐츠 쌍 정보를 상기 사용자별 컨텐츠 선호도 산출부로 전달하여 해당 사용자 그룹의 선호도 정보로 관리하도록 하는 것이 바람직하다. 이는 소수의 사용자 그룹이라 하더라도 그 사용자들이 서로 공통적인 속성을 가지는 그룹이라면 그들의 성향을 고려해야할 필요가 있기 때문이다.
이 때 상기 필터링에 대한 구체적인 처리 과정은 도 1을 참조한 컨텐츠 유사도 산출부(130)의 동작 설명시 언급된 바와 유사하므로 그 구체적인 설명을 생락한다.
이상에서는 본 발명에서 특정의 바람직한 실시 예에 대하여 도시하고 또한 설명하였다. 그러나 본 발명은 상술한 실시 예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.