추천 시스템/이론

머신러닝 기반 추천 알고리즘

rkd-th 2024. 11. 28. 10:06

기존의 메모리 기반 방법론(고전적 추천 알고리즘)은 단순하지만 확장성이 낮고, 계산 시간이 오래 걸릴 수 있습니다. 이를 극복하기 위해 머신러닝 기반 추천 시스템이 활용됩니다.

 

1. 트리 기반 모델:

- 트리 기반 모델은 주어진 입력 피처에 대하여 일련의 결정 규칙을 생성하는 알고리즘

- 단순한 구조로 다소 부족한 일반화 성능을 가짐. 단일 모델로 과적합 가능성이 높음

- 어떻게 하면 더 효과적인 모델을 만들 수 있을까?

=> 앙상블 모델을 사용하자

 

1-1. 앙상블

1) 앙상블이란

- 다수의 모델을 구성해 에러를 줄이는 것

다수의 모델을 조합하여 사용한다면 개별적인 알고리즘이 가진 장점을 더하고 단점을 보완할 수 있음

 

2) 고려해야할 점 

1) 어떻게 충분한 다양성을 보장할까?

2) 개별 모델을 어떻게 취합할까?

 

3) 앙상블의 종류

- 배깅(Bagging): Bootstrap Aggregating의 약자로, 다르게 샘플링한 데이터로 각각 다른 모델을 학습

- 부스팅(Boosting): 모델을 순차적으로 학습시키며, 이전 모델의 약점을 해결하며 성능을 높임

- 스태킹(Stacking): 서로 다른 모델의 출력에서 최종 출력을 만드는 메타 모델을 학습시키는 기법

 

1-2  Bagging(Bootstrap Aggregating)

- bootstrap: 원본 데이터셋에서 복원 추출 (sampling with replacement) 한 데이터셋. 데이터의 다양성을 확보하는 데 사용- - aggregation: 각 데이터셋에서 샘플링된 결과를 결합

=>  복원추출한 결과를 종합한 것!

 

1-3  Boosting

-여러 weak learner를 사용해서 순차적으로 학습

-이전 차례에 잘 못 맞춘 문제에 집중하여 더 잘 풀도록 유도하는 알고리즘

-Bagging과는 달리, 이전 모델의 예측 성능에 따라 weighted sampling을 수행함

-부스팅은 모델의 편향을 줄이는 데 목표

 

1-4 LGBM(LightGBM) 으로보는 트리 기반 모델이 추천에서 갖는 이점

- 높은 성능

- prediction/classification에서 딥러닝 방법론에 비교할 수 있을만한 추천 성능을 보이며, 이와 관련된 실무적/연구적 기반이 탄탄함

 

- 확장가능성

- 피처 히스토그램화 방식으로, 자원 효율적인 학습이 가능함

 

- 구현 및 관리의 효율성

- 범용 알고리즘의 특성상 API가 잘 활발히 관리/개선되고 있음- 타 모듈 (하이퍼 파라미터 최적화, 서빙 관련 등)과 호환성이 높음

 

- 해석 가능성

- 행렬분해 기반 방법론에 비해 모델의 판단을 해석하기 용이함

- 자체적으로 제공하는 Feature Importance 및 기타 XAI 알고리즘을 손쉽게 적용할 수 있음

 

2. 행렬 분해(Matrix Factorization):

 

1) 행렬 분해을 알아보기전에 상호작용 행렬을 먼저 보자

상호작용 행렬이란? 

- 각 유저가 아이템에 대해 매긴 평점, 혹은 구매/클릭 여부를 나타낸 행렬

- 유저의 직접적/간접적인 선호가 드러나있음

- 이 행렬에 없을 경우, 어떻게 추정할 수 있을까?

 => 이때 등장하는 것이 행렬 분해

 

행렬 분해

- 평점 행렬을 두개의 작은 행렬로 쪼개어, 그들의 곱으로 유저의 평점을 예측하는 모델

- 각각 행렬은 유저 잠재 요인, 아이템 잠재 요인을 나타냄

 

 

- 그러나 위와 같은 모델에서 볼 수 있는 코미디, 액션과 같은 특성(feature)은 실제로는 찾아볼 수 없음

- 대부분 특성1, 특성2 처럼 사람이 해석할 수 없는 의미를 갖는 수치 값으로 나타나게 됨

- 이렇게 의미가 숨어있는 특성을 Latent Factor라고 부름

- 이러한 Latent Factor를 어떻게 찾아내느냐가 Matrix Factorization 알고리즘의 핵심적인 요소

- Matrix Factorization 알고리즘의 종류에는 SVD, NMF 등이 있음

 

.

 

 

 

3. Factorization Machines:
상호작용 행렬뿐만 아니라 다양한 피처 데이터를 함께 활용하며 Sparse 데이터에 강점을 가집니다.