Ch 07-3. Contextual Pre-filtering & Contextual Post-filtering

Yeonghyeon·2022년 8월 5일
0

Recommender System

목록 보기
21/33

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

Context-Aware Recommender System


Context를 어떻게 활용할 것인지(filtering) 알아보자 (대표적인 방법)

  • Contextual Pre-filtering
  • Contextual Post-filtering

Contexutal Information in Recommender System

ex) Spotify Music Recommender System (음악 추천)

  • Spotify: 미국에서 추천 알고리즘을 굉장히 잘 활용하는 업체 중 하나 (+ Netflix, Youtube ..)
  • Discover Weekly, Daily Mix 1, Daily Mix 2, Daily Mix 3 등 주별 추천과 매일매일 추천도 해줌
  • 각각 다 다른 음악이 들어있음 ➡️ contextual한 정보를 넣었기 때문에 가능
  • Daily라고 적어놨을 뿐이지 주중/주말 등 또는 오전/오후/저녁대/자기 전 등 여러 contextual 정보를 활용하여 모두 다른 음악 추천을 해주었을 것!

Figure 1. Contextual Information Dimensions

Gediminas Adomavicius, Bamshad Mobasher, Francesco Ricci, and Alex Tuzhilin. Contextual-Aware Recommender System, AI Magazine, Fall 2021

Contexutal factor

  • Contexutal factor는 explicit 하거나 implicit하게 알 수 있다

    • Fully Observable: explicit
    • Unobservable: implicit
    • Partially Observable: 둘이 섞여 있는
  • Contexutal factor는 시간의 흐름에 따라 변하거나 그대로 일 수 있다

    • Static / Dynamic: 시간의 흐름에 따라 고정되거나 변할 수 있다
    • ex) 특정 장소: 처음에는 많이 알려지지 않아 많이 붐비지 않았는데, 그 장소가 유명해지면서 사람들이 많이 붐비는 장소로 변할 수 있다, 반면 가정집은 시간의 흐름에 따라 크게 변할 수가 없는 장소
  • ex) Dynamic + Unobservable: 아무 것도 알려진 것이 없는 context

  • ex) Static + Fully Observable: 모든 것이 알려진 context

Contextual Information 적용

1. Contextual Pre-filtering

  • Context 정보 활용하여 처음 데이터를 filtering 하는 기법 (먼저)
    • 어떠한 추천 알고리즘 적용하기 이전에 Contextual 정보 바탕으로 먼저 데이터 필터링
  • Context 정보 기준으로 user 또는 item을 나누는 방법

2. Contextual Post-filtering

  • User, Item, Contextual information 등 다양한 features로 모델링을 먼저 진행
  • 모델 추천 결과에 Context 정보 활용하여 filtering 하는 기법

둘의 차이는 Contextual information을 언제 사용하느냐의 차이, 크게 어려운 것이 아님!
(이때 사용하는 Contextual information은 동일)

3. Contextual Modeling

  • Context 정보 자체를 모델링에 활용

    • user, item, Contextual information 모두를 사용하여 모델링(= 데이터 전체를 모델에 주입시켜 학습하게 하는 것)
  • Complex한 방법으로 머신러닝 등 모델 활용 가능 (데이터 차원 수도 커지고 모델이 복잡해지므로)


Gediminas Adomavicius, Bamshad Mobasher, Francesco Ricci, and Alex Tuzhilin. Contextual-Aware Recommender System, AI Magazine, Fall 2021

(a) Contextual Prefilteirng

  • Data에 c(context)를 반영해 filtering을 거친 Contextualized Data가 만들어짐 (가장 처음에 context를 사용)
  • 이를 바탕으로 2D Recomender를 통해 u(user)마다 Contextual Recommendations 생성

(b) Contexutal Postfiltering

  • 기존 Data에 먼저 2D Recomender를 생성하여 그 결과로 만들어진 Recommendations에 context를 얹어서 Contextual Recommendations 만들어짐 (가장 마지막에 context를 사용)

(c) Contextual Modeling

  • Data를 MD Recomender(Multi-Dimension Recomender)를 학습시키는 것
  • 이미 user, item, context 정보가 모두 활용된 상태
  • 이 모델이 생성한 결과가 Contextual Recommendations이 되는 것

Contextual Pre-filtering

Main method

  1. context 정보 활용하여 가장 관련있는 2D (Users X item) 데이터 만듦
  2. 그 후, 많이 알려진 다양한 추천 알고리즘 사용
  • 🌟 여기서 Context는 query의 역할로써 가장 관련있는 데이터를 선택하는 역할

Context generalization

  • <girlfriend, theater, saturday><\text{girlfriend},~\text{theater},~\text{saturday}> ➡️ too specific context
  • 위 예시처럼 <user, item, context>가 주어질 때 너무 specific한 context라는 문제가 있을 수 있음
    • 왜 문제냐? specific context는 girlfriend에게 맞는 추천을 잘 해줄 수도 있겠지만, 때로는 girlfriend 데이터가 너무 부족한 상태라면 새로운 데이터 들어왔을 때 풍부한 추천이 어렵다

    • specific context는 보통 충분하지 않기 때문에 sparsity 문제 발생

      ➡️ 따라서 girlfriend 보다 friend로 바꾸는 등 조금 더 general한 데이터로 바꿔주는 작업이 context를 활용할 때 필요한 방법

      • ex) 요일 context 활용할 때, 월-일 각각 쪼개는 것이 아닌 주중/주말로 쪼개는 등
  • 적절한 Filtering을 위해 computation이 많이 필요할 수 있음

Contextual Post-filtering

Main method

  1. Context 정보 무시하고, User와 Item 정보로 2D 추천시스템 모델 먼저 학습
  2. 추천 결과를 Context 정보를 활용하여 filter 또는 adjust
  • user의 Specific 취향 또는 패턴을 context를 통해 찾을 수 있음
    • 전체 데이터로 학습시켰는데 마지막에 Context 정보로 filtering 했을 때, 선택되지 않은 아이템에 대해서 이 user의 취향이 아니구나하면서 조금 더 specific한 정보 얻을 수 있겠지

Heuristic approach

  • 주어진 Context로 특정 user가 관심있는 공통 item의 특징 활용

Model-based approach

  • 주어진 Context로 user가 item을 선호할 확률을 예측하는 모델 만듦

  • 추천 리스트 중 user가 각각을 선택할 확률을 Context를 통해 예측

  • 마찬가지로 Context generlization을 적용할 수 있고, 대부분의 잘 알려진 추천알고리즘 적용 가능

Contextual Modeling

Main method

  1. 모든 정보(User, Item, Context)를 전부 활용하여 모델링
  2. Predictive model 또는 heuristic approach 사용
  • 기존 2D에서 N-Dimension 형태로 확장하여 사용

  • 모델 예시

    • Context-aware SVM
    • Tensor Factorization, Pairwise Interaction Tensor Factorization
    • Factorization Machine (Part 4에서 다룰 내용으로 굉장히 중요한 모델!)

Recap

  • 추천 알고리즘 만들 때 Contextual한 정보를 filtering할 때 사용할 수 있는데, pre-filteirng에 사용할 것인지 post-filtering에 사용할 것인지 우리가 선택
  • 이때, 그냥 전체 다 넣고 모델 학습할 수도 있음 (Contextual Modeling)

0개의 댓글