Post

Latent Factor Model

Based on the following lectures
(1) “Recommendation System Design (2024-1)” by Prof. Ha Myung Park, Dept. of Artificial Intelligence. College of SW, Kookmin Univ.
(2) "Recommender System (2024-2)" by Prof. Hyun Sil Moon, Dept. of Data Science, The Grad. School, Kookmin Univ.

Collaborative Filtering


  • 협업 필터링(Collaborative Filtering) : 과거 여러 사용자들이 다양한 아이템에 대하여 평가 점수를 매긴 기록을 활용하여 아직 상호작용하지 않은 아이템에 대한 사용자의 평점을 추론하는 방법론

    00

    • 사용자 기반 협업 필터링(User-Based Collaborative Filtering) : Identify like-minded users
    • 아이템 기반 협업 필터링(Item-Based Collaborative Filtering) : Identify buying patterns
  • 사용자-아이템 상호작용 행렬(User-Item Interaction Matrix) : $M$ 명의 사용자와 $N$ 가지 아이템 간의 상호작용을 수치적으로 표현한 행렬로서, 통상 행 벡터는 사용자를, 열 벡터는 아이템을 의미함

    01

    \[r_{u,i} \in \mathbf{R} \in \mathbb{R}^{M \times N}\]
    • 협업 필터링은 실질적으로 사용자-아이템 상호작용 행렬의 결측치(위 예시의 $-1$)를 채우는 방법이므로 행렬 완성 문제라고도 부름

Function


  • Bias-aware Collaborative Filtering Function

    \[\begin{aligned} \hat{r}_{u,i} &= \mu + \beta_{u} + \beta_{i} + \text{what} \end{aligned}\]
    • $\hat{r}_{u,i}$ : 사용자 $u$ 의 아이템 $i$ 에 대한 평점 예측값
    • $\mu$ : 커뮤니티 평점 평균
    • $\beta_{u}$ : 사용자 $u$ 의 평균 평점 편차로서 사용자의 평점 척도
    • $\beta_{i}$ : 아이템 $i$ 의 평균 평점 편차로서 아이템의 인기도
  • What?

    • k-NN Algorithm(Memory based Collaborative Filtering)
    • Decision Tree Algorithm
    • Association Rules Algorithm
    • Naive Bayes Algorithm
    • Matrix Factorization Algorithm(Latent Factor Model)

Latent Factor Model


  • 잠재요인 모형(Latent Factor Model) : 사용자 벡터와 아이템 벡터를 정체를 알 수 없는 $k$ 개의 특징 공간으로 사상하는 방법

    01

    협업 필터링에서 사용자는 아이템들에 대한 평점 집합으로(Row vector of the user-item interaction matrix), 아이템은 사용자들로부터 받은 평점 집합으로(Column vector of the user-item interaction matrix) 표현됨. 이처럼 사용자와 아이템은 각각 서로를 표현하는 벡터 공간 축이 되므로 직접 비교할 수 없음. 잠재요인 모형은 공통된 표현 수단인 잠재요인을 가정함으로써 이 문제를 해결함.

  • Matrix Factorization; Original Latent Factor Model

    \[\begin{aligned} \text{what} &= \overrightarrow{\mathbf{p}}_{u} \cdot \overrightarrow{\mathbf{q}}_{i}^{T} \end{aligned}\]
    • \(\overrightarrow{\mathbf{p}}_{u} \in \mathbf{P}_{M \times K}\) : 사용자-잠재요인 벡터로서, 사용자 $u$ 의 요인별 선호도
    • \(\overrightarrow{\mathbf{q}}_{i} \in \mathbf{Q}_{N \times K}\) : 아이템-잠재요인 벡터로서, 아이템 $i$ 의 요인별 특성
  • SVD++ : 특정 사용자가 특정 아이템에 대하여 매길 평점을 추론함에 있어, 목표 아이템 외에 사용자가 상호작용했던 다른 아이템들의 잠재요인 정보들을 함께 고려하는 방법

    \[\begin{aligned} \overrightarrow{\mathbf{p}}_{u} \leftarrow \overrightarrow{\mathbf{p}}_{u} + \frac{\sum_{j \in R(u)}{\overrightarrow{\mathbf{q}}_{j}}}{\sqrt{\vert R(u)\vert}} \end{aligned}\]
    • \(\displaystyle\frac{\sum_{j \in R(u)}{\overrightarrow{\mathbf{q}}_{j}}}{\sqrt{\vert R(u)\vert}}\) : 사용자 $u$ 가 상호작용한 아이템 벡터의 평균으로서, $u$ 가 상호작용한 아이템들의 평균적인 특성
    • $R(u)$ : 사용자 $u$ 가 상호작용한 아이템 집합

Optimization


  • Objective Function for Bias-unaware Matrix Factorization

    \[\begin{aligned} \hat{\overrightarrow{\mathbf{p}}}_{u}, \hat{\overrightarrow{\mathbf{q}}}_{i} &= \text{arg} \min_{\Theta}{\mathcal{J}\left(r_{u,i},\hat{r}_{u,i}\right) + \lambda_{\Theta}\Vert \Theta \Vert^{2}} \end{aligned}\]

ALS

  • 교대최소제곱법(Alternating Least Square; ALS) : $\mathbf{P},\mathbf{Q}$ 에 대하여 한 번에 하나의 행렬을 고정한 상태에서 다른 행렬을 최적화하는 과정을 번갈아 반복하여 수렴시키는 최적화 알고리즘으로서, 최소자승법을 활용하므로 각 사용자의 상호작용 데이터를 독립적으로 연산할 수 있어 병렬 처리에 적합함

  • Objective Function

    \[\begin{aligned} \hat{\overrightarrow{\mathbf{p}}}_{u} &= \text{arg} \min_{\mathbf{p}}{\Vert \overrightarrow{\mathbf{r}}_{u} - \mathbf{Q} \cdot \overrightarrow{\mathbf{p}}_{u}\Vert^{2} + \lambda \Vert \overrightarrow{\mathbf{p}}_{u} \Vert^{2}}, \quad \text{where Q is fixed}\\ \hat{\overrightarrow{\mathbf{q}}}_{i} &= \text{arg} \min_{\mathbf{q}}{\Vert \overrightarrow{\mathbf{r}}_{i} - \mathbf{P} \cdot \overrightarrow{\mathbf{q}}_{i}\Vert^{2} + \lambda \Vert \overrightarrow{\mathbf{q}}_{i} \Vert^{2}}, \quad \text{where P is fixed} \end{aligned}\]
  • Optimality Condition

    \[\begin{aligned} \frac{\partial L}{\partial \overrightarrow{\mathbf{p}}_{u}} &= -2\mathbf{Q}^{T} \cdot \left(\overrightarrow{\mathbf{r}}_{u} - \mathbf{Q} \cdot \overrightarrow{\mathbf{p}}_{u}\right) + 2\lambda \cdot \overrightarrow{\mathbf{p}}_{u} = 0\\ \frac{\partial L}{\partial \overrightarrow{\mathbf{q}}_{i}} &= -2\mathbf{P}^{T} \cdot \left(\overrightarrow{\mathbf{r}}_{i} - \mathbf{P} \cdot \overrightarrow{\mathbf{q}}_{i}\right) + 2\lambda \cdot \overrightarrow{\mathbf{q}}_{i} = 0 \end{aligned}\]
  • Optimality Params

    \[\begin{aligned} \overrightarrow{\mathbf{p}}_{u} &\leftarrow \left(\mathbf{Q}^{T}\mathbf{Q} + \lambda \mathbf{I}\right)^{-1}\mathbf{Q}^{T}\overrightarrow{\mathbf{r}}_{u}\\ \overrightarrow{\mathbf{q}}_{i} &\leftarrow \left(\mathbf{P}^{T}\mathbf{P} + \lambda \mathbf{I}\right)^{-1}\mathbf{P}^{T}\overrightarrow{\mathbf{r}}_{i} \end{aligned}\]

이미지 출처

  • https://towardsdatascience.com/essentials-of-recommendation-engines-content-based-and-collaborative-filtering-31521c964922
  • https://buomsoo-kim.github.io/recommender%20systems/2020/09/25/Recommender-systems-collab-filtering-12.md/
This post is licensed under CC BY 4.0 by the author.