오늘로 13주차!! 새 팀을 만났으니 새로운 마인드로 시작!!
information filtering system / modeling interactions between users and items
유저의 preference를 모델링해서 비즈니스 목표(ctr, 매출 등)를 달성하는 것
중요한 것은 1. 유저와 아이템의 표현 방식 과 2. Compatibility Function
Compatibility Function
Model | Compatibility Function |
---|---|
Matrix Factorization (MF) | inner product with dense vectors |
Memory-based Collaborative Filtering (CF) | cosine/Pearson/Jaccard sim (with one-hot vectors) |
Neural CF | MLP with concatenation |
Collaborative Metric Learning | Euclidean distance |
Latent Cross | element-wise product |
귀납적 편향, 모형 고유의 가정과 제약
아직까진 정형데이터(tabular)는 GBDT계열의 머신러닝모델이 딥러닝 모델보다 성능이 좋다.
그러나 그걸 넘기위해 딥러닝 모델 연구 진행중.
GBDT 모델은 트리기반이라 미분이 불가능해 역전파가 불가능하고 매개변수 최적화(경사하강법)를 사용할 수 없다. 그래서 딥러닝과 결합 힘듬.
GBDT가 미분 불가능한 이유
트리 구조의 비연속성: GBDT는 트리 기반 구조로 데이터를 특정 기준에 따라 분할해 나간다. 트리의 각 노드는 조건에 따라 특정 경로로 데이터를 보내므로, 노드와 경로가 불연속적이고 미분 가능한 연속적인 함수를 만들지 않는다. 그래서 미분을 적용할 수 없다.
결정 경계의 비선형성: 트리 기반 모델은 입력 피처에 대한 명확한 결정 경계를 만든다. 이 경계는 일반적인 딥러닝 모델의 연속적이고 부드러운 경계와 달리, 명확한 구분이 있어 미분 가능하지 않은 형태를 가진다.
모델은 고유의 가정를 가지는데, 딥러닝 모델의 가정이 tabular 데이터에 맞지 않다.
ex) cnn같은건 이미지 데이터를 주로 처리하기때문에 그에 맞는 inductive bias를 가지고 있다.
딥러닝은 불필요한 정보에 robust하지 않다. tabular 데이터는 불필요한 정보가 많은편이라 그렇다. tabular 데이터는 회전시키면 데이터가 달라지는데 딥러닝은 회전불변성이 쓸데없이 있고, 트리기반 머신러닝모델은 회전불변성 없다.
딥러닝은 데이터가 불규칙적이고, 크고, 피처대비 raw 비율이 높으면 성능이 좋지 않다.
결론은 어디에나 좋은 모델은 없고, 정형데이터를 위한 inductive bias를 고려한 딥러닝을 만들어야 한다!
Nonlinear Transformation
Deep NN은 non-linearity를 효과적으로 나타낼 수 있다.
MF는 임베딩 이후에는 단순히 내적(선형결합)으로 선호도를 예측한다.
딥러닝은 복잡한 유저-아이템 관계를 비선형
으로 효과적으로 예측할 수 있다.
Representation Learning
raw 데이터를 직접 피처를 만들어 학습
하기때문에 사람이 직접 feature 디자인을 안해도 된다.
텍스트, 이미지, 오디오 등과 같은 데이터도 input으로 사용할 수 있다.
Sequence Modeling
자연어같은 sequence 데이터를 잘 처리한다.
Flexibility
pytorch, tensorflow 같은 DL 프레임워크로 flexible하게 서빙이 가능하다.