Abstract
과거부터 최근까지의 연구에서 LTR(Learning To Rank) 문제에서 Neural Model은 GBDT(Gradient Boosted Decision Tree)보다 성능이 좋지 못했다. 해당 논문은 왜 Neural Model이 GBDT보다 LTR에서 성능이 좋지 않은지, Neural Model의 성능을 향상시키기 위해서 어떻게 보완했는지 설명한다.
Learning To Rank
본문에 앞서 LTR은 Learning-To-Rank로 말 그대로 Rank를 학습하는 것이다. 추천, 검색 도메인에는 크게 Rating Prediction과 Ranking Prediction이 있는데, 이는 Continuouse한 Rating을 학습하냐 Categoricla한 Ranking을 학습하냐의 차이이다. (필자는 Regression과 Classification의 고차원 버전이라고 이해했다)
LTR의 벤치마크 데이터셋은 보통 하나의 Query에 대해서 다수의 Document가 존재하고 Document들은 Relevance(선호) 지포가 존재한다. Relevance의 순서가 Raking이 되는 것이다. 여기서 Query는 검색어나 유저가 될 수 있고 Document는 글이나 상품이 될 수 있다.
하나의 Query에 대해 Document가 무수히 많을 경우, 소수의 Document를 샘플링하고 LTR 모델을 통해 Top K Rank Document를 서비스에 활용한다.
Comparison
해당 논문에서는 GBDT 모델과 Nerual 모델의 성능을 비교하며 GBDT 모델 중 가장 성능이 좋은 모델은 LambdaMART, Neural 모델 중 가장 성능이 좋은 모델은 SetRank로 언급된다.
LambdaMART는 17년에 연구되었으며 GBDT의 Residual을 기반으로 학습된 Tree들을 앙상블하는 개념을 LTR에 적용한 것이다. Residual에 사용되는 지표로는 NDCG이며 그 외 LambdaMART의 컨셉이 활용된 것으로 보인다. 이는 현재까지도 LTR에서 SOTA로 여겨질만큼 좋은 성능을 보인다.
SetRank는 20년에 연구되었으며 Self-Attention을 활용하여 여러 Document의 영향을 반영한 Rank를 반환한다. 보통 LTR에서 Neural을 사용할 때는 데이터를 두 개씩 묶어 비교하는 Pariwise 학습(ex. Contrastive Learning)을 하는데, Self-Attention을 통해 모든 Document의 영향을 반영하는 Lisewise 학습을 하여 성능을 향상시킨 것으로 보인다.
Neural이 다양한 기법을 시도했음에도 SetRank까지는 아직 GDBT 모델의 성능을 따라잡지 못했다.
Weaknesses
논문에서 언급한 Neural Model의 성능이 GBDT만큼 좋지 않은 이유는 세 가지이다.
첫 번째, Neural Model은 feature 스케일에 민감하게 학습된다. LTR 데이터셋의 Feature들은 long-tail이며(0이 많으며) 다양한 스케일을 가지고 있다.(ex. 상품의 클릭 수) Tree-based Model은 이런 Numeric Feature을 학습할 때, Feature Space를 잘 분리하여 학습하지만, Neural Model은 아니다. 이는 Backpropagation 과정에서 Minimum을 찾는 과정이 Feature Scale에 영향을 많 받기 때문이다.
두 번째, Neural Network의 구조이다. Neural Model에서 Numeric Feature를 학습하기 위해서는 여러 층의 Feed-Forward Network를 이용한다. 하지만, Fully Connected Layer는 고차원의 Feature Interaction을 생성하고 학습하는데 비효율적이다. (보통 LTR 데이터셋의 Feature는 137~700개이며 이런 고차원 Feature를 가진 여러 Document의 관계를 학습해야 한다) 이는 이전부터 광고와 추천 시스템에서 많이 언급된 문제이다.
세 번째는 데이터의 희소성이다. Neural Model이 성공한 CV와 NLP 도메인은 매우 거대한 데이터셋을 학습함으로써 이루어졌다. 하지만 공개된 LTR 데이터셋은 그리 크지 않다. 따라서 LTR 모델들은 Overfitting을 방지하기 위해 모델을 작게 구성해야 하고 이는 높은 성능을 보장하지 못한다.
Improvements
위의 세 가지 약점을 해결하기 위해 다음과 같은 방법을 사용하였다.
Feature 스케일 문제와 희소성 문제를 해결하기 위해 log1p 변환을 진행하고 Random Gaussian Noise를 주어 Data Augmentation을 진행하였다. 스케일 문제로 인한 데이터 변환은 다양한 방법을 실험해보았고 log1p의 성능이 좋았다고 한다. 또한 Data Augmentation은 CV에서 많이 사용되는 기법으로 학습되는 데이터의 수를 증가시켜준다.
고차원의 Numeric Feature Interaction을 학습하기 위해 Fully Connect Layer만을 사용하지 않고 SetRank와 같이 Self-Attention을 사용하였다. 차이점은 Self Attention에서 출력된 Embedding Vector만을 사용하지 않고 Fully Connect Layer에서 출력된 Embedding Vector를 결합하여 Rank를 학습한 것이다.
결과적으로 모델의 구조는 다음과 같다.
마지막으로 GBDT의 콘셉트인 앙상블을 해당 모델에도 사용하여 성능을 더욱 향상시켰다. (아마, Seed Ensemble인 듯합니다)
Remarks
해당 논문에서 모델의 성능을 향상시키기 위한 기법들은 매우 클래식하고 잘 알려진 기법들이다. 이러한 기법을 사용함으로써 성능을 향상시켰으니, 이는 해당 논문이 추정한 Neural Model이 성능이 안 좋은 이유들이 정당했다고 판단할 수 있다.
만약 Improvement에서 더욱 Advanced한 Transformation이나 Augmentation 기법을 사용한다면 더 향상된 성능을 보일 수 있었으나, 이는 Future Works로 넘겼다.
Implication
Implication은 지극히 주관적인 글입니다.
해당 논문에서 언급한 문제들을 비단 LTR 문제에서 뿐 아니라 Numeric Feature을 학습해야 하는 모든 DL 도메인에서 유효한 문제들이며 이를 해결한 방법 또한 유효하다고 생각한다. 마찬가지로, 여러 데이터의 Interaction을 학습할 때, RNN과 같은 모델 구조를 많이 사용하지만 시계열성이 없는 데이터는 Self-Attention으로 실험할 여지가 커보인다.
그냥 DL이 아닌 GBDT 같은 앙상블 ML 모델을 사용하면 안되냐고 이야기할 수 있지만, 특정 테스크에서는 오히려 앙상블 ML이 더욱 블랙 박스처럼 보여진다. DL은 데이터셋에 맞게 구조를 변경할 수 있으며 중간 Layer에서 Embedding을 뽑아 유의한 Feature로 사용할 수 있다. SHAP 같은 기법을 통해서 DL의 Feature Importance도 추출할 수 있다.
결국, 어떤 문제를 해결하고 어떤 과정이 필요하냐에 따라 적용할 수 있는 방법론과 모델이 달라질 것이기 때문에 어떤 모델이든 방법이든 잘 알고 해결하는 것이 중요할 것이고 그런 면에서 해당 논문은 유익했다.
'Paper' 카테고리의 다른 글
[Brief Review] Twitter's Recommendation Algorithm (1) | 2023.05.09 |
---|
댓글