论文浅尝|简单高效的知识图谱表示学习负样本采样方法
筆記整理 | 陳名楊,浙江大學(xué)在讀博士生,主要研究方向為知識圖譜表示學(xué)習(xí)
Introduction
研究知識圖譜表示學(xué)習(xí)(KnowledgeGraph Embedding)可以解決當(dāng)前很多應(yīng)用的基本問題,這些方法旨在將知識圖譜中的實(shí)體(Entity)和關(guān)系(Relation)都映射到低維向量空間中,并且捕獲實(shí)體和關(guān)系之間的語義信息。當(dāng)前很多知識圖譜表示學(xué)習(xí)的方法都著重于設(shè)計新的得分函數(shù)(Score Function)從而可以捕獲實(shí)體和關(guān)系之間復(fù)雜的交互。
然而在知識圖譜表示學(xué)習(xí)的過程中,一個重要的部分——負(fù)采樣(Negative Sampling)并沒有被足夠的重視。在知識圖譜中,負(fù)樣本采樣的需求來源于KG中僅包含真實(shí)的正樣本三元組,而在訓(xùn)練知識圖譜表示的過程中,每個正樣本需要對應(yīng)相應(yīng)的負(fù)樣本。當(dāng)前很多方法都使用均勻采樣(Uniform Sampling)的方式,然而這樣的方式很容易造成訓(xùn)練過程中的梯度消失,也就是很多負(fù)樣本都是很容易被劃分為負(fù)樣本的簡單樣例,得分函數(shù)很自然的對這一類負(fù)樣本給出較低的分?jǐn)?shù),從而導(dǎo)致訓(xùn)練過程中梯度為零。
所以高質(zhì)量的負(fù)樣本應(yīng)該是得分函數(shù)給出較高分?jǐn)?shù)(被誤認(rèn)為是正樣本)的負(fù)樣本,這篇文章探討了在知識圖譜表示學(xué)習(xí)模型的學(xué)習(xí)過程中(1)如何捕獲并且建模負(fù)樣本的動態(tài)分布,以及(2)如何有效地進(jìn)行負(fù)樣本的采樣。
作者發(fā)現(xiàn)負(fù)樣本的分?jǐn)?shù)分布是高度偏斜的(Skewed),也就是說只有少量的負(fù)樣本的分?jǐn)?shù)較高,其余的分?jǐn)?shù)較低的負(fù)樣本的對后續(xù)的訓(xùn)練幾乎無用。這個發(fā)現(xiàn)促使作者設(shè)計模型來維護(hù)這部分高質(zhì)量的負(fù)樣本三元組,并且在訓(xùn)練的過程中動態(tài)地更新。
Proposed Model
圖1. 負(fù)樣本的分?jǐn)?shù)分布舉例
圖1(a)中展示了某一個三元組在訓(xùn)練過程中,負(fù)樣本分布的變化;圖1(b)中展示了在訓(xùn)練完成后,不同三元組的負(fù)樣本分布情況。最終得出的結(jié)論是,負(fù)樣本分?jǐn)?shù)的分布是高度偏斜的,并且只有很少一部分的負(fù)樣本有較大的分?jǐn)?shù)。是否可以設(shè)計一個模型直接監(jiān)控那些分?jǐn)?shù)較高的負(fù)樣本。這篇文章提出了NSCaching的方法,該方法只要解決了以下兩個問題:
1、如何建模負(fù)樣本的動態(tài)分布?
2、如何有效的采樣負(fù)樣本?
模型設(shè)計了一個緩存機(jī)制,保存了知識圖譜中每個三元組對應(yīng)的分?jǐn)?shù)較高的負(fù)樣本三元組,Algorithm2中展示了基于該緩存機(jī)制的知識圖譜表示學(xué)習(xí)模型的學(xué)習(xí)過程。
具體來說,緩存分為頭實(shí)體緩存(head-cache)和尾實(shí)體緩存(tail-cacahe),其中頭實(shí)體緩存利用(r, t)進(jìn)行索引,尾實(shí)體緩存利用(h, r)進(jìn)行索引,他們分別存儲的是知識圖譜中的頭實(shí)體和尾實(shí)體。在算法中,首先會確定一個正樣本,然后得到該正樣本在緩存中對應(yīng)的部分(步驟5),然后會根據(jù)相應(yīng)的緩存構(gòu)造負(fù)樣本(步驟6-7),最后更新緩存(步驟8)。
考慮模型的具體細(xì)節(jié),這里如何從緩存中采樣負(fù)樣本(步驟6)以及如何更新緩存(步驟8)呢?
對于步驟6,作者采用的是從緩存中進(jìn)行均勻采樣。利用均勻采樣的原因是該方法簡單高效,雖然另一個看起來更好的方法可能是利用負(fù)樣本的分?jǐn)?shù)進(jìn)行采樣,但作者認(rèn)為該方法不僅需要更多的空間存儲三元組的分?jǐn)?shù),并且會因為負(fù)樣本分布變化和假負(fù)樣本引入更多偏差。
對于步驟8,這里采用重要性采樣(Importance Sampling,IS)。首先從所有的三元組中均勻采樣一部分實(shí)體,然后把這部分實(shí)體和原本緩存的實(shí)體放在一起,并計算分?jǐn)?shù),利用如下公式計算每個負(fù)樣本三元組的重要性,也就是被采樣進(jìn)入更新后的緩存的概率。
?完整的緩存更新算法如下:
Experiments
作者在多個標(biāo)準(zhǔn)數(shù)據(jù)集上進(jìn)行了實(shí)驗,如下圖是在利用TransE,在不同標(biāo)準(zhǔn)數(shù)據(jù)集上,和其他負(fù)采樣方法對比的結(jié)果(更多利用其余KGE的實(shí)驗結(jié)果請參考原文),可以看出這里提出的NSCacheing優(yōu)于其他的負(fù)采樣方法。
圖2. 在不同標(biāo)準(zhǔn)數(shù)據(jù)集上的結(jié)果
更多的,作者還探討了緩存的更新和采樣機(jī)制的不同選擇帶來的不同結(jié)果,具體實(shí)驗結(jié)果請參考原文。
OpenKG
OpenKG(中文開放知識圖譜)旨在推動以中文為核心的知識圖譜數(shù)據(jù)的開放、互聯(lián)及眾包,并促進(jìn)知識圖譜算法、工具及平臺的開源開放。
點(diǎn)擊閱讀原文,進(jìn)入 OpenKG 網(wǎng)站。
總結(jié)
以上是生活随笔為你收集整理的论文浅尝|简单高效的知识图谱表示学习负样本采样方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 - ICLR2020 | Ab
- 下一篇: TCC分布式实现原理及分布式应用如何保证