tasks *and* deciding how these networks share parameters grows this search space combinatorially. Most existing approaches draw from the deep learning perspective that each task has an underlying feature hierarchy, and tasks are related through an *a priori* alignment of their respective hierarchies. These methods have been reviewed in more detail in previous work [@Meyerson:2018; @Ruder:2017]. Another existing approach adapts network structure by learning task hierarchies, though it still assumes this strong hierarchical feature alignment [@Lu:2016].

Soft ordering is a recent approach that avoids such an alignment by allowing shared layers to be used across different depths [@Meyerson:2018]. Through backpropagation, the joint model learns how to use each shared (potentially nonlinear) layer $W_d$ at each depth $d$ for the $t$-th task. This idea is implemented by learning a distinct scalar $s_{tdl}$ for each such location, which then multiplies the layer’s output. The final output at depth $d$ for the task is then the sum of these weighted outputs across layers, i.e., a *soft merge*. More generally, a soft merge is a learnable function given by $$\label{eq:soft_merge}
\text{softmerge}(\text{in}_1, \ldots, \text{in}_M) = \sum_{m=1..M} s_{m}\text{in}_m, \text{ with } \sum_{m=1..M} s_{m} = 1 \, ,$$ where the $\text{in}_m$ are a list of incoming tensors, 