MF 4

Simplifying Graph-based Collaborative Filtering for Recommendation (WSDM'23)

Contents Simplifying Graph-based Collaborative Filtering for Recommendation 논문은 WSDM'23 컨퍼런스에서 발표되었다. 기존 추천 시스템에서 성능이 우수한 것으로 알려진 LightGCN에 비해 성능적인 부분이 향상된 것뿐만 아니라, 속도도 매우 빨라진 SGCF를 제안한 논문이다. Abstract Graph Convolutional Networks (GCN) 기법은 여러개의 Convolutional 층을 쌓고 비선형 활성화함수를 사용하는 기법으로 머신러닝 분야에서 주로 사용되는 기법이다. 최근 추천 시스템 연구에서도 GCN을 기반으로 한 추천 시스템을 제안하고 있으나, 큰 데이터셋에서 비활성화 함수는 오히려 학습을 어렵게 한다. 또한, GCN ..

[Pytorch] RuntimeError: CUDA error: CUBLAS_STATUS_NOT_INITIALIZED when calling

CUBLAS_STATUS_NOT_INITIALIZED 에러는 nn.Embedding에 원래 값보다 큰 값이 들어갔을 때 발생하는 에러다. 예를 들어, 사용자의 수는 100명이고, 제품의 수는 50개라고 하자. 그렇다면 아래와 같은 코드로 nn.Embedding을 생성할 수 있을 것이다. class Model(nn.Mudule): def __init__(self, num_users, num_items, latent_dim): self.num_users = num_users self.num_items = num_items self.latent_dim = latent_dim self.user_embedding = nn.Embedding(self.num_users, self.latent_dim) self.ite..

Python/Pytorch 2022.12.05

Collaborative Filtering for Implicit Feedback Datasets (ICDM'08)

먼저 Alternative Least Squares(ALS)를 이해하기 위해서는 Matrix Factorization(MF)에 대해 어느정도 알고 있어야 가능하다. ALS는 MF와 같이 하나의 모델이 아니라 최적화하는 알고리즘 중 하나다. 우리의 목표는 Latent Factor Matrix를 찾는 것이며, 이를 위해 Loss Function 혹은 Cost Function이라는 하나의 '지표'를 선정한 후 최적화하는 방식으로 접근한다. 이때 최적화를 하는 방법은 Gradient Descent(GD), ALS 등 다양한 알고리즘이 존재하지만 여기에서는 ALS에 대해서만 다룰 것이다. ALS를 제시한 논문에 따르면 분산처리 환경에서 GD보다 더욱 효과적이고, sparse matrix에 robust하면서, Im..

[Linear Algebra] SVD(Singular Value Decomposition)

기존의 이웃 기반 협업 필터링(Neighbor Based Collaborative Filtering, NBCF)이 가지고 있는 희소성(Sparsity), 확장성(Scalarbility) 문제를 해결하기 위해 모델 기반 협업 필터링(Model Based Collaborative Filtering, MBCF)이 등장했다. MBCF의 종류는 엄청나게 다양하지만 여기서는 행렬 분해(Matrix Factorization) 중 대표적인 기법인 SVD(Singular Value Decomposition)에 대해서만 다룰 것이다. 이전에 다룬 고윳값 분해와는 조금 다른 방식으로 접근한다. SVD는 특이값 분해라고 부른다. SVD는 행렬을 고윳값과 고유벡터가 아닌, 특이벡터(Singular vector)들과 특이값(si..

반응형