본문 바로가기
DATA SCIENCE_ 💻

03 딥러닝 기반 추천시스템

by thisissilverline 2023. 9. 24.

1. 딥러닝이란

 

<딥러닝 추천 모델의 필요성>

1) 비선형적 패턴 학습
- 유저 선호의 비선형적인 패턴을 잡아냄으로써, 더욱 복잡한 관계를 학습하여 추천에 활용 가능

2) 다양한 입력 데이터 활용
- 이미지, 텍스트, 오디오,비디오 등 다양한 형태의 입력 데이터를 모델의 입력으로 활용할 수 있음

3) 확장성
- 병렬 처리, 분산 컴퓨팅, GPU 가속 등을 활용해 대규모 데이터를 효율적으로 처리할 수 있음

 

 

 

2. 딥러닝을 위한 학습 기법

 

2-1. CNN

- 이미지 입력을 받아서 vector representation으로 표현

- 유사한 이미지를 가진 상품을 추천

ConvMF => 텍스트의 임베딩에 CNN을 적용해 특징을 추출, 추천에 활용

 

2-2. RNN

- LSTM

- 한 명의 유저가 남기는 순차적인 정보(클릭 로그 기록, 구매이력 등)를 기반으로 유저의 선호/행동패턴을 파악해 다음에 클릭/구매할 상품을 추천

- 순차적인 정보를 학습하고 예측하는 데 사용

 

2-3. Word2Vec

- CBOW / Skip-gram

- 미리 생성한 워드투벡 임베딩을 aggregation해 아이템의 feature로 사용

- 비슷한 상품, 연관 콘텐츠 등을 추천 가능

- 뉴스 추천, 상품명/상품 후기 활용 추천 등

 

2-4. Attention

- seq2seq : 입력 문장이 길어지면 중요 정보가 손실되는 문제가 발생

- sequence 모델링에서 더 향상된 표현력을 위해 사용

 

2-5. Transformer

- Encoder 부분에서 설명한 Multi-Head Self-Attention & FFN 부분이 반복
- Encoder-Decoder 부분에서는 Cross Attention이 수행
- 1개의 디코더를 통과한 뒤 값과 인코더 출력 사이의 Attention
- Decoder 부분에서는 Masked Self-Attention이 수행됨으로써 cheating을 방지함
- 최종 Decoder 출력 부분에서 prediction이 수행됨

 

 

 

 

 

3. 딥러닝 기반 추천 알고리즘

 

3-1. 딥러닝 추천 시스템의 분류

 

3-2. CF 기반 딥러닝 모델

- MF의 한계 : implicit matrix가 있을 때 선행모델은 제약을 가짐

 

- NCF (MLP로 만들어낸 MF 모델)

    - collaborative filtering을 뉴럴넷으로 구현
    - 입력의 형태는 유저와 아이템에 대한 one-hot 벡터로, 이후에 k 차원으로 맵핑하는 레이어를 통과함
    - binary cross-entropy loss (log-loss)가 사용되어 implicit feedback의 확률적인 특성을 반영

 

- NeuMF (MLP + GMF)

   - GMF는 MF의 내적 부분을 element-wise 곱 연산과 비선형 활성함수 (시그모이드)로 대체하여, 기존의 MF를 일반화함
   - GMF는 비선형을 잡아내는게 어렵다는 약간의 한계점이 있고,
   - 반면에 MLP는 선형 상호작용을 잡아내는 데 효율적이지 않을 수 있다는 단점
   - 이 두 모델을 조합하여 서로의 장단점을 상호 보완

 

- AutoRec

   - Auto Encoder의 구조를 통해 Collaborative Filtering을 모델링
   - 중간의 Hidden Layer에서 Latent Factor를 학습하고, 이를 복원해 냄으로써 유저의 unrated rating을 추론함
   - AutoEncoder와 수식의 차이는, 관찰된 평점만의 기여도를 계산하는 부분

 

- ConvMF(Convolutional Matrix Factorization)

   - MF 모델에 CNN 모듈을 결합하여, 텍스트 피처를 반영할 수 있도록 구성한 모델
   - 텍스트 임베딩 매트릭스를 컨볼루션하여 문서의 latent vector를 생성, 이를 MF 파트의 최적화 과정에 결합

 

3-3. FM 기반 딥러닝 모델

 

- Wide & Deep

   - 데이터 생성: 로그 데이터로부터 학습셋과 vocabulary 생성
   - 모델 학습: 생성된 학습 데이터와 정의된 모델로 학습 수행, warm-starting 적용으로 시스템 부하를 최소화
   - 모델 서빙: 병렬화와 미니 배치 병렬 처리로 10ms 단위의 속도 내에 처리 가능

 

- DeepFM (Deep Factorization Machine)

   - FM(Factorization Machine) 모델에 뉴럴넷을 적용함으로써, 선형과 비선형 패턴을 모두 잡아낼 수 있도록 고안된 모델
   - 하나의 입력으로 통합된 아키텍처를 사용함으로써 효율성과 성능을 모두 확보한 딥러닝 추천 모델의 베이스라인 모델

 

- NFM (Neural Factorization Machine)

   - DeepFM과 마찬가지로, FM 모델에 DNN을 적용한 방법론
   - Bi-Interaction Pooling을 적용해 high order feature interaction을 잡아냄

 

3-4. 시퀀스 기반 추천 모델

 

- GRU4REC

  - GRU(Gated Recurrent Unit)는 LSTM과 비슷한 RNN의 variant로, LSTM에 비해 단순한 구성을 가지고 있음
  - LSTM과는 달리 Cell State가 없고, Forget Gate가 없다는 차이점이 존재함
  - 성능 상 큰 차이가 없음, LSTM 대비 연산 효율성

  - 과거의 기록 sequence가 주어졌을 때, 다음 next item을 예측하는 task
  - 시간의 흐름에 따라 동적으로 변화하는 유저의 preference를 포착

 

- SASRec (Self-Attentive Sequential Recommendation)

  - Transformer의 디코더 파트의 구조를 적용한 next-item prediction model
  - GRU4REC의 단점을 극복 : GRU는 병렬 처리 불가, 긴 시퀀스 연산 시 시간 소요 증가, Long Term 정보 반영 어려움

 

- BERT4REC

  - Transformer의 인코더 및 디코더 파트의 구조를 활용
  - Masked Language Model 구조를 차용, 양방향의 정보를 활용해 학습

 

 

 

출처 : 패스트캠퍼스[30개 프로젝트로 끝내는 추천시스템 구현 초격차 패키지]