Collaborative Filtering: 협업 필터링 (1)

장용근·2024년 10월 25일

collaborative filtering 이란?

상품과 사람들의 관심 사이에 어떠한 관계가 존재한다는 사실을 바탕으로 하고 있다. 대부분의 추천 시스템은 CF(Collaborative Filtering, 협업 필터링)을 이러한 관계를 찾는데 사용하고, 사용자가 좋아하거나 관심있어할 만한 상품의 정확한 추천을 제공하기 위해 사용한다.

collaborative filtering 의 종류

CF는 기본적으로 두가지 접근방식이 있는데, 하나는 사용자 중심(User-based) CF, 다른 하나는 아이템 중심(Item-based) CF이다.
User-based CF는 User 간의 유사도, Item-based CF는 Item 간의 유사도를 바탕으로 한다.

User-based Collaborative Filtering 이란?

한 마디로 비슷한 유형의 다른 사람이 어떤 상품을 선택했는지를 바탕으로 추천해주는 시스템이다.
User-based CF에서 추천을 목표로 하는 사용자를 Active user 라고 한다. User-based CF는 우선 Active user와 유사한 다른 사용자를 찾는다. 여기서 유사한 다른 사용자는 Active user와 rating pattern을 공유하는 사용자를 말한다.
User-based CF는 사용자의 history, preference, 그리고 구매, 시청, 등등의 경우에 사용자가 결정을 내린 선택에 근거하여 유사도를 결정한다.

(이미지 출처: https://medium.com/@toprak.mhmt/collaborative-filtering-3ceb89080ade)
예를 들어, Active user와 비슷한 사용자가 평점을 높게 준 영화가 있다면 이 영화는 다른 영화보다 상대적으로 Active user에게 있어서도 높은 평점을 받을 확률이 높을 것이다. 예를 들어, 만약 두 명의 사용자가 비슷하거나 두 명의 사용자가 그들의 관심있는 영화의 관점에서 이웃이라면, 우리는 Active user의 이웃 사용자가 이미 시청한 적이 있는 영화를 추천할 수 있다.

User-based CF Algorithm


이 그림은 5개의 영화에 대한 4명의 사용자들의 평점을 담고 있는 간단한 user-item matrix이다. Active user가 5개의 영화중 3개의 영화를 시청했고 평점을 매겼다고 가정해보자. 그래서, 나머지 2개의 영화 중에서 어떤 영화를 추천해줘야 할지 정해보자.
첫번째 단계는 Active user가 나머지 다른 사용자들과 얼마나 비슷한지를 찾는 것이다. 이는 몇가지 다양한 통계적 그리고 벡터적인 기법 (Euclidean Distance, Pearson Correlation, Cosine Similarity, and so on)와 같은 거리 혹은 유사도 측정 기법이 사용된다.


2명의 사용자 사이의 유사도 정도를 계산하기 위해 우리는 두 사용자 모두 과거에 평점을 매긴 적이 있는 3개의 영화를 사용한다. 우리가 어떤 유사도 측정방법을 사용하든지 간에, 유사도를 각각 0.7, 0.9, 0.4라고 가정해보자. 이러한 숫자들은 Active user가 데이터셋에 있는 다른 사용자들에 보여주는 대해 유사도 가중치 혹은 추정치를 나타낸다.


다음으로는 가중치 평점 행렬 (weighted rating matrix)를 만드는 것이다. 이전 슬라이드에서 우리는 단순히 Active user가 다른 사용자들에 대해 어느 정도의 유사도를 가지고 있는지를 계산하였고, 이제는 계산한 유사도를 사용하여 2개의 타켓 영화에 대해 Active user의 가능한 의견을 계산할 것이다. 이는 유사도 가중치를 사용자 평점에 곱함으로써 계산된다. 추천을 위한 두 후보 영화에 대한 사용자의 이웃 의견을 나타내는 가중치 등급 행렬이 생성된다. 실제로, 이는 다른 사용자의 행동을 통합하고 활성 사용자와 더 유사한 사용자의 평가에 더 많은 가중치를 부여한다.

이제, 우리는 모든 가중치 평점들을 합침으로써 추천 행렬(recommendation matrix)를 생성할 수 있다. 하지만, 3명의 사용자들은 첫번째 잠재 영화에 평점을 매겼고, 2명의 사용자들은 두번째 영화에 평점을 매긴 경우, 우리는 가중치 평점 값들을 일반화시켜야 한다. 우리는 이것을 사용자의 유사도 인덱스들의 합으로 가중치 평점 값들을 나눔으로써 구한다. 그 결과는 Active user가 다른 사용자들에 대한 유사도를 바탕으로 하여 매길 가능성이 있는 잠재 평점이다. 그 결과는 또한, Active user에게 추천해줄 영화들에 대한 평점을 매기는데 사용할 수 있다.

이제, User-based CF와 Item-based CF와의 차이점에 대해서 알아보자. User-based CF에서, 추천은 어떠한 사람이 공통 선호도를 공유하는 같은 이웃의 사용자들에 바탕을 둔다. 그리고, Item-based CF에서는, 비슷한 아이템이 사용자들의 행동에 대하여 이웃들을 구축한다. 그러나, 이는 contents에만 바탕을 이루지는 않는다.

profile
Hello World!!

0개의 댓글