Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 리뷰
본 포스팅은 YouTube recommendation system 트릴로지 리뷰(링크) 중, 스핀오프 영화 같은 개념이라고 생각하면 좋다(..). 본래 multi-task learning은 딥러닝 분야에서 많이 사용되던 방식인데, 저자가 아마도 유튜브의 추천시스템에 대해 연구하다가 multi-task model의 필요성을 느꼈던 것 같다.
사실 논문에 나와있는 그림만 봐도 어떤 것을 하려는지 대강 짐작할 수 있는 내용이기 때문에, 논문을 아주 자세히 읽어볼 필요는 없다고 생각한다. 다만 유튜브 추천시스템 논문들을 제대로 읽고 싶은 사람이라면 이 논문 역시 주의깊게 봐야한다. 본 포스팅에서는 아주 간략한 내용만 소개하고자 한다.
1.
모델의 대략적인 구성은 아래 그림과 같다.
MMoE는 그림 왼쪽에 있는 Shared-Bottom multi-task DNN structure를 기반으로 한다. 각각의 Experts는 간단한 feed-forward 네트워크로 구성되어 있고, 이는 task 갯수만큼 할당된 gate를 기반으로 분기된다. 분기된다는 것은, input 데이터를 softmax layer(gate)를 거쳐, Experts 마다 가중치를 부여하여 활용할 수 있도록 한다는 것이다. 따라서 gating network는 experts의 조합을 학습하고, 두 task간의 관계를 감지할 수 있다는 것이 된다. 예를 들어, 1번 task는 a 전문가를 80% 믿고 b 전문가를 15% 믿고 c 전문가를 5% 믿은 결정을 내리는 것이다. 이해를 돕기 위해 아래의 MoE(Mixture-of-experts) 수식을 보자.
위 식에서 g(x)i는 softmax의 확률(i번째 전문가를 몇 % 믿을지)를 나타내고, fi(x)는 i번째 전문가의 output(tower의 input)을 나타낸다. 따라서 g는 전문가들의 결과를 앙상블하는 gating network의 역할이라는 것을 알 수 있다. 이건 기존 MoE layer에 대한 이야기이고, 본 논문에서는 모두 더하는 weighted sum이 아니라 selective 하게 experts를 선택한 뒤, 이전 레이어의 input을 그대로 받는다고 한다. 이 역할을 수행하는 것이 gating network이고 결과적으로 train, inference 모두 속도 측면에서도 이득을 얻는다.
아래의 수식은 MoE를 multi gate로 확장한 것이다. 새로 추가된 k는 task를 의미한다.
2.
MMoE가 task간의 연관도에 따라 experts와 gating network를 어떻게 다르게 학습하는지 이해하기 위해, 논문에서는 task간의 연관도를 Pearson correlation으로 컨트롤할 수 있는 실험환경을 만들었다고 한다. 첫 번째는 분포에 기반하여 인공적으로 만들어진 데이터를 사용했고, 두번째는 UCI Census-income 데이터셋을 사용했다. 실험 결과, 두 태스크간에 연관도가 낮을수록 baseline 모델보다 성능이 좋은 것으로 나타났고, 이는 기존 모델의 약점(두 태스크간의 연관도가 낮을수록 shared-bottom multi task network의 성능이 떨어진다. 고양이와 개를 분류하는 멀티태스크보다 고양이와 자동차를 분류하는 멀티태스크의 성능이 낮은 것을 예로 들수 있다)을 성능적으로 잘 보완했다고 할 수 있다. 그리고 이 실험결과를 유튜브에 적용했을 때 역시 의미있는 성능 향상을 가져왔다고 한다.
3.
논문의 나머지 부분은 이론에 대한 레퍼런스들과 실험 결과에 대한 내용이다. 당연히 "robust하고 accuracy도 높다!" 라는 내용이기 때문에, 실험의 검증 과정에 관심 있는 사람만 읽으면 되겠다.