데이터사이언스/추천시스템

협업 필터링 - 최근접 이웃 협업 필터링이란? (CF)

ghtis1798 2021. 1. 7. 18:24

협업 필터링

1. 협업 필터링이란?

Collaborative Filtering에서의 협업이란 다른 유저의 정보를 사용하겠다는 것입니다.

서로 평가한 내용들이 영향을 주고 받기 때문에 붙여진 이름이 아닐까 생각이 드네요.

협업 필터링은 최근접 이웃 협업 필터링(KNN)잠재 요인 협업 필터링 두 가지가 있습니다.

협업 필터링의 장점은 다른 유저들의 정보를 이용할 수 있다는 것입니다.

하지만 이전 포스팅에서 언급했던 Cold Start, Sparsity, First rater등의 단점도 존재합니다.

western-sky.tistory.com/43

 

추천 시스템 - 컨텐츠 기반 필터링이란? (CBF)

추천 시스템 유형 목차 코로나로 인해 오프라인보다는 온라인 구매가 더 많아지고 있습니다. 온라인 마켓의 장점은 '시간과 공간'에 제한되지 않는다는 것 같습니다. 문을 열고 닫는 시간도, 물

western-sky.tistory.com

이번 포스팅에서는 최근접 이웃 협업 필터링(KNN)에 대해 간단히 정리해 보겠습니다.

 

2. 최근접 이웃 협업 필터링

 

최근접 이웃 방식은 간단히 말해, 자기와 취향이 같은 친구들이 무엇을 샀는지 물어보는 것입니다.

가장 가까운 친구에게 물어보는 것이죠. 🙂

최근접 이웃 방식은 다시 '사용자' 기반 협업 필터링과 '아이템' 기반 협업 필터링으로 나뉩니다.

사용자는 사용자-사용자 간의 유사도를,

아이템은 아이템-아이템 간 유사도를 측정합니다.

이 때 측정 수단으로 유클리디안, 코사인, 피어슨, 자카드 등의 유사도를 사용합니다.

현업에서는 아이템 기반 협업 필터링을 더 많이 사용한다고 하는데요.

아마도 사용자 기반을 적용하기엔 개인의 취향이 너무 다양하기 때문인 것 같습니다.

 

2.1. 사용자 기반 협업 필터링

 

위의 예시는 사용자 기반이라고 볼 수 있습니다.

사용자와 사용자 간의 유사도를 기준으로 추천하는 방식입니다.

나와 취향이 비슷한 사람들이 좋아한 것을 보여주는 것이죠.

예를 들면 유저 A와 유저 B는 사용자 간 유사도가 높습니다.

User-User 기반 협업 필터링

A는 아이템 a,b,c,d에 5,4,4,2라는 평점을 주었고 e에는 5점을 주었습니다.

B도 아이템 a,b,c,d,에 4,5,4,2라는 평점을 주었습니다.

A와 B는 사용자 간 유사도가 높기 때문에

A가 좋아한 아이템 e를 B에게 추천하는 방식입니다.

이런 유저들을 N명 만큼 뽑아내 N명이 좋아하는 아이템을 추천하는 것을 TOP-N 방식이라고 합니다.

 

2.2. 아이템 기반 협업 필터링

 

아이템 기반은 해당 아이템과 평점 분포가 비슷한 아이템을 추천해주는 것입니다.

이건 아이템의 속성과는 상관이 없을 수 있는데요.

사용자가 해당 아이템을 좋아하느냐 아니냐가 추천의 기준이 됩니다.

Item-Item 기반 협업 필터링

예를 들어 사용자 A,B,C,D,E가 인셉션이라는 영화에 대해 5,4,4,5,5 라는 평점을 주었습니다.

그리고 사용자 A,B,C,D가 테넷이라는 영화에 대해 4,4,5,5라는 평점을 주었다면

인셉션을 좋아한 E에게 테넷을 추천해주는 방식입니다.

인셉션을 좋아한 E에게 테넷을 추천해주는 이유는

인셉션과 테넷의 아이템 유사도가 높기 때문입니다.

유사도를 직접 계산해보는 것도 좋은 경험일 것 같습니다.

차근차근 업데이트하며 수정해 나가려고합니다. 🙂

이후 포스팅에서는 넷플릭스 Competition에서 우승을 차지한 잠재 요인 협업 필터링에 대해 정리해보겠습니다.

 

참고자료

blog.skby.net/%ED%98%91%EC%97%85-%ED%95%84%ED%84%B0%EB%A7%81-collaborative-filtering/

 

협업 필터링 (Collaborative filtering) > 도리의 디지털라이프

I. 개인화 서비스를 위한 추천시스템의 개요 가. 추천시스템의 정의 개인 맞춤형 서비스 제공 위해 구매패턴 등 과거 데이터를 분석하여 상품을 추천하는 시스템 나. 추천시스템의 필요성 적중

blog.skby.net

greeksharifa.github.io/machine_learning/2019/12/17/Recommendation-System/

 

Python, Machine & Deep Learning

Python, Machine Learning & Deep Learning

greeksharifa.github.io

scvgoe.github.io/2017-02-01-%ED%98%91%EC%97%85-%ED%95%84%ED%84%B0%EB%A7%81-%EC%B6%94%EC%B2%9C-%EC%8B%9C%EC%8A%A4%ED%85%9C-(Collaborative-Filtering-Recommendation-System)/

 

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

세상 간단한 추천 시스템

scvgoe.github.io

권철민 저, 파이썬 머신러닝 완벽 가이드