분류 전체보기(327)
-
Using High-dimensional Side-information for Recommend System(text, image, audio data)
Using text data Collaborative Deep Learning(CDL, Wang et al. 2015) - textual content를 활용한 Top-K Ranking 추천 모델 - Matrix Factorization + Stacked Denoising Autoencdoer(SDAE)를 사용. **SDAE란 autoencoder를 여러 층 stack 형태로 쌓고, input에 noise를 추가하여 denoise model 모델을 만듦을 목표로 함. Using Visual data Visual BPR(VBPR, He and McAuley, 2016) - item의 visual content를 활용한 모델 - pretrained CNN 모델을 활용하여 item의 visual feature..
2024.02.22 -
Using side-information for Recommend System
Collaborative Filtering : user-item interaction data만을 활용하여 추천을 수행. 한계점 두가지 - Cold-start problem : interaction data가 충분하지 않은 경우 - Temporal evolution : 시간의 흐름에 따른 사용자 선호도 및 아이템 특성의 변화를 반영하지 못함 **Cold-start problem 이란 interaction 정보가 매우 적거나 존재하지 않는 아이템이나 사용자에게 올바른 추천을 제공하기 어려운 상황을 의미 - Content-based methods(사용자 혹은 아이템의 side-information)을 활용하여 cold-start problem 완화 가능. - 예를 들면 해당 유저와 비슷한 군집의 유저가 좋아..
2024.02.22 -
Variational AutoEncoder(VAE, Multi-VAE)
VAE의 특징은 z(latent vector)생성 시, linear layer를 통과하여 나온 벡터 내의 값(스칼라) 뿐만 아니라 해당 값의 평균과 분산 정보까지 포함시키는 것이다. - 이때 input으로 제공된 모든 값은 정규분포를 따른다고 가정한다. VAE 구현방법에는 여러가지가 있을 수 있지만 간단하게 두 가지를 소개하려고 한다. 1) encoder에 의해 생성되는 z의 크기를 두배로 하여 mu, logvar로 나누는 방법 2) z를 생성하는 linear layer를 두개 설정하여 mu,logvar를 각각 생성하는 방법. 필자는 무비렌즈 데이터로 영화 추천이라는 테스크를 수행했는데 1번 방법의 성능이 훨씬 좋았다. import torch.nn as nn import torch.nn.functiona..
2024.02.21 -
torch.nn.CrossEntropyLoss()
만약 이중분류를 진행중이라면 torch.nn.BECLoss()를 사용하자. Multi-Class CrossEntropyLoss 1. input tensor에 대해서 각 row 별로 softmax() 진행(=각 class별 확률을 나타냄) 2. 각 row별로 softmax()가 진행된 값에 log를 취해줌 **1-2단계를 한번에 torch.nn.functional.log_softmax(x, dim=1) 로 구현할 수도 있다. 3. predict와 y의 element-wise product 진행. - 이때 y는 모든 class에 대한 one-hot encoding. - 즉, 각 row별 y class에 해당하는 probability만 남음. - 이때 2단계 진행 시 softmax의 결과는 1 이하이기 때문에..
2024.02.19 -
Denoising AutoEncoder(DAE, Multi-DAE)
실제 데이터는 noise가 낀 데이터일 확률이 높다. 따라서 AutoEncoder에 비해 더욱 강건한 모델을 만들고자 input 데이터에 인위적인 noise를 추가하고, 모델이 해당 noise를 제거(denoising)하여 원래 input을 재건할 수 있도록 학습한다. Denoising 방법으로는 두 가지가 있다. 1) Gaussian(정규 분포)로 부터 추출한 랜덤 값을 각 pixel에 더해주는 방법 2) Dropout을 이용하는 방법 **Denoising AutoEncoder는 input 단계에서 noise를 추가하는 것. import torch.nn as nn import torch.nn.functional as F import torch import numpy as np class DAE(nn.M..
2024.02.19 -
AutoEncoder (for Recommend System)
AutoEncoder는 기본적으로 주어진 벡터(이미지)를 가장 잘 표현하는 저차원을 구하기 위한 모델로 이해하면 좋다. 즉 encoder를 통해 생성된 compressed representation는 decoder를 통해 원래의 벡터(이미지)로 복원되며, 가장 loss가 적은 최적의 표현이 되도록 학습된다. 추천 시스템에서 AutoEncoder는 어떻게 사용될 수 있을까? user-item interaction matrix를 생성하여 접근해볼 수 있다. - 이때 interaction으로 구매 내역, 방문 페이지, 검색 기록 등 Implicit feedback 정보를 사용하기도 한다. import torch.nn as nn import torch.nn.functional as F import torch i..
2024.02.19