추천시스템(Recommender System)

sdubee10·2021년 12월 7일

Machine Learning

목록 보기
1/3

추천 시스템이란?


추첨 시스템이란 사용자(User)와 상품(Item)으로 구성된 시스템을 말한다. 이 때, 사용자(User)가 좋아할 상품(Item)을 추천해주거나, 비슷한 상품(Item)을 좋아할 사용자(User)를 추천해주는 것을 말한다.

추천시스템은 서비스 서비스 성장과 정보의 다양화로 인해 생겨나게 되었다.

인터넷에서 찾을 수 있는 정보가 매우 많아서 인터넷에서 정보를 찾는데 시간이 매우 오래 걸린다는 단점을 보완하기 위해 추천시스템이 등장하게 되었다. 그래서 추천시스템의 주 목적은 사용자가 정보를 수집하고 찾는 시간을 줄여주는 것이다.

검색서비스추천서비스
- Pull Information- Push Information
- 사용자가 요구한 후 작동- 사용자가 요구하기 전 작동
- 사용자 스스로 원하는 바를 알고 있는 경우- 사용자 스스로 원하는 바를 정확히 알지 못한 경우

사용자(USER) 와 상품 (ITEM)

추천시스템을 설계하기 위해선, 다음의 사용자와 아이템간의 관련 정보를 수집한 후, 연관 관계를 찾고 해당 연관 관계 점수화해야 한다.

    사용자의 정보 예)

    - 사용자 고유정보 (나이, 성별, 지역, 등)
    - 사용자 로그분석 (행동 패턴, 등)

    아이템 정보 예)

    - 아이템 고유 정보 (가격, 색상, 내용, 등)


사용자(USER) 프로필(Profile)

  • 사용자 또는 사용자 그룹을 분석 가능한 요소로 프로파일링(Profiling)
  • 사용자를 구분할 수 있는 정보를 활용:
    • 🟦사용자 ID: 나이, 성별, 지역, 학력 등 개인 신상정보

    • 🟦쿠키(Cookie)

    • 🟦인터넷 주소

      🟦사용자 행동 정보: 웹 페이지 방문 기록, 클릭 패턴 등

  • 사용자 정보를 수집하기 위한 방법:
    • 직접적인 (Explicit) 방법:
      - 설문조사
      - 평가
      - 피드백, 등
    • 간접적인 (Implicit) 방법:
      - 웹피이지 머무는 시간
      - 클릭 패턴
      - 검색 로그 등
  • 개인별 추천 또는 사용자 그룹별 추천 가능:

아이템(ITEM) 프로필(Profile)

  • 플랫폼마다 정의하는 아이템의 종류가 다르다.
  • 일반적으로 생각해볼 수 있는 추천 아이템 예시
    ex)
    - 책, 전자제품, 옷 등 웹 사이트 내 웹피이지
    - SNS에서 비슷한 게시글, 관심있을만한 사진
    - 뉴스, 논문 등 문서
    - 여행지, 음식점 등 지역 또는 장소 정보
    - 영화, 음악, 동영상, TV 프로그램 등 다양한 영상

  • 모든 것을 추천해주는 플랫폼은 현재 없다.
  • 플랫폼마다 관련 있는 상품 또는 아이템만 추천한다.
  • 아이템 프로필에 속하는 정보
    • 아이템 ID
    • 아이템 고유 정보(크기, 색, 가격, 등)
    • 아이템을 좋아하거나 구매한 사용자 저보, 등

[사용자 Profile || 상품 Profile] → 연관관계에 의한 추천점수 계산

  • 분석된 사용자와 아이템 정보를 바탕으로 추천점수 계산
  • 사용자 또는 아이템 프로필에서 어떤 정보를 사용할지에 따라 추천 알고리즘 결정
  • 사용자 또는 아이템을 추천하기 위해 각각의 아이템 또는 사용자에 대한 정량화된 기준 필요
  • 추천 알고리즘의 목적은 점수화(Scoring) 하는 것이다

추천시스템 현황

1. 추천시스템 연구 현황

  • 정보 검색 (Information Retrieval) 분야와 비슷하지만, 비교적 새로운 연구분야
  • 최근 다양한 형태의 추천시스템이 연구 진행중
  • 여러 기업과 학회에서 다양하게 연구진행중: 학회 : SIGIR, WWW, ACM RecSys, IEEE 등 기업 : 유튜브, 넷플릭스, 왓챠, IMDB, 쿠팡, 아마존, LastFM, 멜론 등
  • Netflix Prize 추천대회
    • 넷플릭스의 온라인 DVD대여와 영화 스트리밍 서비스
    • 480,189 사용자가 17,770개의 영화 → 100,480,507개 평점 부여
    • 2006년 10월 2일 대회 시작
    • 2009년 9월 21일 BellKor's Pragmatic Chaos 팀 우승
      • 넷플릭스 기존 알고리즘 (Cinematch)대비 +10.6%

2. 추천시스템을 왜 사용해야할까?

  1. 더 많은 아이템을 판매할 수 있다.
    • 상업, 기업에서 추천시스템을 사용하는 가장 큰 이유
  2. 더 다양한 아이템을 판매할 수 있다.
    • 소비자가 보지 못한 상품을 판매 할 수 있다.
  3. 소비자 만족도가 증가한다.
    • 플랫폼을 사용하면서 만족도가 증가하고, 플랫폼에 더 머무르는 이유가 된다.
  4. 충성도 높은 고객이 증가한다.
  5. 고객이 원하는 것이 무엇인지 알 수 있다(니즈 파악)
    • 데이터가 쌓이면 쌓일 수록 추천 알고리즘의 성능이 향상된다.

3. 추천시스템: 데이터 종류


추천시스템이 풀고자 하는 문제

1. 랭킹 문제

  • 특정 유저가 특정 아이템에 대한 평점(or 점수)을 정확하게 예측할 필요 없음
  • 특정 아이템을 좋아할 만한 Top-K 유저를 선정할 수 있음
  • 특정 유저가 좋아할만한 Top-K 아이템을 선정할 수 있음

2. 예측 문제

  • 유저-아이템 조합에서 평점(or 점수)를 예측
  • 유저-아이템 행렬을 채우는 문제
  • 유저(m명) - 아이템(n개)의 m X n 행렬, 그러나 비어있는 부분 존재
    • 관측값(Observed value)은 모델 학습에 사용
    • 결측값(Missing value)는 모델 평가에 사용

추천 시스템이 풀고자 하는 문제 예시

위의 표에서 비어 있는 공간들을 예측하고, 채워져 있는 공간들로 학습을 시킨다.


추천 알고리즘의 종류

추천시스템과 추천 알고리즘

추천 알고리즘들을 모두 통합하여 시스템화 한 것을 추천시스템이라 한다.

▶️Contents-based Recommender System(컨텐츠기반 추천시스템)


사용자가 과거에 좋아했던 아이템을 파악하고, 그 아이템과 비슷한 아이템을 추천

▶️Collaborative Filtering (협업필터링)


비슷한 성향 또는 취향을 갖는 다른 유저가 좋아한 아이템을 현재 유저에게 추천

  • 간단하면서 수준 높은 정확도를 나타낸다.

▶️Hybrid Recommender System


  • Content based 와 Collaborative Filtering의 장 단점을 상호보완
  • Collaborative Filtering은 새로운 아이템에 대한 추천 부족
  • 이에, content-based기법이 cold-start문제에 도움을 줄 수 있다.

Content-based 의 단점:

Collaborative Filtering의 단점

  • User A와 User B와 동일한 정보를 가지고 있어야 하기에, 어떠한 특정 후보군들이 정해져있다.

▶️ Context-based Recommendation


  • Context-aware Recommendation System
  • Location-based Recommendation System
  • Real-time or Time-Sensitive Recommendation System

▶️ Community-based Recommendation


  • 사용자의 친구 또는 속한 커뮤니티의 선호도를 바탕으로 추천
  • SNS 등의 뉴스피드 또는 SNS 네트워크 데이터 등 활용

▶️ Knowledge-based Recommendation


  • 특정 도메인 지식을 바탕으로 아이템의 features를 활용한 추천
  • Case-based Recommendation
    • -사용자의 니즈(현재 문제 등)와 해결책 중 가장 적합한 것을 골라서 추천
  • Constraint-based Recommendation
    • 상요자에게 추천할 때, 정해진 규칙을 바탕으로 추천


추천시스템의 한계

ㅇScalability

  • 실제 서비스 상황은 다양한 종류의 데이터
  • 학습 또는 분석에 사용한 데이터와는 전혀 다른 실전 데이터 예) 쇼핑몰 경우 학습 또는 분석에 사용된 데이터는 사람들이 검색한 키워드/ 사람들이 최근에 많이 구매한 항목들이겠지만, 갑자기 트렌드가 바껴서 또다른 상품을 구매한다라고 하면 이전의 학습하지 못한/분석하지 못한 데이터들을 바탕으로 만들어진 알고리즘은 새로운 데이터에 적응하기 힘들다. 예) 코로나 코로나 기간 동안, 사람들이 마스크를 많이 구매하게 되었는데 마스크를 어떻게 추천해야 할 지 깊이 고민하지 않았다. 그래서 서비스를 제공하는 상황에서 새로운 상황에 맞닥뜨렸을 때, 대처할 수 없다.

ㅇProactive Recommender System

  • 특별한 요청이 없어도 사전에 먼저 제공하는 추천서비스
  • 모바일, 인터넷 등 어디서는 유저에게 끈임없이 좋은 정보를 추천할 수 있는 서비스
    • 예) push-information

      새로운 상품에 대한 갈증을 느끼고 있을 때, 유저에게 끈임없이 좋은 정보를 추천해줘서 플랫폼을 떠나지 않게 하여야 한다.

ㅇCold-Start Problem

  • 추천서비스를 위한 데이터 부족
  • 기본적인 성능을 보장하는 협업필터링 모델 구축이 쉽지 않은것이 일반적
    • 협업필터링:

      협업 필터링이란 기존 사용자의 행동 정보를 분석해 해당 사용자와 비슷한 성향의 사용자들이 기존에 좋아했던 항목을 추천하는 기술이다. 따라서 알고리즘의 결과가 직관적이며, 항목의 구체적인 내용을 분석할 필요가 없다는 장점이 있다. 즉, 협업 필터링은 사용자의 행동 기록을 이용한다.

      내용 기반 필터링:

      항목 자체를 분석해 추천을 구현하는 방식이다. 내용 기반 필터링을 하기 위해서는 항목을 분석한 프로파일과 사용자의 선호도를 추출한 프로파일을 추출해 유사성을 계산해야 한다.

  • 컨텐츠 기반 또는 지식 기반의 방법 역시 서비스로 적용하기 어려움
    • 예) 협업필터링에 필요한 부족한 정보

      A 와 B 상품에 관한 여러 사용자들이 선택한 데이터가 존재하지만, C 상품을 선택한 기록이 없기 떄문에, C 상품을 추천해줄 수 없는 어려움이 있다.

ㅇPrivacy preserving Recommender System

  • 개인정보 등 유저 정보가 가장 중요하지만, 직접적으로 사용하기 어려움 예) 민감한 개인정보 사용 제한 개인정보가 민감하기 때문에, 이것을 빼고 추천을 한다면 의미가 없어질 수 있다. 그래서 이것을 보완하기 위해, log 정보를 사용하고 있지만 한계가 존재한다.

ㅇMobile devices and Usage Contexts

  • Personal Computing, Location-based Service(LBS_위치기반)
  • 개별 상황 또는 환경 등에 따라 다른 컨텍스트를 사용

ㅇLong-term and Short-term user preference

  • 개인 또는 그룹의 단기/장기 관심사항
  • 추천받고 싶은 아이템이 현재 또는 과거 중 어느 시기와 관련 있는지 파악하기 어려움

ㅇGeneric User models and Cross Domain Recommender System

  • 하나의 모델을 여러가지 데이터에 적용하기 어려움
  • 비슷한 도메인의 데이터를 활용해도 동일한 성능의 추천시스템을 기대하기 어려움

ㅇStarvation and Diversity

  • Starvation: 필요한 컴퓨터 자원을 끊임없이 가져오지 못하는 상황
  • 유저/아이템이 다양하고, 모든 유저/아이템에 더 많은 관심을 부여해야함.

추천시스템의 한계 - Long Tail Economy

90%의 데이터를 충분히 활용하지 못하고, 10% 데이터만 가지고 추천을 하게 된다면, 한쪽으로 쏠린 추천시스템밖에 제안하지 못한다.


0개의 댓글