Multi-relational Poincare Graph Embeddings

NIPS2019上的文章(原文在此https://arxiv.org/abs/1905.09791),非欧空间上的知识图谱嵌入,很有意思,做为学习笔记,记录于此。

双曲嵌入最近受到很多关注,因为他比欧式空间更准确地、更简洁表示分层数据。然而,多关系知识图谱往往表现出多样性的分层数据,这是现有的双曲模型不能解决的。本文提出在双曲空间的庞加莱球上进行多关系知识图谱嵌入,学习关系特定的参数来对实体嵌入进行变换(包括莫比乌斯矩阵乘法和莫比乌斯矩阵加法)。

1 Introduction

双曲空间可看做离散树的连续化,非常适合建模分层数据。多种多样的分层数据已经被嵌入到双曲空间上,他需要更少的维度但在下游任务中取得了很好的结果。这说明了在非负曲率的空间(双曲空间)上建模树型的结构比在零曲率空间(欧式空间)上建模更有优势.

很多数据往往表现出多分层的结构,比如狮子在食物链的顶端而哺乳类型树的底端。尽管非欧几何在表示学习上已经有很多研究,但在多关系数据上的研究还很少,仅有的ICLR2019上的一篇效果还没欧式空间上好。在双曲空间上表示多关系数据的难点在于找到合适的方式表示节点,这样的表示还要满足不同关系下的不同分层。现有的很多用双线性建模多关系数据的方法用内积做为相似度函数,但在双曲空间中没有响应的度量函数。另外一些用欧式距离做为相似度函数的方法可以在双曲空间上找到对应的转换,但是效果可能没有双线性模型好。

本文提出MuPR,将分层多关系数据建模到双曲空间的庞加莱球上。在欧式空间上,超球的表面积随半径的增长是多项式增长,而在双曲空间上呈指数增长,所以从数的根节点出发,在双曲空间中有更多的空间来分开叶子节点。MuPR学习关系特定的参数来翻译实体嵌入,它的表现不仅超过了在其对应的欧式空间的模型,而且在WN18RR上的连接预测取得了SOTA效果。MuPR相比于欧式嵌入需要更少的参数。本文还可视化了学习到的嵌入,分析了庞加莱模型的特性,比如收敛速度,每个关系上的性能,和嵌入维度的影响。

2 背景知识

知识图谱是个多关系图,表示关于实体的一些事实。(e_{s},r,e_{o})\in E \times R\times E,其中 E 是实体集,R是关系集,知识图谱通常是不完备的,所以链接预测的目的是发现更多的事实。通常需要学习一个打分函数\phi :E \times R \times E,它为每个三元组指定一个分数s=\phi (e_{s},r,e_{o}), 这个分数再经过一个非线性函数,就可得到一个三元组是真三元组的概率。

知识图谱的关系呈现多方面的特性,如对称、反对称和传递,很多关系,如has_part蕴含了实体间的分层结构,此时把它们嵌入到双曲空间上比嵌入到欧式空间上好。

庞加莱球上的双曲几何

半径为1/\sqrt c,c>0的庞加莱球(\mathbb{B}_c^d,g^\mathbb{B})是一个d维的流形 \mathbb{B}_c^d=\{x\in \mathbb{R}^d:c||x||^2<1\} 连带黎曼度量g^\mathbb{B},这个黎曼度量与欧式度量的关系为:g^\mathbb{E}=\textbf{I}_{d},g^\mathbb{B}=(\lambda _x^c)^2g^\mathbb{E}, 其中\lambda _x^c=2/(1-c||x||^2).庞加莱球上的两个点x,y\in \mathbb{B}_c^d 间的距离通过测地线(也就是两点之间的最短距离)来度量:

                                             d_\mathbb{B}(x,y)=\frac{2}{\sqrt c}tanh^{-1}(\sqrt c||-x\oplus_{c}y ||)

其中||\cdot ||是欧式范数,即||x ||=\sqrt {x_1^2+x_2^2+\cdots +x_n^2},   \oplus _c 表示莫比乌斯加法:

                                      x\oplus _{c}y=\frac{(1+2c<x,y>+c||y||^2)x+(1-c||x||^2)y}{1+2c<x,y>+c^2||x||^2||y||^2}

其中<\cdot >是欧式内积。莫比乌斯乘法可以通过将双曲空间中的点x\in \mathbb{B}_{c}^d 通过对数映射log_{\textbf{0}}^c(x)映射到在\textbf{0}\in \mathbb{B}_{c}^d点的切空间上,然后在欧式切空间上与矩阵\textbf{M}\in \mathbb{R}^{d\times k}进行矩阵乘法,然后再通过在0点的对数映射映射回双曲空间。即

                                                                  \textbf{M}\otimes_c x=exp_{\textbf{0}}^c(\textbf{M}log_{\textbf{0}}^c(x))

3 多关系庞加莱嵌入

在不同的关系下,实体间可能用不同的层次关系,一个理想的嵌入模型应该能同时捕获所有的层次。

打分函数:双线性模型用欧几里得内积来度量两个实体间的相似度,但是在双曲空间中没有与欧式内积对应的度量。欧式内积可由欧式距离和范数表示,即

                                                      <x,y>=\frac{1}{2}(-d_{\mathbb{E}}(x,y)^2+||x||^2+||y||^2)

其中,d_{\mathbb{E}}(x,y)=||x-y||是欧式距离.

注意到这一点后,Poincare Glove的作者将其中的欧式距离替换成Poincare距离d_{\mathbb{B}}(x,y)

本文定义出多关系图嵌入中的打分函数为:

                                                       \phi(e_{s},r,e_{o})=-d(\textbf{e}_s^{(r)},\textbf{e}_{o}^{(r)})^2+b_s+b_o\cdots \cdots(*)

其中,d:E\times R\times E\rightarrow \mathbb{R}^+是个距离函数,\textbf{e}_s,\textbf{e}_o\in\mathbb{R}^d是实体的嵌入,b_s,b_o\in \mathbb{R} 是头实体和尾实体的标量偏置。\textbf{e}_s^{(r)}=\textbf{Re}_s,\textbf{e}_o^{(r)}=\textbf{e}_o+\textbf{r}分别表示经过特定关系变换后的头实体和尾实体嵌入,\textbf{R}\in\mathbb{R}^{d\times d}是对角关系矩阵,\textbf{r}\in\mathbb{R}^d是关系的翻译向量。可理解成\textbf{e}_s\textbf{R}进行拉伸,而尾实体\textbf{e}_o由关系向量进行翻译。

将以上定义扩展到双曲模型上,MuRP模型的打分函数定义为

                                                   \phi_{MuRP}(e_{s},r,e_{o})=-d_{\mathbb{B}}(\textbf{h}_s^{(r)},\textbf{h}_{o}^{(r)})^2+b_s+b_o

其中\textbf{h}_s,\textbf{h}_o\in\mathbb{B}^d_{c}是头尾实体的双曲嵌入。

\textbf{h}_s^{(r)}=exp_{\textbf{0}}^c(\textbf{R}log_{\textbf{0}}^c(\textbf{h}_s)),由莫乌比斯矩阵乘法得到:先用log_{\textbf{0}}^c将原始的头实体双曲嵌入\textbf{h}_s\in\mathbb{B}^d_{c}映射到庞加莱球在\textbf{0}点的切空间上,然后用对角矩阵\textbf{R}\in \mathbb{R}^{d \times d}去乘,最后再用exp_{\textbf{0}}^c映射回庞加莱球上。

\textbf{h}_o^{(r)}=\textbf{h}_o\oplus _{c}\textbf{r}_h在原始的尾实体的双曲嵌入上加上(莫比乌斯加法)关系的双曲嵌入。

由于关系矩阵\textbf{R}是对角矩阵,所以MuRP的参数随实体和关系的数量线性增长,可以扩展到很大的知识图谱。为了得到一个三元组正确的概率,还要在打分函数上加个非线性函数sigmoid,即\sigma (\phi_{MuRP}(e_{s},r,e_{o})).

为了比较双曲嵌入和欧式嵌入的性能,将打分函数在欧式空间上进行定义时的模型叫做MURE.

几何上的直观观察:

从(*)式看出偏置 b_s 和 b_o 确定了以\textbf{e}_s^{(r)}为中心的超球的半径,当\textbf{e}_o^{(r)}落到半径为\sqrt{b_s+b_o}的超球面内时,三元组(e_s,r,e_o)成立。由于头、尾实体的偏置并不一样,所以头尾实体决定不同的决策边界,关系特定的\textbf{R}\textbf{r}决定了经关系调整后的实体嵌入的位置,而特定实体的决策边界的半径却独立于关系。(*)式定义的打分函数类似于现有的翻译模型的打分函数,只是加了偏置,这改变了模型的几何结构。偏置为每个实体定义了一个以实体的嵌入向量为中心的影响球体,这样实体不再被看做一个点。球体间的重合度量了两个实体间的相关性。可以把关系看做在空间中去移动球体,所以只有由三元组中的关系连接的两个实体的球体才会重叠。

4.模型训练和黎曼优化

在训练时也引入了负三元组。损失函数是log似然:

                                          \pounds (y,p)=-\frac{1}{N}\sum _{i=1}^N(y^{i}log(p^{(i)})+(1-y^{(i)})log(1-p^{(i)}))

用随机梯度下降来优化欧式模型,用黎曼随机梯度下降优化双曲模型。为了计算黎曼梯度\bigtriangledown _{R}\pounds, 在欧式梯度\bigtriangledown _{E}\pounds上乘以庞加莱度量张量的逆,即\bigtriangledown _{R}\pounds=1/(\lambda _\theta ^c)^2\bigtriangledown _{E}\pounds,与欧式更新步\theta \leftarrow \theta -\eta \bigtriangledown _{E}\pounds不同,黎曼更新的第一步用 exp_\theta ^c 将梯度\bigtriangledown _{R}\pounds\in T_\theta \mathbb{B}_c^d映射到对应到庞加莱球的对应的测地线上,然后计算黎曼更新\theta \leftarrow exp_\theta ^c(-\eta \bigtriangledown _{R}\pounds).

补充知识:

1.庞加莱球模型是双曲几何中五个等距模型之一,每个模型在双曲模型上从不同的视角进行数学上的操作。等距的意思是从一个模型的度量空间到另一个模型的度量空间存在 一一对应的保持距离的映射。

2.庞加莱球上的每个点\textbf{x}\in\mathbb{B}^d_{c}都有一个切空间T_{\textbf{x}}\mathbb{B}^d_{c},一个d维的向量空间,是流形\mathbb{B}^d_{c}在节点x附近的局部一阶近似。对于庞加莱球来说切空间就是欧式空间T_{\textbf{x}}\mathbb{B}^d_{c}=\mathbb{R}^d, 指数映射exp^c_\textbf{x}:T_{\textbf{x}}\mathbb{B}^d_{c}\rightarrow \mathbb{B}^d_{c}定义为:

                                                   exp^c_\textbf{x}(\textbf{v})=\textbf{x}\oplus _c(tanh(\sqrt{c}\frac{\lambda _{\textbf{x}}^c||\textbf{v}||}{2})\frac{\textbf{v}}{\sqrt{c}||\textbf{v}||})

它的逆函数log^c_\textbf{x}: \mathbb{B}^d_{c} \rightarrow T_{\textbf{x}}\mathbb{B}^d_{c}定义为:

                                          log^c_\textbf{x}(\textbf{v})=\frac{2}{\sqrt{c}\lambda _{\textbf{x}}^c}tanh^{-1}(\sqrt{c}||-\textbf{x}\oplus _c \textbf{y}||)\frac{-\textbf{x}\oplus _c \textbf{y}}{||-\textbf{x}\oplus _c \textbf{y}||}

3.Krackhardt hierarchy score

\textbf{R}\in\mathbb{R}^{n\times n}是n阶有向图G的二元可达矩阵,

                                          \textbf{R}_{ij}=\begin{cases} 1 & \text{ if } there \ is \ a directed\ path\ from\ i\ to\ j \\ 0& oherwise \end{cases}

则图G的Krackhardt hierarchy score定义为

                                            \text{Khs}_G=\frac{\sum_{i=1}^{n}\sum_{j=1}^{n}1(\textbf{R}_{ij}==1\wedge \textbf{R}_{ij}==1 )}{\sum_{i=1}^{n}\sum_{j=1}^{n}1(\textbf{R}_{ij}==1 )}

注:图1其实没看很懂

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值