https://arxiv.org/pdf/1706.09516
새로운 그래디언트 부스팅 툴킷인 CatBoost의 핵심 알고리즘 기술을 소개한다. CatBoost는 1) 'ordered boosting'이라는 순열 기반 부스팅 방식과 2) 범주형 특성 처리를 위한 혁신적인 알고리즘을 통해 기존의 그래디언트 부스팅 방식에서 발생하는 타겟 누수 문제를 해결하고, 다양한 데이터셋에서 다른 부스팅 구현체보다 우수한 성능을 보인다. 이 논문은 이러한 문제와 알고리즘의 효과적인 해결 방법을 분석하고 결과를 제시하여 CatBoost의 효과를 입증한다.
Gradient boosting의 기존 구현들이 특정 통계적 문제에 직면하고 있다. 이 문제는 모델이 훈련 예제의 대상에 의존하여 테스트 예제의 예측에 영향을 미치는 것으로 나타났다. 이로 인해 모델의 예측이 왜곡되는 현상이 발생하며, 범주형 특성을 처리할 때도 비슷한 문제가 발생한다. 이러한 문제를 해결하기 위해 정렬 원칙에 기반한 ordered boosting과 범주형 기능을 처리하기 위한 새로운 알고리즘을 제안한다.
주어진 데이터셋 D는 m개의 특성으로 이루어진 무작위 벡터 xk와 목표값 yk로 구성된다. 여기서 목표값은 이진 또는 숫자적 응답일 수 있다. 목표는 함수 F : Rm → R을 학습하여 예상 손실을 최소화하는 것이다.
경사 부스팅 절차는 그리디 방식으로 순차적인 근사치인 Ft: Rm→R의 시퀀스를 구축한다. Ft는 이전 근사치인 Ft-1에 추가적인 예측을 더하여 얻어진다. 기울기 하강법을 사용하여 손실을 최소화하는 기능 ht를 선택하며, ht는 gt(xy)를 근사하도록 선택된다. CatBoost는 이러한 경사 부스팅의 구현 중 하나로, 이진 결정 트리를 기본 예측기로 사용한다. 결정 트리는 특성 공간을 재귀적으로 분할하여 모델을 구축하며, 각 영역에는 해당 영역에서의 응답 값을 나타내는 값이 할당


카테고리 특성은 비교할 수 없는 카테고리라는 이산값 집합을 가지는 특성이다. 원-핫 인코딩을 사용하는 경우 고차원 특성에서 많은 새로운 특성을 생성하는 문제가 있다. 이 문제를 해결하기 위해 카테고리를 제한된 수의 클러스터로 그룹화하고 그런 다음 원-핫 인코딩을 적용할 수 있다.
카테고리를 그룹화할 때 카테고리에서 예상 대상 값을 추정하는 Target Statics (TS)를 사용한다. TS를 새로운 수치 특성으로 간주하는 것이 유용하다. 이러한 TS 특성은 계산 및 저장이 각 카테고리 당 하나의 숫자만 필요하므로, 최소한의 정보 손실로 범주형 특성을 처리하는 가장 효율적인 방법이다. 이 논문에서는 TS를 계산하는 방법에 중점을 두고 있다.
k번째 훈련 예시의 범주 xi k를 목표 통계량(TS) xi k와 같은 하나의 수치 특성으로 대체하는 것이 범주형 특성 i를 다루는 효율적인 방법이다.

그라디언트 부스팅에서 발생하는 예측 이동 문제에 대해 설명한다. 예측 이동은 타겟 누설에 의해 발생한다. 이를 해결하기 위해 정렬된 목표 통계량(Ordered TS) 방법과 유사한 '정렬된 부스팅'이라는 방법을 제안한다.
기존 그라디언트 부스팅 절차에서는 예상치를 알 수 없으므로, 보통 같은 데이터셋 D를 사용하여 근사한다. 이 과정에서 몇 가지 이동이 발생하는데, 1) 훈련 데이터의 조건부 분포가 테스트 예제의 분포와 달라지고, 2) 이로 인해 기본 예측기가 편향되며, 3) 최종적으로 훈련된 모델의 일반화 능력에 영향을 준다. 이 모든 문제는 같은 데이터 포인트의 목표 값을 사용하여 각 단계의 기울기를 추정함으로써 발생하는 타겟 누설 때문이다. 이 현상을 '예측 이동'이라고 한다.
Related work on prediction shift
그라디언트의 조건부 분포 변화는 언급되었으나, 이 변화의 존재 여부는 공식적으로 정의되거나 이론적으로 증명되지 않았다. out-of-bag 추정을 바탕으로 iterated bagging을 제안했으나, 이 방법으로 계산된 잔차 추정치에는 여전히 변화가 있다. 또한, 배깅 방식은 데이터 처리 시간을 증가시킨다. 각 반복에서의 데이터셋 서브샘플링은 이 문제를 추론적으로 다루며 문제를 완화하기만 한다.
Analysis of prediction shift
예측 이동 문제를 간단한 회귀 작업과 이차 손실 함수를 사용하여 분석한다.
두 독립적인 베르누이 변수 x1, x2 를 특성으로 하며, 두 단계의 그라디언트 부스팅을 거쳐 모델 𝐹=𝐹2=ℎ1+ℎ2를 생성다. 첫 번째 트리 ℎ1은 𝑥1에, 두 번째 트리 ℎ2는 𝑥2에 기반한다. 이는 특성 간의 비대칭성을 반영하는 설정이다.
Theorem 1
정리 1에 따르면, 독립적인 샘플 𝐷1과 𝐷2를 사용하여 각각 ℎ1과 ℎ2를 추정할 때, 훈련된 모델 𝐹2(𝑥)는 실제 함수 𝑓(𝑥)의 편향되지 않은 추정치가 된다.
그러나 같은 데이터셋 𝐷를 사용하여 ℎ1과 ℎ2를 추정하면,
𝐹2(𝑥)의 기대값은 𝑓(𝑥)에서 아래와 같이 편향되며 오차는 O(1/2^n)가 되어 데이터 크기 n에 반비례하는 편향이 발생한다. 이 편향은 c2에 비례한다.

이 정리는 두 가지 중요한 사실을 보여준다 :
독립적 데이터셋을 사용할 때는 모델이 실제 의존성을 정확하게 추정
같은 데이터셋을 사용할 경우 예측 이동이 발생하여 모델의 일반화 능력에 부정적인 영향을 미친다
이러한 예측 이동은 타깃 누설, 즉 𝑦𝑘를 사용하여 𝑥𝑖𝑘를 계산하는 과정에서 발생하는 조건부 이동 문제와 유사하다.
'정렬된 부스팅' 알고리즘은 예측 이동 문제를 해결하기 위해 각 훈련 단계에서 독립적으로 샘플링된 새 데이터셋을 사용하여 잔차를 구한다. 실제로 레이블이 있는 데이터가 제한되어 있기 때문에, 이론적으로 각 훈련 예제에 대해 편향되지 않은 잔차를 유지하기 위해 다양한 모델을 동시에 유지하고, 특정 예제를 제외하고 학습된 모델을 사용하여 잔차를 계산한다.
그러나 이 방법은 n배의 복잡성과 메모리 요구 사항 증가로 인해 실용적으로 적용하기 어렵다. 이 문제를 해결하기 위해 CatBoost에서는 수정된 버전을 구현하여 실제 문제에 적용할 수 있도록 했다.


CatBoost는 'Ordered'와 'Plain' 두 가지 부스팅 모드를 제공한다. 'Plain' 모드는 표준 GBDT 알고리즘에 정렬된 목표 통계량(TS)을 포함하고, 'Ordered' 모드는 알고리즘 1의 수정 버전이다.
CatBoost는 훈련 시작 시 훈련 데이터셋에 대해 𝑠+1개의 독립적인 임의 순열을 생성한다. 이 중 순열 1부터 𝑠까지는 트리 구조를 정의하는 데 사용되고, 순열 0은 트리의 리프 값을 선택하는 데 사용된다.
특정 순열에서 짧은 역사를 가진 예제들은 높은 분산을 가질 수 있으므로, 여러 순열을 사용하여 이러한 분산을 감소시킬 수 있다.

CatBoost에서 기본 예측기로 사용되는 oblivious decision trees는 트리의 모든 레벨에서 같은 분할 기준을 적용하며, 이로 인해 트리는 균형 잡혀 있고 과적합에 덜 취약하다. 'Ordered boosting' 모드에서는 학습 과정 동안 순열에 따라 서로 다른 서포팅 모델 𝑀𝑟,𝑗를 유지하며, 이 모델들을 사용하여 범주형 특성에 대한 TS를 계산하고 그라디언트를 근사화한다.
이후 구성된 트리는 모든 서포팅 모델에 적용되어 각 모델을 부스팅한다. 'Plain boosting' 모드는 표준 GBDT 와 유사하게 동작하지만, 범주형 특성이 포함된 경우 해당 특성에 기반한 여러 서포팅 모델을 유지한다. 테스트 시 실행 속도를 높인다.



이 논문에서 우리는 그래디언트 부스팅의 모든 기존 구현에 존재하는 예측 이동의 문제를 식별하고 분석한다. ordered boosting with ordered TS을 통해 해결할 것을 제안한다. 이는 새로운 그래디언트 부스팅 라이브러리인 CatBoost에서 구현된다. 실증적 결과에 따르면 CatBoost는 주요 GBDT 패키지를 능가하며 공통 벤치마크에서 새로운 최첨단 결과를 얻을 수 있다.