잘 튜닝한 Matrix Factorization이 최신 딥러닝 모델을 이기는 이유
이 글은 제가 ICDMW 2021에 발표한 논문, “Embedding Normalization: Significance Preserving Feature Normalization for Click-Through Rate Prediction”을 소개합니다. 이 논문은 ICDM 2021의 추천 시스템 워크숍인 NeuRec 2021에서 Best Paper Award를 받았습니다. arXiv에 공개되어 있지 않아 원문은 IEEE Xplore에서만 볼 수 있기 때문에, 이 글에서 논문의 내용을 최대한 자세히 담았습니다.
추천 모델은 weight decay에 민감하다
추천 시스템의 기본은 Matrix Factorization(Koren et al., 2009)입니다. 유저와 아이템을 각각 저차원 임베딩으로 표현하고 그 내적으로 선호를 예측하는, 지금 봐도 모든 추천 모델의 뼈대가 되는 방법입니다. 그런데 Matrix Factorization 계열 모델을 실제로 돌려본 사람이라면 누구나 아는 사실이 하나 있습니다. 이 모델들은 weight decay 하이퍼파라미터에 굉장히 민감합니다. 같은 모델이라도 weight decay를 잘 잡으면 성능이 몇 단계 뛰고, 잘못 잡으면 순식간에 무너집니다. 당시 Matrix Factorization 계열의 최고 수준(state-of-the-art) 모델들, BPMF(Salakhutdinov & Mnih, 2008), LLORMA(Lee et al., 2013), WEMAREC(Chen et al., 2015), MPMA(Chen et al., 2016), SMA(Li et al., 2016), MRMA(Li et al., 2017)를 직접 돌려보면 하나같이 weight decay를 얼마나 정성 들여 튜닝했느냐가 성능을 좌우합니다.
이 민감성은 학계에서도 오래 다뤄진 주제입니다. Rendle (2012)은 검증 데이터에 대한 gradient 스텝으로 regularization 강도를 학습 중에 자동 조정하는 방법을 제안했고, BPMF(Salakhutdinov & Mnih, 2008)는 아예 regularization 파라미터에 사전분포를 두고 베이지안 추론으로 사람의 튜닝 자체를 없애려 했습니다. 훗날 Rendle et al. (2019)은 추천 베이스라인은 제대로 튜닝하기가 어려워서 잘 튜닝한 오래된 베이스라인이 최신 모델을 이기는 일이 흔하다고 지적했습니다. 이어서 하이퍼파라미터만 제대로 잡으면 단순한 내적 기반 Matrix Factorization이 뉴럴 네트워크 기반 협업 필터링을 이긴다는 것까지 보였는데 (Rendle et al., 2020), 그 튜닝의 중심에 있던 것도 결국 regularization 강도였습니다. RecSys 2019 Best Long Paper였던 Ferrari Dacrema et al. (2019)의 결론도 같습니다. 재현 가능했던 뉴럴 추천 모델 대부분이, 잘 튜닝된 단순한 베이스라인에 밀렸습니다.
뒤집어 말하면, regularization 강도만 제대로 맞춰도 모델 계열과 무관하게 성능이 크게 오른다는 뜻입니다. 딥러닝 추천 모델이라고 예외일 이유가 없습니다. 문제는 이 튜닝이 딥러닝에서 훨씬 더 어렵다는 것입니다. Matrix Factorization은 모델 전체가 임베딩뿐이라, 유저·아이템별 weight decay 하나가 곧 그 유저·아이템 임베딩의 캐패시티(capacity)를 통째로 결정했습니다. 반면 딥러닝 모델에서는 이 임베딩이 모든 유저·아이템이 공유하는 깊은 네트워크로 함께 흘러 들어가기 때문에, weight decay 하나를 조정한 효과가 그 순간 네트워크의 나머지 파라미터 상태에 따라 계속 달라집니다. 최적값이 고정된 표적이 아니라 학습 중에 계속 움직이는 표적이 되는 셈이라, 유저·아이템 단위까지 내려가서 사람 손으로 튜닝하는 것은 사실상 불가능합니다. 그렇다고 다시 Matrix Factorization으로 돌아갈 수도 없습니다. 딥러닝 모델이 데이터가 늘어날수록 함께 커지며 성능이 오르는 스케일링 효과를 누리는 것도 바로 이 깊은 네트워크 덕분이기 때문입니다. 목표는 Matrix Factorization으로 돌아가는 것이 아니라, 이 통찰을 딥러닝 모델 안에서도 쓸 수 있게 만드는 것이었습니다.
데이터가 많은 유저는 큰 캐패시티가 필요하다
왜 이렇게까지 민감할까요? 그 답은 유저·아이템마다 학습 데이터 개수가 다르다는 데 있습니다. 영화 수천 편에 평점을 남긴 유저와 세 편만 남긴 유저를 생각해보면, 두 유저의 취향을 같은 크기의 모델로 표현하는 것 자체가 무리입니다. 학습 데이터가 많은 유저는 취향을 세밀하게 담을 수 있도록 rank가 커야 합니다. 즉 모델 캐패시티가 커야 합니다. 학습 데이터가 적은 유저는 반대로 rank가 작아야 합니다. 캐패시티가 크면 과적합만 남기 때문입니다.
이 관점을 정면으로 다룬 논문들이 있습니다. MRMA(Li et al., 2017)는 유저·아이템마다 서로 다른 rank의 Matrix Factorization을 확률적으로 섞어, 데이터가 많은 유저·아이템에는 높은 rank를, 적은 쪽에는 낮은 rank를 배정합니다. 이 논문의 분석 테이블이 이 직관을 숫자로 잘 보여줍니다. Movielens 1M에서 rank 20짜리 서브모델이 가장 잘 맞히는 영화들은 받은 평점 개수가 평균 2.4개뿐인 반면, rank 200짜리 서브모델이 가장 잘 맞히는 영화들은 받은 평점 개수가 평균 1,781.4개였습니다. 데이터가 많은 아이템일수록 실제로 큰 rank가 필요하다는 직접적인 증거입니다. 이 단순한 아이디어로 MRMA는 Movielens 계열 벤치마크에서 꽤 오랜 시간 최고 수준의 성능을 유지했습니다. (제가 이 논문을 별도의 세미나 발표로 다뤘을 정도로 개인적으로 좋아하는 논문이기도 합니다.) Factorization Machine은 유저·아이템 임베딩의 내적만 보던 Matrix Factorization을 일반화해, 임의의 피처 조합 간 상호작용까지 다룰 수 있게 확장한 모델입니다. RaFM(Chen et al., 2019a)도 같은 문제의식을 여기로 가져와서, 등장 빈도가 다른 피처에 서로 다른 rank의 임베딩을 배정하면 성능과 계산량이 함께 좋아진다는 것을 보였습니다.
그런데 rank를 명시적으로 다르게 배정하는 것만이 캐패시티를 조절하는 유일한 방법은 아닙니다. 모든 임베딩의 rank를 동일하게 두더라도, weight decay를 걸면 유효 캐패시티가 달라집니다. regularization 강도가 세지면 임베딩이 표현할 수 있는 공간이 실질적으로 줄어드는 것과 같아서, weight decay는 사실상 연속적인 캐패시티 조절 다이얼입니다. Matrix Factorization이 weight decay에 민감했던 이유도 여기 있습니다. 그 하이퍼파라미터 하나가 모델 전체의 캐패시티 배분을 결정하고 있었던 셈입니다.
딥러닝 추천 시대에는 쓸 수 없었다
문제는 이 좋은 방법들이 전부 Matrix Factorization 계열 안에서만 작동한다는 것입니다. MRMA(Li et al., 2017)는 확률적 혼합 모델이라 학습 절차가 일반적인 gradient descent와 다르고, LLORMA(Lee et al., 2013)나 WEMAREC(Chen et al., 2015) 같은 방법들은 여러 지역 모델을 만들어 합치는 앙상블이라 딥러닝 모델 안에 모듈처럼 끼워 넣기 어렵습니다. 게다가 요즘은 데이터를 늘리면서 모델을 함께 키워 성능을 올리는 스케일링이 거대 언어 모델(LLM)뿐 아니라 여러 분야에서 대세가 된 시대이고, 추천도 예외가 아닙니다. 그런데 이 스케일링은 Matrix Factorization으로는 누리기 어렵고 딥러닝 모델이라야 가능해서, Matrix Factorization 시대에 쓰던 방법들은 이 흐름 안에서는 작동하지 않습니다. 추천의 무게중심이 Wide & Deep(Cheng et al., 2016), DeepFM(Guo et al., 2017) 같은 딥러닝 모델로 넘어가던 시점에, “유저·아이템별로 캐패시티를 다르게”라는 통찰만 남고 도구는 쓸 수 없게 된 상황이었습니다. 딥러닝이 주는 이 스케일링 이득까지 포기할 수는 없으니, 이 통찰을 딥러닝 모델 안으로 옮겨 오는 방법을 찾아야 했습니다.
이 간극을 메우려던 시도가 λOpt(Chen et al., 2019b)입니다. KDD 2019에 발표된 이 논문은 메타 러닝(meta-learning) 분야의 기념비적인 논문인 MAML(Finn et al., 2017)의 방법론을 응용해, weight decay 하이퍼파라미터 자체를 유저·아이템별로 학습 중에 최적화합니다. 사람 손으로는 불가능했던 유저·아이템별 캐패시티 조절을 학습 과정에 맡겨버린다는 점에서, 제가 찾던 답에 가장 가까운 방법이었습니다. 하지만 MAML 계열 방법은 메타 그래디언트를 구하려면 헤시안(Hessian) 계산이 필요해서 너무 느립니다. 수억 건의 로그를 다루는 대용량 학습에서는 현실적으로 쓸 수 없었습니다.
그래서 저는 발상을 바꿨습니다. weight decay라는 regularization을 직접 피처별로 튜닝하는 대신, 또 다른 regularization 계열인 정규화(normalization)로 같은 효과를 낼 수는 없을까? 정규화는 이미 모든 딥러닝 모델에 들어가 있고, gradient descent와 완전히 호환되고, 추가 비용도 거의 없습니다. 이 질문이 Embedding Normalization의 출발점입니다.
정규화는 원래 다 좋은 거 아니었나요?
딥러닝을 공부하면 제일 먼저 배우는 상식 중 하나가 “정규화는 학습을 안정시키고 성능도 올려준다”는 것입니다. 다만 아키텍처나 도메인마다 실제로 쓰는 정규화 기법은 다릅니다. CNN은 대체로 Batch Normalization(Ioffe & Szegedy, 2015)을 씁니다. 같은 배치 안 다른 이미지들이 같은 채널에서는 비슷한 통계를 가진다는 전제가 이미지 도메인에서는 잘 맞기 때문입니다. Transformer 계열은 대체로 Layer Normalization(Ba et al., 2016)을 씁니다. 시퀀스 길이가 샘플마다 다르고 배치 통계에 의존하면 학습·추론 환경이 달라질 때 불안정해지기 쉬운데, 각 샘플 안에서만 통계를 계산하는 Layer Normalization은 이 문제에서 자유롭기 때문입니다. 즉 “정규화는 다 좋다”가 아니라, 아키텍처와 도메인에 맞는 정규화가 따로 있는 셈입니다. 추천 모델도 예외는 아니어서, Wide & Deep(Cheng et al., 2016)이나 DeepFM(Guo et al., 2017) 계열의 많은 모델 구현이 이 두 정규화 기법 중 하나를 습관처럼 가져다 씁니다.
그런데 추천 모델에는 다른 도메인에서는 잘 보지 못한 독특한 구성 요소가 하나 있습니다. 바로 임베딩(embedding)입니다. 유저 ID, 광고 ID, 카테고리처럼 범주가 아주 많은 변수를 그대로 모델에 넣을 수는 없으니, 각 범주를 원-핫(one-hot) 벡터로 표현한 뒤 저차원의 dense한 벡터로 매핑합니다. PyTorch의 nn.Embedding이 정확히 이 역할을 하는 lookup 테이블입니다. 이 임베딩들에 기존 정규화 기법을 그대로 적용해봤습니다. 다른 곳에서는 늘 도움이 됐던 방식이니 여기서도 당연히 좋아질 거라 예상했죠.
여기서 말하는 “정규화”가 구체적으로 뭘 하는지부터 짚고 넘어가겠습니다. Embedding Normalization은 Layer Normalization의 변형이니, Layer Normalization의 연산부터 보겠습니다. $d$차원 임베딩 $e_x$ 내부에서 계산한 평균 $\mu_x$와 분산 $\sigma_x^2$을 이용해 각 차원의 값을 아래처럼 표준화합니다.
앞으로 표준화된 부분 $(e_x - \mu_x)/\sqrt{\sigma_x^2 + \epsilon}$을 $\hat{e}_x$로 줄여 쓰겠습니다. Batch Normalization도 통계량을 각 샘플 내부가 아니라 배치 전체에 걸쳐 계산한다는 점만 다를 뿐, “평균을 빼고 표준편차로 나눈다”는 핵심 연산은 동일합니다. 이 연산은 입력의 절대적인 크기(scale)를 지우고 상대적인 분포 모양만 남기는 역할을 합니다. 이미지 픽셀이나 은닉층의 활성화 값처럼 “모든 차원이 원칙적으로 대등한” 입력에서는 이게 큰 장점입니다. 문제는 임베딩이 그런 입력이 아니라는 데 있었습니다.
성능이 떨어지는 낯선 현상
결과는 예상과 정반대였습니다. 임베딩에 Batch Normalization이나 Layer Normalization을 적용했더니, 모델 성능이 오히려 떨어지는 현상이 한 번이 아니라 반복적으로 관찰됐습니다. 하이퍼파라미터를 바꿔봐도, 정규화를 적용하는 위치를 바꿔봐도 마찬가지였습니다. “정규화를 했는데 왜 더 나빠지지?” 이 질문에 답을 하는 과정이 논문이 됐습니다.
원인: “중요도”가 사라진다
원인을 파고들어 보니, 문제는 정규화 과정에서 각 임베딩이 원래 가지고 있던 “중요도(significance)”가 뭉개진다는 데 있었습니다.
추천에서는 피처마다 예측에 기여하는 정도가 천차만별입니다. 어떤 피처는 클릭 여부를 결정짓는 핵심 신호이고, 어떤 피처는 있으나 마나 한 잡음에 가깝습니다. 이런 차이는 학습 과정에서 임베딩 벡터의 크기(norm)와 분포에 자연스럽게 녹아듭니다. 모델이 어떤 피처를 중요하게 여길수록 그 피처의 임베딩은 더 크고 뚜렷한 값으로, 덜 중요한 피처의 임베딩은 상대적으로 작고 흐릿한 값으로 학습되는 경향이 있는 것이죠. 앞서 이야기한 캐패시티의 언어로 바꿔 말하면, 모델은 학습을 통해 피처별로 서로 다른 유효 캐패시티를 스스로 배분하고 있는 것입니다.
임베딩의 norm이 중요도를 반영한다는 관찰은 임베딩을 다루는 여러 분야에서 반복적으로 보고돼 온 현상이기도 합니다. 자연어 처리에서는 단어 임베딩의 norm이 단어의 중요도를 반영한다는 관찰이 일찍부터 있었습니다 (Schakel & Wilson, 2015). 이후 임베딩이 단어의 등장 빈도에 강하게 지배된다는 분석 (Gong et al., 2018)을 거쳐, 최근에는 단어 임베딩의 norm이 그 단어가 지닌 정보량(information gain)을 인코딩한다는 것이 정량적으로 확인되기까지 했습니다 (Oyama et al., 2023). 저희 논문 발표 이후의 후속 연구들에서는 추천 시스템에서도 아이템 임베딩의 norm이 아이템의 인기도에 비례해 커지는 경향이 보고됐고 (Kim et al., 2023), 그래프 임베딩에서도 노드의 차수(degree)가 임베딩 norm에 반영되는 경향이 관찰됐습니다 (Liu et al., 2025). 추천의 임베딩에서도 마찬가지로, 역전파 과정에서 예측에 더 크게 기여하는 피처일수록 그래디언트 신호를 더 많이 받아 임베딩의 크기와 분포가 그 피처의 중요도를 반영하는 방향으로 학습된다고 보는 것이 저희 가설이었습니다.
그런데 Batch Normalization이나 Layer Normalization은 모든 피처의 분포를 강제로 비슷한 스케일(대개 평균 0, 분산 1 근방)로 맞춰버립니다. 위 식에서 보듯 $\hat{e}_x$는 원래 $e_x$가 어떤 스케일에 있었는지와 무관하게 항상 평균 0, 분산 1 근방의 값으로 재조정됩니다. 그 결과 “중요한 피처는 크게, 덜 중요한 피처는 작게” 표현되던 신호가 지워지고, 모든 피처가 비슷비슷한 크기로 취급되면서 모델이 정작 중요한 신호를 구분하지 못하게 됩니다. 정규화가 분포를 가지런하게 정리해주는 것까지는 좋았지만, 그 과정에서 원래 있던 정보, 즉 중요도를 함께 지워버리는 부작용이 있었던 셈입니다.
저희는 이 직관을 감으로 넘기지 않고 수식으로 증명했습니다. 첫 번째 Theorem은 Batch Normalization에 관한 것입니다.
같은 배치 안의 임의의 두 피처 $(x_1, x_2)$에 대해, Batch Normalization으로 정규화된 임베딩의 L2-norm 제곱의 기댓값 차이가 항상 0이라는 뜻입니다. 다시 말해 Batch Normalization은 서로 다른 두 피처의 임베딩 norm 제곱을 기댓값 차원에서 완전히 같게 만들어버립니다. 원래 크게 학습됐던 피처든 작게 학습됐던 피처든, 정규화를 거치고 나면 기댓값 차원에서는 구분이 사라지는 것입니다. Affine 파라미터 $\gamma$, $\beta$ 없이 표준화만 수행하는 S-LN(Wang et al., 2020)에서는 이 현상이 한 발 더 나아갑니다.
임의의 피처 $x$와 그 $d$차원 임베딩 $e_x$에 대해, S-LN(Wang et al., 2020)으로 정규화된 임베딩의 L2-norm은 배치 통계와 무관하게 언제나 정확히 $\sqrt{d}$로 고정됩니다.
정리하면, Batch Normalization은 임의의 두 피처 쌍의 norm 제곱 기댓값을 같게 만들고 (Theorem 1), S-LN은 모든 피처의 norm을 아예 $\sqrt{d}$라는 상수로 고정합니다 (Theorem 2). 두 경우 모두 피처가 원래 갖고 있던 크기 차이, 즉 중요도가 정규화 이후 사라집니다.
왜 아무도 눈치채지 못했을까?
돌이켜보면 이건 자연스러운 사각지대였습니다. Batch Normalization과 Layer Normalization은 원래 이미지나 자연어처럼, 피처 하나하나가 서로 대등한 역할을 하는 조밀한(dense) 입력을 다루는 도메인에서 발전해온 기법입니다. 그런 도메인에서는 “모든 채널·차원을 비슷한 스케일로 맞추는 것”이 학습 안정성에 유리하다는 전제가 대체로 잘 맞아떨어집니다.
하지만 추천의 임베딩은 성격이 다릅니다. 유저 ID 하나가 수백만 개의 범주 중 하나를 가리키는 극단적으로 희소(sparse)한 범주형 변수이고, 피처마다 예측에 기여하는 정도의 편차도 훨씬 큽니다. 조밀한 입력을 전제로 설계된 정규화 기법을 별다른 검증 없이 그대로 가져다 쓴 것이, 뜻밖에도 정보 손실로 이어진 것입니다.
핵심 아이디어: Embedding Normalization
저희가 제안한 Embedding Normalization의 목표는 명확합니다. 정규화가 주는 학습 안정성의 이점은 그대로 가져가면서, 각 임베딩이 원래 지니고 있던 중요도의 차이는 보존하는 것입니다. 아래 그림이 이 아이디어의 요약입니다. 왼쪽은 학습된 임베딩이 피처마다 다른 크기, 즉 중요도를 갖는 모습입니다. 가운데처럼 Batch/Layer Normalization을 적용하면 모든 임베딩이 비슷한 크기로 눌리면서 중요도가 사라지는데, 오른쪽의 Embedding Normalization은 정규화를 하면서도 이 중요도 차이를 보존합니다.
![]()
기존 정규화가 “모든 피처를 같은 잣대로 눌러 담는” 방식이었다면, Embedding Normalization은 피처 간의 상대적인 중요도 차이는 유지한 채로 스케일만 안정적인 범위 안으로 끌어오는 방식입니다. 말 그대로 “중요도를 보존하는 정규화(significance-preserving normalization)”인 셈입니다.
관건은 정규화의 Affine 변환에 쓰이는 파라미터 $\gamma, \beta$였습니다. 기존 Batch/Layer Normalization은 이 파라미터를 층(또는 채널) 전체가 공유하는 값으로 두는 반면, Embedding Normalization은 피처마다 독립적으로 학습되는 $\gamma_x^f$, $\beta_x^f$로 바꿨습니다 (위첨자 $f$는 이 파라미터가 피처 $x$마다 따로 존재한다는 표시입니다).
평균 $\mu_x$와 분산 $\sigma_x^2$은 여전히 각 임베딩 내부(Layer Normalization과 동일한 단위)에서 계산해 학습 안정성을 그대로 유지합니다. 다만 정규화 이후 다시 스케일을 되돌리는 $\gamma_x^f$, $\beta_x^f$를 피처마다 따로 두었기 때문에, 모델은 학습 과정에서 중요한 피처에는 큰 $\gamma_x^f$를, 덜 중요한 피처에는 작은 $\gamma_x^f$를 부여해서 원래 있던 중요도 차이를 정규화 이후에도 복원할 수 있습니다. 실제로 정규화된 임베딩의 norm을 계산해보면 이 점이 다음 Theorem으로 확인됩니다.
Batch/Layer Normalization에서는 같아지거나 상수로 고정되던 norm이, Embedding Normalization에서는 피처마다 학습된 $\gamma_x^f$, $\beta_x^f$에 따라 얼마든지 달라질 수 있습니다. 중요도를 표현할 자유도가 남아 있는 것입니다.
이 지점에서 글 앞부분의 weight decay 다이얼 이야기와 연결됩니다. 피처마다 따로 학습되는 스칼라 $\gamma_x^f$와 $\beta_x^f$는 사실상 피처별 캐패시티 다이얼입니다. MRMA(Li et al., 2017)는 rank 배정으로, λOpt(Chen et al., 2019b)는 피처별 weight decay로 이 일을 하려 했습니다. Embedding Normalization은 같은 일을 정규화의 Affine 파라미터를 피처별로 쪼개는 것만으로 해냅니다. 게다가 이 다이얼은 별도의 메타 학습 없이 모델의 손실 함수로부터 gradient descent로 함께 학습되므로, 대용량 학습에서도 추가 비용이 사실상 없습니다.
아래 그림을 보면 세 정규화 기법의 차이가 숫자로 명확해집니다. 네 피처 $x_1$부터 $x_4$까지의 임베딩을 각 기법이 어떻게 정규화하는지 L2-norm 막대그래프로 비교한 예시로, 패널 (a)는 Batch Normalization, (b)는 Layer Normalization, (c)는 Embedding Normalization입니다. (a)와 (b)는 $\gamma$, $\beta$를 모든 피처가 공유하기 때문에 원래 뚜렷했던 네 피처의 L2-norm 격차가 정규화 이후 크게 눌립니다. (a)는 거의 평평해지고, (b)도 약간의 차이만 남습니다. 반면 (c)는 피처마다 다른 $\gamma_x^f$, $\beta_x^f$를 학습하기 때문에, 정규화 이후에도 $x_1$은 크고 $x_4$는 작은 원래의 중요도 차이가 막대그래프에 그대로 남아 있습니다.

구현은 이 정도로 간단합니다
Embedding Normalization의 또 다른 장점은 구현이 정말 간단하다는 것입니다. Layer Normalization처럼 임베딩 내부에서 평균·분산을 계산하되, Affine 파라미터를 피처 개수만큼의 스칼라 임베딩으로 두면 끝입니다. PyTorch로는 아래 몇 줄이 전부입니다.
import torch
import torch.nn as nn
class EmbeddingNormalization(nn.Module):
def __init__(self, num_features: int, eps: float = 1e-5):
super().__init__()
# 피처마다 스칼라 gamma, beta 하나씩 (sparse=True 옵션을 주면 희소 업데이트도 가능)
self.gamma = nn.Embedding(num_features, 1)
self.beta = nn.Embedding(num_features, 1)
nn.init.ones_(self.gamma.weight)
nn.init.zeros_(self.beta.weight)
self.eps = eps
def forward(self, e: torch.Tensor, feature_ids: torch.Tensor) -> torch.Tensor:
# e: (batch, num_fields, d) 임베딩
# feature_ids: (batch, num_fields) 각 임베딩에 대응하는 피처 인덱스 (정수형 Long 텐서)
mu = e.mean(dim=-1, keepdim=True)
var = e.var(dim=-1, unbiased=False, keepdim=True)
e_hat = (e - mu) / torch.sqrt(var + self.eps)
return self.gamma(feature_ids) * e_hat + self.beta(feature_ids)
# 사용 예: 기존 CTR 모델의 임베딩 조회 직후에 한 줄만 끼워 넣으면 됩니다.
# e = embedding(feature_ids) # 기존 코드
# e = en(e, feature_ids) # Embedding Normalization 적용
기존 모델의 구조는 전혀 건드리지 않고, 임베딩 조회(embedding lookup) 직후에 이 모듈 하나만 끼워 넣으면 되기 때문에, 임베딩을 조회해서 쓰는 추천 모델 대부분에 그대로 적용할 수 있습니다. 추가되는 파라미터도 피처당 스칼라 2개뿐이라, 임베딩 차원이 $d$일 때 파라미터 증가 비율은 전체 임베딩 테이블의 $2/d$에 불과합니다.
논문 실험에 쓴 공식 구현은 GitHub에 공개되어 있습니다. 공식 구현도 위 코드와 같은 구조로, Affine 변환이 없는 LayerNorm의 출력에 피처별 스칼라 $\gamma$를 곱하고 $\beta$를 더합니다. 유일한 차이는 초기화입니다. 공식 구현은 $\gamma$를 1 대신 임베딩 초기화에 쓴 표준편차 값으로 초기화합니다.
결과: 안정성과 성능을 함께 잡다
실험은 KDD12, Criteo, Avazu, TalkingData, Movielens, Book-Crossing까지 6개 공개 데이터셋에 걸쳐, 11개 CTR 예측 모델에 각 정규화 기법을 적용하는 방식으로 진행했습니다. 모델은 논문에서 shallow 계열로 분류한 FM(Rendle, 2010)·FFM(Juan et al., 2016)·AFM(Xiao et al., 2017)과, 딥러닝 계열인 MLP·NFM(He & Chua, 2017)·Wide & Deep(Cheng et al., 2016)·DeepFM(Guo et al., 2017)·xDeepFM(Lian et al., 2018)·PNN(Qu et al., 2016)·AutoInt(Song et al., 2019)·AFN(Cheng et al., 2020)을 모두 포함했습니다. 학습은 임베딩 차원 10, Adam 옵티마이저 (학습률 $10^{-3}$, 미니배치 4,096)로 진행해 각 설정을 10회 반복한 평균을 보고했습니다. 6개 데이터셋 × 11개 모델 × 2개 평가지표 (Area Under the Curve(AUC), logloss), 총 132개 실험 설정에서 정규화를 전혀 적용하지 않은 베이스라인과 비교했습니다.

132개 실험 설정 각각에서 각 정규화 기법이 베이스라인 대비 성능을 뚜렷이 개선(O)했는지, 소폭 개선(△)했는지, 오히려 악화(X)시켰는지 집계한 표입니다. 표 안의 대괄호 숫자는 원 논문의 참고문헌 번호입니다.
Embedding Normalization은 132개 설정 중 92개(69.70%)에서 뚜렷한 개선을 보였고, 소폭 개선까지 합치면 95.45%(126개)에 달했습니다. 반면 Batch Normalization은 64.39%, Layer Normalization은 36.36%, S-LN(Wang et al., 2020)과 분산만으로 정규화하는 변형인 VO-LN(Wang et al., 2020)은 각각 40.91%와 39.39%에 그쳤습니다.
여러 정규화 기법을 통째로 비교했을 때도 Embedding Normalization은 132개 중 65개(49.24%)에서 단독으로 가장 좋은 성능을 냈고, 그 뒤를 VO-LN(14.39%)과 Batch Normalization(12.12%)이 이었습니다.
세부 결과에서 눈에 띄는 지점이 몇 가지 있습니다. 먼저 shallow 모델에서 차이가 극적입니다. CTR 예측을 위해 제안된 기법인 S-LN과 VO-LN조차 FM·FFM 같은 shallow 모델에서는 성능을 심하게 떨어뜨리는 반면, Embedding Normalization은 shallow 모델 전 구간에서 다른 정규화 기법을 앞섰습니다. 특히 FFM에 Embedding Normalization을 결합한 조합은 Criteo, Avazu, Movielens, Book-Crossing 4개 데이터셋에서, 딥러닝 모델을 포함한 11개 모델 전체와의 비교에서 최고 성능을 기록했습니다. 또한 AFN처럼 원래부터 은닉층에 Batch Normalization을 쓰는 모델에 Embedding Normalization을 추가해도 성능이 더 오르는데, 이는 임베딩에 대한 정규화의 이득이 은닉층 정규화의 이득과 서로 겹치지 않는다는 것을 의미합니다.
성능뿐 아니라 학습이 얼마나 빨리 수렴하는지에서도 차이가 뚜렷했습니다. 아래 그림은 KDD12·Criteo 데이터셋에서 FFM·AFN 모델에 각 정규화 기법을 적용했을 때의 학습 곡선으로, 가로축은 학습 반복(iteration), 세로축은 테스트 logloss입니다.

Embedding Normalization은 대부분의 경우에서 더 적은 반복만으로 더 낮은 손실에 도달했습니다. 유일한 예외는 KDD12 데이터셋에서 FFM 모델을 쓴 경우로, 수렴 속도 자체는 살짝 느렸지만 최종 성능은 여전히 다른 기법보다 우수했습니다. 참고로 FFM 실험에서는 VO-LN과 S-LN의 수렴이 다른 기법 대비 극단적으로 느려 그래프에서 생략했습니다.
Embedding Normalization이 정말로 피처별 중요도 차이를 정규화 이후에도 보존하는지는, 정규화된 임베딩 norm의 분포를 직접 눈으로 확인해볼 수 있습니다. 아래 그림은 Criteo·Book-Crossing 데이터셋에서 FFM 모델의 임베딩을 각 정규화 기법으로 처리한 뒤의 norm 분포 히스토그램입니다. 가로축은 정규화된 norm (각 임베딩의 norm을 해당 설정의 평균 norm으로 나눈 값), 세로축은 밀도입니다.

정규화를 아예 적용하지 않은 “None”의 경우 norm이 넓게 퍼져 있어 피처 간 중요도 차이가 잘 드러납니다. Layer Normalization, S-LN, VO-LN은 norm이 1 근방의 뾰족한 스파이크로 붕괴해버려 피처 구분이 거의 불가능해지고, Batch Normalization도 어느 정도 퍼져 있지만 norm이 0에 가까워지는 피처는 드뭅니다. 예측에 불필요한 피처라면 norm이 0에 가까워져 모델에 영향을 주지 않아야 하는데, 기존 정규화 기법들은 그걸 허용하지 않는 것입니다. Embedding Normalization만이 “None”과 비슷하게 넓게 퍼진 분포를 유지해, 정규화를 거치고도 피처별 중요도 차이가 살아있음을 보여줍니다.
같은 질문을 다른 각도에서도 확인해봤습니다. 피처를 “중요한 피처”와 “중요하지 않은 피처” 두 그룹으로 인위적으로 나눠놓고, 학습이 진행될수록 두 그룹의 정규화된 임베딩 norm 비율이 어떻게 변하는지를 추적한 것입니다. 그룹을 나누는 방법은 세 가지를 썼습니다. 원래 없던 의미 없는 더미 피처를 섞어 넣는 Dummy Features, 유저 ID 피처 중 5%를 골라 해당 인스턴스의 클릭 레이블을 무작위로 뒤섞어 신호를 없앤 Label Shuffling, 그리고 인위적인 조작 없이 파레토 법칙에 따라 전체 등장 횟수의 80%를 차지하는 고빈도 피처를 중요한 피처로 간주한 Head and Tail입니다.

Movielens·Book-Crossing 데이터셋에서 FFM 모델을 기준으로, “중요하지 않은 피처” 그룹과 “중요한 피처” 그룹의 평균 정규화 norm 비율 (세로축)이 학습 반복 (가로축)에 따라 변하는 모습. 세 행은 위에서 설명한 Dummy Features·Label Shuffling·Head and Tail 분할 방식입니다.
Embedding Normalization은 이 비율이 학습이 진행될수록 1보다 뚜렷이 낮아져, 중요하지 않은 피처의 norm이 중요한 피처보다 계속 작게 유지된다는 것을 보여줍니다. 정규화를 하지 않은 “None”도 예상대로 비율이 내려가지만 Embedding Normalization이 더 빠르고 더 깊게 떨어지고, Layer Normalization은 Movielens에서 부분적으로만 두 그룹을 구분합니다. 반면 Batch Normalization, S-LN, VO-LN에서는 이 비율이 1 근방에 머물러, 두 그룹의 임베딩이 사실상 구분되지 않게 됩니다.
종합하면 Embedding Normalization을 적용한 모델은 (1) 학습 과정이 안정적으로 수렴했고 (2) 기존 정규화 기법을 그대로 썼을 때보다, 그리고 아예 정규화를 쓰지 않았을 때보다 CTR 예측 성능도 함께 향상됐습니다. “정규화 vs 성능”이라는 트레이드오프처럼 보였던 문제가, 사실은 “중요도를 지키는 정규화냐 아니냐”의 문제였다는 것을 보여준 결과였습니다.
마치며
이 연구의 여정을 한 문장으로 줄이면 이렇습니다. “유저·아이템마다 데이터 양이 다르니 캐패시티도 달라야 한다”는 Matrix Factorization 시대의 오래된 통찰을, 딥러닝 추천 시대에도 쓸 수 있는 형태로 옮긴 것입니다. 앞선 시도들이 각각 딥러닝 모델과의 호환성과 학습 속도라는 벽에 막혀 이루지 못했던 이 목표를, Embedding Normalization은 이미 모든 딥러닝 모델에 들어가 있는 정규화의 Affine 파라미터를 피처별로 쪼개는 최소한의 변경으로 달성합니다.
동시에 이 논문은 “익숙한 도구를 별생각 없이 옮겨 쓸 때 생기는 사각지대”에 대한 이야기이기도 합니다. Batch Normalization과 Layer Normalization은 조밀한 입력을 전제로 설계된 만능처럼 보이는 도구지만, 추천의 임베딩처럼 피처마다 중요도 편차가 큰 희소한 입력에는 그대로 옮겨 쓸 수 없었습니다. 정규화가 지켜야 할 것과 지우면 안 되는 것을 구분해서, “안정성은 얻고 중요도는 잃지 않는” 정규화를 설계한 것이 이 연구의 핵심입니다.
그래서 저는 Embedding Normalization이 이 문제의 정답이라고는 생각하지 않습니다. “정규화가 지워버리는 중요도를 어떻게 지킬 것인가”라는 질문을 던지고, 피처별 Affine이라는 최소한의 답 하나를 붙인 것에 가깝습니다. 같은 질문에 더 잘 답하는 방법은 분명히 있을 것이고, 피처마다 통계량을 다루는 방식이든 정규화 자체를 재설계하는 방식이든 앞으로 더 나은 해법이 나오리라 봅니다. 이 글이 그 질문을 이어받는 출발점이 된다면 그것으로 충분합니다.
Reference
-
(Yi et al., 2021) Yi, J., Kim, B., & Chang, B. (2021). Embedding normalization: Significance preserving feature normalization for click-through rate prediction. In 2021 International Conference on Data Mining Workshops (ICDMW) (pp. 75-84). IEEE.
-
(Koren et al., 2009) Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. Computer, 42(8), 30-37.
-
(Salakhutdinov & Mnih, 2008) Salakhutdinov, R., & Mnih, A. (2008). Bayesian probabilistic matrix factorization using Markov chain Monte Carlo. In International Conference on Machine Learning (ICML 2008) (pp. 880-887).
-
(Lee et al., 2013) Lee, J., Kim, S., Lebanon, G., & Singer, Y. (2013). Local low-rank matrix approximation. In International Conference on Machine Learning (ICML 2013) (pp. 82-90). PMLR.
-
(Chen et al., 2015) Chen, C., Li, D., Zhao, Y., Lv, Q., & Shang, L. (2015). WEMAREC: Accurate and scalable recommendation through weighted and ensemble matrix approximation. In Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR 2015) (pp. 303-312).
-
(Chen et al., 2016) Chen, C., Li, D., Lv, Q., Yan, J., Chu, S. M., & Shang, L. (2016). MPMA: Mixture probabilistic matrix approximation for collaborative filtering. In Proceedings of the 25th International Joint Conference on Artificial Intelligence (IJCAI 2016) (pp. 1382-1388).
-
(Li et al., 2016) Li, D., Chen, C., Lv, Q., Yan, J., Shang, L., & Chu, S. M. (2016). Low-rank matrix approximation with stability. In International Conference on Machine Learning (ICML 2016) (pp. 295-303). PMLR.
-
(Rendle, 2012) Rendle, S. (2012). Learning recommender systems with adaptive regularization. In Proceedings of the Fifth ACM International Conference on Web Search and Data Mining (WSDM 2012) (pp. 133-142).
-
(Rendle et al., 2019) Rendle, S., Zhang, L., & Koren, Y. (2019). On the difficulty of evaluating baselines: A study on recommender systems. arXiv preprint arXiv:1905.01395.
-
(Rendle et al., 2020) Rendle, S., Krichene, W., Zhang, L., & Anderson, J. (2020). Neural collaborative filtering vs. matrix factorization revisited. In Proceedings of the 14th ACM Conference on Recommender Systems (RecSys 2020) (pp. 240-248).
-
(Ferrari Dacrema et al., 2019) Ferrari Dacrema, M., Cremonesi, P., & Jannach, D. (2019). Are we really making much progress? A worrying analysis of recent neural recommendation approaches. In Proceedings of the 13th ACM Conference on Recommender Systems (RecSys 2019) (pp. 101-109).
-
(Li et al., 2017) Li, D., Chen, C., Liu, W., Lu, T., Gu, N., & Chu, S. (2017). Mixture-rank matrix approximation for collaborative filtering. In Advances in Neural Information Processing Systems 30 (NIPS 2017).
-
(Chen et al., 2019a) Chen, X., Zheng, Y., Wang, J., Ma, W., & Huang, J. (2019). RaFM: Rank-aware factorization machines. In International Conference on Machine Learning (ICML 2019) (pp. 1132-1140). PMLR.
-
(Cheng et al., 2016) Cheng, H. T., Koc, L., Harmsen, J., Shaked, T., Chandra, T., Aradhye, H., Anderson, G., Corrado, G., Chai, W., Ispir, M., Anil, R., Haque, Z., Hong, L., Jain, V., Liu, X., & Shah, H. (2016). Wide & deep learning for recommender systems. In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems (DLRS 2016) (pp. 7-10).
-
(Guo et al., 2017) Guo, H., Tang, R., Ye, Y., Li, Z., & He, X. (2017). DeepFM: A factorization-machine based neural network for CTR prediction. In Proceedings of the 26th International Joint Conference on Artificial Intelligence (IJCAI 2017) (pp. 1725-1731).
-
(Rendle, 2010) Rendle, S. (2010). Factorization machines. In 2010 IEEE International Conference on Data Mining (ICDM) (pp. 995-1000). IEEE.
-
(Juan et al., 2016) Juan, Y., Zhuang, Y., Chin, W. S., & Lin, C. J. (2016). Field-aware factorization machines for CTR prediction. In Proceedings of the 10th ACM Conference on Recommender Systems (RecSys 2016) (pp. 43-50).
-
(Xiao et al., 2017) Xiao, J., Ye, H., He, X., Zhang, H., Wu, F., & Chua, T. S. (2017). Attentional factorization machines: Learning the weight of feature interactions via attention networks. In Proceedings of the 26th International Joint Conference on Artificial Intelligence (IJCAI 2017) (pp. 3119-3125).
-
(He & Chua, 2017) He, X., & Chua, T. S. (2017). Neural factorization machines for sparse predictive analytics. In Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR 2017) (pp. 355-364).
-
(Lian et al., 2018) Lian, J., Zhou, X., Zhang, F., Chen, Z., Xie, X., & Sun, G. (2018). xDeepFM: Combining explicit and implicit feature interactions for recommender systems. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD 2018) (pp. 1754-1763).
-
(Qu et al., 2016) Qu, Y., Cai, H., Ren, K., Zhang, W., Yu, Y., Wen, Y., & Wang, J. (2016). Product-based neural networks for user response prediction. In 2016 IEEE 16th International Conference on Data Mining (ICDM) (pp. 1149-1154). IEEE.
-
(Song et al., 2019) Song, W., Shi, C., Xiao, Z., Duan, Z., Xu, Y., Zhang, M., & Tang, J. (2019). AutoInt: Automatic feature interaction learning via self-attentive neural networks. In Proceedings of the 28th ACM International Conference on Information and Knowledge Management (CIKM 2019) (pp. 1161-1170).
-
(Cheng et al., 2020) Cheng, W., Shen, Y., & Huang, L. (2020). Adaptive factorization network: Learning adaptive-order feature interactions. In Proceedings of the AAAI Conference on Artificial Intelligence, 34(4), 3609-3616.
-
(Chen et al., 2019b) Chen, Y., Chen, B., He, X., Gao, C., Li, Y., Lou, J. G., & Wang, Y. (2019). λOpt: Learn to regularize recommender models in finer levels. In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD 2019) (pp. 978-986).
-
(Finn et al., 2017) Finn, C., Abbeel, P., & Levine, S. (2017). Model-agnostic meta-learning for fast adaptation of deep networks. In International Conference on Machine Learning (ICML 2017) (pp. 1126-1135). PMLR.
-
(Ioffe & Szegedy, 2015) Ioffe, S., & Szegedy, C. (2015, June). Batch normalization: Accelerating deep network training by reducing internal covariate shift. In International Conference on Machine Learning (pp. 448-456). PMLR.
-
(Ba et al., 2016) Ba, J. L., Kiros, J. R., & Hinton, G. E. (2016). Layer normalization. arXiv preprint arXiv:1607.06450.
-
(Schakel & Wilson, 2015) Schakel, A. M. J., & Wilson, B. J. (2015). Measuring word significance using distributed representations of words. arXiv preprint arXiv:1508.02297.
-
(Gong et al., 2018) Gong, C., He, D., Tan, X., Qin, T., Wang, L., & Liu, T. Y. (2018). FRAGE: Frequency-agnostic word representation. In Advances in Neural Information Processing Systems 31 (NeurIPS 2018).
-
(Oyama et al., 2023) Oyama, M., Yokoi, S., & Shimodaira, H. (2023). Norm of word embedding encodes information gain. In Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing (EMNLP 2023).
-
(Kim et al., 2023) Kim, D., Park, J., & Kim, D. (2023). Test-time embedding normalization for popularity bias mitigation. In Proceedings of the 32nd ACM International Conference on Information and Knowledge Management (CIKM 2023).
-
(Liu et al., 2025) Liu, Y., Zhang, H., Gao, X., Guo, L., Tao, Z., & He, T. (2025). Norm augmented graph autoencoders for link prediction. In IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP 2025).
-
(Wang et al., 2020) Wang, Z., She, Q., Zhang, P., & Zhang, J. (2020). Correct normalization matters: Understanding the effect of normalization on deep neural network models for click-through rate prediction. In DLP-KDD 2020 Workshop (arXiv:2006.12753).