Submodularity In Machine Learning and Artificial Intelligence