데이터분석 이론
Deep Learning based Recommender System: A Survey and New Perspectives 논문 읽기 (1편)
데이터사이엔티스트
2021. 2. 1. 19:24
Introduction
- 정보의 폭발적인 증가로 인해 더욱 발전 된 유저 경험을 제공해주기 위해서 Personalization(개인화)이 중요한 요소가 됨
- 개인 추천 시스템은 본래 collaborative filtering, content-based recommender based system 그리고 두 추천 시스템을 섞은 hybrid recommender system으로 분류
- 딥러닝 추천 시스템에 적용되면서 전통적인 추천 시스템에서 해결 못하는 문제점을 해결해주며 높은 질의 추천 결과물을 만들고 있음
- Pervasive and ubiquity of deep learning in recommender systems
- Netflix, Youtube, Yahoo 등 많은 기업에서 딥러닝 추천 시스템을 적용해서 기존 전통적인 추천 시스템 대비 탁월한 성과를 내고 있음
- Yahoo → RNN 모델 적용 / Google Play → Wide & Deep model을 적용 / Youtube → Deep neural network에 기반한 추천 시스템 적용
- Netflix, Youtube, Yahoo 등 많은 기업에서 딥러닝 추천 시스템을 적용해서 기존 전통적인 추천 시스템 대비 탁월한 성과를 내고 있음
- What are the differences between this survey and former ones?
- 전통적인 추천 시스템에 대한 평가는 많은 논문에서 이루어졌지만 딥러닝 추천 시스템에 대한 평가는 부족한 상황
- How do we collect the papers?
- Google Scholars를 메인 서치 엔진으로 사용하고 그 외 다양한 학술 페이지에 딥러닝 관련 추천 시스템을 키워드로 필요한 정보를 모음
- Contributions of this survey
- 딥러닝 추천 모델들을 체계적으로 평가해서 각 모델들이 어느 용도로 사용될 지 분류
- 최신 딥러닝 추천 시스템에 대한 요약
- 이 필드에 대한 트렌드를 파악하고 미래에 어떤 방향으로 나아가야될지에 대한 논의
Overview of recommender systems and deep learning
2.1 Recommender Systems
- 추천 시스템은 유저의 성향을 파악해 유저들이 좋아할 만한 아이템을 추천해주는 방법론
- 추천 시스템은 총 3개의 카테고리로 분류
- Collaborative Filtering
- 유저-아이템 간 과거 이력의 학습을 토대로 추천하는 시스템
- explicit(유저의 과거 평점 정보), implicit feedback(인터넷 기록)
- Content-based Recommendaiton
- 유저와 아이템의 보조적인 정보의 비교를 토대로 추천하는 시스템
- 텍스트, 이미지, 비디오 등 다양한 보조 정보들을 참고
- Hybrid Recommender System
- 다양한 추천 시스템을 결합
- Collaborative Filtering
2.2 Deep Learning Techniques
- 딥러닝은 머신러닝에 속해 있으며 기본적으로 neural architecture을 가지고 있음
- 지도, 비지도 학습 필드에서 성공적인 모습을 보임
Multilayer Perceptron (MLP)
- Input, Hidden, Output 레이어로 구성
- Feed Forward, Backpropagation을 통해 계속해서 Loss를 줄여나가는 기본 인공신경망
Autoencoder
- 단순하게 입력을 출력으로 복사하는 인공신경망 (입력, 출력 층이 동일하다는 것을 제외하면 MLP랑 동일한 구조)
- 네트워크에 여러가지 방법론을 적용해서 복잡한 인공신경망 구축
- hidden layer의 수를 input layer보다 적게해서 차원을 축소
- input data에 노이즈를 추가한 후 원본을 복원할 수 있도록 네트워크를 학습
Convolutional Neural Network (CNN)
- 이미지 학습에 주로 사용되는 딥러닝 알고리즘
- 고차원의 데이터 (이미지)의 정보 유실을 방지하기 위한 알고리즘
- 크게 Featured Learning(이미지 특징을 추출), Classification(클래스를 분류)로 나뉘어짐
Recurrent Neural Network
- 텍스트 데이터에 주로 사용되는 모델로 시퀀스 데이터(순차적인 데이터)를 모델링 하기 위해 등장
- RNN을 기반으로 만들어진 LSTM은 수요예측 분야에서도 높은 정확도를 보여주고 있음
- 기존 인공신경망과 다른 점은 hidden state(기억)을 갖고 있는 점 / 여기서 hidden state는 순차적인 데이터를 요약한 정보
- 새로운 데이터가 들어올때마다 hidden state가 업데이트되는 방식으로 모델 학습 진행
Restriced Boltzmann Machine (RBM)
- visible, hidden 레이어로 구성이 된 인공신경망 모델
Neural Autoregressive Distribution Estimation
- 비지도 인공신경망 모델로 autoregressive model과 feedforward neural network로 구성
Adversarial Network
- Generative Adversarial Network (GAN) 모델로 생성자(Generator)과 식별자(Discriminator)로 구성
- 노이즈 벡터를 가져와서 이미지를 출력
- Generative는 실제 이미지와 비슷한 모습을 계속해서 출력 / Discriminator은 생성된 이미지 실제 이미지와 구분하는데 어려움을 겪도록 개선/변경 영역을 학습
- 궁극적으로는, 실제 이미지와 구별할 수 없는 이미지를 생성하는데 목표를 두고 있음
Attention Model
- 이미지와 텍스트 분야에서 주로 사용되고 있음
- 자연어처리 딥러닝 분야인 BERT, GPT 등의 근본이 되는 모델
Deep Reinforcement Learning (DRL)
- 강화학습 모델로 trial (시도) 그리고 error (에러)를 반복하면서 학습하는 모델
- 주요 요소로는 환경, 상태, 액션, 보상 등으로 이루어져 있음
- 인공신경망 모델과 강화학습 모델을 결합하면 Deep Reinforcement Learning이 생성됨
2.3 Why Deep Neural Networks for Recommendations?
- 이미지, 텍스트 데이터들은 딥러닝 모델 (RNN, CNN)을 기반으로 Content based Recommendation 방법론에 접목시키면 더욱 좋은 결과를 도출
- 매트릭스나 collaborative ranking problem의 복잡하고 방대한 데이터를 학습하는데 딥러닝 인공신경망이 전통적인 추천 시스템 방법론보다 더욱 의미있는 성능을 보이고 있음
Nonlinear Transformation
- 딥러닝은 비선형 모델 생성 가능 (relu, sigmoid, tanh 등 activation 함수 사용)
- 전통적인 추천 시스템 모델(MF)은 선형 모델밖에 평가를 못하기 때문에 분석 결과가 oversimplified 되는 경향이 있음
Representation Learning
- representation learning을 도움을 주는 2가지 장점이 있음
- Feature engineering을 자동화시켜서 시간을 크게 단축시킴
- 텍스트, 이미지, 음성, 비디오 등 다양한 정보를 추천 모델에 포함시킬 수 있음
Sequence Modeling
- CNN, RNN 모델들이 추천 시스템 내 Sequential 모델링의 성능을 높임
(예시로, 다음에 어떤 아이템/장바구니를 담을 지 예측)
Flexibility
- 딥러닝은 다양한 프레임워크, 툴, 서포트, 활성화 된 커뮤니티가 있어 높은 flexibility를 가지고 있음
2.4 On Potential Limitations
Interpretability
- 딥러닝 모델들은 black box 모델로 분석 결과에 대한 설명력이 부족함
Data Requirement
- 딥러닝에서 유의미한 결과를 산출하기 위해서는 충분한 양의 데이터가 필요
Extensive Hyperparameter Tuning
- 딥러닝 모델의 성능을 높이기 위해서는 Hyperparameter Tuning이 필수적인 요소 (최근, 전통적인 추천 모델은 single parameter 모델을 사용)