While traditional classification outputs are usually binary and single-label, there is a need for more complex outputs in many contexts. For example, when classifying data such as images or texts, there is usually more than one label or tag that can be assigned to it (multi-label classification). An image might show the sky, some clouds, and possibly the sun or snow. So possible tags would be "weather", "sky", "cloud" etc. Often, such labels are structured in a hierarchy (hierarchical multi-label classification). For instance, the label "weather" would be above the label "cloud" in a hierarchy. It is also possible that the needed output is one label out of a large number of different possible labels (multi-class). Other forms of structured outputs include parse trees and graphical models. To sum up, there is a need for modeling not only complex input data, but also using complex output taxonomies.