210812 EXPLORATION 9. 추천시스템

시에나 Sienna·2021년 8월 12일
0

AIFFEL

목록 보기
26/66
post-custom-banner

실습목표

  • Implicit 라이브러리 Matrix Factorization(이하 MF) 기반의 추천 모델 만들기
  • 추천 시스템에서 자주 사용되는 CSR Matrix 데이터 구조 익히기
  • 유저의 행위 데이터 중 Explicit data와 Implicit data의 차이 익히기

추천시스템의 추천 원리

  • 협업 필터링(Collaborative Filtering) 방식 ⇨ 평가행렬을 전제로 함
    • 사용자의 행동 기록을 이용
    • 아이템과 사용자 간의 행동 또는 관계에만 주목
    • 다수의 사용자의 아이템 구매 이력 정보만으로 사용자간 유사성 및 아이템 간 유사성을 파악
  • 협업 필터링의 제약조건
    • 시스템이 충분한 정보를 모으지 못한 사용자나 아이템에 대한 추론을 할 수 없는 상태인 콜드 스타트(Cold Start); ‘새로 시작할 때 곤란함’ 문제
    • 계산량이 너무 많아 추천의 효율이 떨어지는 단점
    • 롱테일(Long tail) 문제(사용자의 관심이 저조한 항목의 정보가 부족하여 추천에서 배제되는 상황)
  • 콘텐츠 기반 필터링(Contents-based Filtering) 방식
    • 항목 자체를 분석
    • 아이템 자체의 속성에 주목
    • 아이템의 고유의 정보를 바탕으로 아이템 간 유사성을 파악

데이터의 종류

  • Explicit Data : 유저가 자신의 선호도를 직접(Explicit) 표현한 Data
    • 단점 : 데이터를 얻기 힘듦
  • Implicit Data : 유저가 간접적(Implicit)으로 선호, 취향을 나타내는 데이터
    • 특징
      • 부정적인 피드백이 없다(No Negative Feedback)
      • 애초에 잡음이 많다(Inherently Noisy)
      • 수치는 신뢰도를 의미한다.(The numerical value of implicit feedback indicates confidence)
      • Implicit-feedback Recommender System의 평가는 적절한 방법을 고민해봐야 한다

Matrix Factorization(MF)

  • 아이디어의 단순함에도 불구하고 MF 모델은 성능이 준수하고 Scalability가 좋아서 많이 사용되는 모델
  • (m,n) 사이즈의 행렬 R을 (m,k) 사이즈의 행렬 P와 (k,n) 사이즈의 행렬 Q로 분해한다면 R이란 그저 P와 Q의 행렬곱으로 표현 가능할 수 있다는 아이디어
  • 장점 : k는 m이나 n보다 훨씬 작은 값이기 때문에 계산량 측면으로도 훨씬 유리

  • m=4, n=5, k=2인 MF 모델
  • P와 Q의 내적 = R
    • P의 Feature : 사용자의 특성(Feature) 벡터
    • Q의 Feature : 영화의 특성 벡터
  • 모델의 목표 : 모든 유저와 아이템에 대해 k-dimension의 벡터를 잘 만드는 것
  • 평가 : 유저i의 벡터(UiU_i)와 아이템j의 벡터(IjI_j)를 내적했을 때 유저ii가 아이템jj에 대해 평가한 수치(MijM_{ij})와 비슷한지

CSR(Compressed Sparse Row) Matrix

<읽어보고 다시 이해해볼 것>
Scipy sparse matrix handling

csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
data, row_ind그리고 col_ind관계 : a[row_ind[k], col_ind[k]] = data[k]


참고자료
Explicit vs Implicit Feedback Datasets
scipy.sparse.csr_matrix

post-custom-banner

0개의 댓글