Giter Club home page Giter Club logo

recommender_basic's Introduction

1. 추천 시스템 기본 개념 요약

1.0 추천 시스템 개발에 필요한 스킬 3가지

  • Business problem solving, Data science, Data engineering

1.1 추천 시스템의 기본 3요소

  • 입력 (데이터 입력), 프로세스 (추천 설계), 출력 (추천 결과 제시)

1.2 추천 시스템에 사용하는 데이터의 종류

  • Content: 책의 제목, 저자, 장르 등 아이템의 내용을 나타내는 정보
  • Interaction: 과거 구매 이력 등 서비스 내에 있는 다른 사용자의 과거 행동 등을 통해 얻어진 기호 경향

1.3 프로세스

  • 개요 추천 (개인화 없음): 높은 인기 순, 낮은 가격 순 등 모든 사용자에게 동일한 내용 제시
  • 연관 아이템 추천: 각 아이템 사이의 유사도를 활용 (e.g., "이 아이템을 확인한 사람은 이런 아이템도 확인했습니다")
  • 개인화 추천: 사용자의 프로필이나 행동 이력을 기반으로 각 사용자에게 맞춰 추천하는 것

1.4 추천 시스템 프로젝트 진행 방법

  1. 과제 정의
  2. 가설 수립
  3. 데이터 설계/수집/가공
  4. 알고리즘 선정
  5. 학습/파라미터 튜닝
  6. 시스템 구현
  7. 평가 및 개선

1.5 추천 시스템 분류

  • Content-based Filtering
    • User profile과 item feature (content)간의 유사도를 계산하여 추천하는 알고리즘
    • 이점: 콜드 스타트, 사용자 수가 적은 서비스, 커버리지 (추천할 수 있는 아이템이 제한되고 편향될 떄), 아이템의 특징 활용
  • Collaborative Filtering
    • Interaction 정보를 사용하는 추천 알고리즘. 아이템의 구체적인 속성 정보 등을 사용하지 않음
      • Memory-based Filtering: 추천 시 매번 모든 데이터에서 비슷한 사용자나 아이템을 찾은 뒤 예측
        • 장점: 운용성 (항상 최신 데이터)
        • 단점: 예측 시간
      • Model-based Filtering: 이미 알고 있는 데이터의 규칙성을 학습한 모델을 통해 모르는 아이템의 평갓값을 예측
        • 장점: 예측 시간
        • 단점: 운용성 (모델 업데이트)
    • Preference data: 사용자로 부터 얻은 아이템에 대한 선호
      • Explicit feedback
      • Implicit feedback
    • 이점: 추천 결과의 다양성, 책의 장르나 출판사 혹은 나이 등 도메인 정보를 관리하는 비용

2. 추천 알고리즘

MovieLens 10M dataset: https://grouplens.org/datasets/movielens/10m/

2.1 평가 지표

  • Precision@K: 사용자에게 K개의 아이템을 추천했을 때 그중 실제로 선호하는 아이템의 비율이 얼마나 되는지
  • Recall@K: 사용자에게 K개의 아이템을 추천했을 때 사용자가 선호하는 아이템 그룹 중 몇 개 맞았는지

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.