In many event detection applications, training data may contain tags with multiple, simultaneous events. This is particularly likely when the definition of 'event' is broad and includes events that can persist for an extended period of time. Decomposing a mixed signal into signals corresponding to individual events is non-trivial. In this paper, we propose a non-negative matrix factorization (NMF) method that generates independent dictionaries for different events from training data with overlapping events. The proposed method adds a mask matrix into the regularization term in conventional NMF approaches. This mask matrix captures known event labels in the training data, so that only related dictionary terms are updated during iteration. The effectiveness of the proposed approach is evaluated using both synthetic and real data.