ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문리뷰-CDN] Empowering Long-tail Item Recommendation through Cross Decoupling Network (KDD 2023)
    Papers Review 2024. 3. 11. 22:29

    목차

       

      - 논문 : Empowering Long-tail Item Recommendation through Cross Decoupling Network (paper)

      - 모델 : long-tail problem 을 해결하기 위하여 item, user 각각 학습하는 two-tower 모델로 이루어져 있으며, 각 tower에서 데이터를 다시 decoupling 하여 학습한다. item 데이터에서는 unique한 정보를 학습하는 memorization expert와 공유 가능한 정보를 학습하는 generalization exeprt 로 decoupling하여 학습하며, user 데이터에서는 interaction의 long-tail distribution 을 그대로 학습하는 main branch와 re-balance된 distribution을 학습하는 regularizer branch 로 decoupling하여 학습한다.

      - 장점 : 추천시스템 특징인 real-time 에서 학습 및 추론하기 좋다. tail 아이템의 퍼포먼스와 head 아이템의 퍼포먼스가 모두 전반적으로 상향된다.

       

      (발표용으로 만든 자료 업로드에 한국어 설명 추가)

       


      1. Problem

      • 추천시스템에서는 highly-skewed 한 long-tail item distribution 문제를 가지고 있다. (파레토 법칙, 롱테일 법칙 그래프를 생각하면 됨) 전체 아이템 데이터셋 중 아주 적은 아이템들만이 대부분의 유저피드백을 받는 것이다.
      • 모델이 이런 롱테일 데이터를 학습하게 되면 계속 인기 있었던 아이템만 추천하는 rich get richer(빈익빈부익부) 현상을 만들어내고, 장기적인 관점에서 유저의 만족도를 떨어트릴 수 있다. (freshness가 떨어지기 때문)
      • 물론 이런 롱테일 문제를 해결하기 위해 logQ corrections, re-sampling, meta learning, transfer learning 등 다양한 previous work 가 존재한다. 그러나, 몇 가지 문제가 있다.
        1. tail item의 퍼포먼스는 높일 수 있어도, head item 혹은 overall 퍼포먼스가 낮아질 수 있다.
        2. 모델이 서빙하기에 복잡하고 expensive하다. 추천시스템은 real-time production 이므로 중요한 부분이다.
        3. 활용하고 유지하기에 어렵다.

       

      2. Inspiration

      • Decoupling Representation and Classifier for Long-Tailed Recognition 이라는 paper에서 영감을 받았다. (아래처럼 나눠서 학습하는 것을 decoupling이라고 하는 것 같다.)
        • CV에서 classification에 사용되는 모델인데, Two-stage decoupling이 진행된다.
        • first stage : item representation 학습을 위해 original long-tail distribution
        • second stage : tail class의 예측을 향상시키기 위해 re-balanced data 를 사용한다.
      • 그러나 이런 방식에는 Forgetting issue 가 존재한다.
        • first stage에서 학습된 내용이 second stage에 가면 소실되어 전반적인 모델 퍼포먼스에 악영향을 미친다는 것
        • 그리고 두 번에 걸쳐 학습이 이루어져야 하기 때문에 빠른 학습 및 추론이 필요한 web-scale 추천에는 적합하지 않음
      • 대부분의 decoupling 모델은 전반적인 퍼포먼스를 낮춘다는 한계점이 있는데, 이는 학습과 서빙 데이터가 아래 측면에서 다르다는 것이다.
        • 아이템 분포도 측면
        • 아이템에 주어진 유저의 선호도 측면 (정확히 이 부분이 왜 문제인지 이해하지 못했음. 논문 : user's preference given an item)
      • 우리 모델은 decoupling을 하는데 Forgetting issue이슈도 잡고, web-scale의 모델이며, 전반적인 퍼포먼스도 잡았다!

       

      3. Cross Decoupling Network(CDN)

      3-1. overview

      • user와 item 측면에서 모두 decoupling을 진행한다.
      • Item side
        • Memorization : 아이템의 고유한 특성을 학습 (ex. itemID)
        • Generalization : 공유 가능한 아이템 특성을 학습 (ex. category, tag)
      • User side
        • Main branch : 기존의 long-tail distribution을 학습
        • Regularizer branch : re-balanced distribution을 학습
      • Contribution
        • tail 아이템의 퍼포먼스를 상승시킴과 동시에 overall 퍼포먼스 역시 유지 혹은 상승 시켰다.
        • 오프라인, 온라인에서 모두 좋은 성능을 보였고, 쉽게 적용할 수 있었다.

       

      3-2. Item Memorization and Generalization Decoupling

      • A. Memorization features
        • 유저와 아이템 사이의 interaction을 학습한다. exploit 한 것
        • 아이템끼리 unique하고 independence한 특성을 갖는 feature를 학습한다. (ex. Item ID, Item name)
        • Head 아이템은 더 자주 학습되므로 memorization 효과가 극대화되며, tail 아이템 임베딩은 업데이트가 적기 때문에 노이즈가 낄 수 있다.
      • B. Generalization features
        • 유저의 선호도와 아이템 특징 사이의 관계를 학습할 수 있다.
        • 아이템끼리 공유 가능한 특성을 학습한다. explore한 것. (ex. category ID, tags)

       

      • Item representation learning by MoE(mixture of expert) - 찾아본 내용

      • 그렇다면 이제 각각을 어떻게 학습하고 합치는지 알아보자. frequency 기반의 MoE를 사용한다. (아래는 MoE가 무엇인지 몰라서 찾아본 내용이다.)
      • 이미지
      • X : input
        N : Expert의 갯수
        f(x) : Expert를 통과한 output vector
        g(x) : Expert choice의 확률 (softmax를 사용)
      • expert 확률(g(x))에 따라 f(x)를 weighted sum을 한다.
      • MoE의 구동방식은 이해했으나, 장점이 무엇인지는 더 공부해봐야 할 거 같다 .. 이렇게 expert가 나뉘면 학습시간이 더 오래 걸리는 것 아닌가..?

       

      • A+B) Item representation learning by MoE(mixture of expert) - 논문 내용

      1. memorization과 generalization 각각 연관된 feature embedding을 concat

      2. Expert에 넣어서 output vector 생성

      3. G(i) 라는 gating function을 통해 Expert가 선택될 확률을 계산함. 이때 softmax를 사용하며, i의 frequency를 input으로 넣음. memorization expert의 갯수는 n_1개, generalization expert 갯수는 n_2-n_1 개임

      4. G(i) 마다 weighted sum 진행

      • 이렇게 memorization과 generalization expert를 분리함으로써 forgetting issue를 해결할 수 있다고 한다. 아래와 같이 논문에 나와있는데, 무슨 내용인지 대략 이해는 가지만 내용이 이해가지 않는다.
        Additionally, by decoupling the memorization and generalization through experts with frequency-based gates, we are able to mitigate the forgetting issue when the learning attention is shifted towards tail items. That is, with the decoupling, when the training attention shifts to tail items, the gradients (knowledge) from tail items will mainly update the model parameters in the generalization-focused expert, while maintaining the well-learned memorization expert from head items.

       

       

      3-3. User Sample Decoupling

      • A. Main Branch
        • Ω_m : 원래의 highly skewed 된 long-tail distribution
        • 모든 interaction 데이터를 사용하여 고품질의 user representation을 학습한다.
      • B. Regularizer Branch
        • Ω_m : rebalance 된 distribution을 사용.
        • tail item에 대한 정보를 더 많이 학습하게 된다. (user side이고, input으로 u_r이 들어가는데, i_r에 대한 이야기를 해서 당황스러움)
      • Shared tower
        • 두 브랜치 사이에서 공유하는 f(x) tower가 있다. scalability를 위함임.
        • h_m과 h_r은 각 브랜치에 할당된 sub-network이다
        • 두 개의 브랜치는 동시에 학습될 수 있다.

       

      3-4. Cross learning

       

      • γ - adapter

      • x_m, y_m : user/item representation in main branch
      • x_r, y_r : user/item representation in regularizer branch
      • IF (imbalance factor)가 높을수록  γ는 1을 초과하는 큰 값을 가져야 한다.
      • T : total epoch
        t : 현재 epoch
      • α_t 가 γ - adapter이다. 학습된 representations를 합치고, 학습을 서서히 original distribution인 x_m, y_m 에서 tail item인 x_r, y_r로 집중이 이동된다.
      • 학습이 진행될수록 = t값이 커질수록 = α_t는 작아진다 = tail item에 대한 학습으로 집중이 이동된다.

       

      • Loss

       

        • 𝑝(𝑖|𝑢) : For a given user u, recommenders aim to accurately approximate the user’s preference towards item i.
        • 𝑑ˆ(u_m, i_m) : user feedback from main branch
        • 𝑑ˆ(u_r, i_r) : user feedback from regrularizer branch

       

      • Inference

      •  main branch에서만 사용한다

       

      4. Performance

      • cross decoupling 모델인 CDN이 기존 decoupling sota 모델과 비교했을때 얼마나 좋은 성능을 보이는가? 

      • 기본 Two-tower 모델을 backbone으로 하여 Re-balance 방식이 다른 ClassBalance 모델괴 LogQ 모델이 있고,
        Deoupling 방식이 다른 NDP와 BBN이 있다.
      • 특히나, LogQ나 NDP의 경우 Tail 퍼포먼스가 향상되었지만, head 퍼포먼스는 하락하여 반적인 퍼포먼스가 모두 하락하였다.
        반면, CDN은 Tail 퍼포먼스와 Head 퍼포먼스 모두 성능 향상을 보여 전반적인 퍼포먼스가 모두 좋았다. SOTA 달성!

       

      • User와 Item side에서 decoupling은 어떠한 역할을 하는가?

      • BDN : main branch와 regularizer branch를 1:1 비율로 학습. 즉, γ - adapter=0.5로 조정
      • UDN : User side만 decouple함
      • IDN : Item side만 decouple함
      • BDN은 Tail 퍼포먼스가 Two-tower에 비해 향상되었지만, Head 퍼포먼스가 크게 하락하였다. 이를 통해 highly skewed 한 long-tail distribution 에서는 balanced된 branch(regularizer branch) 를 고려하는 것이 중요함을 알 수 있었다
      • 전반적으로 CDN 의 퍼포먼스가 가장 좋았다.

       

      • MoE expert는 CDN 성능에 어떻게 영향을 미칠까? 

      • Unbalanced/Balanced : User side 처럼 한 expert는 original dataset, 다른 expert는 balanced dataset으로 학습한다.
      • Head/Tail : 한 expert는 head item을, 다른 expert는 tail item을 학습한다.
      • Mem/Gen : CDN itselft
      • CDN 성능이 가장 좋았음.

      • head item(파란색)과 tail item(주황색)의 gate value는 둘 다 Generalization에서 더 좋았음. 왜냐하면 dataset이 굉장히 sparse한데, 풍부한 정보를 활용하고 있기 때문이다.(? 무슨 말인지 모르겠음. 원문 : It is reason- able since both datasets are very sparse and we utilize rich content information which are better at generalization. )
      • 또한, memorization expert는 head 아이템에 더 높은 가중치를 두고, generalization expert는 tail item의 value가 높다. 우리가 의도했던대로 head 아이템은 피드백 정보가 풍부하기 때문에 memorization에서, tail 아이템은 데이터의 희소성 때문에 generalization에서 더 능력을(?) 선호한다.
      • 즉, CDN은 head와 tail 아이템을 균형을 의도한대로 맞추었다고 할 수 있다.

       

      • head와 tail 아이템에서 𝛾 -adapter은 어떠한가?

       

      • 수식에서는 𝛾가 커질수록, main branch에 더 가중치를 주게 된다.
      • 결과에서는 𝛾 <5 일 때, 퍼포먼스가 크게 상승하며, 5 이후로는 비슷한 경향을 보이며, tail 아이템의 퍼포먼스는 감소(𝛾 =4)할 수도 있다.

       

      • embedding 시각화

      • CDN이 Tow Tower Model에 비해 군집화가 잘 되는 것을 볼 수 있다.
      • tail item에 대한 semantic meaning을 잘 학습한 것이라고 해석할 수 있다.

       

      • real-word에서도 CDN이 잘 동작하는가?

      • offline 테스트에서도, online 테스트에서도 더 좋은 퍼포먼스를 보여주었다.

       

       

      5. Conclusion

      • A scalable cross decoupling network (CDN) to address the long-tail distribution in industry recommender systems.
      • CDN decouples the memorization and generalization on the item side, as well as the user sampling from the user side.
      • A new 𝛾 -adapter is introduced to softly shift the learning attention to tail items, while smoothly aggregating the learning from both sides.
      • Experiments on public dataset show and real world scenarios show that CDN delivers significant improvements for both tail and overall recommendations.

       

      댓글

    Designed by Tistory.