본문 바로가기
Team Project/국내어디가

스터디1-Collaborative Filtering(협업필터링)

by 말랭쓰 2020. 2. 28.

추천 시스템(Recommendation System)은 일반적으로 collaborative filtering 방식과 content-based filtering 방식을 통해 이루어진다. collaborative filtering에 대한 스터디 내용이다.

 

 

<Collaborative Filtering(협업필터링)>

 

collaborative filtering(CF)은 많은 사용자들로부터 모은 취향 정보들을 기반으로 하여 스스로 예측하는 기술을 말한다. 기본적으로 협업 필터링에는 Memory-based, Model-based, Hybrid가 있으며, 이 중 Memory-based 협업 필터링을 통해 적당히 합당한 결과를 도출할 수 있다. Memory-based CF는 유사도(similarity)를 기반으로 동작하며 유사도를 얻는 기준에 따라 'user-based CF'와 'item-based CF'로 나뉘어진다.

 

1. user based CF(사용자 기반 협업 필터링)

user-based CF에서 유사도는 두 사용자가 얼마나 유사한 아이템을 선호했는지를 기준으로 한다. 한 사용자가 평가한 아이템의 평가를 벡터로 나타내어 두 사용자간의 유사도를 두 벡터 간의 유사도로 계산하는 것이다. 이때 두 벡터 간의 유사도를 구하기 위해 대개 코사인 유사도, 피어슨 유사도를 이용한다. 사용자 간의 유사도를 바탕으로 아이템을 추천한다.

 

 

2. item based CF(아이템 기반 협업 필터링)

item-based CF에서는 사용자 기반과 매우 유사한 과정을 거친다. 다만 사용자에 대한 유사도가 아닌 아이템들에 대한 유사도를 계산한다. 각 아이템별 사용자의 선호도를 조사한뒤, 아이템별 유사도를 계산하고 저장하여 추천가능한 아이템 중 가장 유사한 아이템을 추천해준다.

 

 

+)

*Matrix Factorization

user-based나 item-based CF에서 유사도를 계산하기위해 사용하는 방법으로, u라는 벡터를 사용자의 선호도, v라는 벡터를 아이템과 관련된 파라미터로 정의한다. user와 item 벡터의 내적으로 비어있는 유사도와 선호도 점수를 계산하여 추천을 할 수 있다.

 

 

 

 

*협업 필터링의 단점*

1. 콜드 스타트(cold start)의 문제가 발생할 수 있다. 협업 필터링은 기존의 자료들을 필요해하기 때문에 기존에 없던 새로운 항목이 추가되는 경우 추천이 곤란해진다.

2. 협업 필터링은 계산량이 비교적 많은 알고리즘이므로 사용자 수가 많은 경우 효율적으로 추천할 수 없다.

3. 사용자들이 소수의 인기 있는 항목에만 관심을 보일 경우 비대칭적 쏠림 현상인 롱테일(Long tail)의 문제가 발생할 수 있다.

 

참고사이트

https://scvgoe.github.io/2017-02-01-협업-필터링-추천-시스템-(Collaborative-Filtering-Recommendation-System)/

 

협업 필터링 추천 시스템 (Collaborative Filtering Recommendation System)

세상 간단한 추천 시스템

scvgoe.github.io

http://www.kocca.kr/insight/vol05/vol05_04.pdf

 

댓글