Towards Understanding Mixture of Experts in Deep Learning

Zixiang Chen, Yihe Deng, Yue Wu, Quanquan Gu, Yuanzhi Li
8/4/2022
cs.LGcs.AIstat.ML

No official code found. Best implementation: uclaml/MoE (37 stars, Apache-2.0, last commit 2023-12-12). 1 more below.

Abstract

The Mixture-of-Experts (MoE) layer, a sparsely-activated model controlled by a router, has achieved great success in deep learning. However, the understanding of such architecture remains elusive. In this paper, we formally study how the MoE layer improves the performance of neural network learning and why the mixture model will not collapse into a single model. Our empirical results suggest that the cluster structure of the underlying problem and the non-linearity of the expert are pivotal to the success of MoE. To further understand this, we consider a challenging classification problem with intrinsic cluster structures, which is hard to learn using a single expert. Yet with the MoE layer, by choosing the experts as two-layer nonlinear convolutional neural networks (CNNs), we show that the problem can be learned successfully. Furthermore, our theory shows that the router can learn the cluster-center features, which helps divide the input complex problem into simpler linear classification sub-problems that individual experts can conquer. To our knowledge, this is the first result towards formally understanding the mechanism of the MoE layer for deep learning.

View on arXivView PDF

Code Implementations(2)

uclaml/MoECommunity100%
Apache-2.0

Towards Understanding the Mixture-of-Experts Layer in Deep Learning

377Python, Jupyter NotebookOct 12, 20222 years agoApache-2.0
MIT

Implementation of "Towards Understanding Mixture of Experts in Deep Learning", NeurIPS 2022

100Python, Jupyter NotebookJan 4, 20233 years agoMIT

Cite this paper

@article{chen2022towards,
  title  = {Towards Understanding Mixture of Experts in Deep Learning},
  author = {Zixiang Chen and Yihe Deng and Yue Wu and Quanquan Gu and Yuanzhi Li},
  year   = {2022},
  eprint = {2208.02813},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2208.02813v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2208.02813.svg)](https://codeofpaper.com/paper/2208.02813)

Discussion