Ch 07-2. Context-Aware Recommender System

Yeonghyeon·2022년 8월 5일
0

Recommender System

목록 보기
20/33

본 포스팅은 Fastcampus 강의를 수강하며 일부 내용을 정리한 글임을 밝힙니다. 보다 자세한 내용은 아래 강의를 통해 확인해주세요.
참고 : Fastcampus 딥러닝을 활용한 추천시스템 구현 올인원 패키지 Online

Context-Aware Recommender System


  • Context-Aware: 맥락 인지
    ➡️ 맥락기반 추천시스템

추천시스템의 틀에서 벗어나보자

  • 현재까지 추천시스템
    • 유저와 아이템이 제공된 explicit 데이터 활용

      • 위 데이터가 부족한 경우 implicit 데이터 활용하려고 노력함
    • 확보(implicit data)하거나 주어진 데이터(explicit data)로 유저-아이템 matrix 생성

    • 유저-아이템 간의 관계(누가 무엇을 좋아하는지), 유저와 아이템의 특징 활용

    • 위의 행렬 바탕으로 평점 또는 랭킹을 추천

➡️ 아이템, 유저 등 직접적으로 관련된 정보 외에 다른걸 활용 (간접적인 정보) 할 순 없을까?

Context-Aware Recommender System

  • Context = 맥락
    • 맥락을 이해 = 유저의 상황을 이해

    • 유저와 아이템과 관련있지만, 상호관계를 설명하진 않음

      • 유저와 아이템과 관련있는 맥락 또는 상황이 그 둘의 정확한 interaction을 설명해주진 않음
    • 개체(유저,아이템)의 상황을 설명하는 특징적인 정보를 추출 (e.g. 시간, 위치 정보)

  • Context-Aware Recommender System = 맥락기반 추천시스템
    • 즉 맥락(유저의 상황)을 이해한 추천시스템
    • 유저와 아이템의 단순 상호관계 파악뿐만 아니라 상황 정보 도 포함된 포괄적인 추천시스템
  • Contexts와 Context의 차이를 이해하고 추천시스템 구축
    • 둘은 분명한 차이가 있음! 둘의 차이를 이해하는 것이 중요

Context-Aware Recommender System 예시

뉴스 추천

  • 기존 방법: 유저와 성향과 뉴스 컨텐츠와 유사도 등을 판단하여 추천 (e.g. 스포츠에서도 야구를 좋아하는 유저 ➡️ 야구와 관련된 스포츠 뉴스 추천)
  • 맥락기반 방법: 유저가 월요일(시간)에 뉴스를 읽는다면, 한 주의 날씨 등 한 주를 시작할 때 관심 갖을 내용을 추천

장소 추천

  • 기존 방법: 유저가 좋아하는 취향과 과거 선택했던 아이템 기반으로 추천 (e.g. 술을 좋아하는 유저 ➡️ 안주 맛있는 술집 추천)
  • 맥락기반 방법: 오후, 저녁 등 가고자하는 시간 정보를 바탕으로 추천

  • Context Provider: 날씨, 온도, 위치, Companion(동반자)
  • User model과 Item model을 합친 + Context Manager(Context Provider의 정보) ➡️ 하나의 Model adapter
  • Prediction Engine을 사용하여 최종적으로 Pred.list 생성 ➡️ Users에 추천해줄 때 Context Manager를 통해 추천 이유 부가 설명 (Explanation Engine) ➡️ Rec.list + Explanations

Model Structure

  • 기존 방법

    • R:user×itemratingR:\text{user}\times \text{item} → \text{rating}
  • Context-Aware Recommender System

    • R:user×item×contextratingR:\text{user}\times \text{item}\times \text{context} → \text{rating}
    • context라는 항목이 하나 더 추가됨
    • 즉 이제 2D 행렬이 아닌 3D 행렬을 생성함
      • 딥러닝으로 갈수록 더 multi-dimension을 만들 것이라 크게 걱정 안해도 되는 부분

  • matrix가 아닌 cube 형태
  • Time 예시: 104번 user가 7번 아이템을 1번 time에 썼다 (or 2번 time에 썼다 등등)

Context-Aware Recommender System 정리

- 다양한 상황의 많은 context 정보 활용 가능

  • 주로 시간, 장소 등의 정보
  • 다양한 메타정보(판매자 정보), 대표 키워드, 태그 등
  • 더욱 다양한 정보가 추가되어 추천시스템 성능 향상 기대

- Context 정보 얻는 방법도 다양

  • Explicit하게 또는 Implicit하게 얻기 가능
  • 접속 시간, 접속 위치, 접속 날짜, 접속 기기, 평점을 준 이벤트 정보, 날씨 정보 등

- 적절한 context 정보로 초기 filtering 가능

  • ex) 특정 시간대의 음식 취향을 알고 있다면 싫어하는 음식을 초기에 filtering 하여 추천 목록에서 제외되게끔

- Context 정보 활용하여 A/B test 등 다양한 실험 가능

  • ex) 술집을 좋아하는 유저에게 time context 넣어서 A/B test 실험을 통해 time에 맞는 추천을 좋아하는지 안 좋아하는지 판단

- Context-Aware 추천시스템은 도메인 지식을 더욱 잘 활용할 수 있는 방법

  • 그 데이터의 가장 중요한 상황적 특징을 도메인 지식을 활용해 더 잘 알 수 있다면, 더 좋은 성능이 나오겠지

0개의 댓글