추천시스템에 AutoEncoder 적용하기
AutoEncoder을 추천시스템에 적용하는 방법에 대해서 생각해보고자 한다.
import torch
import torch import nn, optim
class Autoencoder(nn.Module):
def __init__(self):
super(Autoencoder, self).__init__()
#이미지 처리?
self.encoder = nn.Sequential(
nn.Linear(28*28, 128),
nn.ReLU(),
nn.Linear(128, 64),
nn.ReLU(),
nn.Linear(64, 12),
nn.ReLU(),
nn.Linear(12, 3),
)
self.decoder = nn.Sequential(
nn.Linear(3, 12),
nn.ReLU(),
nn.Linear(12, 64),
nn.ReLU(),
nn.Linear(64, 128),
nn.ReLU(),
nn.Linear(128, 28*28),
nn.Sigmoid(),
)
def forward(self, x):
encoded = self.encoder(x)
decoded = self.decoder(encoded)
return encoded, decoded
추천시스템에 흔히 사용하는 Autoencoder 종류
자주 사용하는 autoencoder의 종류는 아래와 같다.
-
VAE(Variational Autoencoder)
-
DAE(Denoising Autoencoder)
-
SDAE(Stacked Denoising Autoencoder)
-
MDAE(Marginalized Denoising Autoencoder)
-
Deep Autoencoder?
Reference
https://towardsdatascience.com/recommendation-system-series-part-6-the-6-variants-of-autoencoders-for-collaborative-filtering-bd7b9eae2ec7
Comments