Tackling Data Heterogeneity in Federated Learning via Loss Decomposition