연구 주제를 정하기 위해서 우선적으로 해야할 것.
1. 내가 최대한 하고자 하는 것인지를 고려하자.
현재 추천시스템은 대부분의 광고, 영업, 판매, 전략 등의 부서에서 이를 활용한 서비스를 구축하여 원하는 결과를 얻고 있다. 나는 이러한 추세에 녹아들어 향후 속하게될 도메인에서 사업에 대한 이해를 바탕으로 그 사업을 위해 최적화된 추천시스템을 구현하고 유지 보수 하는 일을 하고 싶다. 그렇기 때문에 추천시스템에 관련한 기초적인 이론과 구현은 물론 나만의 생각과 가설을 세워보면서 더 나은 방법을 생각해보며 실력을 키우고 있는 중이다. 그렇기 때문에 나는 추천시스템 관련 논문을 석사졸업 전에 완성할 것이다. 해야 하는 일과 배우고 싶고 실력을 쌓고 싶은 분야이다. 내가 하고자 하는 것이 맞다.
2. 이전 연구들에 대한 조사를 진행하자.
Using Content-Based Filtering for Recommendation
-> 하고자 하는 것:
콘텐츠 기반 필터링의 개념과 문제점에 대한 설명을 한다. 콘텐츠 기반의 필터링 방법을 통한 추천시스템의 구현을 보여준다.
-> 문제를 해결하기 위한 방법:
CF가 가진 explicit한 사용자의 데이터(좋아요! 구독! 시청시간! 등..)는 항상 사용자가 행동을 어떻게서든 표시를 해줘야하는데 이는 사실상 믿고 더블로 가기 힘들다. 그렇기 때문에 implicit한 데이터라고 할 수 있는 사용자의 행동패턴을 통해서 피드백을 확보한다. 그래서 사용자 모델은 역동적이고 긍정적인 상황속에서 학습이 되야한다고 한다.
구현.
구현을 위한 데이터는 아래의 그림3에서 보이는 데이터 베이스에 속한 유저 프로필, 페이지 인덱스가 있다. 웹 페이지에 대한 정보는 오프라인으로 수집이 된다. 콘텐츠를 위한 데이터는 도메인은 집 보수관련된 article이고 결국 이에 대한 tf-idf 행렬이다. 유저 프로필은 사용자 행동을 관찰함으로써 온라인으로 수집한다. 이 후 웹페이지에서 parser는 terms을 추출하고 tf-idf가중치를 계산한다.
프로파일러와 멤버십은 사용자 요청에 반응한다. 멤버십은, 사용자가 회원가입이 되어 있어야 이름, 암호 등의 여러 정보가 데이터베이스에 저장되고 결국 개인화된 추천을 받을 수 있게 된다. 프로파일러의 구성요소는 방문 페이지를 추적한다. 처음에는 프로파일은 비어있다. recommender는 인덱싱된 페이지와 사용자의 프로필을 비교함으로써 관련 웹페이지를 하이퍼링크를 씌워서 추천하게 된다. 이러한 개인화 맞춤 추천 시스템을 PRES(Personalized Recommendation System) 추천시스템라고 한다.
실험 결과로는 제시한 추천 중에서는 평균적으로 1개 이상은 관련 있는 주제였음을 나타내는 것으로 보였다. 동일한 개념이라도 여러 용어로 설명되어 추천에 부정적 영향을 좀 끼친다고 한다. 벡터 공간 모델을 개선하여 더 나은 결과를 얻을 수 있을 것이다. 하지만 콘텐츠 기반 필터링 시스템은 사용자의 향후 관심사에 대한 예측을 할 수가 없다. 그렇기에 협업 필터링과 콘텐츠 기반 필터링이 결합하면 이 PRES의 효율성이 더욱 향상될 것이다.
-> 풀지 못한 문제(한계점):
본 논문에서 지적한 문제점은 콘텐츠 기반 추천은 항상 사용자가 흥미를 잃었는지도 모르고 계속 유사한 콘텐츠만을 추천한다는 것이다. 향후 사용자의 흥미를 예측하지 못한다는 점에서 협업 필터링과의 결합의 효율성을 암시하였다.
-> 나의 생각
근본적으로 콘텐츠 기반 필터링의 문제점인 사용자의 취향에 대한 "예측"이 불가능 한 것에는 변함이 없고, 문제가 명확한 만큼 이를 보완하기 위해 계속해서 하이브리드 필터링과 같은 방법들을 여러 도메인의 데이터를 가지고 개선 효과를 보고 있으니 하이브리드 필터링 관련 논문을 더 읽어봐야겠다.
암시적(implicit)데이터를 사용자의 웹페이지 이동 경로를 활용했다는 점에서 실시간 구현에 있어서 서버나 인터넷, 네트워크 관련 지식도 필요하다고 생각이 들었다. 똑똑한 데이터 수집 기술이 필요하다. 암시적 데이터를 계속해서 피드백하여 사용자 행렬을 꾸준히 업데이트 시키는 것은 좋은 알고리즘이라고 생각한다. 콘텐츠 기반 필터링을 실제 구현하면 이렇게 상대적으로 변화에 정적인 콘텐츠 데이터 보다는 역동적으로 계속 변하는 사용자 행렬에 대한 대처가 생각보다 힘들겠구나 라는 생각과 함께 현재 사용중인 사용자에게는 그렇게 나쁘지 않을 것이라는 생각이 드는게, 요새는 검색어와 문서 간의 매칭률 알고리즘이 좋아서 금방 자료를 찾을 수 있기 때문에 사용자의 먼 취향까지 생각하지 않아도 될테니까. 하지만 사용자의 흥미를 끌어들여야 하는 각종 SNS나 스트리밍 사이트 들은 콘텐츠 기반만 가지고는 사용자의 흥미를 쉽게 잃어버리게 만들수도 있을 것 같다. 콜라보가 필요하다는 것을 다시 한 번 느낀다.
Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions(2005)
-> 하고자 하는 것:
추천시스템의 기법들에 대한 설명과 앞으로의 연장선 상에 대한 내용들의 서베이 논문이기 때문에 주로 개념 설명과 최신기법 소개, 향후의 방향 등에 대한 정보 전달이 주 목적이다.
-> 본문:
이 논문에선 method 별 개념에 대한 설명 이후 이어질 향후 연구 방향 등의 연장선 상에 대한 설명과 결론으로 이어진다. 나는 서베이 논문 2015를 읽는 것으로 대체하고 여기서는 method 부분에 대한 설명을 주로 읽었다.
협력필터링은 사용자 커뮤니티 데이터를 기반으로 하여 특정 사용자와 유사한 사용자의 취향을 특정 사용자에게도 추천해주게 된다. 이 알고리즘은 메모리 기반(휴리스틱 기반)과 모델 기반이라는 두가지 일반 클래스로 그룹화할 수 있다.
메모리 기반 알고리즘은 사용자에 의해 이전에 평가된 항목의 전체 컬렉션을 기반으로 평가(rating)를 예측하는 방법이다.
aggregation 함수를 사용하여 주로 평가 점수를 예측하게 된다. 아래의 (a), (b), (c) 처럼 변형하여 $r_{c,s}$를 구하게 된다.
세 공식 중 (b) 공식과 같은 가중평균을 활용한 접근이 가장 흔하다고 한다.
(b)공식을 설명해보면 특정 사용자 $c$와 $\hat{C}$(특정사용자 $c$와 유사도를 구할 수 있는 사용자들 집합; 동일한 항목에 대한 평가 자료가 있는 사용자들)에 포함된 $c'$와의 유사도를 모두 구한후, $c'$의 아이템 $s$에 대한 평가r_{c',s}를 곱한 것들의 합을 일반화를 위한 요소인 $k$를 곱하는 것이다. 보통 $k$는 다음과 같이 $c$와 모든 $c'$사이의 유사도를 모두 더한 값이다.
$k$는 아래과 같다.
사용자들 간의 유사도는 상관계수와 코사인 기반으로 구하곤 하는데, 코사인 유사도를 주로 활용한다.
(b) 공식의 경우 다른 사용자들이 다른 척도로 등급을 매긴 경우에 대한 것을 고려하지 않는다. 이에 편차를 활용한 (c) 또는, preference-based filtering 을 활용해 보완토록 한다.
상관관계/코사인 기반의 기술들의 확장판으로 default voting, inverse user frequency, case amplification, weighted-majority prediction 는 성능 향상을 위해 제안되었다.
또한 위의 것들은 다 사용자 사이의 유사도를 계산하는 전통적인 기술들이었다면, 이제 동일하게 상관관계/코사인 기반 기술들로 아이템 사이의 유사도를 계산하는 아이템 기반의 기술이 제안 되었다.
메모리 기반의 기법 말고 모델 기반의 알고리즘이 있다. 평점을 예측하기 위해서 평점 집합을 사용해서 모델을 학습시킨다. 알려지지 않은 평점을 계산하는 협업 필터링에 확률적인 접근을 제안한다. 그 식은 아래와 같다.
$r_{c,s} = E(r_{c,s}) = \sum_{i=0}^{n} i \times Pr(r_{c,s} = i | r_{c,s'},s' \in S_{c})$
$i$는 0 ~ $n$사이의 정수고 사용자 $c$가 이전에 다른 사용자로부터 평가된 아이템 $s$에 특정 평점을 줄 확률이다. 이런 확률을 추정하는데 클러스터 모델이나 베이지안 네트워크를 제안한다.
첫번째 모델은 같은 생각을 가진 사용자들을 클래스로 군집화한다. 사용자의 클래스, 평점 등은 독립적이라고 가정한다. 모델 구조는 순수한 베이지안 모델이다. 모델의 클래스 수와 파라미터는 데이터로부터 학습된다.
두번째 모델은 도메인의 각 항목을 베이지안 네트워크의 노드로 표현하며, 각 노드의 상태는 각 항목에 대한 가능한 평점 값에 해당합니다.네트워크의 구조와 조건부 확률은 모두 데이터로부터 학습된다.
이 접근법의 한 가지 한계는 각 사용자가 단일 클러스터로 클러스터링 될 수 있다는 것입니다. 반면 일부 추천 응용 프로그램은 사용자를 여러 범주로 동시에 클러스터링할 수 있는 기능으로부터 이익을 얻을 수 있습니다.예를 들어, 책 추천 애플리케이션에서, 사용자는 일목요연을 위한 하나의 주제(예: 프로그래밍)와 여가를 위한 완전히 다른 주제(예: 낚시)에 관심이 있을 수 있다.
또한 [11]은 기계 학습 프레임 워크에서 협력 필터링 방법을 제안했는데, 여기서 다양한 기계 학습 기술 (인공 신경망 등)과 특징 추출 기술 (예 : singularvalue decomposition - 행렬의 차원을 줄이기 위한 대수적 기술)이 사용될 수 있습니다. [15]와 [11]은 각각의 모델 기반 접근법을 표준 메모리 기반 접근법과 비교하고 일부 응용 프로그램에서 모델 기반 방법이 추천의 정확성 측면에서 메모리 기반 접근법보다 성능이 뛰어나다고보고 합니다.그러나 두 경우의 비교는 순전히 경험적이며 이 주장을 뒷받침하는 근본적인 이론적 증거는 제공되지 않습니다.
문헌에서 제안된 다른 모델 기반 협력추천 접근법이 몇 가지 있었다. [105]에서는협업필터링을 위한 통계적모델을제안하고, K-means clustering과 Gibbs sampling을 포함하여 모델파라미터를추정하기 위한 몇 가지 다른알고리즘을비교하였다. 다른협력필터링방법에는Bayesian모델 [20], 확률론적관계모델 [37], 선형회귀 [91], 최대엔트로피모델 [75]이 포함됩니다.최근에는 더 복잡한 확률 모델을 사용하여 추천프로세스를 모델링 하려는 연구가 많이 수행되었습니다.
[79] 에서는 모델 기반과 메모리 기반의 접근법을 결합하는 방법이 제안되었다. 이방법 역시 순수한 메모리 혹은 모델 기반 접근법보다 나은 추천을 할 수 있다는 경험적인 입증이 있다.
[109] 메모리/모델 기반을 구성하는 CF에 대한 확률론적 접근 방식을 제안함. 능동 학습 접근법을 사용하여 각 사용자의 선호도에 대한 확률적 모델을 배우고, 혼합 모델에 저장된 사용자 프로파일을 사용하여 추천을 계산한다.
새로운 유저 문제
-> 추천을 위해 시스템이 먼저 사용자가 제공하는 선호도를 학습해야하는데 이를 해결하기 위해 하이브리드 추천을 사용.[83][109]
새로운 아이템 문제
-> 새로운 항목은 추천 시스템에 정기적으로 추가된다. CF는 사용자의 선호도에 의존하여 추천하기 때문에 상당수의 사용자에 의해 평가될 때까지, 추천할 수 없다. 이는 하이브리드 추천에서 해결할 수도 있다.
Sparsity 문제
-> 추천 시스템에서 추천해야할 곳이 이미 알고 있는 평점보다 많다. 그래서 소수의 예에서 효과적인 평점 예측이 중요하다. 추천시스템의 성공여부는 사용자의 임계치에 달려있다. 소수의 사용자가 높은 등급을 부여해도 추천이 잘 안된다. 또한 취향이 특이한 사용자는 유사한 사용자가 거의 없어서 추천에 있어서 다소 열악한 환경에 놓인다. 이를 해결하기 위해서 인구통계학적 부분에 속하는 사용자 프로필 정보를 사용하는 것이다. 예를 들어, 성별, 연령, 지역번호, 교육, 고용 정보 등이 있다.전통적인 CF의 확장을 'demographic filtering'이라고 한다.
하이브리드 모델을 만들기 위한 CF와 CBF 사이의 결합 방식 4가지를 소개하였다.
-> 풀지 못한 문제(한계점)
알고리즘들이 가진 한계점은 논문에 나와있는 대로 여전히 고질적이며, 이를 개선하기 위한 다양한 기법으로 정확도를 올리거나 계산성능을 높히는 연구들이 진행되고 있다.
-> 나의 생각
전통적인 방법의 추천시스템 보다 CF와 CBF를 결합한 Hybrid 방식, 그리고 모델 기반의 방법에 대한 연구로 정확도와 성능이 높이 평가받고 있기에 이에 대한 고찰이 더욱 중요할 것이라 생각이 된다. 개념 학습 이후에는 애플리케이션 적용 산업, 도메인데 적용하며 변형된 다양한 추천시스템 기법들에 대한 조사가 필요하다.
refer.[105] L.H. Ungar and D.P. Foster, “Clustering Methods for Collaborative Filtering,” Proc. Recommender Systems,
[15] J.S. Breese, D. Heckerman, and C. Kadie, “Empirical Analysis of Predictive Algorithms for Collaborative Filtering,” Proc. 14th Conf. Uncertainty in Artificial Intelligence, July 1998.
[11] D. Billsus and M. Pazzani, “Learning Collaborative Information Filters,” Proc. Int’l Conf. Machine Learning, 1998.
[79] D.M. Pennock and E. Horvitz, “Collaborative Filtering by Personality Diagnosis: A Hybrid Memory And Model-Based Approach,” Proc. Int’l Joint Conf. Artificial Intelligence Workshop: Machine Learning for Information Filtering, Aug. 1999.
[109] K. Yu, A. Schwaighofer, V. Tresp, X. Xu, and H.-P. Kriegel, “Probabilistic Memory-Based Collaborative Filtering,” IEEE Trans
[83]A.M. Rashid, I. Albert, D. Cosley, S.K. Lam, S.M. McNee, J.A. Konstan, and J. Riedl, “Getting to Know You: Learning New User Preferences in Recommender Systems,” Proc. Int’l Conf. Intelligent User Interfaces, 2002.
3. 현재를 바탕으로 지금까지 이루어져 오고 있는 추천시스템 관련 논문 들의 현황과 흐름을 분석하자.
-> 현재 알고리즘의 한계점들엔 무엇이 있는지
-> 한계점을 고쳐나가기 위한 방법들은 어떤 시도들이 있는지
4. 연구를 위한 연구 방향을 설정해보자.
1. 새로운 도메인에 대한 추천시스템의 적용으로 그 활용성을 입증하기.
2. 기존에 있던 추천시스템 알고리즘에 기존의 다른 기법을 접목하여 정확도를 높히기.
'추천시스템' 카테고리의 다른 글
MovieLens 데이터를 활용한 Collaborative Filtering 구현 (0) | 2020.01.15 |
---|---|
콘텐츠 기반 필터링 추천 예제 (0) | 2020.01.14 |
사용자간 유사도를 활용한 협업필터링 추천 예제 (0) | 2019.11.24 |
사용자간 유사도 계산 (0) | 2019.11.23 |
추천시스템 개념 (0) | 2019.11.23 |
댓글