Fine-Grained Entity Typing in Hyperbolic Space
论文地址:https://aclanthology.org/W19-4319/
代码:https://github.com/nlpAThits/figet-hyperbolic-space
细粒度实体分类任务中,实体类别之间存在复杂的层次关系,作者研究了在双曲空间中进行实体类别嵌入的方法,来更好地描述这种层次关系。
之前的研究通过分层loss或者在欧氏空间中进行类别嵌入来捕获实体类别标签的层次关系,但是在欧氏空间中不能很好地嵌入层次结构,这个问题在双曲空间中得到较好的解决。在双曲空间中两点之间的距离为它们之间的测地线的长度,测地线长度随着到原点之间的距离指数级增长。越远离中心的位置,两点之间的测地距离会越大,可以很好地容纳下树结构中指数增长的子节点。
作者的贡献如下:
- 开发了一个细粒度实体分类模型将实体类型和实体提及映射到双曲空间
- 比较了专家构建(WordNet)和自动构建的两种不同的实体层次体系
- 研究了在实体分类模型中用双曲空间替换欧氏空间的影响,发现双曲模型在超精细类型上效果显著
1 数学背景:庞加莱编码
欧氏空间是平坦的空间,流形就是弯曲的空间,有一类流形被称为微分流形,也称为光滑流形,是带有微分结构的拓扑流形。微分流形在每一点可微,可以看成三维欧氏空间中曲线和曲面向更高维空间的推广。微分流形是弯曲的空间,而曲率可以描述弯曲程度,因此曲率空间就是用曲率描述的微分流形,分为常曲率空间和混合曲率空间。常曲率空间中各处的曲率是常数,曲率处处为0的常曲率空间就是处处平坦的欧氏空间,为正常数的是球面空间,为负常数的是双曲空间。
二维双曲空间可以建模为开放单位圆盘,即所谓的庞加莱圆盘,其中单位圆表示无穷大,即当双曲空间中的一个点接近无穷大时,其范数在庞加莱圆盘模型中接近 1。一般的 n 维空间情况下,圆盘模型变成了庞加莱球,对于开放单位球中点,用以下公式描述:
B
n
=
{
x
∈
R
n
∣
∥
x
∥
<
1
}
\mathcal{B}^n = \{x\in\R^n \quad |\quad \lVert x \rVert < 1 \}
Bn={x∈Rn∣∥x∥<1}
两个点
u
,
v
∈
B
n
\mathcal{u,v}\in \mathcal{B}^n
u,v∈Bn 之间的距离如下:
d
H
(
u
,
v
)
=
arcosh
(
1
+
2
∥
u
−
v
∥
2
(
1
−
∥
u
∥
2
)
(
1
−
∥
v
∥
2
)
)
d_{H}(\mathbf{u}, \mathbf{v})=\operatorname{arcosh}\left(1+2 \frac{\|\mathbf{u}-\mathbf{v}\|^{2}}{\left(1-\|\mathbf{u}\|^{2}\right)\left(1-\|\mathbf{v}\|^{2}\right)}\right)
dH(u,v)=arcosh(1+2(1−∥u∥2)(1−∥v∥2)∥u−v∥2)
以
O
O
O 为原点,当
∥
u
∥
,
∥
v
∥
→
1
\lVert u \rVert, \lVert v \rVert \to 1
∥u∥,∥v∥→1 时,
d
H
(
u
,
v
)
→
d
H
(
u
,
O
)
+
d
H
(
O
,
v
)
d_{H}(\mathbf{u}, \mathbf{v}) \to d_{H}(\mathbf{u}, \mathbf{O})+d_{H}(\mathbf{O}, \mathbf{v})
dH(u,v)→dH(u,O)+dH(O,v)
也就是说, u u u 和 v v v 之间的路径收敛到通过原点的路径。这种行为可以被视为连续的树状层次结构,其中两个兄弟节点之间的最短路径穿过它们的共同祖先。
随着点远离中心,点之间的双曲线距离呈指数增长。这反映了随着深度的增加,树中节点的数量呈指数增长,因此双曲空间自然适合表示树,进而表示层次结构。
通过在庞加莱球中编码层次结构,使层次结构顶部附近的项位于原点附近,底部项位于无穷远处,并使在层次结构中共享父项的项彼此靠近。庞加莱编码的范数表示层次结构中的深度,编码之间的距离表示各个项的相似性。
上图为将WordNet中的名词分别编码到欧氏空间和双曲空间的结构,对于双曲空间模型,图中显示的距离不是实际的向量距离,而使用上面的公式计算。
2 双曲空间中的实体分类
该部分的任务是分析在细粒度实体分类任务中,双曲空间和欧氏空间对建模类别的层次信息的影响。为了检验度量空间和层次结构之间的关系,作者提出学习一个映射模型将提及及其上下文的特征表示映射到向量空间,将实例嵌入到更接近其目标类型的位置。
在 ground-truth 中,每个实例都有很多个类别标签,作者将任务限定为预测固定数量的类别。
模型架构:上图是模型的整体结构图,在将提及映射到双曲空间的模块中,作者考虑到类别标签的层次关系,提出了多层次映射的结构,将映射分为三个等级:Coarse、Fine、Ultra,对应于三个映射函数。随着类别的粒度变细,目标实体类别的解空间变大,映射函数的复杂性也随之增大,因此将这三个映射函数排列为三个层次。将每一层的投影嵌入输入到下一个投影中,可以引入一个归纳偏差,这将引导细粒度函数映射到编码空间中的正确位置。
提及和上下文编码:对于上下文,作者基于Ultra-Fine Entity Typing的编码器,并使用相对位置编码,取代了原模型中的 location embedding,相对位置编码 p i p_i pi 反映了第 i i i 个词和提及之间的词距离。在该比编码器的基础上,作者使用了一个Bi-LSTM和自注意力层得上下文编码 C ∈ R d c C\in \R^{d_c} C∈Rdc。提及编码使用Char-CNN,以及注意力层得到 M ∈ R d m M \in \R^{d_m} M∈Rdm
庞加莱球空间映射函数:作者使用了 Embedding Text in Hyperbolic Spaces 中 re-parameterization 的变体方法,将特征映射到庞加莱球空间中,具体来说,需要根据提及和上下文编码计算出一个方向向量
r
r
r 和向量幅值
λ
\lambda
λ ,公式如下:
r
ˉ
=
φ
d
i
r
(
e
(
m
,
c
)
)
,
r
=
r
ˉ
∥
r
ˉ
∥
λ
ˉ
=
φ
n
o
r
m
(
e
(
m
,
c
)
)
,
λ
=
σ
(
λ
ˉ
)
\begin{gathered} \bar{r}=\varphi_{d i r}(e(m, c)), \quad r=\frac{\bar{r}}{\|\bar{r}\|} \\ \bar{\lambda}=\varphi_{n o r m}(e(m, c)), \quad \lambda=\sigma(\bar{\lambda}) \end{gathered}
rˉ=φdir(e(m,c)),r=∥rˉ∥rˉλˉ=φnorm(e(m,c)),λ=σ(λˉ)
其中
φ
d
i
r
,
φ
n
o
r
m
\varphi_{dir},\varphi_{norm}
φdir,φnorm 可以是可训练的任意函数(如MLP、线性变换),
σ
\sigma
σ 是 sigmoid 函数,确保
λ
∈
(
0
,
1
)
\lambda \in (0,1)
λ∈(0,1) ,映射到庞加莱球空间的位置为
v
=
λ
r
v = \lambda r
v=λr ,这使得可以使用Adam等优化器,否则还需要使用双曲几何优化方法,如黎曼SGD。
模型优化:优化目标是在相同的度量空间中,使得提及、上下文的实例嵌入与目标类别嵌入靠近。在双曲空间、欧氏空间两种度量空间中,距离函数分别为双曲距离 d H d_H dH 和欧氏距离 d E d_E dE 。因为庞加莱模型与双曲空间之间是共形映射(保角变换),因此双曲空间中两条曲线之间的夹角等于它们在庞加莱球空间(欧氏空间)中对应曲线的夹角。因此余弦距离 d c o s d_{cos} dcos 也可以在庞加莱模型中使用。作者提出最小化每个度量空间中定义的距离和余弦距离的组合来学习嵌入。(理由没看懂,magic……)
因为双曲距离函数
d
H
d_{H}
dH 导数的不稳定性
lim
y
→
x
∂
x
∣
d
H
(
x
,
y
)
∣
→
∞
∀
x
∈
B
n
\lim _{y \rightarrow x} \partial_{x}\left|d_{H}(x, y)\right| \rightarrow \infty \forall x \in \mathcal{B}^{n}
limy→x∂x∣dH(x,y)∣→∞∀x∈Bn,作者选择最小化距离的平方,因为其在庞加莱模型中有连续导数。对于庞加莱球中的两点
u
,
v
∈
B
n
u, v \in \mathcal{B}^n
u,v∈Bn ,最小化目标如下:
d
B
(
u
,
v
)
=
α
(
d
H
(
u
,
v
)
)
2
+
β
d
cos
(
u
,
v
)
d_{\mathcal{B}}(u, v)=\alpha\left(d_{H}(u, v)\right)^{2}+\beta d_{\cos }(u, v)
dB(u,v)=α(dH(u,v))2+βdcos(u,v)
对于欧氏空间中两点
x
,
y
∈
R
n
x, y \in \mathbb{R}^{n}
x,y∈Rn 最小化目标如下:
d
R
(
x
,
y
)
=
α
d
E
(
x
,
y
)
+
β
d
cos
(
x
,
y
)
d_{\mathbb{R}}(x, y)=\alpha d_{E}(x, y)+\beta d_{\cos }(x, y)
dR(x,y)=αdE(x,y)+βdcos(x,y)
3 层次类别体系
数据:Ultra-Fine entity typing 数据集包含 10331 个名词短语形式的目标实体类型,并分为三个粒度级别:粗、细和超细。该数据包括 6000 个众包示例和大约 600 万个远程监督自动构建的训练样本,如实体链接、中心词提取。作者在众包数据中的dev/test split 进行的模型验证。作者还在 OntoNotes 作为 Benchmark 进行实验。
层次的构造:作者提出了构建类别层次体系的两种方法。
-
知识库对齐:将类别标签和知识库schema对齐,这种情况下,类别标签和专家构建的本体的树形结构一致。在 Ultra-Fine 数据集中的类别标签词表抽取自 WordNet,WordNet 中的名词被组织成一个很深的层次结构,由超词或
IS-A
关系定义。OntoNotes数据集也有一个预先定义的较小的基于IS-A
的层次分类体系。 -
类别共现:作者将实体类别建模为图结构中的节点,通过考虑被赋予同一个实例的多个实体类别的共现构建图的邻接矩阵。具体表示边权有两种方案:使用共现频率;使用PMI点互信息。
作者使用 facebook 提出的库 Hype 将目标类型表示嵌入到不同的度量空间中。 Hype 库能够将图嵌入到具有不同度量的低维连续空间中,如双曲空间或欧氏空间。 得到的嵌入通过彼此之间的相对距离来表示相似性,通过到原点的距离(即范数)来表示层次结构的概念。