본문 바로가기
추천시스템

메모리 기반 CF 추천시스템의 문제점

by 볼록티 2020. 8. 23.
728x90
반응형

메모리 기반 Collaborative Filtering 추천시스템이 가진 문제점들에 대해 정리를 해본다. 크게 User-based, Item-based를 토대로 정리를 하였다.

 

 

 

- Memory based Collaborative Filtering

 User based 추천시스템의 경우, 새로운 사용자에 대한 정보가 없기 때문에 이미 존재하는 사용자들과의 유사도를 구하는데 있어서 어려움이 있고, 이는 추천의 질을 떨어뜨린다. 이 문제가 바로 Cold-Start 문제인데, 새로운 사용자는 아직 application 사용 경험이 없기 때문에 취향을 나타내는 feedback이 거의 존재하지 않는다. 이에 이미 가지고 있는 Demography(인구통계)정보를 활용하는 방법이 있다. 사용자의 인구학적 통계자료인 성별, 나이, 학력, 직업 등이 그런 예이다. 이 정보들로 새로운 사용자와 유사한 사용자들을 추릴 수 있다. 하지만 직관적으로 생각해보아도 인구통계학적 정보만으로 사용자의 잠재적인 선호를 고려한다 하기에는 다소 부족하다. 

 Item based 추천시스템의 경우는 사용자들 간의 유사도가 아닌 item 간의 유사도를 필요로 한다. User based 알고리즘은 추천 대상인 사용자(이하 active user)와 가장 유사한 k(hyperparameter)명의 다른 사용자의 feedback을 active 사용자와 k명의 사용자들과의 각각 유사도(active user와 동시에 feedback이 매겨진 데이터를 사용.)만큼 가중방식으로 낸 가중 평균 값을 예측 feedback로 사용한다. Item based 알고리즘은 active user가 가진 feedback 점수에 추천 대상인 item(이하 active item)과 가장 유사한 k개의 item 과의 유사도를 가중하여 낸 가중평균을 사용한다.

 이 둘의 공통점은 유사한 사용자를 구하기 위해 그만큼 active user의 feedback이 많아야 하고, 역시 아이템간의 유사도에 active user가 active item이 아닌 다른 아이템에 내린 feedback 이 많아야 이 알고리즘의 성능이 보장되게 된다.

 다시 말해, user based의 경우 active user의 feedback이 부족하면 정말로 유사한지도 모르는(부족한 데이터로의 유사도이기 때문에.) 사람이 active item에 내린 feedback을 사용하게 되는 꼴이되고, item based의 경우 item에 대한 active user의 feedback이 부족하면 active user가 내린 몇 개 안되는 item으로 active item의 예측 feedback을 생성하게 된다.

 즉, CF알고리즘을 활용하여 새로운 사용자에게 추천하는 것은 nearest neighbor 를 활용하는 특성상 추천이 정확하게 이루어 질 수 없게 된다.

 하지만 item based CF 알고리즘 같은 경우에 때때로 사용자 간의 유사도를 사용하는 것보다 나은 성능을 낸다. 그 이유는 첫번째, 사람은 시간에 따라 변한다는 데에 있다. 즉, 사용자의 취향이 바뀌게 됨으로써 일어나는 분산이다. 반면에 아이템은 변하지 않는다는 것이다. 두번째, 아이템간의 유사도는 유사도를 구할 시 드는 계산량이 사용자간의 유사도를 구하는 계산량보다 작다는 것이다. 이 말은 다이소에 등록된 물건이 10만개가 있다면, 전국에서 다이소를 이용하는 사용자는 셀 수 없이 많다는 것을 생각하면 이해하기 쉽다. 즉, 아이템 대비 사용자의 수가 훨씬 많다는 의미이다. 세번째, 새로운 사용자에 대해서 장점인데, new user가 아이템에 대한 feedback이 오직 한 개여도 추천을 제공해줄 수 있다. user based CF는 사용자간 유사도 행렬을 구하기 위한 계산을 N번 실시해야 하지만 item based는 이미 존재하는 item간의 유사도 행렬이 있기 때문에, 새로운 active user가 내린 feedback에 바로 적용이 가능하다.

 

Collaborative filtering이 가지는 문제점을 정리해보면 다음과 같다.

 

1. cold-start 

 

 Collaborative Filtering의 고질적인 문제인 cold-start문제는 도메인에 대한 history(기록, 경험 데이터)가 없는 새로운 사용자에 대해 발생하는 문제이다. 예컨데, knn - user based 알고리즘의 경우 nearest neighbor(최근접이웃)인 유사 사용자를 찾는 과정에서 history가 아예 없는 경우에는 유사 사용자를 찾는 것이 불가능하며, 매우 적은 history가 있는 경우 사용자간 유사도 값에 대한 신뢰도가 떨어진다. item based 같은 경우에는 유사 아이템 행렬이 정해져 있기 때문에 history가 극소수일지라도 상대적으로 영향을 조금 덜 받지만 item 역시 평점 등 history가 아예 없으면 추천이 불가능하다.

 

 

2. sparsity

 

 사용자 feedback 행렬 자체가 sparsity(희소성)한 경우 추천 성능에 좋지 않다. cold-start문제와 같이 생각해보면 cold-start는 새로운 사용자의 feedback이 sparsity한(넷플릭스, 왓챠 처럼 가입 후 선호 영화를 일정개수 클릭하게 함으로써 이 문제를 해결하고자 한다.) 문제이며, 2에서의 문제는 전체적으로 sparsity matrix (희소행렬)을 가질 경우의 문제를 가리킨다. 이 경우 위처럼 CF 알고리즘에서 knn 을 찾는다고 해보면, sparsity 한 데이터 특성상 사용자 유사도 행렬 혹은 아이템 유사도 행렬의 신뢰도가 떨어지게 된다. 0의 값이 많기 때문에 직관적으로 사용자 또는 아이템 간의 변별을 하기 힘들게 된다. sparse한 비율이 늘어날수록 믿을만한 유사도를 구하기 힘들어진다. sparse를 줄이기 위해 feedback이 없는 cell에 예를 들어 user의 평균 평점을 채워넣거나, 0으로 만들어버린다거나 혹은 matrix factorization과 같은 행렬분해기법을 통해 sparse한 문제를 해결하는 방법이 있다. 평점을 평균 또는 0으로 채우게 되면 당연하지만 예측시 일어날 분산이 커짐은 당연한 것이고, MF(matrix factorization)알고리즘을 사용하게 되면 현재로썬 성능이 state-of-art수준으로 좋은 편이다. 다만 가장 큰 단점이 계산량이 어마어마 해진다는 것이다. 새로운 벡터가 들어올 때마다 전체 행렬과 전체적으로 연산을 해야하기 때문이다.

 

 다음의 논문 "An improved collaborative filtering method based on similarity"[1]가 이 문제를 다루고 있다. 이 논문은 sparsity한 문제를 해결하기 위해 새로운 유사도 계산을 제안하는데 대략적으로 말하면, '사용자간 유사도' + '아이템간 유사도' + '사용자의 성향' 을 합친 유사도를 구하여 최종 유사도로 사용한다. 

 

 

3. qualitative measures of  feedback

 

 사용자의 feedback에 대해서 질적으로 해석하는 부분에 있어서 발생하는 문제이다. feedback은 결측값, 관측값으로 나뉘게 되고, 주어진 관측값들을 토대로 알고리즘을 적용하여 추천을 한다. 이 관측값은 0또는 1인 binary한 값일 수도 있고, 0~5 점사이의 자연수 값일 수도 있다. 특정 사용자$a$와 특정사용자$b$가 하나의 item 에 내린 feedback이 똑같은 5라 하면, 이 때 5라는 수치는 단지 quantitative하게 해석하면 같은 값이지만 각 사용자의 성향을 온전히 나타내는 것은 아니다. 똑같은 5라는 가장 높은 수치여도 $a$에게는 더 큰 가치를 포용하고 있을 수 있기 때문이다. 즉, 관측된 데이터의 quantitative한 feedback으로는 qualitative하게 그 값의 가치를 알 수 없다는 것이다.

 이러한 quantitive 타입의 feedback 의 qualitative, 또는 latent한 특징을 표현하기 위한 방법은 다음과 같다. 

 "Improving the accuracy of top-N recommendation using a preference model(2016)"[2] user의 선호(preference)를 고려하여 새로운 feedback으로 바꿔주는 작업을 진행하였다. 기존의 feedback 을 사용자의 선호를 고려한 새로운 feedback으로 변형하여 기존 알고리즘을 실험 통해 성능을 입증하였다.

 

4. Gray-sheep 

 

 패턴을 제대로 알 수 없는 사용자의 feedback은 적절한 패턴을 가진 사용자들의 feedback 분포에 악영향을 끼친다. 그리하여 신뢰도를 기반으로하여 가중치를 생성해 유사도를 구함에 있어서 패널티를 주는 연구들도 있다.

 

5. Co-rated problem

 CF의 경우 동시 평가된 항목에 대해서 유사도를 구할 수 있는데, 동시 평가된 항목이 없으면 애초에 유사도를 구할 수 없는 문제를 말한다. 이 문제는 2번의 특징처럼 matrix 의 sparsity한 문제점으로부터 야기했다고 할 수 있다. nearest neighbor에 의존적인 메모리 기반 모델인 만큼 이웃을 잘 선정해야 한다. 그 이웃을 선정할 때 유사도가 사용되니만큼 사용자 간의 유사성을 더 잘 표현하기 위한 연구들이 진행되고 있다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글