RS
추천시스템 Introduction
heon28
2024. 2. 18. 23:58
추천시스템과 관련된 개괄적인 개념들을 한 번 훑어보려 한다.
이는 [Recent Developments in Recommender Systems: A Survey] (Yang Li, Member, IEEE, Kangbo Liu, Ranjan Satapathy, Suhang Wang, Member, IEEE, and Erik Cambria, Fellow, IEEE) 논문을 참고했다!
1. 추천시스템(Recommend System)이란?
보통, 유튜브에서는 내가 좋아할만한 영상을 추려 "추천 영상"을 보여준다. 이 때, "유튜브를 이용하는 나"를 "User"라고 하고 "영상"을 "Item"이라 했을 때, 추천시스템이란 아래의 설명과 같다.
User가 Item에게 줄 것 같은 점수(rating)나 선호도(preference)를 예측하는 모델 및 시스템으로 User의 선호도와 관련있는 어떤 새로운 Item 을 식별하고 추천하는 시스템이다. 종종 예측 점수 상위 N개만 걸러서 추천하는 영역까지도 포함시켜 추천시스템이라 부른다.
2. 추천시스템 유형
2.1 추천 시스템은 추천 대상이 "개인"인지 "그룹"인지에 따라 분류할 수 있다.
- 1) 개인화 추천 시스템 (personalized recommendation sysytm)
- User별로 각각에게 Item을 추천하는 시스템
- 이는 다시, Collaborative filtering, Content-based, Hybrid methods 로 구분한다.
- 2) 그룹 추천 시스템 (group recommendation sysytm)
- User들로 이루어진 Group에게 Item을 추천하는 시스템
- 여러 User들의 선호도를 고려해야하기 때문에 개인화 추천시스템보다 어렵다.
- 이는 정보 활용 방식에 따라 memory-based, model-based 등등으로 구분한다.
2.2 개인화 추천은 "추천 근거 정보"가 "User 행동"인지 "Item 속성"인지에 따라 분류할 수 있다.
- 1) 협업 필터링 기반 추천 시스템 (collaborative filtering; CF)
- User들의 행동(Item 평점, Item 구매 등등)에 기반하여 User들의 Item을 추천하는 방식
- 이는 유사한 행동 및 선호도를 가지는 User는 유사한 Item 선호도를 가질 것이라 가정한다.
- 추천 시, User의 과거 행동을 통한 프로필 정보를 활용하는데, 활용 방식에 따라 memory-based, model-based로 구분한다.
- 이 때, User의 과거 행동은 자동으로 수집된다는 장점이 있다.
- 2) 컨텐츠 기반 추천 시스템 (content-based; CB)
- User들의 행동에 기반하는 것이 아닌, 단순 Item의 속성정보만을 통해 User의 이전 Item과 유사한 Item을 추천하는 방식
- 단순한 정보이므로 예전에는 많이 사용했지만, 최근에는 많이 사용하지 않는 방법이다.
- 협업 필터링에서 발생하는 콜드-스타트 및 sparse 문제에 대하여 컨텐츠 기반은 해결 가능하다.
- 추가로, 추천을 발생시킨 속성들을 통해 추천 결과에 대한 이유 또한 설명 가능해진다.
- 하지만, Item의 속성값은 일일이 기록해야하므로 Item 수가 매우 많아지면 데이터 생성의 어려움이 있다.
- 3) 하이브리드 방법 (hybrid method)
- 위의 "협업 필터링" 과 "컨텐츠 기반" 방식을 섞어 추천하는 방식
2.3 협업 필터링은 "추천 근거 정보의 활용 방식"이 "memory", "model", "context-aware"에 따라 분류할 수 있다.
- 1) memory-based (= Nearest Neighborhood-based) 협업필터링 (NBCF)
- 이는 유저나 아이템 간 유사도(Similarity)를 이용하여 추천하는 방식으로 크게 2가지 방식이 존재한다.
- 유저 기반 협업 필터링 (User based CF)
: User들이 평가한 Item 데이터에 근거하여, 현재 User와 가장 유사한 User를 찾고, 그 User의 선호 Item을 추천하는 방식 - 아이템 기반 협업 필터링 (Item based CF)
: User들이 평가한 Item 데이터에 근거하여, 현재 User의 Item들과 가장 유사한 Item을 찾아 추천하는 방식
- 유저 기반 협업 필터링 (User based CF)
- 이러한 모델은 크게 2가지 문제점을 가지고 있다.
- 첫 번째는 유저-아이템 행렬이 sparcity하게 되면 에러에 민감하게 반응한다는 것이다.
- 두 번째는 유저와 아이템 수가 많아지게 되면 각 유저 간 또는 아이템 간 유사도를 측정하는 계산량이 매우 커진다는 것이다.
- 이를 해결하기 위한 널리 알려진 방법은 임베딩 및 차원축소, 샘플링, 병렬 컴퓨팅 등이 있다.
- 이는 유저나 아이템 간 유사도(Similarity)를 이용하여 추천하는 방식으로 크게 2가지 방식이 존재한다.

- 2) Model-Based (= neural-based) 협업 필터링 (MBCF)
- 기존의 협업 필터링 방식은 추가적인 데이터의 사용과 sparcity 문제점 등등 다양한 문제가 존재하여 이를 해결하고자 다양한 머신러닝 및 딥러닝을 접목하고자 했다.
- 여기서부터는 매우 다양한 유형이 존재하는데 Matrix Factorization, Probabilistic Models, Deep Learning Models 등등이 존재하고 각각의 유형 내에도 다양한 모델이 존재하므로 하나씩 논문 리뷰를 하며 차차 살펴볼 예정이다.
- 내가 어디서 들어봤었던 유명한 모델들만 간단히 몇 개 살펴보고자 한다.
- FM (Factorization Machine)
- [Factorization Machines] (Steffen Rendle) 논문 참고. 2010년에 발행되었다.
- User, Item 데이터 뿐만 아니라 매우 다양한 변수들을 SVM 모델의 선형 커널로 만들어 예측하는 방식이다.
- 이는 통계 회귀분석 모델에서 각 변수들과 모든 변수간의 교차항을 포함한 다항회귀와 비슷하지만, 변수간의 교차항의 계수를 하나의 가중치가 아닌 각 변수별 잠재벡터(latent vector)의 내적으로 계산했다.
(자세한 건 이후 논문 리뷰에서 다루도록 하겠다. 또는 다음 링크를 참고 바란다. https://supkoon.tistory.com/31)
- NCF(Neural CF) 논문 내 NMF(Neural Matrix Factorization)
- [Neural Collaborative Filtering] (Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, Tat-Seng Chua) 논문 참고. 2017년에 발행되었다.
- 간단하게만 언급하면, 기존 Matrix Factorization을 일반화하여 General Matrix Factorization Layer를 만들고 추가로새로운 임베딩을 통한 MLP Layer를 합하여 latent factor에 대한 정보를 최대한 뽑아내고자 했다.
(이 또한 자세한 건 논문 리뷰 페이지에서 다루도록 하겠다.)
- 3) context-aware based 협업 필터링
- 이는 User의 행동과 밀접하게 영향을 끼치는 맥락 정보(contextual information)를 고려하기 위한 시스템이다. 맥락 정보의 예시로는 시간, 장소, 사회적 지위, 분위기, 날씨 등등이 있다.
- 이는 매우 다양한 데이터들을 고려하게 되는데 이렇게 되면 고려할 차원 수가 폭발적으로 늘어나기 때문에 이를 처리하려는 다양한 시도가 있다.
참고 링크