카테고리 없음

이웃기반협업필터링

햄스틴 2022. 5. 3. 16:31

 

 

 

 

 

협업필터링이란

 

협업필터링(Collaborating Filtering)

  • 협업하여 필터링한다.
  • 많은 사람의 의견으로 더 나은 추천을 한다.

 

집단지성(Collective Intelligence)

  • 개인보다 단체 또는 그룹의 선택과 취향에 의존한다.
  • 여러 사람의 의견을 종합적으로 반영
  • 다수의 의견으로 더 나은 선택을 한다.

 

 

 

 

 

 

 

 

User-based VS. Item-based

 

Neighborhood-based Collaborative Filtering

  • Memory-based Collaborative Filtering=Neighborhood-based Collaborative Filtering
  • User-Item 간의 평점 등 주어진 데이터로 새로운 아이템을 예측
  • 특징

     - 구현이 간단하다

     - Model-based CF에 비해 계산량이 적다

     - 새로운 user, item이 추가되더라도 비교적 안정적이다

     - 새로운 content(user 또는 item)를 추천할 수 있다

 

 

 

User-based Collaborative Filtering

  • 두 사용자가 얼마나 유사한 항목을 좋아했는지 바탕으로 추천
  • 취향이 비슷한 사용자끼리의 데이터를 바탕으로 추천
  • 플랫폼에서 유저가 많은 부분을 차지하는 시스템에 적용하기 적절한 알고리즘
  • SNS의 친구 추천 등에서 사용
  • Regression vs. Classification

     - 평점 등 점수 분포가 continuous일 때와 discrete할 때 나눠서 적용

     - 평점 등 점수를 정규화하여 추천알고리즘에 적용 -> Mean-Centering, Z-score normalization

 

 

  • User 간의 유사도를 구함

  • User '병'의 마이너리티 리포트 - User '갑' = 0.3, User'을' = 0.6, User'정' = 0.45, User'무' = 0.15 유사하다고 가정
  • User "병"의 마이너리티 리포트 평점은? - 0.6으로 가장 유사한 User'을'의 평점 = 5로 예측

 

 

     

Item-based Collaborative Filtering

  • 아이템과 아이템 사이의 유사도 계산
  • 과거 아이템 선호도 데이터를 기반으로 선호 연관성 높은 아이템 추천
  • 컨텐츠기반 추천시스템과 차이점 -> 여러 사용자의 과거 선호도 데이터로 연관성 높은 아이템을 찾고, 해당 아이템을 사용자에게 추천한다.
  • 아마존, 넷플릭스 등에서 많이 활용

  • 라이언 일병 구하기=0.7, 미션 임파서블=0.85 유사하다고 가정
  • User '병'의 마이너리티 리포트 평점은?

유사도를 가중치로 줌

 

 

 

User-based VS. Item-based Collaborative Filtering

 

1. 정확도

  • User 수 < Item 수: User-based; User 수 > Item 수: Item-based

 

2. 모델 Robustness

  • 유저와 아이템이 얼마나 자주 그리고 많이 변하는지에 따라 다르다
  • 아이템 수가 크게 변하지 않는다면, Item-based

 

3. 설명력

  • Item-based는 비슷한 item과 가중치로 함께 설명할 수 있다
  • User-based는 특정 user와 비슷한 user로 분류된 user의 실제 취향을 알 수가 없기 어렵다

 

4. 새로운 추천 가능

  • Item-based는 과거 아이템 데이터에 의존하기 때문에 새로운 item을 추천하기 어렵다
  • User-based는 여러 유저의 데이터를 보기 때문에 더 새로운 추천을 할 수 있다

 

 

 

User-based & Item-based Collaborative Filtering

 

1. Cold-start 문제 -> 딥러닝 기반 추천알고리즘

  • 충분한 데이터가 없다면 좋은 추천을 할 수 없다
  • 유저에 대한 아무런 기록이 없다면, 새로운 아이템에 대한 정보가 없다면, 추천 불가능

 

2. 계산량

  • 데이터가 많아질수록 유사도 계산이 많아진다
  • 하지만 데이터가 많아야 추천 품질이 좋아진다

 

3. Long-Tail Economy -> 모델 기반 협업필터링

  • 대부분의 사용자가 관심 갖는 소수 아이템으로 쏠림 현상
  • 관심이 상대적으로 부족한 아이템은 추천되지 못하는 현상

 

 

 

 

유사도 이해하기

 

자카드 유사도(Jaccard Similarity)

  • 집합의 개념을 이용한 유사도 계산
  • 집합 A와 B사이의 유사도는 얼마나 많은 아이템이 겹치는지로 판단
  • 전체 집합(=합집합)과 교집합 사이의 비율로 유사도 계산
  • 공통 아이템이 없으면 0, 모두 겹치면 1
  • 주로 여러 단어로 구성된 등 문서 또는 문장이 유사한지 판단할 때 사용

 

 

피어슨 유사도(Pearson Similarity)

  • Vector X, Y 사이의 상관관계를 계산(=피어슨 상관계수)
  • 각 Vector의 표본평균으로 각 vector를 정규화(normalize)하고, 코사인 유사도를 구한다
  • 1은 양의 상관관계, -1은 음의 상관관계, 0은 상관관계 없음을 나타낸다

 

 

 

 

 

 

이웃기반_협업필터링_구현실습

https://colab.research.google.com/drive/1WFfj2TpAh2jjzz43OTVqNYVo2KeT6m0m#scrollTo=Oj-gwi8w0qkD

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

출처 - 패스트캠퍼스