Main idea
item은 profile(혹은 feature라고도 부른다.)을 갖는다.
item이 video라면 [장르, 감독, 배우, 줄거리, 개봉연도 등] 의 profile을 갖고,
item이 new라면 [keyword 집합] 을 profile로 가질 수 있다.
추천시스템은 customer $x$에게 과거 높은 점수(highly rated)를 가진 item과 유사한 item을 추천해주는 방법이다.
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을 통해 수치를 조정할 수 있다.
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을 찾을 수 있다.
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의 데이터를 활용하지 못한다
'스터디 > 데이터사이언스' 카테고리의 다른 글
[CS224w, 2018] Network Centrality (0) | 2023.10.16 |
---|---|
[CS246] RecSys (3) - Collaborative Filtering (CF) (0) | 2023.10.13 |
[CS246] RecSys (1) - Introduction (0) | 2023.10.12 |
[CS246] Dimensionality Reduction (4) - CUR Decomposition (0) | 2023.10.11 |
[CS246] Dimensionality Reduction (3) - SVD (0) | 2023.10.10 |