정규화를 했는데 왜 성능이 떨어지죠? (Embedding Normalization)

정규화를 했는데 왜 성능이 떨어지죠? (Embedding Normalization)

정규화는 원래 다 좋은 거 아니었나요?

딥러닝을 공부하면 제일 먼저 배우는 상식 중 하나가 “정규화(normalization)는 학습을 안정시키고 성능도 올려준다”는 것입니다. Batch Normalization, Layer Normalization 모두 이제는 거의 기본값처럼 쓰입니다.

그런데 클릭률(CTR) 예측 모델을 만들다 보면 특이한 피처가 하나 있습니다. 바로 피처 임베딩(feature embedding)입니다. 범주형 피처(사용자 ID, 광고 ID, 카테고리 등)를 벡터로 바꾼 이 임베딩에 기존 정규화 기법을 그대로 적용해봤더니, 놀랍게도 모델 성능이 오히려 떨어지는 현상이 반복적으로 관찰됐습니다. “정규화를 했는데 왜 더 나빠지지?” — 이 질문이 이 논문(ICDMW 2021)의 출발점이었습니다.

범인은 “중요도가 사라진다”는 것

원인을 파고들어 보니, 문제는 정규화 과정에서 각 피처 임베딩이 원래 가지고 있던 ‘중요도(significance)’가 뭉개진다는 데 있었습니다.

CTR 예측에서는 피처마다 예측에 기여하는 정도가 천차만별입니다. 어떤 피처는 클릭 여부를 결정짓는 핵심 신호이고, 어떤 피처는 있으나 마나 한 잡음에 가깝습니다. 이런 차이는 임베딩 벡터의 크기(norm)와 분포에 자연스럽게 녹아 있는데, Batch Normalization이나 Layer Normalization은 모든 피처의 분포를 강제로 비슷한 스케일로 맞춰버립니다. 그 결과 “중요한 피처는 크게, 덜 중요한 피처는 작게” 표현되던 신호가 뭉개지고, 모든 피처가 비슷비슷하게 취급되면서 모델이 정작 중요한 신호를 구분하지 못하게 되는 것이죠.

즉, 정규화가 “분포를 가지런하게 정리해주는 것”까지는 좋았지만, 그 과정에서 원래 있던 정보(=중요도)를 같이 지워버리는 부작용이 있었던 겁니다.

그래서 만든 것: Embedding Normalization

저희는 이 문제를 이론적으로 분석한 뒤, Embedding Normalization이라는 새로운 정규화 기법을 제안했습니다. 목표는 명확합니다 — 정규화가 주는 학습 안정성의 이점은 그대로 가져가면서, 각 피처 임베딩이 원래 지니고 있던 중요도의 차이는 보존하는 것.

기존 정규화가 “모든 피처를 같은 잣대로 눌러 담는” 방식이었다면, Embedding Normalization은 피처 간의 상대적인 중요도 순서와 격차를 유지한 채로 스케일만 안정적인 범위 안으로 끌어오는 방식입니다. 말 그대로 “중요도를 보존하는 정규화(significance-preserving normalization)”인 셈입니다.

결과는?

실험 결과 Embedding Normalization을 적용한 모델은 (1) 학습 과정이 안정적으로 수렴했고 (2) 기존 정규화 기법을 그대로 썼을 때보다 CTR 예측 성능도 함께 향상됐습니다. “정규화 vs 성능”이라는 트레이드오프처럼 보였던 문제가, 사실은 “중요도를 지키는 정규화냐 아니냐”의 문제였다는 것을 보여준 결과였습니다.

이 논문은 아쉽게도 arXiv에는 올라가 있지 않고 IEEE Xplore에서만 볼 수 있습니다(위 카드를 클릭하면 이동합니다). 그래서 이번 썸네일은 논문 속 그림을 그대로 가져오는 대신, 핵심 아이디어 — “기존 정규화는 중요도를 지운다, Embedding Normalization은 지키면서 정규화한다” — 를 직접 그린 그림으로 대신했습니다.