Latent Matrix Factorization
2021-1ํ๊ธฐ, ๋ํ์์ โ๊ณผ์ ์ฐ๊ตฌโ ์์ ์์ ์งํํ๋ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ์ํด ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌํ ํฌ์คํธ์ ๋๋ค. ์ง์ ๊ณผ ๊ต๋ฅ๋ ์ธ์ ๋ ํ์์ ๋๋ค :)
Model Design
(์ถ์ฒ: ๊ฐ์๋จน๋ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ)
๋จผ์ ์ ์ ์ ์ข ์ดํด๋ณด์.
ํ๋ ฌ $R \in \mathbb{R}^{N_u \times N_i}$์ ํ์ ํ๋ ฌ๋ก, ๊ฐ ์ ์ ๊ฐ ์์ดํ ์ ๋ํด ๋งค๊ธด ํ์ ์ ๋ณด๊ฐ ๋ค์ด์๋ค. ์ด๋, $N_u$๋ ์ด ์ ์ ์ ์, $N_i$๋ ์ด ์์ดํ ์ ์๋ฅผ ์๋ฏธํ๋ค.
์ด์ ์ด ํ๋ ฌ $R$๋ฅผ <latent factor matrix> $X$, $Y$๋ก ๋ถํดํด๋ณด์! ์ด๋ โlatent factor์ ์ฐจ์โ์ ์ ํด์ผ ํ๋๋ฐ, $N_f$๋ผ๊ณ ์ค์ ํด๋์! ๋ณดํต 50์์ 200 ์ฌ์ด๋ก ์ค์ ํ๋ค๊ณ ํ๋ค. ๊ทธ๋์ MF๋ฅผ ์งํํ๋ฉด, ํ๋ ฌ $X$, $Y$๋ ๊ฐ๊ฐ $X \in \mathbb{R}^{N_f \times N_u}$, $Y \in \mathbb{R}^{N_f \times N_i}$๊ฐ ๋๋ค.
<Latent factor matrix> $X$, $Y$๋ ๊ฐ๊ฐ ์ฐ๋ฆฌ๊ฐ ํ์ต์ํค๊ณ ์ ํ๋ ๋์์ด๋ค. ์ด ํ๋ ฌ๋ค์ ์ฒ์์ ์์ฃผ ์์ ๋๋ค๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค. (๐ฅ ํ๋ ฌ $R$์ ๊ฐ์ ์ชผ๊ฐ์ด ์์ฑํ๋ ๊ฒ์ด ์๋๋ค!)
(์ถ์ฒ: ๊ฐ์๋จน๋ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ)
์ด์ ์ฐ๋ฆฌ๋ factor matrix $X$, $Y$๋ฅผ ํตํด ํ์ ํ๋ ฌ์ prediction์ธ $\hat{R}$์ ์ ๋ํ ๊ฒ์ด๋ค. ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ฐ, ๊ทธ๋ฅ $X$์ $Y$๋ฅผ ๊ณฑํด์ฃผ๋ฉด ๋๋ค.
\[\hat{R} = X^T \times Y\]์ด๋, ํ๋ ฌ $\hat{R}$์ ์์์ธ $\hat{r}_{ui}$๋ ์ ์ $u$๊ฐ ์์ดํ $i$์ ๋ํด ๋ด๋ฆฌ๋ ํ์ ์ predictionํ ๊ฒ์ด๋ค.
\[\hat{r}_{ui} = x_u^T \times y_i\]์ฆ, ์ฌ์ฉ์์ latent vector $x_u$์ ์์ดํ ์ latent vector $y_i$๋ฅผ ๊ณฑํด ํ์ ์ ์ถ๋ก ํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ LMF ๋ชจ๋ธ์ ๋ชฉํ๋ \(\hat{r}_{ui}\)๊ฐ ์ต๋ํ \(r_{ui}\)์ ๊ฐ๊น์์ง๋๋ก Latent Factor Matrix \(X\), \(Y\)์ ๊ฐ์ ์กฐ์ ํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค!
How to Train?: Loss
์ด์ ๋ชจ๋ธ์ ํ์ต์ํค๊ธฐ ์ํ ํํธ๋ค. ๋ฐฉ๋ฒ์ strightforward ํ๋ฐ, ๊ทธ๋ฅ \(\hat{r}_ui\)์ $r_{ui}$ ์ฌ์ด์ ๊ฐ์ด ๊ฐ๊น์์ง๋๋ก ๋ ๊ฐ์ ์ฐจ์ด๊ฐ์ minimize ํ๋ฉด ๋๋ค!
\[L(X, Y) = \sum_{u, i} \left( r_{ui} - x_u^T y_i \right)^2\]Regularization ํ ์ ์ถ๊ฐํด์ฃผ๋ฉด ์๋์ ๊ฐ๋ค.
\[L(X, Y) = \sum_{u, i} \left( r_{ui} - x_u^T y_i \right)^2 + \lambda \left( \sum_u \left| x_u \right|^2 + \sum_i \left| y_i \right|^2 \right)\]Optimization
Loss Function์ ๋์์ธ ํ์ผ๋ ์ด์ Optimization๋ง ๋ฌ์ฑํ๋ฉด ๋๋ค. ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ, <Gradient Descent>์ <Alternating Least Squares>, ๋ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค. ๊ฐ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํด๋ณด์!
Gradient Descent
GD๋ ๊ทธ๋ฅ Loss ํจ์ $L(X, Y)$๋ฅผ ๋ฏธ๋ถํ๊ณ ์ด์ ๋ํ Gradient ๊ฐ์ back-propagation ํด์ฃผ๋ฉด ๋๋ค. ์ค์ ๋์์ ๋ฅ๋ฌ๋ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ๋ฌ์ฑํ ์ ์๋ค.
๊ฐ๋จํ๊ฒ $x_u$์ ๋ํด์๋ง GD๋ฅผ ์ ์ฉํด๋ณด์.
\[\begin{aligned} \frac{\partial}{\partial x_u} L(x_u, y_i) &= \frac{\partial}{\partial x_u} \left( \sum_i \left( r_{ui} - x_u^T y_i \right)^2 + \lambda \left( \left| x_u \right|^2 + \sum_i \left| y_i \right|^2 \right)\right) \\ &= \sum_i 2 \left( r_{ui} - x_u^T y_i \right) (-y_i) + \lambda (2 x_u) \end{aligned}\]์ด์ ์ด Gradient ๊ฐ์ผ๋ก weight update๋ฅผ ์งํํ๋ฉด ๋๋ค.
\[x_u \leftarrow x_u + \alpha \cdot \left( \sum_i \left( r_{ui} - x_u^T y_i \right) (y_i) - \lambda x_u \right)\]๐ฅ ๋ณธ์ธ์ $y_i$์ ์ฐจ์ ๋๋ฌธ์ ์ ๋๋ฅผ ํ๊ณ ๋ ์์ ์์ด ์กฐ๊ธ ํท๊ฐ๋ ธ๋๋ฐ, ์ ์ ์ ๋ค์ ๋ณด๋๊น, $y_i$๊ฐ $N_f$ ์ฐจ์์ ์ด๋ฒกํฐ์๋ค ใ ใ ใ
Gradient Descent ๋ฐฉ์์ ๋จ์ ์ ์ต์ ํ๋ฅผ ์ํค๋ ๊ณผ์ ์ด ๋๋ฌด ๋๋ฆฌ๊ณ , ๋ง์ ๋ฐ๋ณต์ด ํ์ํ๋ค. ๋, Global minimum์ด ์๋ local minimum์ stuckํ ๊ฐ๋ฅ์ฑ์ด ์๋ค ๋ฑ๋ฑ์ ๋จ์ ์ด ์๋ค. ๋จ์ ์ด ์๊ธด ์๋ค ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ธ <Alternating Least Squares>๋ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ์ค๋งํธํ๊ฒ ํด๊ฒฐํ๋ค! ๐
Alternating Least Squares
<Alternating Least Squares>์ ์ปจ์ ์ $X$, $Y$ ๋ ์ค ํ๋๋ฅผ ๊ณ ์ ์ํค๊ณ , ๋ค๋ฅธ ํ๋๋ฅผ ์ต์ ํ ์ํจ๋ค๋ ๊ฒ์ด๋ค. ์ด ๊ณผ์ ์ ๋ฒ๊ฐ์๊ฐ๋ฉด ๋ฐ๋ณต, ์ฆ alternating ํ๋ฉด์ ์งง์ ์๊ฐ ๋ด์ ์ต์ ์ $X$, $Y$๋ฅผ ์ฐพ์๋ธ๋ค! (๋ ํ๋ ฌ์ ํ๊บผ๋ฒ์ ์ต์ ํ์ํค๋ ๊ฒ์ ์ด๋ ต๋ค ๐ซ)
๋จผ์ <ALS>์ loss๋ ์๋์ ๊ฐ์ด ์ ์๋๋ค.
\[L(X, Y) = \sum_{u, i} c_{ui} \cdot \left(p_{ui} - x_u^T y_i \right)^2 + \lambda \left( \sum_u \left| x_u \right|^2 + \sum_i \left| y_i \right|^2 \right)\]<GD>์์์ Loss์ ์กฐ๊ธ ๋ฌ๋ผ์ก๋๋ฐ, $c_{ui}$์ $p_{ui}$๊ฐ ์ถ๊ฐ๋์๋ค. ์ด ๋ ๊ฐ์ ํ์ ์ ์ ํธ๋(preference) $p$์ ์ ๋ขฐ๋(confidence) $c$๋ก ๋๋์ด ์ ๊ทผํ ๊ฒ์ด๋ผ๊ณ ์ค๋ช ํ๋ค.
๋จผ์ , ์ ํธ๋ $p_{ui}$๋ ์๋์ ๊ฐ์ด ์ ์๋๋ค. ํ์ $r_{ui}$์ ๊ฐ์ ์ํด ์ ์๋๋ค.
\[p_{ui} = \begin{cases} 1 & \text{if} \; r_{ui} > 0 \\ 0 & \text{if} \; r_{ui} = 0 \end{cases}\]์ด๊ฒ์ ์ ์ ๊ฐ ํ์ ์ ๋จ๊ฒผ๋ค๋ฉด($r_{ui} > 0$), ์ ์ ๊ฐ ์ ํธ๋๋ฅผ ๊ฐ์ง๋ค๋ ๊ฒ์ ํํํ ์์ด๋ค. (<ALS>๋ Implicit Dataset์์ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ ํธ์ ๋น์ ํธ๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค!)
๋ค์์ผ๋ก ์ ๋ขฐ๋ $c_{ui}$๋ ์๋์ ๊ฐ์ด ์ ์๋๋ค. ์ค์ ๋ก ์ ํธํ์ง๋ง, ํ์ ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ํด ๋์ ํ ๊ฐ์ด๋ค.
\[c_{ui} = 1 + \alpha r_{ui}\]์ฐ๋ฆฌ๋ ์ ํธ๋ $p_{ui}$๋ฅผ ํตํด ํ์ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ 0์ผ๋ก ๋ฐ๊พธ์๋ค. ๊ทธ๋ฌ๋ ์ฌ๊ธฐ์๋ ์ค์ ๋ก ์ ํธํ์ง๋ง, ํ์ ์ด ์๋ ๊ฒฝ์ฐ๋ ์์ ์ ์๋ค. <ALS>์์๋ ์ด ๊ฒฝ์ฐ๋ฅผ ๋ฐ์ดํฐ์ ์ ๋ขฐ๋๊ฐ ๋ฎ์ ๊ฒ์ผ๋ก ํด์ํ๋ค!
<ALS>๋ ์ ๋ขฐ๋ ๋ณ์๋ฅผ ๋์ ํด ํ์ ์ด ์๋ ๋ฐ์ดํฐ์ ๋ํ ์์ธก๋ ์ ์ฒด Loss Function์ ์ํฅ์ ์ฃผ๋๋ก ๋ง๋ค์๋ค. ์ด๊ฒ์ ํ์ ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํ์ต์์ ์ ์ธํ <Explicit Dataset>๊ณผ๋ ๋์กฐ๋๋ ์ ์ด๋ค! ๐ฒ
์ ๋ขฐ๋ ๋ณ์ $c_{ui}$์๋ ํ์ $r_{ui}$๊ฐ ์๋๋ฐ, ์ด๊ฒ์ ํตํด ํ์ ์ด ์๋ ๋ฐ์ดํฐ์๋ ๋ฎ์ $c$ ๊ฐ์ ๋ถ์ฌํด loss์ ํฌํจํ๋ ํ์ต์ ๋ฏธ์น๋ ์ํฅ์ด ์๋๋ก ๋ง๋ค์๋ค.
โ๊ฐ์๋จน๋ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆโ์ ์ ์๋ถ๊ป์๋ ์ ๋ขฐ๋ ๋ณ์ $c_{ui}$๋ฅผ ๋์ ํ๋ ์ด์ ๋ฅผ โImplicit Dataset์ ํ์ ์ด ์๋ ๋ฐ์ดํฐ๊ฐ ํจ์ฌ ๋ง์, ์ค์ ๋ฐ์ดํฐ์ ์ ํจ์ฌ sparseํ matrixโ๋ผ๊ณ ์ค๋ช ํด์ฃผ์ จ๋ค. ๋ง์ฝ, ํ์ ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ ํ๊ณ ํ์ต์ ์งํํ๋ค๋ฉด, ์ด๊ฒ์ ํ์ต์ ๋ํ ์ฌ๋ฐ๋ฅธ ์ ๊ทผ์ด ์๋๋ฉฐ, ์ค๋ช ๊ฐ์ค์น๊ฐ ๋ฎ๋๋ผ๋ ๊ทธ ์๊ฐ ์๋ฑํ ๋ง๊ธฐ ๋๋ฌธ์ ํ์ต์ ์ ์๋ฏธํ ์ํฅ์ ๋ฏธ์น๊ฒ ๋๋ค๊ณ ํฉ๋๋ค.
์ด๋ฒ์๋ ์ค์ ๋ก <ALS>์ ๋์์ ์ดํด๋ณด์!
1. ๋จผ์ ์ฌ์ฉ์์ ์์ดํ ์ Latent Factor ํ๋ ฌ์ ์์ฃผ ์์ ๋๋ค๊ฐ์ผ๋ก ์ด๊ธฐํ ํ๋ค.
2. ๋ ์ค ํ๋๋ฅผ ์์๋ก ๊ณ ์ ์์ผ, Loss Function์ Convex Function์ผ๋ก ๋ง๋ ๋ค.
3. Loss๋ฅผ ํธ๋ฏธ๋ถ ํ๋ค. ๋ฏธ๋ถ ๊ฐ์ 0์ผ๋ก ๋ง๋๋ ํ๋ ฌ์ ๊ณ์ฐํ๋ค.
4. [2-3] ๋ฐ๋ณต
์์ดํ ์ Latent Factor๋ฅผ ๊ณ ์ ํ๊ณ , ์ฌ์ฉ์์ LF๋ฅผ ์ต์ ํ ์์ผ๋ณด์.
์์ดํ ํ๋ ฌ์ ๊ณ ์ ํ๊ณ , <ALS>์ Loss๋ฅผ ์ฌ์ฉ์ $x_u$์ ๋ํด ๋ฏธ๋ถํ๋ฉด ์๋์ ๊ฐ๋ค.
\[\begin{aligned} \frac{\partial L(x_u)}{\partial x_u} &= \frac{\partial }{\partial x_u} \left[ \sum_{i} c_{ui} \cdot \left(p_{ui} - x_u^T y_i \right)^2 + \lambda \left( \left| x_u \right|^2 + \sum_i \left| y_i \right|^2 \right) \right] \\ &= \left[\sum_{i} c_{ui} \cdot 2 \left( p_{ui} - x^T_u y_i \right) ( -y_i)\right] + 2 \lambda x_u = 0 \end{aligned}\]์์ ์ ๋ฆฌํ๋ฉด,
\[\left(\sum_i c_{ui} \cdot x_u^T y_i \cdot y_i\right) + \lambda x_u = \sum_i c_{ui} \cdot p_{ui} \cdot y_i\]์์ $x_u$์ ๋ํด ์ ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์, scalar $x_u^T y_i$๋ฅผ $y_i^T x_u$๋ก ๋ฐ๊ฟ์ค๋ค.
\[\left(\sum_i c_{ui} \cdot y_i^T x_u \cdot y_i\right) + 2 \lambda x_u = \sum_i c_{ui} \cdot p_{ui} \cdot y_i\]์ด์ ์ข๋ณ์ $x_u$์ ๋ํด ๋ฌถ์ด์ค๋ค.
\[\begin{aligned} \left(\sum_i c_{ui} \cdot y_i^T x_u \cdot y_i\right) + 2 \lambda x_u &= \left(\sum_i c_{ui} \cdot y_i \cdot y_i^T x_u \right) + 2 \lambda x_u \\ &= \left(\sum_i c_{ui} \cdot y_i y_i^T \right) x_u + 2 \lambda x_u \\ &= \left[ \left( \sum_i c_{ui} \cdot y_i y_i^T \right) + 2 \lambda I \right] x_u \end{aligned}\]์์ ์์๋ ํฉ(ๅ)์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ด ์์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋๋ฐ ์กฐ๊ธ ๋ถํธํ๋ค. ๊ทธ๋์ ์๋์ ๊ณผ์ ์ ํตํด ์์ ์ข๋ ๋จ์ํํด๋ณด์!
์์ดํ ํ๋ ฌ $Y = [y_1, y_2, \cdots, y_i]$์ ๋ํด $Y \times Y^T$๋ ์๋์ ๊ฐ๋ค.
\[YY^T = \left[ y_1 y_1^T + y_2 y_2^T + \cdots + y_i y_i^T \right] = \sum_i y_i y_i^T\]ํ์ง๋ง, ์์ ์์๋ ์ ๋ขฐ๋ $c_{ui}$๊ฐ ๋น ์ ธ์๋ค. ์ด๊ฒ์ diag matrix๋ฅผ ํตํด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค!
Let $C_u$ be
\[C_u = \begin{pmatrix} c_{u1} & 0 & 0 & 0 \\ 0 & c_{u2} & 0 & 0 \\ 0 & 0 & \ddots & 0 \\ 0 & 0 & 0 & c_{ui} \\ \end{pmatrix}\]then, $YC_uY^T$ is
\[YC_uY^T = \left[ c_{u1} y_1 y_1^T + c_{u2} y_2 y_2^T + \cdots + c_{ui} y_i y_i^T \right] = \sum_i c_{ui} y_i y_i^T\]์ฐ๋ณ๋ ์์ ์ ๋ฆฌํด๋ณด์.
\[\begin{aligned} Y^T C_u p_u &= [y_1, \dots, y_i] \begin{pmatrix} c_{u1} & 0 & 0 & 0 \\ 0 & c_{u2} & 0 & 0 \\ 0 & 0 & \ddots & 0 \\ 0 & 0 & 0 & c_{ui} \\ \end{pmatrix} \begin{pmatrix} p_{u1} \\ \vdots \\ p_{ui} \end{pmatrix} \\ &= [c_{u1}y_1, \dots, c_{ui}y_i] \begin{pmatrix} p_{u1} \\ \vdots \\ p_{ui} \end{pmatrix} \\ &= p_{u1}c_{u1}y_1 + \cdots + p_{ui}c_{ui}y_i = \sum_i c_{ui}p_{ui}y_i \end{aligned}\]์ด์ ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก (์ค์)์ ๋ค์ ๊ธฐ์ ํด๋ณด์.
\[\begin{aligned} \left[ \left( \sum_i c_{ui} \cdot y_i y_i^T \right) + \lambda I \right] x_u &= \sum_i c_{ui} \cdot p_{ui} \cdot y_i \\ (YC_uY^T + \lambda I) x_u &= Y^T C_u p_u \end{aligned}\]์ด์ $x_u$๋ฅผ ์ป๊ธฐ ์ํด ์ข๋ณ์ ํ๋ ฌ์ ์ฐ๋ณ์ผ๋ก ์ฎ๊ธฐ๋ฉด,
\[x_u = (YC_uY^T + \lambda I)^{-1} \cdot Y^T C_u p_u\]์์ ์ฝ๊ฐ ๋ค๋ฌ์ผ๋ฉด,
\[x_u = (Y^TC_uY + \lambda I)^{-1} \cdot Y^T C_u p_u\]๋!! ์ด๋ ๊ฒ ๊ตฌํ $x_u$๋ก ์ฌ์ฉ์ ํ๋ ฌ $X$๋ฅผ ์ ๋ฐ์ดํธ ํ๋ฉด ๋๋ค!!
๋ค์์๋ ์ฌ์ฉ์ ํ๋ ฌ $X$๋ฅผ ๊ณ ์ ํ๊ณ , ์์ดํ ํ๋ ฌ $Y$์ ๋ํด ๋์ผํ ์์ ์ ์ํํด $y_i$๋ฅผ ๊ตฌํ๋ฉด,
\[y_u = (X^TC_iX + \lambda I)^{-1} \cdot X^T C_i p_i\]๋ณดํต ๋ฐ๋ณต ํ์๋ฅผ 10~15ํ ์ ๋๋ก ์งํํ๋ฉด, ๋ฐ์ดํฐ ํฌ๊ธฐ์ sparse ์ ๋์ ๋ฐ๋ผ ํ์๋ ์กฐ์ ๋๋ค๊ณ ํ๋ค.
<ALS> ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๊ตฌํ์ โ๊ฐ์๋จน๋ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆโ์ ์ ์ โํ์คํดโ๋์ ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํ๊ธธ ๋ฐ๋๋ค.
๐ ๊ฐ์๋จน๋ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ [5] ALS ๊ตฌํํ๊ธฐ