1. A method for associating semantically-related items of a plurality of item types, comprising: (a) embedding training items of the plurality of item types in a joint embedding space configured in a memory coupled to at least one processor; (b) learning one or more mappings into the joint embedding space for each of the item types to create a trained joint embedding space and one or more learned mappings; and (c) associating one or more embedded training items with a first item based upon a distance in the trained joint embedding space from the first item to each said associated embedded training items.