[패스트캠퍼스 - 30개 프로젝트로 끝내는 추천시스템 구현 강의 Chapter02. 머신러닝 기반 추천시스템]
모델 기반 추천 시스템
1. 트리 기반 모델
트리 모델
DT 주어진 입력 피처에 대해 일련의 결정 규칙을 생성하는 알고리즘
단순한 구조로 다소 부족한 일반화 성능을 가짐
앙상블 모델
목표 : 다수의 모델을 구성해 에러를 줄이는 것
고려할 점
1) 어떻게 충분한 다양성 보장?
* 배깅, 피처 random selection
2) 개별 모델을 어떻게 취합?
다수의 모델을 조합해 사용하면 개별적인 알고리즘이 가진 장점을 더하고 단점은 보완 가능
앙상블 종류
1) 배깅 : 다르게 샘플링한 데이터로 각각 다른 모델 학습, 분산을 줄이는 것이 목표
bootsrtap : 원본 데이터셋에서 복원 추출한 데이터셋
aggregation : 각 데이터셋에서 샘플링된 결과를 결합
2) 부스팅 : 모델을 순차적으로 학습시키며, 이전 모델의 약점 해결해 성능 높임, 편향을 줄이는 것이 목표 ex) LGBM, XGBoost 등
여러 weak learner을 사용해서 순차적 학습
이전 차례에 잘 못 맞춘 문제에 집중해 더 잘 풀도록 유도하는 알고리즘, weighted sampling 수행
LGBM(Leaf-wise tree growth)
XGBoost(Level-wise tree growth)
GOSS(Gradient-based One-Side Sampling)
3) 스태킹 : 서로 다른 모델의 출력에서 최종 출력을 만드는 메타 모델을 학습시킴
트리 기반 모델(LGBM)이 추천에서 갖는 이점
높은 성능 : 딥러닝 방법론과 비교할 수 있을 만한 추천 성능
확장 가능성 : 피처 히스토그램화 방식으로 자원 효율적인 학습 가능
구현 및 관리 효율성 : 범용 알고리즘의 특성상 API가 관리/개선이 활발, 타 모듈과 호환성 높음
해석 가능성 : 행렬분해 기반 방법론에 비해 모델의 판단을 해석하기 용이, Feature importance, XAI 알고리즘을 손쉽게 적용 가능
2. MF (Matrix Factorization)
상호작용 행렬 : 각 유저가 아이템에 대해 매긴 평점 혹은 구매/클릭 여부를 나타낸 행렬
행렬 분해 : 평점 행렬을 두 개의 작은 행렬(유저 잠재 요인, 아이템 잠재 요인)로 쪼개 그들의 곱으로 유저 평점 예측하는 모델
학습 방법
1) SGD
2) ALS : SGD와 동일한 손실 함수 사용, 최적화 시 두 행렬 중 하나의 행렬을 freeze하고 다른 한 행렬만 최적화
MF 모델 종류
ex) SVD, NMF 등
대부분 특성1, 특성2 처럼 사람이 해석할 수 없는 의미를 갖는 수치 값으로 나타나게 됨
의미가 숨어있는 특성을 Latent Factor라고 부르고 이를 어떻게 찾아내느냐가 MF 알고리즘의 핵심
-> 어떤 것이 가깝고 먼지 정량화 가능, Latent Factor Model을 통해 평점 행렬의 Low rank factor를 찾아내 유저와 아이템 표현
SVD (Single Value Decomposition)
이미지 압축, 중요한 k개의 특징 추출
Rotate, Stretch, then Rotate
고유값 분해(Eigen Decomposition) : m*m 정방행렬을 고유벡터 행렬과 고유값 행렬로 분해하는 기법
특이값 분해(Singular Value Decomposition) : 정방이 아닌 m*n 행렬을 U, V 라는 직교행렬과 고유값 행렬 Sigma로 분해하는 기법
truncated-SVD
SVD 이후 생성된 M개의 singular value 중 가장 중요한 k개의 singular value만을 남김으로써 truncate함
이와 같은 방식으로 U와 V의 low-rank matrix을 구하고 각 행렬의 벡터는 latent factor를 나타내는 low-rank factor로 간주할 수 있음
이 truncate된 행렬로 복원한 기존 행렬의 근사행렬의 원소에는 유저가 평가하지 않은 아이템에 대한 평점의 근사치가 들어있음.
U : 유저 latent factor에 대한 수치
V : 아이템 latent factor에 대한 수치
sigma : latent factor의 중요도, 내림차순 정렬
latent factor는 유저와 아이템의 공통된 특징으로 인간이 해석하기 어려운 형태
3. Factorization Machine
MF 한계
Interaction Matrix 형태의 입력 받음
매우 Sparse 할 경우 잘 작동 안됨
신규 유저에 대한 추천 어려움
Tree 기반 Regression 모델 한계
Interaction Matrix를 직접적으로 활용할 수 없음
Feature간의 Interaction 반영 못함
피처 간의 인터렉션 학습 -> Interaction Matrix, Features(user/item)
유저, 영화를 가리키는 one-hot vector, 다양한 피처와 암시적 정보 뒤에 표시
각 행이 회귀 문제의 sample과 같이 x 피처, y 타겟으로 구성됨
loss function
y_hat : 피처 벡터 x가 주어졌을 때 FM 모델이 만들어내는 예측 값
w_0 : global bias term
w_ix_i : 선형결합 파트, 각각의 feature가 얼마만큼의 기울기를 갖고 예측에 사용되는지 나타냄 (beta)
<v_i, v_j>x_ix_j : 피처 interaction 파트, 피처간의 쌍별 interaction을 나타냄
연산 효율화
기존의 Pairwise Feature Interaction 부분은 복잡도 O(kn^2)을 가짐, 선형시간 O(kn) 내에서 계산 마칠수도 있음.
FFM(Field-aware Factorization Machine)
FM에서 파생된 모델로써, CTR prediction 문제에 주로 사용
FM에서는 feature마다 1개의 latent vector 사용
FFM에서는 feature가 갖는 여러 값마다 latent vector를 할당해 더욱 복잡한 feature interaction을 학습할 수 있도록 구성
모델 기반 추천시스템의 갈래는 트리 기반, MF 기반, FM 기반으로 나뉨
정확도 지표
기존 모델 메트릭은 정답과 예측 값의 비율 측정해 순서 정보에 대한 가중치 전혀 반영되지 않음
추천과 같은 Information Retrieval 문제는 맞췄는지 여부 뿐 아니라 얼마나 잘 맞췄는지 중요
MRR (Mean Reciprocal Rank)
binary relevance based metrics (이진적)
유관 상품이 최초로 등장한 곳은 몇 번째인지를 측정
장점
계산 쉽고 해석 간단
가장 처음 등장하는 유관 상품 초첨을 둠
유저가 나를 위한 최적상품을 찾고 있을 때, 고객이 잘 알고있는 아이템을 찾고 있을 때 적합
단점
추천 리스트의 나머지 제품에 대해 측정 안함. 리스트의 하나에만 집중
유관 상품을 1개 품고 있는 리스트나 여러 개 품고 있는 리스트나 동일하게 취급
유관 상품의 목록을 원하는 경우, 비교를 원하는 경우 적합하지 않음
MAP (Mean Average Precision)
binary relevance based metrics (이진적)
리스트 내에서 유관 상품이 등장할 때마다 precision 구하고 이를 평균 냄
결과로 생성된 여러 리스트 간의 평균을 내서 평가하는 방식
장점
Precision-Recall 곡선 아래 복잡한 영역을 단일 평점으로 나타낼 수 있음
랭킹이 높은 아이템에 대해 더 높은 가중치 부여, 대부분의 추천 상황 생각하면 타당한 처리 방식
단점
binary 상황에서만 작동
평점의 scale이 이진적이지 않을 경우 적합하지 않음
NDCG (Normalized Discounted Cumulative Gain)
CG : i 번째 포지션의 평가된 유관도의 누적합
DCG : CG의 각 항을 log(i+1)으로 나누어줌
이는 후반부로 갈수록 분모가 커지는 효과, 가장 중요한 고순위 품목을 잘 맞추는 것에 대해 더 높은 점수 부여
IDCG (Ideal) : 코퍼스 내 p번 자리까지의 유관한 문서들의 목록에 대한 총 누적 이득
NDCG : DCG를 IDCG로 나누어 표준화해준 값
Average NDCG Across User : 유저 간 NDCG의 총합
장점
평가된 유관도 값 고려함
MAP에 비교해 순위 매겨진 품목들의 위치를 평가하는 데 우수함. MAP는 유관/무관만 판단함
Logarithmic discounting factor 텀으로 인해 일관성 있는 척도로 사용될 수 있음
단점
불완전한 ratings가 있을 경우 문제가 있음
IDCG가 0일 경우 직접 다루어 주어야 함. 유저가 유관한 제품을 가지고 있지 않을 경우 발생함.
기타 평가 지표
Hit rate
유저에게 여러 개를 보여줬는데 원하는 것이 있는지의 여부
Diversity
추천한 아이템이 얼마나 다른지
Novelty
어떤 것이 참신한지, 유저에게 새로운지
Serendipity
의도적으로 찾지 않았음에도 뭔가 새로운 좋은 것을 발견하는 일
XAI (eXplainable AI)
ML 모델이 어떻게 의사 결정 내리는지 인간이 이해할 수 있도록 설명하는 알고리즘
의사 결정 프로세스, 입력 및 출력에 대한 ㅁ여확한 설명을 제공함으로써 AI 모델을 보다 해석 가능하게 만드는 것을 목표로 함
glassbox vs blackbox
필요성
1) ML 모델 디버깅 (date leakage 등)
추천 모델이 일정한 추천 근거를 만들어내는 배경, 중요 피처를 분석하는 작업을 통해 다양한 인사이트 발견
2) 사용자 신뢰성
현업이나 사용자에게 AI 모델의 추론 근거를 제시함으로써 신뢰성, 서비스 만족 제공
3) 모델의 편향 분석 (윤리)
편향된 모델 판단을 발견하고 이를 보정하는 데 사용할 수 있음
LIME 알고리즘
대리 분석(Surrogate Analysis) : 설명하고자 하는 원래 모델이 지나치게 복잡해 해석하기 어려울 때 해석 가능한 대리 모델을 사용해 기존의 모델 해석하는 기법
ex) SVM 분류기와 같이 성능 좋지만 해석이 어려운 모델이 있을 때 Logistic regression 모델처럼 설명 가능성 높지만 성능 낮은 모델을 대리 모델로 사용해 해당 모델의 계수를 기반으로 모델의 판단 메커니즘을 어림짐작하는 것
-> 이 과정에서 성능 손실도 발생하며 엄밀한 의미에서 두 모델의 학습 메커니즘이 다르다는 한계 있지만 많은 경우 유용한 해석을 제공하며, 모델 어그노스틱(model-agnostic, ~에 상관 없이)하다는 장점이 있음.
glboal / local 대리 분석
global : 전체 모델의 중요 변수를 새로운 모델로 대체해 파악하는 방법
local : 개별 샘플에 대한 모델의 판단을 분석하는 방법, 비즈니스 상황에서 더욱 중요한 경우가 많음
ex) 채무 불이행 여부, 1년 내 뇌졸중의 발병 여부 예측 모델
LIME의 의미
Local : observation specific함. 한 개인, 혹은 한 샘플에 내려진 판단이 어떻게 내려진 것인지 분석함
Interpretable Explanation : 각 예측을 내림에 있어 어떤 피처가 사용되었는지에 대한 설명 제공
Model-agnostic : 어떤 모델을 사용하든지 간에 무관하게 사용할 수 있음
학습 메커니즘
1) 데이터 뒤섞기 (permute)
2) 뒤섞은 데이터와 기존 관측치 사이의 거리 측정
3) blackbox model을 사용해 새로운 데이터를 대상으로 예측 수행
4) 뒤섞은 데이터로부터 복잡한 모델의 출력을 가장 잘 설명하는 m개의 피처 선택
5) 여기서 뽑은 m개의 피처로 뒤섞은 데이터를 대상으로 단순한 모델 적합, 유사도 점수를 가중치로 사용
6) 단순한 모델의 가중치는 곧 복잡한 모델의 local한 행동을 설명하는 데 사용
손실함수
G : 설명 가능한 glassbox 모델의 집합
g : 하나의 glassbox 모델
f : 우리가 해석하고자 하는 복잡한 모델
ㅠ_x : 우리가 생성해낸 임의의 샘플 x'이 원래 분석 대상인 샘플 x와 얼마나 먼지를 계산한 유사도 측도
SHAP 알고리즘
ML 모델의 예측 결과를 설명하기 위한 알고리즘 중 하나로 Shapley value에 기반함.
Shapley value : 게임이론에서 도입된 개념으로 전체 결과에 대한 기여도에 따라 게임 내 각 플레이어에게 공을 공평하게 나눌 수 있도록 계산한 값
파이_i : 플레이어 i에 대한 Shapley value
F : 전체 플레이어
S : 전체 그룹에서 플레이어를 제외한 모든 집합
f_s(x_s) : i번째 플레이어를 제외하고 나머지 부분집합이 결과에 기여한 정도
f_sU{i}(x_SU{i}) : i번째 플레이어를 포함한 전체의 기여도
EBM 알고리즘
Explainable Boosting Machine
복잡한 알고리즘일 수록 성능은 높으나 해석 어려워짐
비즈니스적인 목적을 위해 설명 가능성 필요할지라도 앞서 배운 SHAP, LIME과 같은 대체적인 알고리즘에 의존할 수 밖에 없음
Microsoft에서 공개한 InterpretML에 탑재된 알고리즘의 하나
GAM(Generalized Additive Model)의 일종으로 glassbox 모델이라는 특성
Gradient Boosting과 Bagging과 같은 학습 기법을 적용해 성능 확보
pairwise interaction을 모델링함으로써 설명가능성을 동시에 보임
출처 : 패스트캠퍼스 - 30개 프로젝트로 끝내는 추천시스템 구현 강의