Deep Learning/Recommender system

[Recommender System] Collaborative Filtering, Content-based, Knowledge-based

언킴 2022. 1. 3. 19:10
반응형

아마존, 넷플릭스, 구글 등 여러 기업에서 책, 영화, 뉴스 등을 추천해주기 위해서 여러 추천시스템 방법을 활용하고 있다. 추천시스템 중에서 가장 대표적인 예로는 협업 필터링(Collaborative Filtering), 콘텐츠 기반(Content based), 지식 기반(Knowledge based) 등이 존재한다. 

 

협업 필터링(Collaborative Filtering)

협업 필터링은 추천시스템을 공부하는 사람이라면 다들 들어 봤을 것이라고 생각한다. 협업 필터링 방법은 사용자와 아이템 간의 관계를 보는 방법이라고 생각하면 된다. 명시적(Explicit) 데이터를 기준으로 한다면 사용자가 영화를 시청하고 난 후 해당 영화에 평점을 매기는 형태로 행렬(matrix)를 만든 것이고, 암묵적(Implicit) 데이터를 기준으로 한다면 뉴스 클릭 유무, 아이템 구매 유무 등으로 행렬을 만들어 나타내는 것이다.  

평점 행렬의 경우 null값을 선호하지 않는다고 판단할 수도 있는 반면, 단항 행렬은 null값을 단순히 선호하지 않는다고 판단하기에는 큰 문제가 존재한다. 단항 행렬의 경우 null값을 0으로 초기 설정을 하고 분석을 진행하는 방법도 존재한다. Emplicit data의 경우 각 값을 선호도라고 판단할 수 있는 반면, Implicit data의 경우 각 값을 신뢰도라고 칭한다.

 

 

콘텐츠 기반 추천 시스템 (Content-based Recommender System)

콘텐츠 기반 추천 시스템은 협업 필터링과는 달리 아이템의 설명을 활용하여 사용자에게 상품을 추천해준다. 예를 들어 철수가 영화를 보고 높은 평점을 주었지만, 다른 사용자의 평점에 대한 정보를 구할 수 없을 경우 협업 필터링 방법은 사용할 수 없다. 다른 사용자들이 영화에 대해 어떤 평점을 부여했는가에 대한 정보가 주어져야지만 협업 필터링을 사용하여 유사도를 계산할 수 있기 때문이다. 하지만 콘텐츠 기반 추천 시스템은 해당 영화의 줄거리를 보고 혹은 장르, 키워드 등을 고려하여 유사한 영화를 추천해줄 수 있을 것이다. 

콘텐츠 기반 방법론에서는 평점과 함께 레이블되어 있는 아이템 설명은 사용자 별 분류 혹은 회귀 모델링 문제를 만들 때 학습 데이터로 주로 활용된다고 한다. 이렇게 구축된 학습 데이터는 다른 사용자의 분류, 회귀 모델을 만드는데 사용이 된다. 새로운 영화가 나왔을 때 해당 영화에 대한 사람들의 평점 정보가 미비하거나 존재하지 않을 경우 영화의 줄거리 등을 고려하여 다른 사용자들이 선호할 것이라는 판단하에 영화를 추천해줄 수 있을 것이다. 

콘텐츠 기반 추천 시스템의 경우 키워드나 내용으로 상품을 추천해주기 때문에 만약 사용자가 해당 키워드나 내용에 대한 상품을 이용한 적이 없다면 이 상품은 사용자에게 추천될 일이 없을 것이다. 이렇게 되면 추천 시스템으로 인하여 사용자는 필터링이 된 정보만을 받을 수 있기 때문에 Filter Bubble이라는 문제가 발생한다. 

또한 새로운 아이템 추천에 대해서는 효과적이지만, 새로운 사용자에 대해서는 다소 적합하지 않을 수 있다. 해당 사용자를 위해 학습된 모델을 사용하기 위해서는 이 사용자가 다른 아이템에 대해서 평점을 측정하고, 그 평점과 키워드에 대한 정보가 존재해야하기 때문이다. 

 

지식 기반 추천 시스템 (Knowledge-based Recommender System)

지식 기반 추천 시스템은 부동산, 금융 상품, 명품 등과 같은 자주 구매하지 않는 상품들에 대해서 특히 유용하다고 한다. 왜냐하면 이렇게 자주 구매하지 않는 상품의 경우 사용자에 대한 평점이나 정보가 부족하고, 상세 옵션 등의 종류도 너무 제각각이기 때문이다. 추천 시스템에서 충분한 정보가 없다면 좋은 성능을 기대하기란 어려워, 이러한 문제를 해결하기 위해서 지식 기반 추천 시스템이 활용되며 지식 기반 추천 시스템의 대표적인 모델은 다음과 같다.

1. 제약 기반 추천 시스템

제약 기반 추천 시스템은 말 그대로 사용자가 아이템에 대한 요구 사항과 제한 내용을 직접 기입한다. 각 도메인 별 세부 사항이 제각각이기 때문에 제약된 내용 안에서 사용자가 선택하여 결과를 토대로 사용자에게 맞는 상품을 추천해주는 형태로 진행된다. 

2. 사례 기반 추천 시스템

사례 기반 추천 시스템에 활용되는 사례는 사용자가 대상 또는 anchor point로 지정된다. 유사도 측정은 특정 사례와 유사한 아이템을 검색하기 위해 아이템 속성에 정의되며, 검색된 결과는 사용자에 의해 상호작용한 일부 수정 사항을 반영하여 새로운 대상으로 사용하는 경우가 많다. 사용자 간 상호작용은 대화형, 검색 기반, 탐색 기반 등의 형태로 수행된다.