[Boostcamp AI Tech] 4주차

류지수·2022년 10월 14일
0

Boostcamp AI Tech

목록 보기
4/12
post-thumbnail

공부한 내용

< 추천 시스템에서 사용하는 정보 >

  • 유저 관련 정보

  • 아이템 관련 정보

  • 유저-아이템 상호작용 정보

    • Explicit Feedback : 유저에게 아이템에 대한 만족도를 직접 물어본 경우
      (유저의 영화에 대한 1~5점 사이의 평점)
    • Implicit Feedback : 유저가 아이템을 클릭하거나 구매한 경우
      (쿠팡에서 유저가 상품을 구매하면 implicit feedback) (유저가 직접 평가 X)

< 연관 규칙의 척도 >

  • support : 두 itemset X,Y를 모두 포함하는 transaction의 비율. 즉, 전체 transaction에 대한 itemset의 확률값 좋은 (빈도가 높거나, 구성 비율이 높음) 규칙을 찾거나, 불필요한 연산을 줄일 때 사용
  • confidence : X가 포함된 transaction 가운데 Y도 포함하는 transaction 비율 (Y의 X에 대한 조건부 확률)
  • lift : [X가 포함된 transaction 가운데 Y가 등장할 확률] / [Y가 등장할 확률]

< Collaborative Filtering, CF >

'많은 유저들로부터 얻은 기호 정보'를 이용해 유저의 관심사를 자동으로 예측하는 방법

  • 최종 목적 : 유저 u가 아이템 i에 부여할 평점을 예측하는 것.
  • 원리 : 유저 A와 비슷한 취향을 가진 유저들이 선호하는 아이템을 추천
    (아이템이 가진 속성을 사용하지 않으면서도 높은 추천 성능을 보임)

< Neighborhood-based CF >

  • 최종 목적 : 유저 u가 아이템 i에 부여할 평점을 예측하는 것

  • 특징

    • 구현이 간단하고 이해하기 쉽다.

    • 아이템이나 유저가 계속 늘어날 경우 확장성이 떨어진다. (Scalability)
      - 유저, 아이템이 많아야 정확한 예측을 하지만 시간이 오래걸림

    • 주어진 평점/선호도 데이터가 적을 경우, 성능이 저하된다. (Sparsity)
      - 실제로 행렬 대부분의 원소가 비어있는 것.
      (user, item 숫자에 비해 가지고 있는 평점이나 선호도가 아주 적은 경우)
      ex) user 100M, 영화 500K개 인데 평균적으로 모든 사람이 모든 영화를 보지 않음.
      - NBCF를 적용하려면 적어도 sparsity ratio*가 99%를 넘지 않는 것이 좋음
      - 데이터가 부족하거나 혹은 아예 없는 유저, 아이템의 경우 추천이 불가능함 (Cold start)

1. User-based CF (UBCF)

두 유저가 얼마나 유사한 아이템을 선호하는가?
유저 간 유사도를 구한 뒤, 타겟 유저와 유사도가 높은 유저들이 선호하는 아이템을 추천

2. Item-based CF (IBCF)

두 아이템이 유저들로부터 얼마나 유사한 평점을 받았는가?
아이템간 유사도를 구한 뒤, 타겟 아이템과 유사도가 높은 아이템 중 선호도가 큰 아이템을 추천

< K-Nearest Neighbors CF (KNN CF) >

  • NBCF의 한계: 아이템 i에 대한 평점을 예측하기 위해 아이템 i에 대해 평가한 유저 집합에 속한 모든 유저와의 유사도를 구해야하지만, 유저가 많아질 경우 많은 연산으로 성능이 떨어질 수 있음.
    => KNN 협업 필터링 사용

  • KNN CF 아이디어 : 아이템 i에 대해 평가한 유저 집합에 속한 유저 가운데 유저 u와 가장 유사한 k명의 유저(KNN)를 이용해 평점을 예측

< Similarity Measures >

유사도 측정법 (Similarity Measures) : 두 개체 간의 유사성을 수량화하는 실수 값 함수 혹은 척도

  • Mean Squared Difference Similarty
  • Cosine Similarty (두 벡터의 차원이 같아야함)
  • Pearson Similarty (Pearson Correlation) : 각 벡터를 표본평뉵으로 정규화한 뒤에 코사인 유사도를 구한 값 (두 벡터의 차원이 같아야함)
  • Jaccard Similarty : 주어진 두 집합 A,B에 대하여 집합의 개념을 사용한 유사도
    (두 집합이 같은 아이템을 얼마나 공유하고 있는지를 나타냄)

< Model Based Collaborative Filtering, MBCF >

항목 간 유사성을 단순 비교하는 것에서 벗어나 데이터에 내재한 패턴을 이용해 추천하는 CF기법

  • 특징 : 데이터에 숨겨진 user-item 관계의 잠재적 특성/패턴을 찾음
    (현업에서는 Matrix Factorization기법이 가장 많이 사용됨)

  • 장점

  1. 모델 학습/서빙 : 유저-아이템 데이터는 학습에만 사용되고 학습된 모델은 압축된 형태로 저장됨.
    -> 이미 학습된 모델을 통해 추천하기 때문에 서빙 속도가 빠름
  2. Sparsirty / Scalability 문제 개선 : 이웃 기반 CF에 비해 Sparse한 데이터에서도 좋은 성능을 보임.
    -> NBCF와 달리 Sparsity Ratio가 99.5%가 넘을 경우에도 사용
    사용자, 아이템 개수가 많이 늘어나도 좋은 추천 성능을 보임.
  3. overfitting 방지 : 전체 데이터의 패턴을 학습하도록 모델이 작동
    (NBCF의 경우 특정 특정 이웃에 overfitting될 수 있음)
  4. Limited Coverage 극복

추가 내용 🧐

< Apriori Algorithm >

  • 최소 지지도 (Minimum support)를 정해서 그 이상의 값만 찾은 후 연관규칙 생성
    -> 계산의 복잡도 \downarrow

학습 회고 💁

오프라인 행사에 참여해 RecSys에 있는 캠퍼들을 처음 만나보고 팀원 한분도 대면으로 처음 만나봤다. 더 이야기해서 친해져야겠다.
이번주부터 RecSys에 대해 본격적으로 들어갔는데, 처음 접하는 도메인이라서 그런지 강의를 한번 듣고서는 전부 소화하지 못하겠다. 다시 강의를 들어봐야겠다.

해야할 일

  • Level2, 3에 있을 팀결성을 위해 내가 하고싶은 주제가 무엇인지 생각해보기.
  • 강의 다시 듣기
profile
AI Engineer가 될테야

0개의 댓글