KR20160064446A - 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법 - Google Patents

선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법 Download PDF

Info

Publication number
KR20160064446A
KR20160064446A KR1020140168061A KR20140168061A KR20160064446A KR 20160064446 A KR20160064446 A KR 20160064446A KR 1020140168061 A KR1020140168061 A KR 1020140168061A KR 20140168061 A KR20140168061 A KR 20140168061A KR 20160064446 A KR20160064446 A KR 20160064446A
Authority
KR
South Korea
Prior art keywords
preference
matrix
user
preferences
completion
Prior art date
Application number
KR1020140168061A
Other languages
English (en)
Inventor
이종찬
Original Assignee
이종찬
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이종찬 filed Critical 이종찬
Priority to KR1020140168061A priority Critical patent/KR20160064446A/ko
Publication of KR20160064446A publication Critical patent/KR20160064446A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/043Optimisation of two dimensional placement, e.g. cutting of clothes or wood
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem

Abstract

일부 선호 점수가 빠진 선호도를 행렬 완성으로 완성하되, 다수의 행렬 계수에 대한 행렬 완성을 수행하는 동시에, 사용자 그룹을 클러스트된 상태에서의 행렬 완성도 수행하여 그 결과도 반영하는, 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 관한 것으로서, (a) 아이템에 대한 사용자의 선호 점수 데이터를 입력받는 단계; (b) 다수의 행렬 계수에 대한 행렬 완성을 수행하여 다수의 선호도를 구하고 이들 가중 평균하여 제1 선호도 행렬을 구하는 단계; (c) 상기 제1 선호도 행렬에서 각 사용자의 선호도를 정규화하고 보정하여 제2 선호도 행렬을 구하는 단계; (d) 사용자가 클러스터된 그룹들에 대하여 행렬완성으로 선호도를 구하여 제3 선호도 행렬을 생성하는 단계; 및, (e) 상기 제2 및 제3 선호도 행렬을 가중 평균하여 최종 선호도 행렬을 구하는 단계를 포함하는 구성을 마련한다.
상기와 같은 방법에 의하여, 행렬 완성과 클러스터링 방법을 근본적으로 결합시킴으로써, 모든 사용자의 선호도 영향을 반영하여 보다 정확한 사용자의 선호도를 예측할 수 있다.

Description

선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법 { A preference prediction method based on collaborative filtering algorithm using preference points }
본 발명은 다수의 사용자가 다수의 아이템에 대하여 부여한 일부 선호 점수를 수집하여 일부 엔트리 값이 없는 불완전한 선호도 행렬을 생성하고, 행렬 완성(Matrix Completion) 알고리즘 및, 클러스터링(clustering) 알고리즘을 이용하여 상기 불완전한 선호도 행렬로부터 완성된 선호도 행렬을 추정하고, 추정된 선호도 행렬로 사용자의 선호도를 예측하는, 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 관한 것이다.
일반적으로, 구매물품이나 콘텐츠 등 아이템의 추천 방식으로 가장 많이 사용되는 것은 이미 이들 아이템을 사용한 사용자들의 별표 부여 등 선호점수에 의한 추천방식이다. 즉, 많은 사용자로부터 높은 점수를 받은 아이템이 가장 좋은 아이템으로서 추천된다. 그러나 이러한 추천 방식은 개인의 취향이나 성향을 무시한 방식이다. 즉, 대중적인 성향을 갖지 않은 사용자에게는 이러한 추천 방식이 전혀 도움이 되지 않는다.
따라서 사용자별 사용 기록을 분석하여, 분석결과를 바탕으로 각 사용자에게 콘텐츠 추천을 수행하는 방법들도 많이 제시되고 있다[특허문헌 1]. 그러나 상기와 같은 개인 사용 패턴에 따른 추천 방식은 활용 데이터의 성격이 단순하고 제한적이어서 데이터 희귀문제가 자주 발생한다. 예컨대, 콘텐츠, 구매물품 등 아이템 사용에 따른 사용 로그가 많이 남아있는 사용자일 경우 사용 로그를 통해 사용자의 사용 패턴을 정확하게 분석할 수 있으므로 이러한 사용자에게는 만족도 높은 아이템을 추천해줄 수 있지만, 상대적으로 사용 로그가 적게 남아있는 사용자일 경우 자료가 부족하여 사용 로그만으로는 사용 패턴을 정확하게 분석할 수 없으므로 추천해줄 아이템의 양과 그에 대한 충실도가 떨어져 추천 결과에 대한 사용자 만족도가 저하될 수 있다.
상기와 같은 종래 추천방식의 문제점을 해결하고자, 협업 필터링(collaborative filtering) 방법이 제시되고 있다. 협업 필터링(collaborative filtering) 방법은 사용자의 과거 아이템 검색 결과에 기초해 사용자의 선호도를 분석하고, 사용자의 선호도와 유사한 선호도를 가지는 그룹의 사용자들이 선택한 아이템을 검색하는 방법이다. 그룹에 속한 사용자들이 많이 선택하였거나, 높은 평가 점수를 수여한 아이템을 검색하고, 검색된 아이템에 대한 정보를 사용자에게 제공한다. 협업 필터링은 사용자 개인이 별점이나 댓글과 같이 해당 아이템에 대해 표현한 선호도 값을 이용한다.
일례로서, 각 사용자의 콘텐츠 사용 히스토리 정보 외에, 각 사용자와 소셜 네트워크상에서 관계를 맺은 유관 사용자들의 콘텐츠 사용 히스토리 정보를 사용하여 추천하는 기술이 제시되고 있다[특허문헌 2]. 또한, 시청자와 유사한 시청 취향을 갖는 시청자 그룹의 시청 프로그램으로부터 협업필터링을 이용한 프로그램을 추출하고 취향 선호도가 높은 순서로 정렬하여 추천하는 기술도 제시되고 있다[특허문헌 3]. 서로 다른 정보 필터링 알고리즘을 이용하여 서버와 클라이언트가 각각 필터링을 수행하는 기술도 제시되고 있다[특허문헌 4]. 또한, 선호 업종에 기초하여 유사 성향 그룹으로 분류하는 협업 필터링 기술도 나타나고[특허문헌 5], EMD(Earth Mover's Distance)를 이용하여 사용자와 타겟 사용자 간의 유사도를 계산하는 기술도 나타난다[특허문헌 6].
그러나 상기 선행기술들은 사용자의 속성이나 사용 패턴 등을 이용하여 사용자들을 그룹화시킨 후, 해당 그룹의 선호도를 제시하고 있다. 따라서 서로 다른 그룹에 속하는 사용자들의 선호도들은 서로 영향을 주지 않는다. 그러나 실제로 모든 사용자들의 각 아이템에 대한 선호도는 서로 연관성을 가지고 있다. 결국, 상기 선행기술들은 사용자들의 선호도들이 모두 상호작용하는 효과를 전체적으로 반영하고 있지 못한 문제점이 있다.
[특허문헌 1] 한국공개특허 제10-2014-0111152호(2014.09.18. 공개) [특허문헌 2] 한국공개특허 제10-2013-0098841호(2013.09.05. 공개) [특허문헌 3] 한국공개특허 제10-2010-0096975호(2010.09.02. 공개) [특허문헌 4] 한국공개특허 제10-2009-0010866호(2009.01.30. 공개) [특허문헌 5] 한국공개특허 제10-2012-0076477호(2012.07.09. 공개) [특허문헌 6] 한국공개특허 제10-2014-0079639호(2014.06.27. 공개)
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 일부 선호 점수가 빠진 선호도를 행렬 완성으로 완성하되, 다수의 행렬 계수에 대한 행렬 완성을 수행하는 동시에, 사용자 그룹을 클러스트된 상태에서의 행렬 완성도 수행하여 그 결과도 반영하는, 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법을 제공하는 것이다.
특히, 본 발명의 목적은 다수의 행렬 계수에 대한 행렬 완성(Matrix Completion)으로 다수의 선호도를 구하여 이들을 훈련 오차로 가중 평균하여 제1 선호도 행렬을 구하고, 사용자 전체를 클러스터링한 후 클러스터된 사용자 그룹들에 대한 행렬 완성으로 각 선호도를 구하여 이들을 오차가 최소화하는 제2 선호도 행렬을 구하여, 상기 제1 및 제2 선호도 행렬을 가중 기하 평균으로 최종 선호도 행렬을 구하는, 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법을 제공하는 것이다.
또한, 본 발명의 목적은 다수의 행렬 계수에 대한 행렬 완성(Matrix Completion)으로 완성 행렬을 구하되, 이들을 다시 각 사용자의 선호 점수를 정규화하여 보정하는, 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 관한 것으로서, (a) 아이템에 대한 사용자의 선호 점수 데이터를 입력받는 단계; (b) 다수의 행렬 계수에 대한 행렬 완성을 수행하여 다수의 선호도를 구하고 이들 가중 평균하여 제1 선호도 행렬을 구하는 단계; (c) 상기 제1 선호도 행렬에서 각 사용자의 선호도를 정규화하고 보정하여 제2 선호도 행렬을 구하는 단계; (d) 사용자가 클러스터된 그룹들에 대하여 행렬완성으로 선호도를 구하여 제3 선호도 행렬을 생성하는 단계; 및, (e) 상기 제2 및 제3 선호도 행렬을 가중 평균하여 최종 선호도 행렬을 구하는 단계를 포함하는 것을 특징으로 한다.
또, 본 발명은 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 있어서, 상기 (b)단계에서, 다수의 행렬 계수에 대한 행렬 완성(Matrix Completion)으로 다수의 선호도를 구하여 이들을 훈련 오차로 가중 평균하여 제1 선호도 행렬을 구하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 의하면, 행렬 완성과 클러스터링 방법을 근본적으로 결합시킴으로써, 모든 사용자의 선호도 영향을 반영하여 보다 정확한 사용자의 선호도를 예측할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 의하면, 다수의 행렬 계수에 대하여 모두 행렬 완성을 수행하여 이들을 가중 평균하여 제1 선호도 행렬을 구함으로써, 행렬 계수의 크기에 따른 소수 취향과 예측력의 트레이드오프를 최적화시켜 소수의 취향도 반영하면서 예측력도 가지는 보다 정확한 사용자 선호도를 구할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 의하면, 각 사용자의 선호 점수를 부여하는 방식을 정규화하여 보정함으로써, 각 사용자의 독특한 선호 점수 부여 방식의 영향을 최소화하여 보다 정확한 사용자 선호도를 구할 수 있는 효과가 얻어진다.
도 1은 본 발명을 실시하기 위한 전체 시스템의 구성에 대한 블록도.
도 2는 본 발명의 일실시예에 따른 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법을 설명하는 흐름도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체 시스템 구성의 일례를 도 1을 참조하여 설명한다.
도 1a 또는 도 1b에서 보는 바와 같이, 본 발명에 따른 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법은 네트워크 상의 서버 시스템 또는 컴퓨터 단말 상의 프로그램 시스템으로 실시될 수 있다.
도 1a와 같이, 본 발명의 실시를 위한 전체 시스템의 일례는 사용자 단말(10)과 선호도 예측 시스템 또는 서버(30)로 구성되고 서로 네트워크(20)로 연결된다. 또, 필요한 데이터를 저장하기 위한 데이터베이스(40)를 더 구비할 수 있다.
사용자 단말(10)은 물품, 콘텐츠 등 아이템을 소비하는(구매하거나 이용하는) 사용자가 이용하는 PC, 노트북, 넷북, 스마트폰, 태블릿PC, 모바일 등의 통상의 컴퓨팅 단말기이다. 사용자가 사용자 단말(10)을 이용하여 아이템을 소비할 때, 사용자의 소비 패턴이 선호도 예측 시스템(30)에 전송된다.
한편, 선호도 예측 시스템(30)은 시용자 단말(10)에서 사용자의 아이템 소비 패턴을 캡쳐하여, 사용자 선호도를 분석하고, 사용자 단말(10)에 아이템에 대한 추천 서비스를 제공한다.
데이터베이스(40)는 선호도 예측 시스템 또는 서버(30)에서 필요한 데이터를 저장하는 통상의 저장매체로서, 사용자의 아이템 소비 패턴, 또는 사용자의 선호도 행렬 등을 저장한다.
도 1b와 같이, 본 발명의 실시를 위한 전체 시스템의 다른 예는 컴퓨터 단말(13)에 설치되는 프로그램 형태의 선호도 예측 시스템(30)으로 구성된다. 즉, 선호도 예측 시스템(30)의 각 기능들은 컴퓨터 프로그램으로 구현되어 컴퓨터 단말(13)에 설치되어, 사용자의 아이템 소비 패턴에 대한 데이터를 입력받아, 사용자의 선호도 행렬을 추정하여 예측하고, 예측된 선호도 행렬에 따라 아이템의 추천 데이터를 생성하는 작업을 수행한다. 선호도 예측 시스템(30)에서 필요한 데이터들은 컴퓨터 단말(13)의 하드디스크 등 저장공간에 저장되어 이용된다.
다음으로, 본 발명의 일실시예에 따른 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법을 도 2를 참조하여 설명한다.
추천엔진은 다음과 같은 데이터를 수집하고 처리하여 사용자에게 아이템을 추천해준다.
1. 사용자 u가 아이템 i에 대해 매긴 별점 rui 들의 집합을 알고 있다.
2. 사용자 u가 아이템 i와 j 중 어떤 아이템을 더 선호하는지 알고있다.
우리가 수집할 수 있는 데이터는 이 중의 일부이고, 수집하지 못한 부분의 데이터를 예측해야 한다. 우리는 1과 2의 데이터를 각각 이용해 사용자 u의 아이템 i에 대한 선호도를 수치화해내고 예측해 낸다. 1의 데이터만을 사용해 예측한 선호도를 행렬 A, 2의 데이터만을 이용해 예측한 선호도를 행렬 B로 나타낼 수 있다. 이를 이용해 추천 엔진이 최종으로 사용하는 선호도를 나타내는 행렬 C는 다음과 같이 계산한다.
[수학식 1]
Figure pat00001
여기서 M은 원래 알고 있는 사용자 u의 아이템 i에 대한 선호도 이다. 그럼 이제 우리의 추천엔진이 어떻게 1과 2의 데이터를 각각 이용하여 사용자의 선호도를 알아내는지 기술하고자 한다.
1. 선호 점수(또는 별점 데이터)만을 이용해 사용자 선호를 예측하는 방법
선호 점수(또는 별점 데이터)만을 이용해 사용자 선호를 예측하는 기존 방법은 넷플릭스 경연대회(Netflix Prize)를 통해 알려졌듯이 행렬완성 알고리즘(Matrix Completion Algorithm)만을 사용하는 것이다. 행렬완성 알고리즘(Matrix Completion Algorithm) 알고리즘이 별점 데이터를 이용한 추천 상황에 잘 동작한다고 알려져 있다. 우리의 추천 엔진은 기존의 행렬완성 알고리즘(Matrix Completion Algorithm)에 기반해 여러 가지 알고리즘을 혼합한 기법들을 사용한다.
행렬 완성(Matrix Completion)을 하기 위해서는 완성할 행렬의 계수(rank)인 k를 알고리즘의 입력(input) 인자로 같이 넘겨주어야 한다. 이것은 행렬 완성(Matrix Completion)을 수행하는 여러 알고리즘들 중 교차 최소화(Alternating Minimization) 방식을 사용하기 때문이다. 이 방식은 이론적으로는 다른 알고리즘보다 성능이 좋음을 보이지 못했으나, 실용적(practical)으로 잘 들어맞는다고 알려져 있다. 넷플릭스(Netflix)도 여러 행렬 완성(Matrix Completion) 알고리즘 중 교차 최소화(Alternating Minimization) 방식을 사용한다).
넷플릭스(Netflix)는 k=20으로 넘겨줘서 행렬을 완성한다고 알려져 있다. 계수(rank)를 높이면 높일 수록 기존 데이터에 대한 설명력은 높아지지만, 남은 데이터에 대한 예측력은 떨어지는 과도적합(Ovefitting) 현상이 발생하므로 적절한 계수(rank)를 설정하는 것은 매우 중요한 일이다.
이제, 별점 데이터만을 이용해 사용자 선호를 예측하는 가장 핵심적인 방법에 대해서 소개하고자 한다. 우리의 추천엔진은 적절한 계수(rank)를 찾는 데에 그치지 않고, 이를 확장한 기법을 사용한다. 계수(rank) k를 통해 완성한 행렬 즉, 사용자 선호를 예측한 행렬을 Ak 라고 하자. 우리의 추천엔진도 넷플릭스 알고리즘이 사용하는 것과 마찬가지로 어떤 값 k를 설정한다. 바람직하게는, 이 값은 쌓인 별점 데이터의 양에 따라 적절한 k값이 바뀌므로 추후 데이터가 많아졌을 시 증가하게 설계한다. k값이 결정되면, kmin 과 kmax 를 다음과 같이 결정한다.
[수학식 2]
kmin = max(1, k - 3)
kmax = k + 4
이제 이렇게 결정한 값을 이용하여 어떻게 사용자 선호를 나타내는 행렬 A를 계산해 내는지 설명하고자 한다.
각 행렬 Ak 에 대해 사용자 u의 예측 선호도 벡터(vector)를 Au k 로 표현할 수 있다. 주어진 행렬 M에 대해서도 사용자 u에 대한 선호도 벡터를 Mu 로 표현할 수 있다.
Mu 와 Au k 간의 학습 오차(training error)를 eu k 라고 하자. 이 때, wu k 를 다음과 같이 정의한다.
[수학식 3]
Figure pat00002
이 wu k 를 이용하여 사용자 u에 대한 최종 선호도 벡터인 Au 를 다음과 같이 계산한다.
[수학식 4]
Figure pat00003
Au 를 모든 사용자 u에 대해서 계산하면, 사용자 선호도를 예측한 행렬 A를 계산할 수 있다.
이해를 돕기 위해, 이 알고리즘을 종합적(Synthetic)으로 설명하고자 한다. 예측된 선호를 나타내는 행렬의 계수(rank)가 커지면 고려하는 인자가 많아지기 때문에 점점 소수(Minority)의 취향까지 고려하는 것으로 받아들일 수 있다. 하지만, 앞서 언급했듯이 계수(rank)가 커지면 커질수록 소수에 대한 취향은 잘 예측해 내지만, 전체적으로 보면 취향에 대한 예측력이 떨어진다.
위 방법에서는 각 사용자마다 이 사용자가 얼마나 대중적인 취향을 갖고 있는지를 파악하여 수치화 한다. 이 수치화된 사용자에 대한 분석을 바탕으로 여러 개의 완성된 행렬(Completed Matrix)들의 선형 결합(Linear combination)을 구하는 방식이다. 최대 8개의 예측된 취향을 나타내는 행렬을 설정한 이유는 내부데이터를 이용해 실험적으로 판단해 본 결과 8개만 보는 것이 가장 좋은 예측력을 나타내었기 때문이다. 후에 데이터가 많아지고 변화하면 이 값을 조정할 수 있도록 내부 엔진을 설계해 두었다.
[ Callibrating Prediction of User Preference ]
행렬 완성(Matrix Completion) 알고리즘 등 많은 추천 알고리즘들은 기본적으로 소수에 대한 취향을 무시하고 전체적인 경향성을 파악하려는 성향이 강하다. 넷플릭스 대회(Netflix Prize)를 통해 기존 추천 알고리즘의 성능을 10% 향상시키기가 얼마나 어려운지 알게 되었다. 이런 힘든 문제를 해결하기 위해서는 소수의 취향을 더 잘 예측할 필요가 있었다. 이번 아이디어도 역시 사용자를 분석하는 것에 기반을 둔 방식이다.
사용자를 분석하여 추천을 위한 확장 행렬완성 알고리즘(Extended Matrix Completion Algorithm For Recommendation)에서 얻은 데이터를 보정한다.
우리는 어떤 아이템에 대해 선호를 매길 때 좋으나 싫으나 다른 사람들에게 영향을 받는다. 특히 고전적으로 우리가 다른 사람들에게 영향을 받아온 방식은 평균별점이다. 대부분의 별점을 이용한 평가 방식을 사용하고 있는 기존 웹사이트들의 경우 평균별점을 같이 제시함으로써 평균적으로 이 아이템이 얼마나 좋은 평가를 받았는지 알려준다.
협업적 필터링(Collaborative Filtering)은 이런 평균 별점 방식에서 벗어나 보고자 하는 시도이지만, 아직 사람들은 평균별점이라는 방식에 많이 익숙해져 있을 것이라고 가정했다. 따라서, 우리의 추천엔진은 사용자의 평균별점에 대해 얼마나 반감을 가지고 있는지를 계산해 냈다. 각 사용자 u에 대한 이 점수를 frogu 라고 하겠다. 평균별점과 다른 점수를 주려고 의도적으로 노력한 사람들은 이 점수가 높게 나타날 것이고, 평균별점과 비슷한 점수를 주고 있는 사람들은 이 점수가 낮게 나타날 것이다.
각 아이템 i의 별점은 가우시안 분포(Gaussian Distribution)을 나타낸다고 가정하였다. 그래서 사용자 u가 준 각각의 별점을 아이템 i의 평균별점과 표준편차를 이용하여 정규화(normalize)했다. 사용자 u의 아이템 i에 대한 별점이 ki 로 정규화되었다고 가정하자. 이 때, frogu 는 다음과 같이 계산한다.
[수학식 5]
Figure pat00004
여기서 집합 I는 전체 아이템의 집합을 의미한다. 이 값을 이용하여 예측 별점을 보정하기 위해, 먼저 frogu 를 이용하여 승수(mulitiplier) mulu 를 계산해 낸다. 어떤 아이템 i의 평균별점을 ri 이라고 한다. 보정된 예측 선호도(rating) r은 다음과 같이 계산한다.
[수학식 6]
Figure pat00005
도 3은 로지스틱 함수(Logistic Function)와 유사한 오차 함수(Error Function)들을 나타낸다.
마지막으로 우리의 추천엔진이 어떻게 frogu 를 이용하여 mulu 를 계산해 내었는지 설명하고자 한다. frogu 를 이용하여 mulu 를 계산하는 방식이 바뀜에 따라 추천엔진의 성능이 많이 바뀔 수 있다. 시도해 본 대부분의 함수들의 경우 오히려 추천 성능을 나쁘게 했다.
frogu 를 mulu 로 계산해내는 함수, 즉, mulu(frogu)에 많은 증가함수를 시도해보았다. 하지만, 로지스틱 함수(Logistic Function)와 유사한 개형을 가진 함수들이 다른 시도해보았던 증가함수들에 비해 높은 성능 증가를 보였다. 도 3에서 제시한 함수들을 x축으로 1.5, y축으로 1만큼 평행이동시켜 테스트 해보았고, 그 중에서 가장 좋은 성능을 나타낸 함수를 mulu(frogu)로 채택하였다. 자세한 방정식은 다음과 같다.
[수학식 7]
Figure pat00006
[행렬완성 최소화와 클러스터링]
많은 추천엔진들이 협업적 필터링(Collaborative Filtering)을 위해 클러스터링(Clustering) 알고리즘들을 같이 사용한다고 알려져 있다. 이웃 예측자(Neighboorhood Predictor)를 계산할 때 추천엔진의 성능을 높이기 위해 클러스터링(Clustering) 알고리즘을 사용할 것으로 예상한다. 하지만, 이웃 예측자(Neighboorhood Predictor) 자체가 그렇게 빠른 알고리즘도 아닐 뿐더러, 추천 성능은 데이터가 작으면 작을수록 행렬 완성(Matrix Completion) 자체에 비해 매우 떨어짐을 실험적(Practical)으로 확인한 바 있다.
추천 기법에 있어 클러스터링을 사용하는 알고리즘들은 행렬 완성(Matrix Completion)과 별개로 계산되어 이후 우리의 추천엔진에서 사용하듯 기하 평균(Geometric Mean)이나 선형 결합(Linear Combination)을 이용하여 두 결과를 합치는 방식으로 이용되어 왔다. 우리의 추천엔진에서는 클러스터링(Clustering)과 행렬 완성(Matrix Completion)을 근본적으로 합치는 방식을 고안하였다. 역시 다른 클러스터링(Clustering) 알고리즘과 마찬가지로, 데이터의 크기가 작을 때에는 행렬 완성(Matrix Completion) 자체와 비교했을 때 좋지 못한 성능을 나타낸다. 하지만, 데이터 크기가 커질수록 클러스터링(Clustering)만 사용한 후 행렬 완성(Matrix Completion)의 결과와 합친 것보다 근본적으로 두 알고리즘을 결합한 것이 더 좋은 성능을 나타내는 경향이 있음을 확인하였다.
이제 어떻게 행렬 완성(Matrix Completion)과 클러스터링(Clustering)을 혼합(Mixing)하는지 설명하고자 한다. 먼저 이해를 돕기 위해 행렬 완성(Matrix Completion) 알고리즘이 푸는 문제에 대해 다시한 번 기술하면 다음과 같다.
[수학식 8]
Figure pat00007
여기서 집합 U는 사용자 전체의 집합을 의미한다. 우리는 클러스터링(Clustering)과 혼합(Mixing)하기 위해 다음과 같은 문제를 해결하는 알고리즘을 고안하였다.
[수학식 9]
Figure pat00008
행렬 완성(Matrix Completion) 문제 자체는 다항시간 내에 풀기 힘들기 때문에, 다항시간 내에 풀어내기 위해 여러가지 테크닉들을 도입한다. 위에서 제시한 문제의 경우 C = 1 일 때, 행렬 완성(Matrix Completion) 문제와 정확히 같은 문제로 축약(reduced)되고, C > 1 인 경우, 문제가 더 어려워지므로 다항시간 내에 풀기 힘들다고 볼 수 있다.
풀기 힘든 문제이지만, 추천 성능을 높이기 위해서 실용적(Practical)으로 해답(solution)을 구해야 했고, 우리는 이 문제를 다항시간 내에 풀기 위해 교차 최소화(Alternating Minimization) 방식을 도입하였다. 교차 최소화(Alternating Minimization)는 어떤 변수들을 일정한 값으로 고정하면, 문제를 다항시간 내에 풀 수 있는 성질을 이용하여, 다른 값들을 구해낸 이후에는 구한 값들을 이용하여 다시 이전에 고정했던 값들을 구해내는 방식을 의미한다.
Global한 Solution을 얻을 수 있을지는 미지수이지만, 적어도 Practical하게 의미있는 결과는 얻어낼 수 있다. 우리는 각 사용자 u의 클러스터(Cluster)를 초기화 한 뒤, 그 클러스터(Cluster)를 이용하여 Au j 를 각각 구해내고, Au j 를 이용하여 다시 클러스터(Cluster)를 구해낸다. 이러한 과정을 반복해서 학습 오차(Training Error)가 수렴할 때 까지 반복한다.
교차 최소화(Alternating Minimization) 알고리즘의 경우, 초기값을 어떻게 설정하느냐에 따라 알고리즘의 성능이 매우 큰 차이를 보인다. K-means, EM, 랜덤 클러스터(Random Cluster) 등 여러 가지 클러스터링 알고리즘을 시험해보았으나, 랜덤(Random)하게 각 사용자의 클러스터를 지정하는 랜덤 클러스터(Random Cluster)가 가장 좋은 성능을 나타내었기에 우리의 추천엔진에서는 랜덤 클러스터링(Random Clustering)으로 초기화해 이 알고리즘을 사용한다.
이 알고리즘을 이용해 구해낸 예측 행렬은 이전 두 가지 방식 [ Extended Matrix Completion For Recommendation ], [Callibrating Prediction of User Preference ]을 통해 계산된 예측 행렬과 비교해서 예측 결과값의 변동(Fluctuation)이 더 큰 것을 확인할 수 있었다. 다른 알고리즘에서 구한 결과와 합쳐질 때 너무 데이터가 예측값과 멀어지는 것을 방지하기 위해 산술평균보다는 기하평균으로 계산하는 것이 바람직하다고 판단했고, 뒤에서 정리하겠지만, 앞에서 구한 예측행렬과 이 알고리즘을 이용해 구한 예측행렬을 엔트리별 가중 기하 평균(entry-wise weighted geometric mean)을 계산해 최종 예측행렬을 구해낸다.
[ Final Algorithm For Rating Data Only ]
지금까지 우리의 추천엔진이 어떻게 별점 데이터만을 이용해 사용자 선호를 예측해 내는지에 대해 [ Extended Matrix Completion For Recommendation ], [ Callibrating Prediction of User Preference ], [ Mixing Matrix Completion and Clustering ]의 세 가지 주요 알고리즘에 대해서 설명하였다.
별점 데이터만을 이용해 추천엔진이 사용자 선호를 예측하는 방식을 간략하게 정리하면 다음과 같다. 여기서, 문턱치(Threshold)나 기타 성능을 튜닝하기 위한 과정들은 생략하였다
1. [ Extended Matrix Completion For Recommendation ]를 이용해 예측 선호도를 나타내는 행렬 A1 을 계산한다.
2. 행렬 A1 과 [ Callibrating Prediction of User Preference ]를 이용해 보정된 행렬 A2 를 계산한다.
3. [ Mixing Matrix Completion and Clustering ]을 이용해 예측 선호도를 나타내는 행렬 A3 을 계산한다.
4. A2 와 A3 의 각 엔트리(entry)별로 가중 기하 평균(weighted geometric mean)을 계산한다. 이때, 데이터가 커질수록 A3 의 가중치를 높인다.
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 사용자 단말 20 : 네트워크
30 : 선호도 예측 시스템 40 : 데이터베이스

Claims (2)

  1. 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법에 있어서,
    (a) 아이템에 대한 사용자의 선호 점수 데이터를 입력받는 단계;
    (b) 다수의 행렬 계수에 대한 행렬 완성을 수행하여 다수의 선호도를 구하고 이들 가중 평균하여 제1 선호도 행렬을 구하는 단계;
    (c) 상기 제1 선호도 행렬에서 각 사용자의 선호도를 정규화하고 보정하여 제2 선호도 행렬을 구하는 단계;
    (d) 사용자가 클러스터된 그룹들에 대하여 행렬완성으로 선호도를 구하여 제3 선호도 행렬을 생성하는 단계; 및,
    (e) 상기 제2 및 제3 선호도 행렬을 가중 평균하여 최종 선호도 행렬을 구하는 단계를 포함하는 것을 특징으로 하는 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법.
  2. 제1항에 있어서,
    상기 (b)단계에서, 다수의 행렬 계수에 대한 행렬 완성(Matrix Completion)으로 다수의 선호도를 구하여 이들을 훈련 오차로 가중 평균하여 제1 선호도 행렬을 구하는 것을 특징으로 하는 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법.
KR1020140168061A 2014-11-28 2014-11-28 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법 KR20160064446A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140168061A KR20160064446A (ko) 2014-11-28 2014-11-28 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140168061A KR20160064446A (ko) 2014-11-28 2014-11-28 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법

Publications (1)

Publication Number Publication Date
KR20160064446A true KR20160064446A (ko) 2016-06-08

Family

ID=56193452

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140168061A KR20160064446A (ko) 2014-11-28 2014-11-28 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법

Country Status (1)

Country Link
KR (1) KR20160064446A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102392173B1 (ko) * 2021-08-19 2022-05-31 주식회사 만나당 인공 신경망 기반의 맞춤 한과 구독 서비스 제공 시스템 및 그 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090010866A (ko) 2007-07-24 2009-01-30 삼성전자주식회사 복합 알고리즘 이용한 정보 추천 방법 및 장치
KR20100096975A (ko) 2009-02-25 2010-09-02 한국정보통신대학교 산학협력단 협업 필터링을 이용한 사용자 맞춤형 아이피 티브이 프로그램 자동 추천 방법
KR20120076477A (ko) 2010-11-25 2012-07-09 주식회사 케이티 상점 추천 방법 및 시스템
KR20130098841A (ko) 2012-02-28 2013-09-05 전자부품연구원 추출된 사용자 그룹을 활용한 사용자별 콘텐츠 추천 장치 및 방법
KR20140079639A (ko) 2012-12-18 2014-06-27 한양대학교 산학협력단 협업 필터링을 위한 emd 기반 유사 사용자 선별 방법
KR20140111152A (ko) 2013-03-08 2014-09-18 공주대학교 산학협력단 음악추천 시스템 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090010866A (ko) 2007-07-24 2009-01-30 삼성전자주식회사 복합 알고리즘 이용한 정보 추천 방법 및 장치
KR20100096975A (ko) 2009-02-25 2010-09-02 한국정보통신대학교 산학협력단 협업 필터링을 이용한 사용자 맞춤형 아이피 티브이 프로그램 자동 추천 방법
KR20120076477A (ko) 2010-11-25 2012-07-09 주식회사 케이티 상점 추천 방법 및 시스템
KR20130098841A (ko) 2012-02-28 2013-09-05 전자부품연구원 추출된 사용자 그룹을 활용한 사용자별 콘텐츠 추천 장치 및 방법
KR20140079639A (ko) 2012-12-18 2014-06-27 한양대학교 산학협력단 협업 필터링을 위한 emd 기반 유사 사용자 선별 방법
KR20140111152A (ko) 2013-03-08 2014-09-18 공주대학교 산학협력단 음악추천 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102392173B1 (ko) * 2021-08-19 2022-05-31 주식회사 만나당 인공 신경망 기반의 맞춤 한과 구독 서비스 제공 시스템 및 그 방법

Similar Documents

Publication Publication Date Title
KR20160064447A (ko) 협력적 필터링의 예측 선호도를 이용한 처음 사용자에 대한 추천 제공 방법
Su et al. TAP: A personalized trust-aware QoS prediction approach for web service recommendation
Zhang et al. Detection of shilling attacks in recommender systems via spectral clustering
CN110909182B (zh) 多媒体资源搜索方法、装置、计算机设备及存储介质
KR20160064448A (ko) 유사 집합의 예상 선호도 대비 기반 아이템 추천 제공 방법
Günnemann et al. Robust multivariate autoregression for anomaly detection in dynamic product ratings
US20150317310A1 (en) Method and system for evaluating query suggestions quality
KR101620748B1 (ko) 아이템 추천 방법 및 아이템 추천 장치
CN107590243A (zh) 基于随机游走和多样性图排序的个性化服务推荐方法
Pham et al. Preference-based user rating correction process for interactive recommendation systems
US20150317317A1 (en) Method and system for providing query suggestions including entities
CN109471982B (zh) 一种基于用户和服务聚类QoS感知的Web服务推荐方法
Cohen et al. A black-box attack model for visually-aware recommender systems
WO2022095585A1 (zh) 内容推荐方法及装置
US20170132516A1 (en) Adaptive sampling scheme for imbalanced large scale data
CN111241381A (zh) 信息推荐方法、装置、电子设备及计算机可读存储介质
US11914638B2 (en) Image selection from a database
JP2014215685A (ja) レコメンドサーバおよびレコメンドコンテンツ決定方法
Zhao et al. Improving top-N recommendation performance using missing data
CN110909257A (zh) 评分预测方法和装置
KR20160064446A (ko) 선호 점수를 이용한 협력적 필터링 기반 선호도 예측 방법
US20230206629A1 (en) Arranging a set of images for presentation to a user
KR102323424B1 (ko) 관측평점과 유사도 그래프를 활용한 추천 알고리즘의 평점 예측 방법
WO2010009314A2 (en) System and method of using automated collaborative filtering for decision-making in the presence of data imperfections
US20200364769A1 (en) Exploration for interactive recommendation systems

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination