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

[CS246] RecSys (2) - Content-based Approach

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

Main idea

item은 profile(혹은 feature라고도 부른다.)을 갖는다.

item이 video라면 [장르, 감독, 배우, 줄거리, 개봉연도 등] 의 profile을 갖고,

item이 new라면 [keyword 집합] 을 profile로 가질 수 있다.

 

추천시스템은 customer $x$에게 과거 높은 점수(highly rated)를 가진 item과 유사한 item을 추천해주는 방법이다.

Plan of Action (Stanford CS246)

Item Profiles

이제 item profile을 만들어보자.

 

Profile은 feature의 집합(또는 feature vector)로 나타낼 수 있다.

위에서 언급한 movie의 profile은  [장르, 감독, 배우, 줄거리, 개봉연도 ] 이므로 vector이고,

text document와 같은 경우 {keyword1, keyword2, ...} 처럼 set of feature가 된다.

 

Item Profiles as Vectors

feature가 discrete value라면, one-hot vector를 이용할 수 있다.

set of value라면, multi-hot vector가 가능하다.

예를 들어, movie에는 여러 actor가 등장하므로, multi-hot vector를 사용할 수 있다.

 

feature가 numeric이라면, 그 값 그대로 이용할 수 있다. 이 경우, scaling을 통해 수치를 조정할 수 있다.

Example: Item Profiles

TF-IDF

How to pick important features? 모든 feature를 profile로 담을 필요는 없다. 중요한 feature만 저장하는 것이 좋다.

text mining에서 사용되는 대표적인 heuristic method인 TF-IDF를 고려해볼 수 있다.

 

$i$개의 term(word)와 $j$개의 document가 있다고 하자.

Term frequency (TF)

$f_{ij}$를 document $j$에 있는 word $i$의 빈도수라 하자.

이때 TF는 다음과 같이 정의한다.

\[ TF_{ij} = \cfrac{f_{ij}}{\underset{k}{\max} f_{kj} } \]

$\underset{k}{\max} f_{kj}$로 나누는 이유는, 가장 많이 등장한 빈도수로 나누어서 normalize하는 것으로 이해하면 된다.

 

Inverse document frequency (IDF)

$n_i$는 word $i$가 등장하는 document 개수라 하고, $N$을 전체 document 개수라 하면 IDF는 다음과 같이 정의한다.

\[ IDF_i = \log \left( \cfrac{N}{n_i} \right) \]

 

TF-IDF score

\[ w_{ij} = TF_{ij} \times IDF_i \]

 

이렇게 구한 TF-IDF score가 높은 word를 집합으로 하여 document profile로 활용할 수 있다.

User Profiles

user profile은 user의 히스토리를 요약해줄 수 있어야 한다.

item profile을 weighted average를 취하거나, average rating과 item profile의 차이(difference)에 가중치를 줄 수도 있다.

 

utility matrix가 binary 값으로 이루어졌다면, (simple) average가 자연스러운 방법이다.

만약 user profile에서 "Julia Roberts"에 해당하는 값이 0.2라면, 해당 user가 like를 남긴 movie 중에서 20%는 "Julia Roverts"가 있다는 의미이다.

 

utility matrix가 binary가 아니라면, 가중치를 두어서 가중평균을 이용하여 user profile을 만들 수 있다.

 

 

반응형

Prediction Heuristic

user profile과 item profile의 유사도를 이용하여 예측한다.

이때 다양한 similarity를 이용할 수 있는데, cosine similarity가 대표적이다.

 

\[ u(\mathbf{x}, \mathbf{i}) = \cos(\mathbf{x}, \mathbf{i}) = \cfrac{\mathbf{x} \cdot \mathbf{i} }{\| \mathbf{x} \| \cdot \| \mathbf{i} \|} \]

 

효율성을 위해 cosine-based LSH를 활용할 수 있다. random hyperplane을 이용하여 빠르게 candidate item을 찾을 수 있다.

LSH Approach

 

Pros and Cons: Content-based Approach

Pros

다른 user data가 필요하지 않다 (no cold-start problem, no sparsity problem)

특이 취향을 가진 user에게도 추천 가능하다

새로운 item이나 unpopular item 역시 추천 가능하다(no first-rater problem)

추천시스템에 설명력을 갖는다(explanation)

Cons

적절한 feature를 찾는 것이 어렵다. (특히 image-사진, music-음성, movies-영상 데이터)

새로운 user에게는 적용하기 어렵다

Overspecialization

  • user의 content profile을 벗어난 item은 절대 추천되지 않는다
  • 사람들은 다양한 취향을 갖지만, 이를 반영하지 않는다. (계속 비슷한 content만 추천해줌)
  • 다른 user의 데이터를 활용하지 못한다
728x90
반응형