知识图谱 G \mathcal{G} G是由一个三元组集合 { ( h , r , t ) } ⊆ E × R × E \{(h, r, t)\} \subseteq \mathcal{E} \times \mathcal{R} \times \mathcal{E} {(h,r,t)}⊆E×R×E表示,其中, E \mathcal{E} E 表示entity set, R \mathcal{R} R表示relation set。知识图谱的实现能够预测两个现有实体 ( h , ? , t ) (h, ?, t) (h,?,t)之间的不可见关系 r,或者给定头实体和查询关系 ( h , r , ? ) (h, r, ?) (h,r,?),预测尾部实体 t 。这一篇文章在只给定一个example triplet ( h 0 , r , t 0 ) \left(h_{0}, r, t_{0}\right) (h0,r,t0)的条件,使true tail entity t true t_{\text {true}} ttrue的序列度高于其他candidate entities t ∈ C h , r t \in C_{h, r} t∈Ch,r。
根据标准one-shot学习的设置,文章假设获取了training tasks。每个training tasks 都对应一个KG relation r ∈ R r \in \mathcal{R} r∈R, 并拥有training/testing triples: { D r t r a i n , D r t e s t } \left\{D_{r}^{t r a i n}, D_{r}^{t e s t}\right\} {Drtrain,Drtest}。这一tasks set就是 the meta-training set, T meta − train \mathbb{T}_{\text {meta}-\text {train}} Tmeta−train。
根据one-shot的任务设定,在每个 D r t r a i n D_{r}^{t r a i n} Drtrain中,采用一个三元组 ( h 0 , r , t 0 ) \left(h_{0}, r,t_{0}\right) (h0,r,t0)。
The D r test = { ( h i , r , t i , C h i , r ) } D_{r}^{\text {test}}=\left\{\left(h_{i}, r, t_{i}, \mathcal{C}_{h_{i}, r}\right)\right\} Drtest={(hi,r,ti,Chi,r)} consists of the testing triples of r with ground-truth tail entities ti for each query ( h i , r ) \left(h_{i}, r\right) (hi,r), and the corresponding tail entity candidates C h i , r = { t i j } \mathcal{C}_{h_{i}, r}=\left\{t_{i j}\right\} Chi,r={tij} where each t i j t_{i j} tij is an entity in G \mathcal{G} G。
给定test query ( h i , r ) \left(h_{i}, r\right) (hi,r)和 D r t r a i n D_{r}^{t r a i n} Drtrain中the labeled triple,可对the candidate set C h i , r \mathcal{C}_{h_{i}, r} Chi,r进行排列测试the metric model。
The meta-training objective: min θ E T r [ ∑ ( h i , r , t i , C h i , r ) ∈ D r t e s t ℓ θ ( h i , r , t i ∣ C h i , r , D r t r a i n ) ∣ D r t e s t ∣ ] \min _{\theta} \mathbb{E}_{T_{r}}\left[\sum_{\left(h_{i}, r, t_{i}, \mathcal{C}_{h_{i}, r}\right) \in D_{r}^{t e s t}} \frac{\ell_{\theta}\left(h_{i}, r, t_{i} | \mathcal{C}_{h_{i}, r}, D_{r}^{t r a i n}\right)}{\left|D_{r}^{t e s t}\right|}\right] minθETr[∑(hi,r,ti,Chi,r)∈Drtest∣Drtest∣ℓθ(hi,r,ti∣Chi,r,Drtrain)] ,其中, T r T_{r} Tr是meta-training set T meta -train \mathbb{T}_{\text { meta -train }} T meta -train , ∣ D r t e s t ∣ \left|D_{r}^{t e s t}\right| ∣Drtest∣ 表示 D r t e s t D_{r}^{t e s t} Drtest中的元组的个数。Loss function 表明在只从 D r t r a i n D_{r}^{t r a i n} Drtrain中采样one-shot数据的条件下,衡量the metric model 在 ( h i , r , t i , C h i , r ) \left(h_{i}, r, t_{i}, \mathcal{C}_{h_{i}, r}\right) (hi,r,ti,Chi,r)上的性能。
ℓ θ ( h i , r , t i ∣ C h i , r , D r t r a i n ) \ell_{\theta}\left(h_{i}, r, t_{i} | \mathcal{C}_{h_{i}, r}, D_{r}^{t r a i n}\right) ℓθ(hi,r,ti∣Chi,r,Drtrain)表示 an arbitrary ranking-loss function, θ \theta θ表示metric model的参数。
训练完成后,就可以利用模型来预测新的关系 r ′ ∈ R ′ r^{\prime} \in \mathcal{R}^{\prime} r′∈R′,这也就是 meta-testing。这些meta-testing relation 是meta-training中未出现的,即 R ′ ∩ R = ϕ \mathcal{R}^{\prime} \cap \mathcal{R}=\phi R′∩R=ϕ,每一个meta-testing relation r ′ r^{\prime} r′ 也有one-shot training data D r ′ t r a i n D_{r^{\prime}}^{t r a i n} Dr′train 和testing data D r ′ t e s t D_{r^{\prime}}^{t e s t} Dr′test,其定义方式与meta-training一样。这些meta-testing relation形成了meta-test set T meta − test \mathbb{T}_{\text {meta}-\text {test}} Tmeta−test。
文章还从 T meta -train \mathbb{T}_{\text { meta -train }} T meta -train 中留出一小部分关系子集作为meta-validation set T meta- validation \mathbb{T}_{\text { meta- validation }} T meta- validation 。构造验证集是为了不违反one-shot的假设。
最终,该方法获取了一个 background knowledge graph G ′ \mathcal{G}^{\prime} G′, 它是 G \mathcal{G} G的一个子集,包含了除 T meta -train \mathbb{T}_{\text { meta -train }} T meta -train 、 T meta- validation \mathbb{T}_{\text { meta- validation }} T meta- validation 和 T meta − test \mathbb{T}_{\text {meta}-\text {test}} Tmeta−test以外的所有关系。
The matching function的实现涉及两个子问题:
(1)实体对的表示。
(2)两实体对间的对比comparson function。
针对以上两个问题,模型中的两个关键部分可以解决这些问题,即neighbor encoder 和 matching processor。总体模型如下图所示。
该模块旨在增强每个实体在知识图谱中的局部连接的表示。它将图结构合并到metric model中,且只考虑实体的局部链接,即one-hop neighbor。这可使其从结构信息中获益且保持效率,更易于扩展到现实世界中的大规模KGs。
对于任何给定的实体 e,其局部连接形成元组集合( relation,entity)。这一neighbor set可表示为 N e = { ( r k , e k ) ∣ ( e , r k , e k ) ∈ G ′ } \mathcal{N}_{e}=\left\{\left(r_{k}, e_{k}\right) |\left(e, r_{k}, e_{k}\right) \in\right.\mathcal{G}^{\prime} \} Ne={(rk,ek)∣(e,rk,ek)∈G′}。由于encoding sets 的大小不固定,因此,要求encoding function需满足(1)置换不变,(2)对领集大小不敏感。满足上述属性的函数如下:
f ( N e ) = σ ( 1 ∣ N e ∣ ∑ ( r k , e k ) ∈ N e C r k , e k ) f\left(\mathcal{N}_{e}\right)=\sigma\left(\frac{1}{\left|\mathcal{N}_{e}\right|} \sum_{\left(r_{k}, e_{k}\right) \in \mathcal{N}_{e}} C_{r_{k}, e_{k}}\right) f(Ne)=σ(∣Ne∣1∑(rk,ek)∈NeCrk,ek), C r k , e k C_{r_{k}, e_{k}} Crk,ek是关系-实体对 ( r k , e k ) \left(r_{k}, e_{k}\right) (rk,ek)的特征表示。 σ \sigma σ是激活函数。本文中激活函数采用 tanh \tanh tanh,因为它在 T meta − validation \mathbb{T}_{\text {meta}-\text {validation}} Tmeta−validation中表现出的性能最好!!!!
利用embedding model获取 r k r_{k} rk 和 e k e_{k} ek 的向量表示,即将每一个元组 ( r k , e k ) ∈ N e \left(r_{k}, e_{k}\right) \in \mathcal{N}_{e} (rk,ek)∈Ne映射到 C r k , e k C_{r_{k}, e_{k}} Crk,ek。
v r k = e m b ( r k ) , v e k = e m b ( e k ) v_{r_{k}}=\mathbf{e} \mathbf{m b}\left(r_{k}\right), v_{e_{k}}=\mathbf{e} \mathbf{m b}\left(e_{k}\right) vrk=emb(rk),vek=emb(ek)
对向量 v r k , v e k v_{r_{k}}, v_{e_{k}} vrk,vek进行dropout,以便泛化。同时利用feed-forward layer对元组之间的交互进行encode。
C r k , e k = W c ( v r k ⊕ v e k ) + b c C_{r_{k}, e_{k}}=W_{c}\left(v_{r_{k}} \oplus v_{e_{k}}\right)+b_{c} Crk,ek=Wc(vrk⊕vek)+bc
其中, W c ∈ R d × 2 d , b c ∈ R d W_{c} \in R^{d \times 2 d}, b_{c} \in R^{d} Wc∈Rd×2d,bc∈Rd都是可学习的参数, ⊕ \oplus ⊕表示 concatenation。
为了在训练期间启用批处理,我们手动指定最大邻居数,并将所有零向量用作“虚拟”邻居。Neighbor encoder 与关系图卷积网络类似,都使用共享核 { W c , b c } \left\{W_{c}, b_{c}\right\} {Wc,bc}对不同实体的邻居进行encode。不同的是,该模块只对实体的局部图进行编码并执行一步传播,且使用了pre-trained graph embeddings。
通过 f ( N e ) f\left(\mathcal{N}_{e}\right) f(Ne)对 reference entity pair ( h 0 , t 0 ) \left(h_{0}, t_{0}\right) (h0,t0)和任一 query entity pair ( h i , t i j ) \left(h_{i}, t_{i j}\right) (hi,tij) 处理,得到两邻向量 [ f ( N h 0 ) ; f ( N t 0 ) ] \left[f\left(\mathcal{N}_{h_{0}}\right) ; f\left(\mathcal{N}_{t_{0}}\right)\right] [f(Nh0);f(Nt0)]和 [ f ( N h i ) ; f ( N t i j ) ] \left[f\left(\mathcal{N}_{h_{i}}\right) ; f\left(\mathcal{N}_{t_{i j}}\right)\right] [f(Nhi);f(Ntij)]。为了从候选集中找出与reference entity pair最相似的候选实体,文章利用相似分数解决这一问题。同时考虑模型的扩展性及评测性能,于是选用了基于LSTM的“处理”块进行多步匹配,每步匹配过程如下:
h k + 1 ′ , c k + 1 = L S T M ( q , [ h k ⊕ s , c k ] ) h k + 1 = h k + 1 ′ + q score k + 1 = h k + 1 ⊙ s ∥ h k + 1 ∥ ∥ s ∥ \begin{aligned} h_{k+1}^{\prime}, c_{k+1} &=L S T M\left(q,\left[h_{k} \oplus s, c_{k}\right]\right) \\ h_{k+1} &=h_{k+1}^{\prime}+q \\ \text {score}_{k+1} &=\frac{h_{k+1} \odot s}{\left\|h_{k+1}\right\|\|s\|} \end{aligned} hk+1′,ck+1hk+1scorek+1=LSTM(q,[hk⊕s,ck])=hk+1′+q=∥hk+1∥∥s∥hk+1⊙s
其中, L S T M ( x , [ h , c ] ) L S T M(x,[h, c]) LSTM(x,[h,c]) 是一个具有输入为 x \mathcal{x} x、隐态 h \mathcal{h} h 和单元态 c \mathcal{c} c 的标准LSTM。 s = f ( N h 0 ) ⊕ f ( N t 0 ) , q = f ( N h i ) ⊕ f ( N t i j ) s=f\left(\mathcal{N}_{h_{0}}\right) \oplus f\left(\mathcal{N}_{t_{0}}\right), q=f\left(\mathcal{N}_{h_{i}}\right) \oplus f\left(\mathcal{N}_{t_{i j}}\right) s=f(Nh0)⊕f(Nt0),q=f(Nhi)⊕f(Ntij) 分别是reference pair和 query pair的连接邻向量。K是一个待调的超参数,采用score_k作为query enetity pair 与 support entity pair间最终similarity score。
对于一个query relation r 及其reference/training triple ( h 0 , r , t 0 ) \left(h_{0}, r, t_{0}\right) (h0,r,t0), 本文收集了positive(true)query triplet { ( h i , r , t i + ) ∣ ( h i , r , t i + ) ∈ G } \left\{\left(h_{i}, r, t_{i}^{+}\right) |\left(h_{i}, r, t_{i}^{+}\right) \in \mathcal{G}\right\} {(hi,r,ti+)∣(hi,r,ti+)∈G} 并通过填充尾部实体的方式构建了negative(false) query triplet { ( h i , r , t i − ) ∣ ( h i , r , t i − ) ∉ G } \left\{\left(h_{i}, r, t_{i}^{-}\right) |\left(h_{i}, r, t_{i}^{-}\right) \notin \mathcal{G}\right\} {(hi,r,ti−)∣(hi,r,ti−)∈/G}。于是模型可通过下式进行优化。
ℓ θ = max ( 0 , γ + score θ − − score θ + ) \ell_{\theta}=\max \left(0, \gamma+\operatorname{score}_{\theta}^{-}-\operatorname{score} _{\theta}^{+}\right) ℓθ=max(0,γ+scoreθ−−scoreθ+)
其中, score θ + \operatorname{score} _{\theta}^{+} scoreθ+ 和 score θ − \operatorname{score}_{\theta}^{-} scoreθ− 是利用metric model 比较the query triple ( h i , r , t i + / t i − ) \left(h_{i}, r, t_{i}^{+} / t_{i}^{-}\right) (hi,r,ti+/ti−) 与 the reference triple ( h 0 , r , t 0 ) \left(h_{0}, r, t_{0}\right) (h0,r,t0)得到的标量。 γ \gamma γ是一个待调的超参数。训练细节如算法所示:
For NELL-One, we use 51/5/11 task relations for training/validation/testing. For WikiOne, the division ratio is 133:16:34.