Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
1. Introducton
CDAE (Collaborative Denoising AutoEncoder) ๋ DAE๋ฅผ Collaborative Filtering์ ์ ์ฉํ์ฌ top-N ์ถ์ฒ์ ํ์ฉํ ๋ชจ๋ธ
๋ชจ๋ธ์ input์ผ๋ก corrupted๋ user-item ์ ํธ๋๋ฅผ ์ฃผ๊ณ ์ด๊ฒ์ latent representation์ ํ์ต
→ ์ด๋ corrupted๋๊ธฐ ์ ์ ์๋์ input์ ๋ ์ ๋ณต์ํด์ค
2. Problem Definition
2.1 Overview of Model-based Recommender
- model definition (input๊ณผ output์ ๊ด๊ณ๋ฅผ ์์ํํ ๊ฒ)
- objective function (best model์ param์ ์ฐพ๊ธฐ ์ํด ํ์ต๊ณผ์ ์์ ์ต์ ํํ๋ ๊ฒ)
Recommender Models
user u์ item i์ ๋ํ ์ ํธ๋๋ฅผ ๊ตฌํ๋ ๋ชจ๋ธ
- ํ๋ณด ๋ชจ๋ธ 4๊ฐ์ง
- Latent Factor Model (LFM)
- user์ item์ latent vector๋ค์ dot product๋ก ์ ํธ๋๋ฅผ ์ ์
- Similarity Model (SM)
- item j์ ๋ํ user์ ์ ํธ๋์ item i์ j๊ฐ์ ์ ์ฌ๋์ ๊ฐ์คํฉ์ผ๋ก ์ ์
- Factorized Similarity Model (FSM)
- SM๋ชจ๋ธ์ similarity matrix๋ฅผ 2๊ฐ์ ์ ์ฐจ์ ํ๋ ฌ๋ก ๋ถํด
→ item๊ฐ์์ ๋ฐ๋ผ parameter์ ๊ฐ์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๋ SM๋ชจ๋ธ์ ๋จ์ ๊ฐ์
- SM๋ชจ๋ธ์ similarity matrix๋ฅผ 2๊ฐ์ ์ ์ฐจ์ ํ๋ ฌ๋ก ๋ถํด
- LFSM (LFM+FSM)
- netflix prize์์ ์ฐ์นํ SVD++
- Latent Factor Model (LFM)
Objective Functions for Recommenders
์ถ์ฒ๋ชจ๋ธ ํ์ต์ ์ฌ์ฉ๋๋ ๋ชฉ์ ํจ์๋ 2๊ฐ์ง
*์ฃผ์ํ ์ :
ํ์ต ๋ฐ์ดํฐ ์
์ผ๋ก ๊ด์ฐฐ๋ user-item pair๋ง ์ฌ์ฉ ์, ๋ฐ์ดํฐ๊ฐ implicit feedback์ธ ๊ฒฝ์ฐ y๊ฐ์ด ์ ๋ถ 1์ด๊ธฐ ๋๋ฌธ์ ์์ธก๊ฐ๋ ์ ๋ถ 1์ธ ๋ฌธ์ ๋ฐ์
→ ๋ฐ๋ผ์ ๊ด์ธก๋์ง ์์ ๋ฐ์ดํฐ๋ ํ์ต๋ฐ์ดํฐ์ ํฌํจ์์ผ์ผ ํจ ($O'$)
- point-wise
- item ๊ฐ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ๊ฐ์ฒด๋ก ๋ณด๊ณ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ ํธ๋ ๊ณ์ฐํ์ฌ ์์ธก๊ฐ์ ๋ฑ์
- pair-wise
- item pair (positive item, negative item)๋ฅผ ์ฌ์ฉํ์ฌ ์ ํธ๋ ๊ณ์ฐ
- item๊ฐ์ ์๋์ rank๊ฐ ๋ฐ์๋จ
⇒ ์ผ๋ฐ์ ์ผ๋ก top-N recommender๋ฅผ ์ต์ ํํ๋๋ฐ๋ pair-wise ํจ์๊ฐ ๋ ์ ํฉ
loss function
- square loss
- log loss
- hinge loss
- cross entropy loss
2.2 Denoising Auto-Encoders
denoising auto-encoder(DAE)๋ classical auto-encoder์ ํ์ฅํ
neural network structure
- 1๊ฐ์ hidden-layer
- input vector $x$
- hidden representation $z$
- mapping function $h$$W$ : weight matrix, $b$ : offset vector
- $z=h(x)=\sigma(W^Tx+b)$
- reconstructed vector $\hat{x}$
- $\hat{x} = \sigma(W'z+b'),\ \ W' =W$ (tied weights)
corrupted input vector
DAE๋ input ํ์ต ๋ฐ์ดํฐ $x$์ ๋ณํ์ ์ค nosiy input $\tilde{x}$ ๋ฅผ ์ฌ์ฉ
→ robustํ ๋ชจ๋ธ
corruption method
- additive Gaussian noise
- multiplicative mask-out/drop-out noise
- : input์ ์ผ๋ถ๋ฅผ q์ ํ๋ฅ ๋ก 0์ผ๋ก ๋๋คํ๊ฒ ๋ฎ์ด์ฐ๋ ๋ฐฉ์
3. Proposed Methodology
3.1 Collaborative Denoising Auto-Encoder
CDAE๋ DAE๋ ๋น์ทํ๊ฒ 1๊ฐ์ hidden layer๋ก ๊ตฌ์ฑ๋ nerural net์ธ๋ฐ์, ์ฐจ๋ณ์ ์
DAE์์ ์ฐจ๋ณ์
- user์ ๋ํ latent vector encoding
๊ตฌ์กฐ
Input Layer
- $I+1$๊ฐ์ ๋
ธ๋
- $I$๊ฐ์ item input node
- $1$๊ฐ์ user input node
- user-specific node
- item input node
- $y_{ui}$ : user $u$ ์ item $i$ ์ ๋ํ ์ ํธ๋ (0/1)
Hidden Layer
- $K$๊ฐ์ ๋ ธ๋
- input vector ํฌ๊ธฐ๋ณด๋ค ์์
- bias node
Output Layer
- $I$๊ฐ์ ๋ ธ๋
- reconstructed ๋ $y_{u}$
Weight
- $W$ : item input node์ hidden layer node ์ฌ์ด์ weight matrix
- $V_{u}$ : user input node์ weight vector
- $W'$ : hidden layer์ output layer ์ฌ์ด์ weight matrix
- $b$ : hidden layer์ bias node์ weight vector
input vector
- $y_{u} = {{y_{u1}, y_{u2}, ... , y_{uI}}}$
- sparse binary vector
- $|O_{u}|$๊ฐ์ $y_{ui}$ = 1, ๋๋จธ์ง๋ 0
- : user $u$์ item ์งํฉ $I$์์ ๋ชจ๋ item์ ๋ํ feedback์ด ๋ด๊ธด vector
corrupted input vector
- $\tilde{y_{u}} = {{\tilde{y_{u1}}, \tilde{y_{u2}}, ... , \tilde{y_{uI}}}}$
- q์ ํ๋ฅ ๋ก 0์ด ์๋ $y$๋ฅผ drop out
CDAE parameter ํ์ต๊ณผ์
- parameterํ์ต์ SGD๊ธฐ๋ฒ ์ ์ฉ
- ์ ์ฒด user์ ๋ํด iteration 1๋ฒ ์๊ฐ๋ณต์ก๋ = $O(UIK)$
→ user์ item์๊ฐ ๊ต์ฅํ ์ปค์ง๋ฉด ์คํ์ด๋ ค์ - ⇒ $( S_{u} \subset \bar{O_{u}} ) \ \cup O_{u}$ ์ ํฌํจ๋ item์ ๋ํด์๋ง gradient ๊ณ์ฐํ๋๋ก.
- ์ ์ฒด user์ ๋ํด iteration 1๋ฒ ์๊ฐ๋ณต์ก๋ = $O(UIK)$
- AdaGrad ์ ์ฉ
Recommendation
- user $u$ $$์ $\bar{O_{u}}$ ์ item ์ค output layer์์ ๊ฐ์ฅ ํฐ ์์ธก๊ฐ๋ค์ ๊ฐ์ง item์ ์ถ์ฒ
3.2 Discussion
- CDAE๋ top-N recommendation์ ๊ตฌํํ๋๋ฐ ์์ด ์ ์ฐํ๊ณ ์ผ๋ฐํ๋ ๋ชจ๋ธ
(2.1์์ ์ ์๋ ๋ค๋ฅธ ๊ธฐ์กด method๋ค์ ์ ์ํ ์ ์์) - → best model์ ํ์ ์ง์ ์ ์์ง๋ง ์ฌ๋ฌ variant๋ฅผ ์คํํด๋ณด๊ณ task์ ๊ฐ์ฅ ์ ํฉํ ๋ชจ๋ธ์ ๊ณ ๋ฅผ ์ ์์
- CDAE์์๋ pair-wise๋ณด๋ค point-wise๋ฅผ ์ฐ๋ ๊ฒ์ด ์ฑ๋ฅ์ด ๋ ์ข์
4. Related Work
neural network๊ธฐ๋ฐ ์ถ์ฒ ์์คํ ๋ชจ๋ธ
Restricted Boltzmann Machines (RBM)
- top-N์ด ์๋ ์์์์ธก ๋ชจ๋ธ
- loss function์์ ๊ด์ฐฐ๋ ํ์ ๋ง ๊ณ ๋ ค
AutoRec
- rating ์์ธก์ Auto-Encoder ์ฌ์ฉ
- ์ฐจ์ด์
- AutoRec์ญ์ loss function์์ observed ratings๋ง ๊ณ ๋ ค ⇒ ์ด๋ top-N ์ถ์ฒ์ ์ฑ๋ฅ์ ๋ณด์ฅํด์ฃผ์ง ๋ชปํจ
- vanilla Auto-Encoder ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉ
- denoising ๊ธฐ์ ์ฌ์ฉ X
5. Experimental Results
์คํ ํ๊ฐ๋ ๋ ํํธ๋ก ์ด๋ฃจ์ด์ง
- study the effects of various choice of the components of CDAE (CDAE์ ์ฌ๋ฌ ์์๋ค์ ๋ณํ๋ฅผ ์ฃผ์ด ๊ทธ ํจ๊ณผ๋ฅผ ๊ฒ์ฆ)
- CDAE์ ์ต์ top-N ์ถ์ฒ ๋ชจ๋ธ ๋น๊ต
5.1 Data Sets and Experimental Setup
3๊ฐ์ง data set
- MovieLens 10M (ML)
- Netflix
- Yelp
- 4 star ์ด์์ ๋ฐ์ดํฐ๋ง ๋จ๊ธฐ๊ณ ๋๋จธ์ง๋ ์ ๋ถ missing data๋ก ๊ฐ์ฃผ
- ๋จ๊ฒจ์ง ๋ฐ์ดํฐ๋ $y_{ui}$ = 1 ๋ก ๋ณํ
- (์ด๋ฌํ ์ ์ฒ๋ฆฌ๋ implicit feedback์ ๊ฐ์ง ์ถ์ฒ์ ๊ฒฝ์ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ณผ์ ์ด๋ค)
- ๋จ๊ธด ํ์ ์๊ฐ 5๊ฐ ์ดํ์ธ user/item ์ ๊ฑฐ
5.2 Implementation Details
- ๋ชจ๋ธ๋ณ๋ก 5-fold CV ์งํํ์ฌ best hyperparameter ์ ์ → ํ์ต
- SGD๋ฅผ ์ ์ฉํ์ฌ parameter ํ์ต (์ ์ ๋ชจ๋ธ๊ณผ ๋น๊ต๋ฅผ ์ํด)
- AdaGrad ์ ์ฉ
- negative sampling์ ๊ฒฝ์ฐ, ์ฌ๋ฌ ์ซ์๋ฅผ ์คํํด๋ณธ ๊ฒฐ๊ณผ, NS = 5 ์ผ ๋ ์ผ๊ด์ฑ์๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์
→ ์ด๋ ๊ฐuser๋ negative sample์ด observed rating ์์ 5๋ฐฐ์์ ์๋ฏธ ..(?)
5.3 Evaluation Metrics
- precision
- recall
์ถ์ฒ๋ชจ๋ธ์ precision๊ณผ recall์ ๋ชจ๋ ์ ์ ์ precision๊ณผ recall์ ํ๊ท
- MAP (Mean Average Precision)
- AP (Average Precision)
- ranked precision metric์ผ๋ก, ์ณ๊ฒ(?) ์ถ์ฒํ item์ด top rank์ ์์์๋ก ๋ ํฐ ๊ฐ์ค์น ๋ถ์ฌํ๋ ๋ฐฉ์
- MAP
- ๋ชจ๋ user์ AP score์ ํ๊ท
- N์ด 1,5,10 ์ธ ๊ฒฝ์ฐ์ ๋ํด์๋ง ์คํ. (N์ ์ถ์ฒ ์)
5.4 Analysis of CDAE Components
CDAE๋ชจ๋ธ์ ์ฃผ์ ์์
- mapping function
- hidden layer์ output layer์ identitify/sigmoid function ์กฐํฉ์ค
- loss function
- CDAE์ ๊ฒฝ์ฐ pair-wise๋ณด๋ค point-wise objective function์ ์ฑ๋ฅ์ด ๋ ์ข์
์์ธ : implicit feedback
- CDAE์ ๊ฒฝ์ฐ pair-wise๋ณด๋ค point-wise objective function์ ์ฑ๋ฅ์ด ๋ ์ข์
- level of corruption
- corrupton level q [ 0, 0.2, 0.4, 0.6, 0.8, 1]
์คํ ๊ฒฐ๊ณผ
๊ฒฐ๋ก : ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์์๋ค์ ๊ฒฐ์ ํด์ผ ํจ
mapping function
- non-linear function์ ์ฌ์ฉ → ์ฑ๋ฅ ํฅ์
denoising technique
- input์ noise๋ฅผ ์ถ๊ฐ → ์ฑ๋ฅ ํฅ์
M1, M2์์ ๋๋ ท
DAE์ ๋น๊ต
- CDAE๋ user specific input์ ๊ฐ์ง
์คํ
- Yelp data
M!, M2์์ user-specific vector๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํฐ ์ฑ๋ฅํฅ์์ ๋ณด์
M3, M4์์๋ ์ฑ๋ฅ ํฅ์์ ์ ๋๊ฐ ์๋์ ์ผ๋ก ์์ - MovieLens data
๋ชจ๋ variant์ ๋ํ์ฌ DAE๋ณด๋ค CDAE์์ MAP ๊ฐ์ด ๋ ํผ
Tied Weights
(์ฌ๊ธฐ์ tied weights์ ํจ๊ณผ์ฑ ํ์ธ)
- tied weights๋ฅผ ์ฌ์ฉํ์ ๋์ ์ ํ์ ๋์ MAP ๋น๊ต
์คํ ๊ฒฐ๊ณผ
- MovieLens์ M2๋ชจ๋ธ์ ์ ์ธํ๊ณ ์ ๋ถ tied weights๋ฅผ ์ฌ์ฉํ์ง ์์์ ๋(NTW) ๋ ์ข์ ์ฑ๋ฅ์ ๋ณด์
→ CDAE์์ tied weights๋ฅผ ์ฌ์ฉ ์ถ์ฒ X
Number of latent dimension
- latent dimension $K$ ์ ํจ๊ณผ์ฑ ํ์ธ
์คํ ๊ฒฐ๊ณผ
- $K$๊ฐ์ด ์ปค์ง์๋ก (์ผ์ ์์ค๊น์ง๋ง) ์ฑ๋ฅ์ด ํฅ์ (K๊ฐ์ ๋ ์ฆ๊ฐ์ํค๋ฉด ๋ ์ด์ ์ฑ๋ฅ์ด ์ข์์ง์ง ์๊ณ overfitting์ ์ํด ์ฑ๋ฅ์ด ๋จ์ด์ง)
5.5 Experimental Comparisons woth Previous Models
- CDAE์ ๋ค๋ฅธ ์ ๋ช ํ top-N recommendation ๋ฐฉ์ baseline์ผ๋ก ์ผ๊ณ ๋น๊ต
- baseline ๋ชจ๋ธ๋ค์ hyperparameter๋ cross validation์ ์ ์ฉํ์ฌ ์ ์
- latent dimension = 50
- ํ๊ฐ์งํ : MAP์ recall
baseline method
- POP
- ITEMCF
- MK
- BPR
- FISM
์คํ๊ฒฐ๊ณผ
- MAP์ recall์ ๊ฒฐ๊ณผ ์ผ์น (๊ทธ๋ํ์ ์ฑํฅ์ด ๋น์ทํ๊ฑธ ์์์์)
- MAP@10๊ณผ Recall@10์ ๊ฒฐ๊ณผ์์ CDAE๊ฐ ์ผ๊ด์ฑ์๊ฒ ๋ค๋ฅธ ๋ชจ๋ธ๋ค์ ๋ฅ๊ฐํจ
- Yelp data์์๋ CDAE๊ฐ ๋ค๋ฅธ ๋ชจ๋ธ๋ค๊ณผ ํฐ ์ฐจ์ด๋ฅผ ์ด๋ฃจ๋ฉฐ ๋ฅ๊ฐ, ๊ทธ ์ค ๋๋ฒ์งธ๋ก ์ฑ๋ฅ์ด ์ข์ ๋ชจ๋ธ์ธ MF์ ์ฑ๋ฅ๋ณด๋ค 15% ์ข์
- Netflix data์์ ํฅ๋ฏธ๋ก์ด ์ ์ ITEMCF๋ชจ๋ธ์ด (CDAE์ ์ธ)๋ค๋ฅธ ๋ชจ๋ธ๋ค์ ๋นํด ๋ ์ข์ ์ฑ๋ฅ์ ๋ณด์. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฌ๊ธฐ์๋ ์ฌ์ ํ CDAE๊ฐ ๋ ์ข์
6. Conclusion
- top-n ์ถ์ฒ๋ชจ๋ธ๋ก CDAE๋ฅผ ์ ์
- CDAE๋ DAE๋ฅผ ์ฌ์ฉํ์ฌ user-item feedback ๋ฐ์ดํฐ ํ์ฑ
- 3๊ฐ์ง ๋ฐ์ดํฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ์ ์์๋ค์ด ์ฑ๋ฅ์ ์ด๋ค ์ํฅ์ ์ฃผ๋์ง ์คํ
- CDAE์ ์ต์ top-N ์ถ์ฒ๋ชจ๋ธ๋ค ๋น๊ต (CDAE๊ฐ ํฐ ์ฐจ์ด๋ก ์ฑ๋ฅ์ด ๋ ์ข๋ค๋ ๊ฒ๋ ํ์ธ)
- q = 0, q = 1
→ M1์์ q = 0์ผ ๋ MAP๊ฐ์ด ํจ์ฌ ๋ฎ์ - input vector๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ฒด๋ฅผ drop outํ๋ ๊ฒ๋ณด๋ค ๋ ์ข์ ๋ชจ๋ธ์ ๋ด์ง ๋ชปํจ
- non-linear function์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ํ์ํด
mapping function
- hidden layer์ output layer์ identitify/sigmoid function ์กฐํฉ์คํ
'Computer Science > Data Science' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋จธ์ ๋ฌ๋] Likelihood "์ฐ๋" ๋? (0) | 2022.08.21 |
---|---|
[๋จธ์ ๋ฌ๋์ ์ํ ํต๊ณ์ง์] (0) | 2022.08.16 |
[Machine Learning] Logistic Regression ์์๋ฅผ ํตํด ๋ค์ค์ ํํ๊ท ์ดํดํ๊ธฐ (0) | 2022.06.22 |
[Machine Learning] ์์๋ธ ๊ธฐ๋ฒ์ด๋? (0) | 2022.06.20 |
[CNN] CNN feature map๊ณผ filter ์๊ฐํ (0) | 2022.04.18 |
[text mining] word embedding ์ด๊ฑฐ๋ฉด ๋! (0) | 2022.03.02 |
[Machine Learning] LightGBM์ด๋? โ ์ค๋ช ๋ฐ ์ฅ๋จ์ (0) | 2021.05.20 |
[Machine Learning] ๋จธ์ ๋ฌ๋, ๋ชจ๋ธ์ ํธํฅ(bias)๊ณผ ๋ถ์ฐ(variance) : trade-off ๊ด๊ณ (0) | 2021.05.12 |