AI/추천 시스템
-
들어가기 전에 이제까지 딥 러닝 모델은 CNN(Convolution Neural Network), RNN(Recurrent Neural Network), Transformer 등 다양한 신경망 모델 종류로 발전해 왔다. 그렇지만 복잡한 구조 또는 관계를 지니는 문제를 임베딩하는 데 한계가 있어왔고, 이러한 문제를 해결할 수 있는 모델로서 그래프(Graph)를 사용한 신경망 모델이 제안된다. 이번 글에서는 그래프를 사용한 딥 러닝 모델인 GNN의 정의와 의의에 관해 살펴보고, GNN 모델을 해석하는 관점에서 제시된 여러 종류의 GNN 모델에 관해 살펴보자. 그래프(Graph)의 정의와 사용 그래프는 정보과학을 공부하면 항상 빼 놓을 수 없는 중요한 자료구조이다. 프로그래밍 문제를 푼 사람들이라면 알겠지만 ..
GNN(Graph Neural Network)의 정의와 특징 그리고 추천시스템에서의 GNN 계열 모델들어가기 전에 이제까지 딥 러닝 모델은 CNN(Convolution Neural Network), RNN(Recurrent Neural Network), Transformer 등 다양한 신경망 모델 종류로 발전해 왔다. 그렇지만 복잡한 구조 또는 관계를 지니는 문제를 임베딩하는 데 한계가 있어왔고, 이러한 문제를 해결할 수 있는 모델로서 그래프(Graph)를 사용한 신경망 모델이 제안된다. 이번 글에서는 그래프를 사용한 딥 러닝 모델인 GNN의 정의와 의의에 관해 살펴보고, GNN 모델을 해석하는 관점에서 제시된 여러 종류의 GNN 모델에 관해 살펴보자. 그래프(Graph)의 정의와 사용 그래프는 정보과학을 공부하면 항상 빼 놓을 수 없는 중요한 자료구조이다. 프로그래밍 문제를 푼 사람들이라면 알겠지만 ..
2023.01.02 -
신경망을 사용한 Matrix Factorization Matrix Factorization 추천 시스템에서 사용자와 아이템의 상호작용 행렬의 잠재 요인을 학습하기 위해 낮은 차원을 지닌 행렬 곱으로 분해하는 Matrix Factorization 방법이 기본적인 협업 필터링 모델로 자주 쓰인다. Matrix Factorization은 두 행렬 곱으로 나타내서 학습 데이터에 관해 잠재 요인을 학습하고 다시 이를 곱하여 원상태로 복원할 때 원래 학습 입력 데이터와 얼마나 유사한지 그 차이를 줄이는 방향으로 학습한다. 그래서 상호작용이 없거나 적은 유저의 새로운 상호작용 데이터가 들어왔을 때 Matrix Factorization을 통과하여 복원되는 결과를 가지고 해당 사용자가 어떠한 아이템을 소비하거나 관심을 ..
신경망을 사용한 Matrix Factorization 모델과 NeuMF(Neural Collaborative Filtering)신경망을 사용한 Matrix Factorization Matrix Factorization 추천 시스템에서 사용자와 아이템의 상호작용 행렬의 잠재 요인을 학습하기 위해 낮은 차원을 지닌 행렬 곱으로 분해하는 Matrix Factorization 방법이 기본적인 협업 필터링 모델로 자주 쓰인다. Matrix Factorization은 두 행렬 곱으로 나타내서 학습 데이터에 관해 잠재 요인을 학습하고 다시 이를 곱하여 원상태로 복원할 때 원래 학습 입력 데이터와 얼마나 유사한지 그 차이를 줄이는 방향으로 학습한다. 그래서 상호작용이 없거나 적은 유저의 새로운 상호작용 데이터가 들어왔을 때 Matrix Factorization을 통과하여 복원되는 결과를 가지고 해당 사용자가 어떠한 아이템을 소비하거나 관심을 ..
2022.07.10 -
추천 시스템을 어떻게 평가할 수 있을까? 추천 시스템 평가 방법 사용자 스터디 사용자를 모집해서 시스템과 상호작용하게 한 후 피드백을 수집하는 것이다. 활발한 사용자 참여에 바탕을 두고 있기 때문에 오히려 실제 사용자와 동떨어진 active한 사용자만 반영하게 되어 bias로 작용할 수도 있다. 균일한 집단을 만들기 위해서는 주의 깊은 실험 설계가 요구되며, 많은 시간과 비용이 소모되어서 현실적으로 적용하기가 쉽지 않다. Online 평가 [출처] https://www.seobility.net/en/wiki/AB_Testing, Seobility 주로 A/B Testing이라고 불리는 형태로 이뤄지며, 시스템에 추천 알고리즘을 배포하여 사용자들의 실제 반응을 수집하여 비교한다. 사용자 스터디와 달리 샘플..
추천 시스템의 평가 방법과 실험에서의 데이터 분할 전략추천 시스템을 어떻게 평가할 수 있을까? 추천 시스템 평가 방법 사용자 스터디 사용자를 모집해서 시스템과 상호작용하게 한 후 피드백을 수집하는 것이다. 활발한 사용자 참여에 바탕을 두고 있기 때문에 오히려 실제 사용자와 동떨어진 active한 사용자만 반영하게 되어 bias로 작용할 수도 있다. 균일한 집단을 만들기 위해서는 주의 깊은 실험 설계가 요구되며, 많은 시간과 비용이 소모되어서 현실적으로 적용하기가 쉽지 않다. Online 평가 [출처] https://www.seobility.net/en/wiki/AB_Testing, Seobility 주로 A/B Testing이라고 불리는 형태로 이뤄지며, 시스템에 추천 알고리즘을 배포하여 사용자들의 실제 반응을 수집하여 비교한다. 사용자 스터디와 달리 샘플..
2022.04.26 -
Side-information을 사용하는 추천 시스템 기존 CF(Collaborative Filtering)의 한계 지금까지 논의한 CF의 기본적인 가정은 상호작용 데이터로부터 사용자와 아이템 간의 숨겨진 패턴을 찾아내고 이를 추천에 활용하는 것이다. 즉, 상호작용 데이터로부터 학습된 잠재적인 사용자($\gamma_u$) 또는 아이템 feature($\gamma_i$)가 기존에 존재하는 명시적인 feature를 대체할 수 있다는 접근 방식이다. 그러나 이러한 CF의 기본적인 가정이 성립하지 않는 추천 시나리오도 존재한다. 추천 결과가 왜 이렇게 나오는지에 관한 interpretability를 요구하는 시나리오, user-item 추천이 아닌 친구 추천 또는 데이터 앱 매칭 등 social recommen..
Side Information과 이를 사용하는 추천 시스템Side-information을 사용하는 추천 시스템 기존 CF(Collaborative Filtering)의 한계 지금까지 논의한 CF의 기본적인 가정은 상호작용 데이터로부터 사용자와 아이템 간의 숨겨진 패턴을 찾아내고 이를 추천에 활용하는 것이다. 즉, 상호작용 데이터로부터 학습된 잠재적인 사용자($\gamma_u$) 또는 아이템 feature($\gamma_i$)가 기존에 존재하는 명시적인 feature를 대체할 수 있다는 접근 방식이다. 그러나 이러한 CF의 기본적인 가정이 성립하지 않는 추천 시나리오도 존재한다. 추천 결과가 왜 이렇게 나오는지에 관한 interpretability를 요구하는 시나리오, user-item 추천이 아닌 친구 추천 또는 데이터 앱 매칭 등 social recommen..
2022.04.20 -
Deep Learning-based Collaborative Filtering 추천 시스템에서 Deep Learning 모델의 장점 Non-Linear Transformation [출처] https://www.sciencedirect.com/science/article/pii/S093938891830120X#fig0010, AKMaier ReLU, Sigmoid, Tanh와 같은 비선형 활성화함수를 활용해 복잡한 사용자-아이템 간 상호작용을 포착할 수 있다. Representation Learning Feature-engineering에 드는 수고를 덜어주며, 여러 다른 종류들로 이루어진 다차원적인 콘텐츠 정보를 포함할 수 있다. 즉, 이미지, 비디오 등 Multi-Modality의 특성을 지닐 수 있다..
Deep Learning 기반의 Collaborative FilteringDeep Learning-based Collaborative Filtering 추천 시스템에서 Deep Learning 모델의 장점 Non-Linear Transformation [출처] https://www.sciencedirect.com/science/article/pii/S093938891830120X#fig0010, AKMaier ReLU, Sigmoid, Tanh와 같은 비선형 활성화함수를 활용해 복잡한 사용자-아이템 간 상호작용을 포착할 수 있다. Representation Learning Feature-engineering에 드는 수고를 덜어주며, 여러 다른 종류들로 이루어진 다차원적인 콘텐츠 정보를 포함할 수 있다. 즉, 이미지, 비디오 등 Multi-Modality의 특성을 지닐 수 있다..
2022.04.18 -
추천 시스템에서의 Implicit Feedback Implicit Feedback Implicit feedback은 explicit feedback과는 달리 사용자의 선호에 대한 암시적인 정보만을 제공하지만, 그것의 수집 효율성 및 generality 덕분에 사용자의 실제 선호를 추정하는 데에 더욱 효율적일 수 있다. 예를 들어, 어떤 한 사용자가 앱을 이용하여 상품을 구매했을 때 리뷰를 작성하는 시나리오를 가정한다. 이때 평점을 작성해야 하는 경우에는 사용자에게 귀찮은 일이 될 수 있으므로 실제로 많은 feedback이 수집되기에는 한계가 있다. 반면에 implicit feedback은 사용자의 모든 기록된 행위를 사용하기 때문에 방대한 양의 데이터를 활용할 수 있으며, 이를 오히려 잘 분석하여 exp..
추천 시스템에서의 Implicit Feedback추천 시스템에서의 Implicit Feedback Implicit Feedback Implicit feedback은 explicit feedback과는 달리 사용자의 선호에 대한 암시적인 정보만을 제공하지만, 그것의 수집 효율성 및 generality 덕분에 사용자의 실제 선호를 추정하는 데에 더욱 효율적일 수 있다. 예를 들어, 어떤 한 사용자가 앱을 이용하여 상품을 구매했을 때 리뷰를 작성하는 시나리오를 가정한다. 이때 평점을 작성해야 하는 경우에는 사용자에게 귀찮은 일이 될 수 있으므로 실제로 많은 feedback이 수집되기에는 한계가 있다. 반면에 implicit feedback은 사용자의 모든 기록된 행위를 사용하기 때문에 방대한 양의 데이터를 활용할 수 있으며, 이를 오히려 잘 분석하여 exp..
2022.04.18 -
Introduction 한 달이라는 긴 시간동안 네이버 부스트캠프 AI Tech 3기에서 진행했던 Movielens 데이터 기반의 영화 추천 대회 프로젝트가 마무리되었다. 팀원들과 밤낮으로 회의하면서 어떠한 모델을 사용하는 게 좋을지 고민했었는데, 순차 데이터보다는 좀 더 일반적인 데이터에 강한 autoencoder 기반의 여러 모델을 중심으로 앙상블한 것을 바탕으로 inference 결과를 제출했다. 그중에서 EASE(Embarrassingly Shallow Autoencoders for Sparse Data, ESAE)라는 모델이 매우 신기했는데, 다른 autoencoder 기반의 모델보다 상대적으로 성능이 좋을 뿐더러 매우 짧은 실행 시간을 가지는 특징을 지닌다. Hidden layer이 존재하지 ..
Embarrassingly Shallow Autoencoders for Sparse Data: EASE 모델이 희소 데이터에 강한 이유Introduction 한 달이라는 긴 시간동안 네이버 부스트캠프 AI Tech 3기에서 진행했던 Movielens 데이터 기반의 영화 추천 대회 프로젝트가 마무리되었다. 팀원들과 밤낮으로 회의하면서 어떠한 모델을 사용하는 게 좋을지 고민했었는데, 순차 데이터보다는 좀 더 일반적인 데이터에 강한 autoencoder 기반의 여러 모델을 중심으로 앙상블한 것을 바탕으로 inference 결과를 제출했다. 그중에서 EASE(Embarrassingly Shallow Autoencoders for Sparse Data, ESAE)라는 모델이 매우 신기했는데, 다른 autoencoder 기반의 모델보다 상대적으로 성능이 좋을 뿐더러 매우 짧은 실행 시간을 가지는 특징을 지닌다. Hidden layer이 존재하지 ..
2022.04.16 -
Memory-based Collaborative Filtering Memory-based CF는 다른 말로 Neighborhood-based CF(이웃 기반 CF)이라고도 하며, 사용자 또는 아이템 간의 similarity 값을 계산하고 이를 평점 예측 또는 Top-K ranking에 활용하는 방법이다. Similarity 값을 계산하는 metric은 여러 종류가 있으며, Jaccard Similarity, Cosine Similarity, Pearson Similarity 등이 활용된다. $$ \text{Jaccard}(i, j) = \frac{|U_i \cap U_j}{|U_i \cup U_j|} $$ Jaccard 유사도는 집합들 간의 포함 관계를 사용하는 metric이다. $$ \text{Cosi..
Memory-based와 Model-based Collaborative FilteringMemory-based Collaborative Filtering Memory-based CF는 다른 말로 Neighborhood-based CF(이웃 기반 CF)이라고도 하며, 사용자 또는 아이템 간의 similarity 값을 계산하고 이를 평점 예측 또는 Top-K ranking에 활용하는 방법이다. Similarity 값을 계산하는 metric은 여러 종류가 있으며, Jaccard Similarity, Cosine Similarity, Pearson Similarity 등이 활용된다. $$ \text{Jaccard}(i, j) = \frac{|U_i \cap U_j}{|U_i \cup U_j|} $$ Jaccard 유사도는 집합들 간의 포함 관계를 사용하는 metric이다. $$ \text{Cosi..
2022.04.02