Ch 05-2. 이웃 기반 협업필터링; User-based, Item-based

Yeonghyeon·2022년 7월 28일
0

Recommender System

목록 보기
11/33
post-custom-banner

본 포스팅은 Fastcampus 강의를 수강하며 일부 내용을 정리한 글임을 밝힙니다. 보다 자세한 내용은 아래 강의를 통해 확인해주세요.
참고 : Fastcampus 딥러닝을 활용한 추천시스템 구현 올인원 패키지 Online


Ch 05. Neighborhood-based Collaborative Filtering


Neighborhood-based Collaborative Filtering

= Memory-based Collaborative Filtering: 이미 갖고 있던 데이터로 무언갈 하겠다!

  • User-item간의 평점 등 주어진 데이터로 새로운 아이템 예측
  • 특징
    1. 구현이 간단
      • user-item 행렬을 통해 item-tiem 또는 user-user 간의 유사도 계산이 다임, 딥러닝처럼 네트워크 복잡 구성 필요 X
    2. Model-based CF에 비해 계산량 적음
      • 학습을 한다는 것이 가장 큰 차이!
        • 주어진 데이터를 모델을 통해 학습해서 새로운 추천을 만들어낸다
    3. 새로운 user, item이 추가되더라도 비교적 안정적 (행렬에 잘 위치시키기만 하면 됨)
    4. 새로운 content(user 또는 item) 추천 가능
      • 협업필터링의 고질적인 장점이자 단점이 될 수 있음


1. User-based Collaborative Filtering

  • 사용자 기반 협업 필터링
  • 두 사용자가 얼마나 유사한 아이템을 좋아했는지 바탕으로 추천
    • 취향이 비슷한 사용자끼리의 데이터를 바탕으로
  • 플랫폼에서 사용자가 많은 부분을 차지하는 시스템에 적용하기 적절
    • ex) SNS 친구 추천
  • [참고] Regression vs. Classification
    • 평점 등 점수 분포가 continuous일 때와 discrete할 때 나눠서 적용
    • 평점 등 점수를 정규화하여 추천알고리즘에 적용 ➡️ Mean-Centering, Z-score normalization
  • 원리: 유저 A와 전체 유저에 대한 유사도를 구한 다음, 유저 A의 어떤 아이템에 대한 평점(예시)을 예측할 때 가장 유사도가 높은 다른 유저의 평점(구하고자 하는 동일한 아이템에 대해)을 기반으로 예측함*

2. Item-based Collaborative Filtering

  • 아이템과 아이템 사이의 유사도

  • 과거 아이템 선호도 데이터 기반으로 선호 연관성 높은 다른 아이템 추천

    • 컨텐츠기반 추천시스템과 차이점: 여러 사용자의 과거 선호도 데이터로 연관성 높은 아이템을 찾고, 해당 아이템을 사용자에게 추천!
    • 컨텐츠기반은 아이템 특성 바탕으로
  • ex) 아마존, 넷플릭스 등

  • 원리: 유저 A가 구하고자하는 상품 B의 평점에 대해, 상품 B가 다른 상품들과 유사도가 얼마인지 계산한 후 유저 A가 다른 상품들에 대해 평점 준 것과 유사도 바탕으로 계산

    ex)

    • 상품 B와 상품 C의 유사도 = 0.7, 상품 B와 상품 D의 유사도 = 0.85
    • 유저 A의 다른 상품 C, D에 대한 평점: 상품 C=2, 상품 D=2.25
    • 유저 A의 상품 B의 평점은? (0.7×2)+(0.85×2.5)0.7+0.85\frac{(0.7\times2)+(0.85\times2.5)}{0.7+0.85}

3. User-based vs. Items-based Collaborative Filtering

1. 정확도

  • User 수 < Item 수: User-based
  • User 수 > Item 수: Item-based
  • User가 적으면 User에 집중, Item이 적으면 Item에 집중하는 것이 더 낫다
  • Item이 User에 비해 너무 많으면 matrix가 너무 sparse해져서 정보 손실 등 추천 알고리즘의 정확도 높이기 어려움

2. 모델 Robustness

  • 유저와 아이템이 얼마나 자주 그리고 많이 변하는지에 따라 다름
  • 아이템 수가 크게 변하지 않는다 ➡️ Item-based
  • ex) 아이템 수가 1만개로 고정되고 유저가 계속 유입된다면 이전에 계속 평가해놓은 이전 유저들의 정보를 이용해 새로운 유저에게 추천이 가능하다는 것

3. 설명력

  • Item-based: 비슷한 item과 가중치로 함께 설명 가능
    • 과거 데이터를 봤을 때 이러이러한 아이템들과 이만큼의 유사도가 존재하기때문에~ 라고 설명 가능
  • User-based: 특정 user와 비슷한 user로 분류된 user의 실제 취향을 알 기 어렵다

4. 새로운 추천 기능

  • Item-based: 과거 아이템에 의존 ➡️ 새로운 아이템 추천 어려움
  • User-based: 여러 유저의 데이터 봄 ➡️ 더 새로운 추천 가능

정답이 있는 건 아니고 일반적으로 둘을 이렇게 비교할 수 있다는 것!

  • 새로운 추천이 필요한 플랫폼 운영 ➡️ User-based
  • 반대로 사용자에게 아이템에 치중된 플랫폼 운영 ➡️ Item-based

4. User-based & Item-based collaborative Filtering

문제점

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

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

2. 계산량

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

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

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

0개의 댓글