【自然语言处理】【知识图谱】用于实体对齐的多视角知识图谱嵌入
《用于实体对齐的多视角知识图谱嵌入》Multi-view Knowledge Graph Embedding for Entity Alignment一、简介实体对齐(Entity Alignment)的目标是找出不同知识图谱中的相同实体,该任务在知识图谱构建、融合以及下游任务中扮演着重要的角色。传统的实体对齐方法主要是基于字符串相似度来实现的,但是这种方法会面临图谱间语义异构性问题。最近的趋势,
相关博客:
【自然语言处理】【知识图谱】利用属性、值、结构来实现实体对齐
【自然语言处理】【知识图谱】基于图匹配神经网络的跨语言知识图谱对齐
【自然语言处理】【知识图谱】使用属性嵌入实现知识图谱间的实体对齐
【自然语言处理】【知识图谱】用于实体对齐的多视角知识图谱嵌入
【自然语言处理】【知识图谱】MTransE:用于交叉知识对齐的多语言知识图谱嵌入
【自然语言处理】【知识图谱】SEU:无监督、非神经网络实体对齐超越有监督图神经网络?
一、简介
实体对齐(Entity Alignment)的目标是找出不同知识图谱中的相同实体,该任务在知识图谱构建、融合以及下游任务中扮演着重要的角色。
传统的实体对齐方法主要是基于字符串相似度来实现的,但是这种方法会面临图谱间语义异构性问题。最近的趋势,则是使用知识图谱嵌入的方式来解决这个问题。虽然,目前基于嵌入的实体对齐方法能够达到一个不错的效果,但是仍然面临着两大限制:
-
实体特征利用不充分
知识图谱中的实体有着各种各样的特征,但是目标基于嵌入的实体对齐方法仅利用了其中的1到2种。例如,MTransE、IPTransE和BootEA仅利用了图谱中的关系结构;而JAPE、KDCoE和AttrE则进一步利用了文本属性。事实上,实体不同类型的特征代表了实体的不同方面,将这些特征利用起来将能够改善准确率和健壮性。
-
依赖种子对齐实体
目前基于嵌入的实体对齐方法非常依赖种子对齐实体。然而,在实际中,种子对齐实体获取成本高昂。若能够从各种特征中学习到实体的嵌入向量,那么将能进一步减少对种子对齐实体的依赖。
为了解决上面2个限制,论文提出了一种基于多视角知识图谱嵌入的实体对齐框架,称为 MultiKE \text{MultiKE} MultiKE。该框架的核心思想是,将知识图谱中的各种特征分割为多个子集,称为视角(view)。然后从每个视角来学习实体的嵌入向量并进行联合优化,实现对实体对齐任务的改善。
论文的主要贡献:
- 定义了名称、关系和属性三种视角,按三种视角对知识图谱进行划分,并使用合适的模型来分别学习对应视角的嵌入向量。
- 论文设计了2种交叉图谱身份推断方法,分别是:实体、关系和属性,其能够改善实体对齐的效果。
- 提出了三种将不同视角嵌入向量进行合并的策略。
- 实验证明 MultiKE \text{MultiKE} MultiKE的效果好于已经的基于嵌入的实体对齐方法,并且交叉图谱身份推断和合并策略对最终效果均有贡献。
二、多视角知识图谱嵌入
1. 问题定义
论文为实体对齐设计了三种视角,分别为:名称视角(name view)、关系视角(relation view)和属性视角(attribute view)。其中
- 名称(name)描述了实体的基本且关键的信息,知识图谱中实体的名称通常是由 r d f s : l a b e l rdfs:label rdfs:label或者实体URI的本地名称所确定的。
- 在知识图谱的元数据中定义了属性和关系,这两个特征能够丰富的描述实体内容和外在的信息。
基于三种视角的划分,论文将知识图谱形式化为7元组 G = ( E , R , A , V , N , X , Y ) \mathcal{G=(E,R,A,V,N,X,Y)} G=(E,R,A,V,N,X,Y),其中 E , R , A , V \mathcal{E,R,A,V} E,R,A,V分别表示实体、关系、属性和属性值的集合, N ⊆ E × V \mathcal{N\subseteq E \times V} N⊆E×V表示实体的名称视角, X ⊆ E × R × E \mathcal{X\subseteq E\times R\times E} X⊆E×R×E表示实体的关系视角, Y ⊆ E × A × V \mathcal{Y\subseteq E\times A\times V} Y⊆E×A×V表示实体的属性视角。
给定一个源知识图谱 G a = ( E a , R a , A a , V a , N a , X a , Y a ) \mathcal{G_a=(E_a,R_a,A_a,V_a,N_a,X_a,Y_a)} Ga=(Ea,Ra,Aa,Va,Na,Xa,Ya)和目标知识图谱 G b = ( E b , R b , A b , V b , N b , X b , Y b ) \mathcal{G_b=(E_b,R_b,A_b,V_b,N_b,X_b,Y_b)} Gb=(Eb,Rb,Ab,Vb,Nb,Xb,Yb),实体对齐任务的目标就是找到一组相同的实体 M = { ( e i , e j ) ∈ E a × E b ∣ e i ≡ e j } \mathcal{M}=\{(e_i,e_j)\in \mathcal{E_a\times E_b}|e_i\equiv e_j\} M={(ei,ej)∈Ea×Eb∣ei≡ej},其中 ≡ \equiv ≡表示等价关系。
notation
论文使用黑体小写字母来表示实体的嵌入向量,黑体大写字母表示矩阵。嵌入向量的括号上标表示该向量来自哪个视角, ( 1 ) , ( 2 ) , ( 3 ) ^{(1)},^{(2)},^{(3)} (1),(2),(3)分别表示名称、关系、属性视角。
2. 属性值(Literal)嵌入
属性值通常是由token序列组成,其是其他视角进行嵌入的基础。令 l = ( o 1 , o 2 , … , o n ) l=(o_1,o_2,\dots,o_n) l=(o1,o2,…,on)表示具有 n n n个token的属性值, L P ( ⋅ ) LP(\cdot) LP(⋅)是一个将输入token映射为嵌入向量的函数。为了解决语义异构性、捕获语义本质,定义 L P LP LP为
LP ( o i ) = { word_embed ( o i ) , 若 o i 有 词 向 量 char_embed ( o i ) , 否 则 \textbf{LP}(o_i)= \begin{cases} \text{word\_embed}(o_i),若o_i有词向量\\ \text{char\_embed}(o_i),否则 \end{cases} LP(oi)={word_embed(oi),若oi有词向量char_embed(oi),否则
其中, word_embed ( ⋅ ) \text{word\_embed}(\cdot) word_embed(⋅)函数会返回给定token的词向量, char_embed ( ⋅ ) \text{char\_embed}(\cdot) char_embed(⋅)则返回给定token字符向量的平均值,而字符向量是在语料 V a ∪ V b \mathcal{V_a\cup V_b} Va∪Vb上是有Skip-gram训练所得。
基于每个单词的嵌入向量,使用 ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅)表示将属性值映射为向量的函数
ϕ ( l ) = encode ( [ LP ( o 1 ) ; LP ( o 2 ) ; … ; LP ( o n ) ] ) \phi(l)=\text{encode}([\textbf{LP}(o_1);\textbf{LP}(o_2);\dots;\textbf{LP}(o_n)]) ϕ(l)=encode([LP(o1);LP(o2);…;LP(on)])
其中, encode ( ⋅ ) \text{encode}(\cdot) encode(⋅)表示一个自编码器,用于压缩输入的向量; [ ; ] [;] [;]表示向量拼接操作。
此外,实验中属性值的最大token数量为5,太长会被截断,太短会使用字面值进行填充。
3.名称视角嵌入
使用上面的属性值嵌入(literal embedding)直接嵌入实体的名称。给定实体 h h h,其名称嵌入为:
h ( 1 ) = ϕ ( n a m e ( h ) ) \textbf{h}^{(1)}=\phi(name(h)) h(1)=ϕ(name(h))
其中, n a m e ( ⋅ ) name(\cdot) name(⋅)用于提取输入实体的名称。将姓名视角下的实体嵌入向量记为 Θ ( 1 ) \Theta^{(1)} Θ(1)。
4. 关系视角嵌入
关系视角描述了知识图谱的结构化信息,这里使用TransE来嵌入关系。
给定一个关系 ( h , r , t ) (h,r,t) (h,r,t),使用下面的函数来评估嵌入向量的正确性,
f r e l ( h ( 2 ) , r , t ( 2 ) ) = − ∣ ∣ h ( 2 ) + r − t ( 2 ) ∣ ∣ f_{rel}(\textbf{h}^{(2)},\textbf{r},\textbf{t}^{(2)})=-||\textbf{h}^{(2)}+\textbf{r}-\textbf{t}^{(2)}|| frel(h(2),r,t(2))=−∣∣h(2)+r−t(2)∣∣
其中, ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣⋅∣∣表示 L 1 L_1 L1或者 L 2 L_2 L2范数。
三元组 ( h , r , t ) (h,r,t) (h,r,t)为真实三元组的概率为
P r e l ( ζ ( h , r , t ) = 1 ∣ Θ ( 2 ) ) = sigmoid ( f r e l ( h ( 2 ) , r , t ( 2 ) ) ) \mathcal{P}_{rel}(\zeta_{(h,r,t)}=1|\Theta^{(2)})=\text{sigmoid}(f_{rel}(\textbf{h}^{(2)},\textbf{r},\textbf{t}^{(2)})) Prel(ζ(h,r,t)=1∣Θ(2))=sigmoid(frel(h(2),r,t(2)))
其中, Θ ( 2 ) \Theta^{(2)} Θ(2)表示在关系视角下的嵌入向量, ζ ( h , r , t ) \zeta_{(h,r,t)} ζ(h,r,t)表示 ( h , r , t ) (h,r,t) (h,r,t)是否是真实三元组的标签(1或-1)。
最小化下面的 logistic loss \text{logistic loss} logistic loss来获得嵌入向量 Θ ( 2 ) \Theta^{(2)} Θ(2),
L ( Θ ( 2 ) ) = ∑ ( h , r , t ) ∈ X + ∪ X − l o g ( 1 − e x p ( − ζ ( h , r , t ) f r e l ( h ( 2 ) , r , t ( 2 ) ) ) ) \mathcal{L}(\Theta^{(2)})=\sum_{(h,r,t)\in\mathcal{X^+\cup X^-}}log(1-exp(-\zeta_{(h,r,t)}f_{rel}(\textbf{h}^{(2)},\textbf{r},\textbf{t}^{(2)}))) L(Θ(2))=(h,r,t)∈X+∪X−∑log(1−exp(−ζ(h,r,t)frel(h(2),r,t(2))))
其中, X + = X a ∪ X b \mathcal{X}^+=\mathcal{X}_a\cup\mathcal{X}_b X+=Xa∪Xb源和目标知识图谱中的真实三元组, X − \mathcal{X}^- X−则是通过替换头和尾生成的假三元组。
5. 属性视角嵌入
对于属性视角,这里使用CNN来提取属性和值的特征。具体来说,将属性 a a a和其取值 v v v的向量表示拼接至一个矩阵中,即 ⟨ a ; v ⟩ ∈ R 2 × d \langle\textbf{a};\textbf{v}\rangle\in\mathbb{R}^{2\times d} ⟨a;v⟩∈R2×d。将这个矩阵输入到CNN中,获取压缩后的向量表示
CNN ( ⟨ a;v ⟩ ) = σ ( v e c ( σ ( ⟨ a;v ⟩ ∗ Ω ) ) W ) \text{CNN}(\langle\textbf{a;v}\rangle)=\sigma(vec(\sigma(\langle\textbf{a;v}\rangle*\Omega))\textbf{W}) CNN(⟨a;v⟩)=σ(vec(σ(⟨a;v⟩∗Ω))W)
-
其中, CNN ( ⋅ ) \textbf{CNN}(\cdot) CNN(⋅)表示卷积操作,其卷积核 Ω \Omega Ω的尺寸为 2 × c ( c < d ) 2\times c(c<d) 2×c(c<d)。
-
由卷积操作获得的特征通过函数 v e c ( ⋅ ) vec(\cdot) vec(⋅)重塑为向量,然后通过参数矩阵 W \textbf{W} W将其投影到知识图谱的嵌入空间中。
-
σ ( ⋅ ) \sigma(\cdot) σ(⋅)是激活函数。
给定一个属性三元组 ( h , a , v ) (h,a,v) (h,a,v),可以定义下面的评分函数了度量其是否是真实三元组
f a t t r ( h ( 3 ) , a,v ) = − ∣ ∣ h ( 3 ) − CNN ( ⟨ a;v ⟩ ) ∣ ∣ f_{attr}(\textbf{h}^{(3)},\textbf{a,v})=-||\textbf{h}^{(3)}-\text{CNN}(\langle\textbf{a;v}\rangle)|| fattr(h(3),a,v)=−∣∣h(3)−CNN(⟨a;v⟩)∣∣
在上面的评分函数中,头实体 h h h与其属性及取值越接近,则真实度越高。
通过下面的loss来实现这个目标
L ( Θ ( 3 ) ) = ∑ ( h , a , v ) ∈ Y + l o g ( 1 + e x p ( − f a t t r ( h ( 3 ) , a,v ) ) ) \mathcal{L}(\Theta^{(3)})=\sum_{(h,a,v)\in\mathcal{Y}^+}log(1+exp(-f_{attr}(\textbf{h}^{(3)},\textbf{a,v}))) L(Θ(3))=(h,a,v)∈Y+∑log(1+exp(−fattr(h(3),a,v)))
其中, Y + = Y a + Y b \mathcal{Y^+=Y_a+Y_b} Y+=Ya+Yb表示源和目标知识图谱中的所有属性三元组。 Θ ( 3 ) \Theta^{(3)} Θ(3)表示在属性视角下的知识图谱嵌入。(这里不做负采样,因为并不会对实体对齐有改善作用)
三、用于实体对齐的交叉知识图谱训练
1. 实体身份推断
直觉:若两个关系三元组对齐,那么互换其中的实体并不会改变这两个三元组为真实三元组的概率。
具体来说,给定一个关系三元组 ( h , r , t ) (h,r,t) (h,r,t),若实体对 ( h , h ^ ) (h,\hat{h}) (h,h^)为种子对齐实体,那么计算下面的辅助概率
P ′ r e l ( ζ ( h , r , t ) = 1 ∣ Θ ( 2 ) ) = sigmoid ( f r e l ( h ^ ( 2 ) , r , t ( 2 ) ) ) \mathcal{P'}_{rel}(\zeta_{(h,r,t)}=1|\Theta^{(2)})=\text{sigmoid}(f_{rel}(\hat{\textbf{h}}^{(2)},\textbf{r},\textbf{t}^{(2)})) P′rel(ζ(h,r,t)=1∣Θ(2))=sigmoid(frel(h^(2),r,t(2)))
同理,若实体对 ( t , t ^ ) (t,\hat{t}) (t,t^)也是种子对齐实体,再计算下面的辅助概率
P ′ ′ r e l ( ζ ( h , r , t ) = 1 ∣ Θ ( 2 ) ) = sigmoid ( f r e l ( h ( 2 ) , r , t ^ ( 2 ) ) ) \mathcal{P''}_{rel}(\zeta_{(h,r,t)}=1|\Theta^{(2)})=\text{sigmoid}(f_{rel}(\textbf{h}^{(2)},\textbf{r},\hat{\textbf{t}}^{(2)})) P′′rel(ζ(h,r,t)=1∣Θ(2))=sigmoid(frel(h(2),r,t^(2)))
最小化下面的loss,从而使关系视角嵌入满足直觉
L C E ( Θ ( 2 ) ) = ∑ ( h , r , t ) ∈ X ′ l o g ( 1 + e x p ( − f r e l ( h ^ ( 2 ) , r , t ( 2 ) ) ) ) + ∑ ( h , r , t ) ∈ X ′ ′ l o g ( 1 + e x p ( − f r e l ( h ( 2 ) , r , t ^ ( 2 ) ) ) ) \mathcal{L}_{CE}(\Theta^{(2)})=\sum_{(h,r,t)\in\mathcal{X'}}log(1+exp(-f_{rel}(\hat{\textbf{h}}^{(2)},\textbf{r},\textbf{t}^{(2)})))\\+\sum_{(h,r,t)\in\mathcal{X''}}log(1+exp(-f_{rel}(\textbf{h}^{(2)},\textbf{r},\hat{\textbf{t}}^{(2)}))) LCE(Θ(2))=(h,r,t)∈X′∑log(1+exp(−frel(h^(2),r,t(2))))+(h,r,t)∈X′′∑log(1+exp(−frel(h(2),r,t^(2))))
其中, X ′ \mathcal{X'} X′和 X ′ ′ \mathcal{X''} X′′表示头或者尾实体在种子对齐实体中的关系三元组集合。
在属性视角下的身份推断类似,最小化损失函数 L C E ( Θ ( 3 ) ) \mathcal{L}_{CE}(\Theta^{(3)}) LCE(Θ(3)),
L C E ( Θ ( 3 ) ) = ∑ ( h , a , v ) ∈ Y ′ l o g ( 1 + e x p ( − f a t t r ( h ^ ( 3 ) , a,v ) ) ) \mathcal{L}_{CE}(\Theta^{(3)})=\sum_{(h,a,v)\in\mathcal{Y'}}log(1+exp(-f_{attr}(\hat{\textbf{h}}^{(3)},\textbf{a,v}))) LCE(Θ(3))=(h,a,v)∈Y′∑log(1+exp(−fattr(h^(3),a,v)))
其中, Y ′ \mathcal{Y'} Y′表示头实体为种子等价实体的属性三元组。
2. 关系和属性身份推断
类似于实体身份推断,这里也为交叉图谱中的关系和属性身份推断添加了辅助函数。
先考虑关系,给定一个关系三元组 ( h , r , t ) (h,r,t) (h,r,t),其中关系对 ( r , r ^ ) (r,\hat{r}) (r,r^)构成了对齐关系,那么有
P r e l ′ ′ ′ ( ζ ( h , r , t ) = 1 ∣ Θ ( 2 ) ) = sigmoid ( f r e l ( h ( 2 ) , r ^ , t ( 2 ) ) ) \mathcal{P}_{rel}^{'''}(\zeta_{(h,r,t)}=1|\Theta^{(2)})=\text{sigmoid}(f_{rel}(\textbf{h}^{(2)},\hat{\textbf{r}},\textbf{t}^{(2)})) Prel′′′(ζ(h,r,t)=1∣Θ(2))=sigmoid(frel(h(2),r^,t(2)))
不同于前面的实体身份推断,这里不假设种子对齐关系和种子对齐实体存在,而是提出一种软对齐方法来对齐关系和属性。
事实上,由于知识图谱元数据的异构性,要找出对齐的关系和属性要比实体更难。因此,软关系对齐通过下式进行计算
S r e l = { r , r ^ , s i m ( r , r ^ ) ∣ s i m ( r , r ^ ) ≥ η } \mathcal{S}_{rel}=\{r,\hat{r},sim(r,\hat{r})|sim(r,\hat{r})\geq\eta\} Srel={r,r^,sim(r,r^)∣sim(r,r^)≥η}
其中, r , r ^ r,\hat{r} r,r^是来自不同知识图谱的关系, s i m ( r , r ^ ) sim(r,\hat{r}) sim(r,r^)表示相似关系间的相似度, η \eta η是一个介于 ( 0 , 1 ] (0,1] (0,1]的阈值。
具体来说,这里的相似度是由两种相似度组成,分别是字符串相似度和嵌入向量相似度。合并这两种相似度
s i m ( r , r ^ ) = α 1 c o s ( ϕ ( n a m e ( r ) ) , ϕ ( n a m e ( r ^ ) ) ) + α 2 c o s ( r , r ^ ) sim(r,\hat{r})=\alpha_1cos(\phi(name(r)),\phi(name(\hat{r})))+\alpha_2cos(\textbf{r},\hat{\textbf{r}}) sim(r,r^)=α1cos(ϕ(name(r)),ϕ(name(r^)))+α2cos(r,r^)
其中, α 1 , α 2 > 0 \alpha_1,\alpha_2>0 α1,α2>0为权重因子且 α 1 + α 2 = 1 \alpha_1+\alpha_2=1 α1+α2=1; c o s ( ⋅ ) cos(\cdot) cos(⋅)用于计算嵌入向量的相似度。
将得到的相似度作为平滑系数,减小不准确匹配的影响。并将其合并到实体身份推断的loss中,
L C R A ( Θ ( 2 ) ) = ∑ ( h , r , t ) ∈ X ′ ′ ′ s i m ( r , r ^ ) l o g ( 1 + e x p ( − f r e l ( h ( 2 ) , r ^ , t ( 2 ) ) ) ) \mathcal{L}_{CRA}(\Theta^{(2)})=\sum_{(h,r,t)\in\mathcal{X'''}}sim(r,\hat{r})log(1+exp(-f_{rel}(\textbf{h}^{(2)},\hat{\textbf{r}},\textbf{t}^{(2)}))) LCRA(Θ(2))=(h,r,t)∈X′′′∑sim(r,r^)log(1+exp(−frel(h(2),r^,t(2))))
X ′ ′ ′ \mathcal{X'''} X′′′表示关系在集合 S r e l \mathcal{S}_{rel} Srel中的三元组集合。
-
软关系对齐不是固定的,其会在 MultiKE \text{MultiKE} MultiKE训练过程进行迭代的更新。
-
交叉图谱属性身份推断也可以使用类似的方法,由于篇幅的限制,这里省略了Loss函数 L C R A ( Θ ( 3 ) ) \mathcal{L}_{CRA}(\Theta^{(3)}) LCRA(Θ(3))。
四、视角合并
1.加权平均合并
对不同视角下的嵌入向量进行平均。为了强调重要的视角,这里为不同视角下的嵌入向量分别不同的权重。
令 h ~ \tilde{\textbf{h}} h~表示实体 h h h合并后的嵌入向量。不失一般性,令 D D D表示视角的数量,那么有
h ~ = ∑ i = 1 D w i h ( i ) \tilde{\textbf{h}}=\sum_{i=1}^Dw_i\textbf{h}^{(i)} h~=i=1∑Dwih(i)
其中, w i w_i wi表示向量 h ( i ) \textbf{h}^{(i)} h(i)的权重,计算公式如下
w i = c o s ( h ( i ) , h ˉ ) ∑ j = 1 D c o s ( h ( j ) , h ˉ ) w_i=\frac{cos(\textbf{h}^{(i)},\bar{\textbf{h}})}{\sum_{j=1}^Dcos(\textbf{h}^{(j)},\bar{\textbf{h}})} wi=∑j=1Dcos(h(j),hˉ)cos(h(i),hˉ)
其中, h ˉ \bar{\textbf{h}} hˉ表示多视角实体嵌入向量的平均值,即 h ˉ = 1 D ∑ j = 1 D h ( j ) \bar{\textbf{h}}=\frac{1}{D}\sum_{j=1}^D\textbf{h}^{(j)} hˉ=D1∑j=1Dh(j)。直觉上,一个视角的嵌入向量距离平均嵌入向量较远,那么其权重也较小。
2. 共享空间学习
该合并策略的目标是找到一个正交映射矩阵,能够将每个视角下的嵌入向量映射至共享空间中。该策略的基本假设是多视角能够从共享隐藏视角中生成。
令 H ~ \tilde{\textbf{H}} H~表示所有实体向量合并成的矩阵,其每一行对应一个实体。 H ( i ) \textbf{H}^{(i)} H(i)表示在第 i i i个视角下的实体嵌入矩阵。优化下面的映射损失函数,
该合并策略的目标是寻找一个正交映射矩阵,将每个view的embedding空间映射到共享空间,该方法的假设是多view能够从共享隐藏view中生成。令 H ~ \tilde{\textbf{H}} H~是所有实体的合并矩阵,其每一个行对应一个实体, H ( i ) \textbf{H}^{(i)} H(i)是在第 i i i个view下的实体嵌入矩阵。我们优化下面的映射Loss
L SSL ( H ~ , Z ) = ∑ i = 1 D ( ∣ ∣ H ~ − H ( i ) Z ( i ) ∣ ∣ F 2 + ∣ ∣ I − Z ( i ) T Z ( i ) ∣ ∣ F 2 ) \mathcal{L}_{\text{SSL}}(\tilde{\textbf{H}},\textbf{Z})=\sum_{i=1}^D(||\tilde{\textbf{H}}-\textbf{H}^{(i)}\textbf{Z}^{(i)}||_F^2+||\textbf{I}-\textbf{Z}^{(i)T}\textbf{Z}^{(i)}||_F^2) LSSL(H~,Z)=i=1∑D(∣∣H~−H(i)Z(i)∣∣F2+∣∣I−Z(i)TZ(i)∣∣F2)
- 其中, Z = ⋃ i = 1 D Z ( i ) \textbf{Z}=\bigcup_{i=1}^D\textbf{Z}^{(i)} Z=⋃i=1DZ(i), Z ( i ) \textbf{Z}^{(i)} Z(i)表示第 i i i个视角的嵌入空间到共享空间的映射矩阵。
- ∣ ∣ ⋅ ∣ ∣ F ||\cdot||_F ∣∣⋅∣∣F表示Frobenius范数。
- 公式第二项是对映射矩阵的正交约束, I \textbf{I} I是单位矩阵。
- 正交性能够保证具体视角的嵌入向量间距离不变。
- 通过优化上面的损失函数,能够学习到从多个视角映射到共享空间的映射矩阵。
3. 训练中合并
该策略不同于上面的策略,其会与其他视角的嵌入向量一体进行训练,这将会使多视角的嵌入向量相关收益。损失函数为
L I T C ( H ~ , H ) = ∑ i = 1 D ∣ ∣ t H ~ − H ( i ) ∣ ∣ F 2 \mathcal{L}_{ITC}(\tilde{\textbf{H}},\textbf{H})=\sum_{i=1}^D||t\tilde{\textbf{H}}-\textbf{H}^{(i)}||_F^2 LITC(H~,H)=i=1∑D∣∣tH~−H(i)∣∣F2
其中, H = ⋃ i = 1 D H ( i ) \textbf{H}=\bigcup_{i=1}^D\textbf{H}^{(i)} H=⋃i=1DH(i)。
该损失函数会平衡共享空间嵌入向量 H ~ \tilde{\textbf{H}} H~与其他视角下的嵌入向量,保证其一直性。
五、训练过程
算法1: MultiKE \text{MultiKE} MultiKE的合并训练过程
输入: G a , G b \mathcal{G}_a,\mathcal{G}_b Ga,Gb,词向量,最大迭代数 Q Q Q
过程:
- 训练属性值嵌入向量(literal embedding)并得到名称嵌入向量;
- for q=1,2,…,Q do
- 在关系视角下最小化 L ( Θ ( 2 ) ) \mathcal{L}(\Theta^{(2)}) L(Θ(2));
- 在属性视角下最小化 L ( Θ ( 3 ) ) \mathcal{L}(\Theta^{(3)}) L(Θ(3));
- if 使用训练中合并策略 then
- 最小化 L I T C ( H ~ , H ) \mathcal{L}_{ITC}(\tilde{\textbf{H}},\textbf{H}) LITC(H~,H)
- 最小化 L C E ( Θ ( 2 ) ) \mathcal{L}_{CE}(\Theta^{(2)}) LCE(Θ(2))和 L C E ( Θ ( 3 ) ) \mathcal{L}_{CE}(\Theta^{(3)}) LCE(Θ(3));
- 更新软对齐 S r e l \mathcal{S}_{rel} Srel和 S a t t r \mathcal{S}_{attr} Sattr;
- 最小化 L C R A ( Θ ( 2 ) ) \mathcal{L}_{CRA}(\Theta^{(2)}) LCRA(Θ(2))和 L C R A ( Θ ( 3 ) ) \mathcal{L}_{CRA}(\Theta^{(3)}) LCRA(Θ(3));
- if 没有使用训练中合并策略 then
- 运行加权平均合并策略或者共享空间学习策略
- 在 H ~ \tilde{\textbf{H}} H~中使用最近邻搜索来发现对齐实体。
完整的训练过程如算法1所示。参数采用Xavier初始化,优化采用AdaGrad。
- 首先,训练属性值嵌入如向量和字符嵌入向量;
- 直接获得实体的名称向量;
- 获得其他视角的嵌入向量;
- 执行交叉图谱身份推断,也就是优化损失函数名 L C E \mathcal{L}_{CE} LCE和 L C R A \mathcal{L}_{CRA} LCRA;
- 在训练中对关系和属性的软对齐进行迭代更新;
- 若没有使用训练中合并策略,则使用其他方法来合并多视角实体嵌入向量;
- 通过最近邻搜索来查找对齐的实体;
- 名称嵌入向量是直接检索的,不会随着训练过程更新;
更多推荐
所有评论(0)