본문 바로가기
스터디/데이터사이언스

[CS246] RecSys (1) - Introduction

by 궁금한 준이 2023. 10. 12.
728x90
반응형

Recommender Systems

 

Diagram of Recommender Systems (Stanford CS246)

Web application에서는 user의 반응(response)를 예측해야하는 영역이 있는데, 이를 추천시스템(recommender systems, RecSys) 이라 부른다.

유저의 기존 관심사를 바탕으로 새로운 온라인 뉴스기사를 추천해주거나, 전자상거래에서 과거 구매목록을 이용하여 새로운 상품을 추천해주는 것이 예가 된다.

 

From Scarcity to Abundance

최근 온라인의 발달로 Web(혹은 Online)에서 이런 추천시스템이 가능해졌다.

과거 Shelf space의 경우에는 제한된 공간과 판매원에 의존했지만, Web space에서는 사실상 모든 user에게 정보를 제공할 수 있다.

 

  물론 추천시스템이 만능은 아니다. 경우에 따라 association rule (연관 규칙)이 유용할 수 있다.

The Long Tail

Long tail phenomenon (Stanford CS246)

각 item의 판매량을 정렬하여 그래프를 그리면 long tail 그래프를 얻게 된다.

비교적 적은 item이 판매량의 대부분을 차지하고 대부분의 item은 그렇지 않다.

추천시스템은 long tail에 있는 item을 user에게 추천하는데 목적이 있다. (그래야 기업 수익에 기여할 것이다)

 

Types of Recommendations

Non-personalized recommendations

Editorial & Hand curated: favorite 리스트, essential item 리스트 등

Simple aggregates: Top 10, Most popular, Recent Upload 등

 

Personalized recommendations (in CS246)

Tailored to individual users: Amazon, Netflix 등

Content-based system, Collaborative filtering(CF) system이 여기에 해당한다.

 

Formal Model

추천시스템도 결국 하나의 mapping function이다. 이를 수식으로 표현해보면 다음과 같다.

\[ u: X \times S \to R \]

여기서 $X$를 customer 집합, $S$를 item 집합, $R$을 rating 집합, $u$는 utility function 이라 한다.

 

 

Utility Matrix

user가 어떤 item에 대한 선호도를 가지고,  이러한 선호도를 데이터 행렬로 나타낸 것을 utility matrix라 한다.

아래 예시는 7개의 영화 HP(Harry Potter), TW(Twilight), SW(Starwars)에 대하여 4명의 user A, B, C, D가 각자 rating한 표로 나타낸 것이다. 각 rating은 1-5 scale을 갖는다.

Utility matrix representing ratings of movies (MMDS textbook)

추천시스템은 utility matrix의 빈칸을 예측해야한다.

 

Gathering Ratings

utility matrix를 만들기 위해서는 user-item의 rating을 알아야 한다.

 

Explicit feedback: user에게 직접 item에 rating하도록 하는 방법

예를 들어, YouTube에서 user가 각 영상에 like/dislike를 누르는 것은 explicit feedback이라 할 수 있다.

그러나 user는 일반적으로 이러한 반응(response)를 제공하고 싶어하지 않는다.

그리고 user가 rating한 정보만을 이용하기 때문에 biased 될 수 있다.

 

Implicit feedback: user action을 통해 rating을 얻는 방법

예를 들어 YouTube에서 user가 영상에 like 한 것만 취급하는 방법이다.

그러나 low rating을 모델링하기 쉽지 않다. 왜냐면 1은 like이지만, 0은 dislike가 아니라 no rating이기 때문이다.

 

user의 영상시청시간을 통해 rating을 얻을 수도 있다.

그러나 이 경우에도 영상을 보다가 지루해서 잠이 든 경우, 정반대의 rating 정보를 얻을 수 있다.

 

 

Extrapolating Utilities

Key problem: utility matrix $U$는 sparse 하다

대부분의 사람들은 대부분의 item에 rating하지 않는다.

 

Cold start

- new item은 rating이 없다.

- new user는 history가 없다.

 

추천시스템에서는 주로 3가지 방법이 제시된다.

  1. Content-based
  2. Collaborative filtering
  3. Latent factor based
728x90
반응형