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