[NeurIPS 2017] Poincaré Embeddings for Learning Hierarchical Representations

news2024/11/23 1:11:47

Contents

  • Introduction
  • Poincaré Embeddings
    • The Limitations of Euclidean Space for Hierarchical Data
    • Embedding Hierarchies in Hyperbolic Space
  • Evaluation
  • References

Introduction

  • 如今,表征学习变得越来越重要 (e.g. word embedding, embeddings of graphs, embeddings of multi-relational data),许多复杂数据集也都具有一定的层次结构 (latent hierarchical structures),但欧氏空间中优化得到的 Embeddings 建模复杂关系的能力受限于 embed 维数
  • 为了增强 embed 对表征对象间复杂关系的表征能力,作者提出将具有层次关系的表征对象嵌入到一种双曲空间 – n n n 维 Poincaré ball 中。此外,作者基于 Riemannian optimization 对 Poincaré ball 中的 embed 进行优化。实验证明 Poincaré embeddings 在编码具有层次特征的数据时,在表征能力和泛化能力上都超过了 Euclidean embeddings,特别是在低维数条件下

Poincaré Embeddings

The Limitations of Euclidean Space for Hierarchical Data

  • 对于 hierarchical data,假如树的 branching factor 固定,则随着层数的加深,树的结点数将以指数级速度增长。如果要生成树的每个结点对应的 embed,则需要使得结点间的距离符合树结构,子结点和父结点间的距离应该比较接近,不同分支的叶结点间应彼此远离
  • 下图展示了将 branching factor 为 4 的树结构嵌入到二维欧氏空间,可以看到欧氏空间的位置已经不太够用了,如果树结构层数更多,不同分支的各个叶结点离得将更近,这些叶结点在树结构上离得很远,但嵌入在欧氏空间上时距离确会很近。欧氏空间适合嵌入网格结构的数据,如果想要更好地表征更深层次的树结构,就必须使用更高维度的欧氏空间,这可能会导致更大的时间、空间开销甚至模型过拟合
    在这里插入图片描述

Embedding Hierarchies in Hyperbolic Space

  • Hyperbolic Space 可以很好地建模 hierarchical data,有研究表明 “any finite tree can be embedded into a finite hyperbolic space such that distances are preserved approximately”.
  • 下图展示了将树结构嵌入到 Poincaré disk. 由于靠近单位圆的边界时,距离以指数级速度增长,因此下图中每个相邻节点间的距离实际上都是相等的,并且虽然叶结点看上去比较拥挤,但实际上相隔的距离非常远
    在这里插入图片描述

Poincaré Embeddings

  • 作者假设要表征的数据具有隐性的层次树结构 (并没有直接获取到层次树结构),然后通过无监督学习的方式将层次数据嵌入到 Poincaré ball 中来让数据的 embed 间的距离反映它们之间的语义相似度。引入层次树的先验结构信息有助于降低模型的时间和空间开销,并且提高模型的泛化能力

Why Poincaré ball model instead of a simple Poincaré disk model?
(1) First, in many datasets such as text corpora, multiple latent hierarchies can co-exist, which can not always be modeled in two dimensions.
(2) Second, a larger embedding dimension can decrease the difficulty for an optimization method to find a good embedding (also for single hierarchies) as it allows for more degrees of freedom during the optimization process.

  • 为了便于进行梯度优化,作者使用 Poincaré ball model (Its distance function is differentiable and it has a relatively simple constraint on the representations.). Poincaré ball model 对应黎曼流形 ( B d , g x ) (\mathcal B^d,g_x) (Bd,gx),其中 B d = { x ∈ R d ∣ ∥ x ∥ < 1 } \mathcal B^d=\{x\in\R^d|\|x\|<1\} Bd={xRd∣∥x<1} g x g_x gx 为 Riemannian metric tensor
    在这里插入图片描述其中 x ∈ B d x\in\mathcal B^d xBd g E = I n g^E=I_n gE=In 为 Euclidean metric tensor. u , v ∈ B d u,v \in\mathcal B^d u,vBd 间的距离为
    在这里插入图片描述

Optimization

  • 对于具有层次结构的数据 S = { x i } i = 1 n \mathcal S=\{x_i\}_{i=1}^n S={xi}i=1n,我们想要找到它们对应的 embed Θ = { θ i } i = 1 n \Theta=\{\theta_i\}_{i=1}^n Θ={θi}i=1n,其中 θ i ∈ B d \theta_i\in\mathcal B^d θiBd,使得 embed 间的 Poincaré distance 能反映它们之间的语义相似程度。为了得到 embed,需要求解如下优化问题
    在这里插入图片描述(损失函数定义见 “Evaluation/Embedding Taxonomies” 一节)
  • 由于 Poincaré Ball 为黎曼流形,因此我们可以通过 stochastic Riemannian optimization methods (RSGD, RSVRG, …) 求解。令 T θ B \mathcal T_\theta\mathcal B TθB 为点 θ ∈ B d \theta\in\mathcal B^d θBd 处的 tangent space, ∇ R ∈ T θ B \nabla_R\in\mathcal T_\theta\mathcal B RTθB L ( θ ) \mathcal L(\theta) L(θ) 的 Riemannian gradient, ∇ E \nabla_E E L ( θ ) \mathcal L(\theta) L(θ) 的 Euclidean gradient,RSGD 的参数更新方式如下:
    θ t + 1 = θ t − η t ∇ R L ( θ t ) \theta_{t+1}=\theta_t-\eta_t\nabla_R\mathcal L(\theta_t) θt+1=θtηtRL(θt)由于 Poincaré ball 为双曲空间的一种 conformal model,因此相邻向量在 Poincaré ball 中的角度和在欧氏空间里的角度相同 (具有保角性),但向量长度在两个空间内不一样,因此为了从 Euclidean gradient 推出 Riemannian gradient,需要将 ∇ E \nabla_E E 乘上 Poincaré ball metric tensor 的逆 g θ − 1 g_\theta^{-1} gθ1 来进行缩放
    ∇ R = ( 1 − ∥ θ t ∥ 2 ) 2 4 ∇ E \nabla_R=\frac{(1-\|\theta_t\|^2)^2}{4}\nabla_E R=4(1θt2)2E此外,还需要限制优化时的 embed 位于单位圆内
    在这里插入图片描述其中 ε = 1 0 − 5 \varepsilon=10^{-5} ε=105. 最终的参数更新公式
    在这里插入图片描述

关于保角性 (conformal)
(1) A metric g ~ \tilde g g~ is said to be conformal to another metric g g g if it defines the same angles, i.e.
在这里插入图片描述for all x ∈ M x\in M xM u , v ∈ T x M \ { 0 } u,v\in T_xM \backslash \{0\} u,vTxM\{0}.
(2) Poincaré ball 中的 metric tensor g x D g_x^{\mathbb D} gxD
在这里插入图片描述其中 g E = I n g^E=I_n gE=InEuclidean metric tensor,它们满足
在这里插入图片描述因此 Poincaré ball model 具有保角性
(3) 这也等价于存在 smooth function λ : M → R λ : M → \R λ:MR,i.e.,conformal factor,使得对所有 x ∈ M x\in M xM,都有 g ~ x = λ x 2 g x \tilde g_x=\lambda_x^2 g_x g~x=λx2gx


Training Details

  • 作者还使用了一些 tricks 来提升模型性能:(1) 用均匀分布 U ( − 0.001 , 0.001 ) \mathcal U(-0.001,0.001) U(0.001,0.001) 来随机初始化 embed,这可以让所有 embed 在初始化时靠近 B d \mathcal B^d Bd 的原点。(2) 为了得到一个较好的 initial angular layout,作者设置了 initial “burn-in” phase,在 10 个 epochs 内使用 η / 10 \eta/10 η/10 的学习率进行训练。结合均匀分布的位置初始化策略,这可以提升 angular layout 的质量,同时又不会让 embed 过于靠近边界

Evaluation

Embedding Taxonomies

  • 作者在 transitive closure of the WORDNET noun hierarchy 上进行了实验,用于测试 Poincaré embeddings 对具有 clear latent hierarchical structure 的数据的嵌入能力。该数据集 D = { ( u , v ) } \mathcal D=\{(u,v)\} D={(u,v)} 包含 82,115 nouns 之间的 743,241 hypernymy relations,损失函数采用
    L ( Θ ) = − ∑ ( u , v ) ∈ D log ⁡ e − d ( u , v ) e − d ( u , v ) + ∑ v ′ ∈ N ( u ) e − d ( u , v ′ ) \begin{align*} \mathcal{L}(\Theta) &= -\sum_{\substack{(u,v) \in \mathcal{D}}} \log \frac{e^{-d(u,v)}}{e^{-d(u,v)} + \sum_{v'\in \mathcal{N}(u)} e^{-d(u, v')}} \\ \tag{14} \end{align*} L(Θ)=(u,v)Dloged(u,v)+vN(u)ed(u,v)ed(u,v)其中 N ( u ) = { v ′ ∣ ( u , v ′ ) ∉ D } ∪ { u } \mathcal N(u)=\{v'|(u,v')\notin\mathcal D\}\cup\{u\} N(u)={v(u,v)/D}{u} u u u 的负样本集合,训练时给每个正样本随机采样 10 个负样本,整个优化过程十分类似于 Word2vec’s Skip-Gram loss with negative sampling
  • Reconstruction. 为了直接检验 embed 的表征质量,作者直接从 embed 重建数据,得到重建数据属于所有名词的概率,利用概率进行排序,其中 ground-truth 的 Rank 可以作为 metric. 作者将所有样本 ground-truth Rank 的均值以及它们的 mAP 作为测试指标
  • Link Prediction. 为了检验 embed 的泛化能力,作者将数据集划分为训练、验证和测试集来进行 link prediction,可以得到正样本对间的距离 d ( u , v ) d(u,v) d(u,v) 在所有负样本对距离 { d ( u , v ′ ) ∣ u , v ′ ∉ D } \{d(u,v')|u,v'\notin\mathcal D\} {d(u,v)u,v/D} 中的 Rank. 作者将所有正样本对 Rank 的均值以及它们的 mAP 作为测试指标

在这里插入图片描述

Euclidean: d ( u , v ) = ∥ u − v ∥ 2 d(u, v) = \|u − v\|^2 d(u,v)=uv2
Translational: d ( u , v ) = ∥ u − v + r ∥ 2 d(u, v) = \|u − v + r\|^2 d(u,v)=uv+r2. For this score function, we also learn the global translation vector r r r during training.

  • 下图为 mammals 子树对应的 Two-dimensional Poincaré embeddings 的可视化,蓝边为 Ground-truth “is-a” relations. A Poincaré embedding with d = 5 d = 5 d=5 achieves mean rank 1.26 and MAP 0.927 on this subtree.
    在这里插入图片描述

Network Embeddings

  • 作者在 4 个 social networks 数据集上进行了 link prediction 实验,存在边的概率值采用下式计算:
    在这里插入图片描述其中 r , t > 0 r,t>0 r,t>0 为超参

在这里插入图片描述


Lexical Entailment

在这里插入图片描述

References

  • paper: Nickel, Maximillian, and Douwe Kiela. “Poincaré embeddings for learning hierarchical representations.” Advances in neural information processing systems 30 (2017).
  • code: https://github.com/facebookresearch/poincare-embeddings
  • Implementation by Gensim: https://radimrehurek.com/gensim/models/poincare.html and a jupyter notebook tutorial: https://nbviewer.org/github/RaRe-Technologies/gensim/blob/develop/docs/notebooks/Poincare%20Tutorial.ipynb
  • Implemented by “Hyperbolic Entailment Cones for Learning Hierarchical Embeddings”: https://github.com/dalab/hyperbolic_cones
  • Hyperbolic Geometry and Poincaré Embeddings
  • Implementing Poincaré Embeddings

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在电脑上安装 Windows 版桌面编辑器 v7.3

线上编辑器的桌面端版本不需要持续的互联网连接&#xff0c;还可在计算机上处理脱机文件。因此&#xff0c;如果您需要此类功能&#xff0c;可从我们的网站中下载并安装桌面编辑器。 ONLYOFFICE桌面编辑器最新版 最近 ONLYOFFICE 发布了 v7.3&#xff0c;最新版本的桌面编辑器…

SpringBoot+Vue点餐系统

简介&#xff1a;本项目采用了基本的springbootvue设计的点餐。系统。详情请看截图。经测试&#xff0c;本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVue点餐系统源码作者LHL项目类型Java EE项目 &#xff08;前后分离&a…

ESP-IDF:命令模式测试

ESP-IDF:命令模式 /命令模式/ /设计模式之开闭原则&#xff0c;对增加开放对修改关闭/ #include #include class ClientCommands{ //统一管理命令&#xff0c;这是比观察者模式多出来的地方 public: void AddMoney(){ cout<<“add money”<<endl; } void AddEqu…

图解LeetCode——1145. 二叉树着色游戏(难道:中等)

一、题目 有两位极客玩家参与了一场「二叉树着色」的游戏。游戏中&#xff0c;给出二叉树的根节点 root&#xff0c;树上总共有 n 个节点&#xff0c;且 n 为奇数&#xff0c;其中每个节点上的值从 1 到 n 各不相同。 最开始时&#xff1a; 「一号」玩家从 [1, n] 中取一个值…

Ubuntu22.04安装nvidia显卡驱动

Ubuntu22.04安装nvidia显卡驱动 目录 方法一&#xff1a;使用官方的NVIDIA驱动进行手动安装&#xff08;稳定、靠谱&#xff09; 方法二&#xff1a;使用系统自带的“软件和更新”程序-附加驱动更新&#xff08;需要联网&#xff0c;稳定性无法验证&#xff09; 浓缩极简方法…

MySQL入门篇-视图简介

备注:测试数据库版本为MySQL 8.0 这个blog我们来聊聊MySQL视图。 前言: 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中&#xff0c;是一个虚表。 即数据库中只存放视图的定义而不存放视图对应的数据&#xff0c;这些数据仍存放在导出视图的基本表中。 视…

[Windows] 微信超级管家,自动好友回复、计数、自动同意、群发、好友导出、消息日志、无限多开

简介 微信超级管家是一款大神针对微信制作的工具&#xff0c;它的主要功能包括了自动回复、好友计数、自动同意、群发、好友导出、消息日志、无限多开等等&#xff0c;让你拥有无限潜力哈&#xff0c;经常使用微信电脑版的朋友一定会用的上。 下载 微信超级管家 软件功能 1…

安全测试之浅析静态应用

SAST&#xff0c;Static Application Security Testing&#xff0c;即静态应用安全测试&#xff0c;也叫静态分析&#xff0c;是一种测试方法&#xff0c;一直是应用程序安全性工作的核心部分。根据Forrester的 The State Of Application Security, 2022一文的预测&#xff0c;…

云计算|OpenStack|社区版OpenStack安装部署文档(七--- 仪表盘服务dashboard的安装部署---Rocky版)

前言&#xff1a; 仪表盘是一般项目的标配&#xff0c;有了仪表盘可以降低运维工作&#xff0c;并且很多的管理工作是可以可视化的。本节计划在控制节点安装openstack官网的仪表盘项目 openstack由于是一个开源的社区版本云计算项目&#xff0c;因此&#xff0c;它的web仪表盘…

【Core】.net core 3.1 api 返回实体类数据存在null,导致小程序调用接口也直接显示了null,原来要这样设置才可

对接过API接口的小伙伴都知道&#xff0c;接口返回的Json格式数据&#xff0c;有些字段可能会出现null的情况&#xff0c;并且还是个字符串&#xff0c;直接显示在用户界面上给人感觉出bug了 文章目录【开发环境】【场景描述】【返回null值重现】1&#xff09;创建新项目2&…

细讲TCP三次握手四次挥手(二)

TCP/IP 协议族 应用层 应用层( application-layer &#xff09;的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程&#xff08;进程&#xff1a;主机中正在运行的程序&#xff09;间的通信和交互的规则。 对于不同的网络应用需要不同的应用层协议…

基本放大器电路- (一)

运算放大器组成的电路五花八门&#xff0c;令人眼花瞭乱&#xff0c;是模拟电路中学习的重点。在分析它的工作原理时倘没有抓住核心&#xff0c;往往令人头大。为此本人特搜罗天下运放电路之应用&#xff0c;来个“庖丁解牛”&#xff0c;希望各位从事电路板维修的同行&#xf…

精讲rpc框架,这么讲不怕你不明白!

谈到rpc框架可能有点陌生感&#xff0c;但是如果换成框架语言Ocaml&#xff0c;大家一定不陌生。 众所周知&#xff0c;ocaml是一款专门做functional programming的一款软件&#xff0c;尤其是它的界面非常简洁&#xff0c;还是专门的server进行线上编写。 rpc框架和ocaml是什…

一篇就看懂的文件操作

文件操作1为什么使用文件我们前面学习结构体时&#xff0c;写了通讯录的程序&#xff0c;当通讯录运行起来的时候&#xff0c;可以给通讯录中增加、删除数据&#xff0c;此时数据是存放在内存中&#xff0c;当程序退出的时候&#xff0c;通讯录中的数据自然就不存在了&#xff…

【Java并发编程】 interrupt 方法详解

【Java并发编程】 interrupt 方法详解 文章目录【Java并发编程】 interrupt 方法详解1.介绍2.打断阻塞状态线程3.打断正常状态的线程4.两阶段终止模式5.打断 park 线程1.介绍 程序中&#xff0c;有些线程的终端需要外部干预&#xff0c;比如有线程存在while(true)循环&#xf…

值得拥有并收藏的 3个安卓/鸿蒙手机解锁软件

手机无论支持哪种操作系统&#xff0c;都占据了每个人口袋里的空间。随着大量移动设备的使用&#xff0c;搜索引擎上也出现了同样数量的查询&#xff0c;其中最常见的是提供安卓/鸿蒙屏幕锁定删除工具。由于安卓是当今最畅销的设备&#xff0c;我们的首要任务是为您提供最好的安…

矿山安全生产监测预警系统 opencv

矿山安全生产监测预警系统通过pythonopencv网络模型计算机视觉技术&#xff0c;对现场画面中人的不安全行为”、“物的不安全状态”、“环境的不安全因素”三方面出发进行实时监测&#xff0c;当监测到现场画面中人员未穿反光衣行为、明火烟雾、未穿安全帽行为、矿车掉道识别、…

【王道数据结构】第三章 | 栈和队列

目录 一、栈stack 基本概念 基本操作 存储结构​​​​​​​ 二、队列Queue 基本概念 队列的基本操作 存储结构 三、栈的应用 栈在括号匹配中的应用 栈在表达式求值中的应用​编辑 栈在递归中的应用 一、栈stack 基本概念 只允许在一端(栈顶top)进行插入或删除操…

大数据看全国疫情生活,北京、武汉已过疫情拐点

自2022年11月末&#xff0c;很多地区新冠病例数据呈现下降趋势&#xff0c;与实际感知有明显差异。2022年12月14日&#xff0c;国家疾控中心发布消息&#xff0c;核酸检测实行“愿检尽检”&#xff0c;不再公布无症状感染者数据。因此&#xff0c;网友们想要了解所在地和老家的…

python能做的100件事04 - python解析PDF

1. python常用pdf库 名称特点PyPDF2已不再维护&#xff0c;继任者PyPDF4 ,但很长时间没有更新了,能读不能写pdfrw能读不能写&#xff0c;但可以兼容ReportLab写ReportLab商业版的开源版本&#xff0c;能写不能读pikepdf能读不能写pdfplumber能读不能写PyMuPDF读写均可,基于GPL…