
Cross Decoupling Network(CDN)을 개발하여 위의 두 측면에서의 차이를 줄이고자 하였다.regularized bilateral branch network)를 활용하여 서로 다른 분포에서 발생한 사용자 표본들을 분리한다.logQ 보정법(correciton), 재표본추출(re-sampling)과 같이 이러한 longtail 분포의 문제를 해결하기 위한 성공적인 방법들이 기존에도 제안되어 왔다. 하지만 현업에서 그 이상의 개선은 여러 이유로 제한적이었다.representation learning과 classification learning이 필요로 하는 데이터의 분포가 다르다는 것을 보였다. 하지만 기존 모델들은 이러한 모델 파라미터의 decoupling의 필요성을 고려하지 않았다.generalization)하는 시점에 head item에 대한 정보를 기억(memorization) 하는 것이 중요하다.generalization과 memorization expert를 따로 두고, 그에 필요한 feature 역시 따로 사용한다. 이를 등장 빈도 기반의 gating을 활용하여 결합한다.memorization/generalization 균형을 유지한다.bilateral branch network)를 활용하여 두 개의 서로 다른 분포로부터 나온 표본을 학습한다.main branch: 기존 분포를 그대로 학습하여 고품질의 representation learning을 수행regularizer branch: tail item 정보를 좀더 학습하기 위한 re-balanced 분포를 학습Problem Settings

imbalance factor(IF)를 사용한다.Theoretical Analysis and Model Design Motivations
p(i)의 불일치라고 한다. 이로 인해 모델이 학습 데이터에 잘 맞더라도 서빙 데이터에 대해서는 큰 편향이 발생한다.p(u|i)의 불일치라고 한다. 특히 훈련 데이터가 부족하여 과소 적합되는 long-tail 아이템에 대해 이러한 경향이 더 높으며, 이는 학습 데이터와 서빙 데이터 모두에 대해 편향을 유발한다.
gated mixture of expert(MOE) 모델을 활용한다.bilateral branch networkUniquenessIndependenceregularized bilateral branch network 제안(figure 2 우측)main branch: 기존의 skewed된 long-tail 분포() 사용하여 학습. 즉 전체 데이터가 사용됨.regularizer branch: 상대적으로 균형을 좀더 맞춘 분포() 사용하여 학습. 즉 일부 head item 관련 로그와 전체 tail item 관련 로그가 사용됨.main branch는 기존의 분포의 특성을 그대로 학습하여 user representation을 생성하며, 이는 regularizer branch가 학습을 하는 데에 일종의 초석이 된다.regularizer branch는 tail item의 정보를 좀더 모델에 반영할 수 있도록 하며, 그 와중에도 모델이 tail item에만 너무 집중하지 않도록 regularized adapter를 이용하여 조절한다.head item과 tail item 간의 격차를 줄이기 위해 앞서 user/item 에서 각각 분리(decouple)해둔 정보들을 -adapter`를 이용하여 교차 학습한다.
위에서 얻어진 logit 를 이용하여 아래와 같은 사용자의 전체 item에 대한 선호를 softmax로 구할 수 있다.
실제 적용시에는 아이템 수가 매우 크므로 batch softmax를 사용한다.

서빙 시점에는 main branch의 추정량만 이용해서 softmax를 구한다. 즉 위의 는 학습 시점에만 사용되고, 서빙 시점에는 를 사용한다.
regularizer branch는 train 시점 데이터에 대해서 정규화된 것이기 때문에 test 시점의 분포와는 또 다르므로 이를 사용하면 또 다른 편향이 발생하기 때문이다.CDN은 위에서 볼 수 있듯이 추가적인 연산이 적고, 특히 서빙시점은 기존의 모델과 동일하다.

CDN 성능이 제일 좋으며, tail 뿐만 아니라 head item에 대한 성능도 올라갔다. 대부분의 다른 방법은 tail에서 상승하면 head는 감소하였다. 즉, tail에 집중하면 head 성능이 떨어지는 게 일반적이다.NDP는 decoupling을 2-stage 방식으로 수행하는데, 이때문에 forgetting 문제가 커서 head의 성능이 CDN 보다도 높았으나, head 에서의 성능이 매우 떨어졌다.BBN은 head/tail 모두에서 성능이 감소하였다. 이는 BBN이 위에 설명하였듯 uniform 샘플링이 가장 중점적으로 사용되는데 현실에서는 inference시에 만나는 데이터도 불균형하기 때문에 추천시스템에서의 현실과 동떨어졌기 때문으로 보인다.CDN은 이와 달리 BBN의 uniform에 해당하는 regularized 분포를 부수적으로 사용하고 원본 데이터 분포를 main branch에 놔두기 때문에 훨씬 현실에 적합하다.CDN은 평균 성능의 표준편차가 작다. 이는 tail item에 대한 오버피팅이 적어진 것이 원인으로 생각된다.
BDN: main/regularizer branch 결합시 사용하는 제거UDN: user만 decouple, item 쪽의 memorization/generalization 제거IDN: item만 decouple.BDN을 제외하고는 모두 baseline 대비 성능 상승



