추천 시스템(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)/
http://www.kocca.kr/insight/vol05/vol05_04.pdf
'Team Project > 국내어디가' 카테고리의 다른 글
study [contents based filtering] (0) | 2020.03.07 |
---|---|
프로젝트 방향성 회의 내용 (0) | 2020.02.28 |
191119~191201 새로운 주제 (0) | 2019.11.25 |
191029 ~ 191118 주제 변경 이유, 새로운 주제 (0) | 2019.11.25 |
191008~191028 인공지능 공부 (0) | 2019.10.28 |
댓글