通过将层级结构中的每个元素表示为一个稠密向量来将嵌入应用于分层数据,该向量捕获了元素在其结构中的位置、关系和上下文。分层数据,如组织结构图、产品分类或文件系统,以父子关系组织。嵌入通过学习反映邻近性(例如,同级或父子节点)和层级深度的向量表示来编码这些关系。例如,在产品类别树中,像“电子产品”这样的父节点,其嵌入可能比与“服装”等无关类别更接近其子节点“笔记本电脑”和“智能手机”的嵌入。这使得模型能够推断节点之间的语义或结构相似性,即使它们没有直接连接。
一种常见的方法是使用基于图的方法,如 Node2Vec 或特定于树的算法。这些技术遍历层级结构(例如,使用随机游走)生成节点序列,然后将这些序列输入到类似于 Word2Vec 的嵌入模型中。例如,在公司的组织结构图中,游走可能从根 CEO 节点开始,移至部门主管,然后到团队负责人,最后到个体贡献者。模型学习到,出现在相似路径中的节点(例如,不同部门的团队负责人)在向量空间中应该具有更近的嵌入。另一种方法涉及递归神经网络,其中将子节点的嵌入组合(例如,求和或平均)以表示其父节点,从而保留层级依赖关系。例如,在文件系统中,文件夹的嵌入可以从其子文件夹和文件派生,捕获聚合的上下文。
实际实现通常会解决诸如深度变化或稀疏性等挑战。在推荐系统中,分层嵌入有助于传播用户偏好:如果用户点击了“无线耳机”子类别,其父类别“音频”和祖父类别“电子产品”的嵌入可以更新以反映此交互,从而改进跨层级的推荐。在自然语言处理(NLP)中,分析树嵌入通过将短语表示为子词嵌入的组合来捕获句法关系。训练通常涉及优化目标,如重建层级结构(例如,预测父节点)或最小化相关节点之间的距离。像 Gensim 或 PyTorch 这样的库提供了工具来定制这些方法,允许开发人员根据层级结构的复杂性平衡计算效率和准确性。