Drug side effects are closely related to the success and failure of drug development. Here we present a novel machine learning method for side effect prediction. The proposed method treats side effect prediction as a multi-label learning problem and uses sparse structure learning to model the relationships between side effects. Additionally, the proposed method adopts the adaptive graph regularization strategy to explore the local structure in drug data and fuse multiple types of drug features. An alternating optimization algorithm is proposed to solve the optimization problem. We collected chemical structures and biological pathway features of drugs as the inputs of our method to predict drug side effects. The results of the cross-validation experiment showed that our method could significantly improve the prediction performance compared to the other state-of-the-art methods. Besides, our model is highly interpretable. It could learn the drug neighbourhood relationships, side effect relationships, and drug features related to side effects. We systematically validated the information extracted by the model with independent data. Some prediction results could also be supported by literature reports. The proposed method could be applied to integrate both chemical and biological data to predict side effects and helps improve drug safety.