추천시스템

매일 공부(ML)·2021년 10월 26일
1

Simple toy project

목록 보기
9/19

링크텍스트

목표

  1. 추천시스템의 개념과 목적을 이해한다.

  2. Implicit 라이브러리를 활용하여 Matrix Factorization(이하 MF) 기반의 추천 모델을 만들어 본다.

  3. 음악 감상 기록을 활용하여 비슷한 아티스트를 찾고 아티스트를 추천해 본다.

  4. 추천 시스템에서 자주 사용되는 데이터 구조인 CSR Matrix을 익힌다

  5. 유저의 행위 데이터 중 Explicit data와 Implicit data의 차이점을 익힌다.

  6. 새로운 데이터셋으로 직접 추천 모델을 만들어 본다.

목차

  1. 데이터 탐색하기와 전처리

  2. 사용자의 명시적/암묵적 평가

  3. Matrix Factorization(MF)

  4. CSR(Compressed Sparse Row) Matrix

  5. MF 모델 학습하기

  6. 비슷한 아티스트 찾기 + 유저에게 추천하기

  7. 프로젝트 - MovieLens 영화 추천 실습

추천시스템

  • 정의: 나와 좋아하는 것이 유사한 다른 사용자들의 선택을 내게도 추천해준다.

  • 원리: 협업 필터링 방식 과 콘텐츠기반 필터링 방식

*협업 필터링 방식

  • 정의: 아이템-사용자(관계)에 초점.

  • 특징: 정확한 추천이 가능케함.(in 다수의 취향 및 아이템)

  • 제약조건

    1. 주어진 정보량 부족으로 사용자나 아이템 추론 불가(cold start)
    2. 계산량이 많아 추천 효율 떨어짐
    3. 관심도가 저조하면 추천에서 배제

*콘텐츠 기반 필터림

  • 정의: 아이템 속성에만 초점

사용자의 암묵적/ 명시적 평가

  1. 사용자의 명시적 평가
  • 정의: 좋아요나 싫어요 처럼 선호도 표현
  1. 암묵적 평가
  • 정의: 서비스 이용 시 자연스럽게 나오는 것

    Matrix Factorization(MF)

    : (m,n) 사이즈의 평가행렬로 행렬 중에서 채워있는 부분도 있고 비워져있는 부분도 있습니다.

    : 추천시스템의 협업필터링에서 사용이 됩니다.

    : 행렬 분해한다.

    R(m,n) -> P(m,k) -> Q(k,n)

    --> R은 P 와 Q의 행렬곱(내적)이다.

    --> P는 사용자의 특성 벡터

    --> Q는 다른 것의 특성 벡터

  • 목적

    : K- dimension의 벡터를 잘 만들기.

    CSR(Compressed Sparse Row) Matrix

  • 정의: 0이 아닌 유효한 데이터로 채워지는 데이터의 값과 좌표정보만으로 구성하면서 메모리 ㅅ용량을 최소화 한다.

    data = np.array([1,3,5,6,2,11,7,9,10,12])

indices = np.array([1,2,3,0,1,3,1,2,2,3])

indptr = np.array([0,3,6,8,10])

matrix([[0, 1, 3, 5], [6, 2, 0, 11], [0, 7, 9, 0], [0, 0, 10, 12]])

profile
성장을 도울 아카이빙 블로그

0개의 댓글