추천 시스템 기술

유트브와 넷플릭스와 같은 머신 러닝 알고리즘을 이용하여 추천 시스템 구현

  • 선수 지식
    • Tensorflow
    • DSSTNE(Amazon)
    • Sagemaker
    • Apach Spark

추천시스템? 머신러닝?

예를 들어, 집의 크기와 이웃에 대한 정보를 바탕으로 집의 가격을 추천 받는다면 이것은 머신러닝이다 또한 이 거래가 사기인지 아닌지에 대한 여부를 판단하는것 또한 추천시스템이 아니다.
유저들이 항목에 매긴 평점이나 선호도를 예측하는 시스템이다. 사람들의 과거 행동을 기준으로 무언가를 추천하는 시스템이다. 유투브나 쿠팡,넷플릭스 등에서 추천해주는 시스템과 같다.

추천의 종류

  1. 상품추천
    • 사용자의 과거 구매 행동을 파악해 좋아할 법한 상품을 추천하는 것
      • 예를 들어 샤프를 산다면 샤프심을 자동으로 추천
    • 데이터를 기반으로 사용자와 아이템 간의 관계를 찾는다.
      • 보통 인간의 추천은 개입되지않고 과거 사용자들의 구매 패턴을 이용
  2. 컨텐츠 추천
    • 독자들이 과거에 읽을 기사를 토대로 즐겨 읽을 만한 다른 기사를 추천
    • 상품추천과 마찬가지로 과거 데이터를 기반으로 한다.
  3. 음악 추천
    • 다른 추천시스템과는 약간의 차이가 있다.
    • 음악의 파형 자체를 분석하여 박자와 음악 스타일, 곡의 구조가 유사한 음악을 찾아 추천
    • 사용자의 행동이 아닌 추천한 것의 속성을 기반으로 한다.
  4. 사람 추천
    • 소개팅 어플에서 사용함
  5. 검색결과 추천
    • 검색 엔진이 사용자의 과거 행위를 파악해 가장 관련된 결과를 도출
    • 좋아하는 음식을 검색하면, 나의 위치나 내가 검색했던 데이터를 기반으로 음식점을 추천

추천시스템은 매출에 직접적인 영향을 미치므로 수요가 많다.

추천시스템의 작동 방식

  1. 명시적 평가
    좋아요 , 싫어요 등 눈에 보이는 평가를 이용하여 데이터 수집
    단점 : 모든 이용자가 참여하지 않으므로 데이터의 양이 낮아지면 각각 다른 지표를 가져있으므로 5점에 대한 기준도 서로 다르다.
  2. 암시적 평가
    • 어떠한 행동으로 흥미에 대한 여부를 판단하여 해석
      • ex) 클릭데이터
    • 흔히 말하는 어그로로 인해 데이터의 질이 안좋아질 수 있음 클릭데이터로만 구현 된 추천시스템 -> 검색엔진
    • 구매기록
      • 구매를 했다는 의미는 상품이 마음에 든다는 의미이고 조작을 하려면 많은 금액이 필요하다.
    • 동영상 시청 시간
      • 돈은 들지않지만 시간을 소비해야 한다 많은 시간 시청했다는건 흥미가 있는 주제라는 의미

두 개의 평가를 적절히 사용하여 좋은 추천 시스템 구축 필요

top-N 추천 시스템

사람들에게 가장 좋은 추천 목록을 제시하는 추천 시스템
ex) Top10 음악 리스트

  • 알고리즘
  1. 개인의 흥미데이터를 저장