前言
這篇論文主要講的是知識圖譜正確率的評估,將知識圖譜的正確率定義為知識圖譜中三元組表述正確的比例。如果要計算知識圖譜的正確率,可以用人力一一標注是否正確,計算比例。但是實際上,知識圖譜往往很大,不可能耗費這么多的人力去標注,所以一般使用抽樣檢測的方法。這就好像調查一批商品合格率一樣,不可能將所有的商品都檢查一遍,采用抽樣的方法可以估計出合格率。
抽樣產生的樣本,我們利用中心極限定理,可以推導出樣本均值服從正態分布。根據正態分布的概率形式,可以推導置信區間,並且可以要求誤差界限(margin of error)在一定范圍內。
這篇博客,先給出每種抽樣方法的思路。之后按照如下思路分析:置信區間的推導,時間消耗模型(cost),最優化問題,每種抽樣方法的置信區間(分析無偏性和 cost)。
抽樣檢測的思路
1. Simple Random Sampling
隨機從知識圖譜中抽取 n 個三元組。
2. Cluster Sampling
motivation:標注員在標注三元組的時候,如果元組來自同一個實體,效率會高。理由是,只需了解一個對象,就可以標注多個三元組。
從 N 個實體中,等概率隨機抽取 n 個實體,這些實體對應的所有三元組進行判斷。
3. Weighted Cluster Sampling
從 N 個實體中,加權隨機抽取 n 個實體,這些實體對應的所有三元組進行判斷。
4. Two-Stage Weighted Cluster Sampling
Motivation:隨機抽取的實體,存在一些實體有着很多的三元組,如果這些元組全部都要判斷的話,時間消耗非常多
第一階段:從 N 個實體中,加權隨機抽取 n 個實體
第二階段:從 n 個實體的三元組中隨機抽樣,最多抽取 m 個。(后面的實驗結果建議 m 取 3~5)
5. Stratified Two-Stage Weighted Cluster Sampling
Motivation:實體的三元組所含有的數量越多,實體的正確率越高,方差越低。
按照實體的數量分層,然后使用兩階段抽樣。
在實驗中,按照正確率分層,目的是為了給出分層抽樣所能達到的一個下界。
evolving KG 抽樣檢測的思路
evolving KG 表示正在不斷更新的知識圖譜,我們知道了原知識圖譜的正確率,現在加入了新的三元組,我們需要確定加入新三元組之后,知識圖譜的正確率。
1. 加權蓄水池算法(WRS)
WRS 中將更新 \(\Delta\) 中的每一個實體視為一個新實體,不管這個實體是否已經存在於原來的知識圖譜中。權重為一個實體的三元組個數,而不是占比。
論文中沒有講該如何計算正確率。WRS 每一格對應一個正確率,對於沒有被替換的樣本,我們可以使用原來計算得出的正確率。對於新加入的樣本,我們可以采用簡單隨機抽樣,因為可能某一個更新,它可能包含某一個實體超過上百個三元組,這就非常耗時了。
2. 分層增量評估
新的知識圖譜記為\(G + \Delta\),將原知識圖譜 \(G\) 和更新 \(\Delta\) 當成分層抽樣中的不同層,之后用加權求和。
置信區間
我們需要的是知識圖譜的正確率,所以這里推導的是正確率的置信區間。
設正確率的估計量為\(\hat{\mu}\),需要滿足無偏性。有了無偏性,我們可以由大數定律得到,正確率的估計量就有越高的概率接近期望值,也就是真實的正確率。
接着,我們給估計量采樣,得到 n 個獨立同分布的樣本\(X_1, X_2, ..., X_n\)。不管這些樣本服從什么分布,根據中心極限定理,在樣本量充分大的情況下,樣本均值近似服從正態分布。
使用概率形式表示置信區間:
因此我們可以說平均值 \(1-\alpha\) 的置信區間是:
后面在使用這個置信區間的時候,我們可以將樣本方差代入總體方差。
當然也可以自己算出方差,重新構造置信區間,比如在兩階段抽樣中的那樣。
時間消耗模型
在評估一個知識圖譜正確率的時候,我們需要兩個步驟。
- 確定實體。這個實體指的是誰,比如下表中 Task 1 的 MJ 是科學家,而 Task 2 中的 MJ 是運動員。
- 確定表述。確定三元組表述的事實是否正確。
我們發現有如下規律:
- 不同實體越多,我們辨識實體消耗的時間越多。
- 在總數不變的情況下,不同實體越少,實體的三元組越多,總的消耗時間越少,因為我們需要了解一個實體,就可以確定實體相關的三元組。
因此,提出如下 cost function:
\(|E'|\)表示不同實體個數,\(|G'|\)表示抽樣產生的知識圖譜個數。
\(c_1\)為確定實體消耗,\(c_2\)為確定表述消耗。在后面的實驗中,得出了如下數據,\(c_1 = 45, c_2 = 25\)
論文中的公式 2是期望值。隨機變量是什么呢?不同的抽樣方法!不同抽樣方法導致什么不同呢?抽樣產生的不同實體個數和抽樣總數的不同。我這里就沒有寫期望了,上面的 cost 函數是已經抽樣后的代價。
這個模型有兩個作用:
- 最優化的目標
- 模擬實驗中,可以拿來估計評估一組三元組需要的時間。我們可以通過合成三元組,再用這個模型計算消耗的時間,實驗的時候人力都不需要了。
最優化問題
目標是盡可能減少人力消耗,同時還要滿足誤差界限在一定范圍,並且要求無偏估計。
優化的目標是隨着采樣數量單調遞增的,所以在后面的計算中,都是找采樣數量的下界,讓采樣數量等於下界就是最優化的目標了。
Simple Random Sampling
隨機從知識圖譜中抽取 \(n_s\) 個三元組。
\(n_s\)個隨機變量為:
正確率:
置信區間,二項分布的方差可以用均值表示 \(\hat{\mu_s}(1-\hat{\mu_s})\):
無偏性:
cost 分析:
令 \(n_c\) 表示不同實體的個數,\(n_s\)表示抽取三元組的總數
抽到 \(n_c\) 個不同的實體,我們可以將 \(n_c\) 分解,其中 \(X_i = 0, 1\) 表示“抽\(n_s\)次,第 \(i\) 個實體是否被抽中”的隨機變量。
所以 cost 可以寫成:
約束條件:
cost 隨着 \(n_s\) 增大而增大,所以取下界,即是理論上,最少的采樣數量。
你會發現,這個采樣數量和知識圖譜的總大小無關,和知識圖譜的正確率有關!
Random Cluster Sampling
從 N 個實體中,等概率隨機抽取 n 個實體,這些實體對應的所有三元組進行判斷。
n 個隨機變量,\(\tau_{I_k}\)表示第\(I_k\)個實體的正確三元組個數:
正確率:
置信區間:
無偏性:
Weighted Cluster Sampling
從 N 個實體中,加權隨機抽取 n 個實體,這些實體對應的所有三元組進行判斷。
n 個隨機變量,\(\mu_{I_k}\) 表示第 \(I_k\) 個實體的正確率:
正確率:
置信區間:
無偏性:
Two-Stage Weighted Cluster Sampling
第一階段:從 N 個實體中,加權隨機抽取 n 個實體
第二階段:從 n 個實體的三元組中隨機抽樣,最多抽取 m 個。(后面的實驗結果建議 m 取 3~5)
n 個隨機變量,每個隨機變量為隨機抽樣 m 個得到的正確率:
正確率:
置信區間:
無偏性:
cost 分析:
這里論文中算出了 \(\hat\mu_{w, m}\) 的方差為 \(Var(\hat\mu_{w, m})\),因此我們可以使用中心極限定理構造新的關於 \(Var(\hat\mu_{w, m})\)置信區間:
重新構造置信區間
約束:
所以我們才有公式 11 下面的那個表達式(我在這里卡了半天,一直在盲目代公式算,最終才意識到應該重新構造置信區間)
Stratified Two-Stage Weighted Cluster Sampling
分層隨機抽樣,按照實體所含有的三元組個數分層。在計算准確率的時候,加權計算每層准確率大小。
因為按照個數分層,每一層可以得到更小的方差,所以分層抽樣的方差要小於不分層抽樣的方差。因此,結合誤差界限來看,當方差越小,需要判斷抽樣的數量越少,所以分層需要耗費的標注時間更少。
Reservoir Incremental Evaluation
這一小節沒有講清楚,WRS 得到的結果該如何去計算正確率。
WRS 中的加權,權重是一個實體的三元組個數 \(M_i\)。一開始一直在糾結用比例 \(M_i / M\),一直沒搞懂如何才能保持比例不變呢。 WRS 中將 \(\Delta\) 中的每一個實體視為一個新實體,不管這個實體是否已經存在於原來的知識圖譜中。
WRS 的結果為按權重抽樣的結果,計算正確率的時候使用 WCS 的公式即可。當然,某個更新可能包含一個實體的幾百個三元組,此時可以對這個樣本進行簡單隨機抽樣,計算正確率,再用 TWCS 的公式來計算。
Stratified Incremental Evaluation
新的知識圖譜記為\(G + \Delta\),將原知識圖譜 \(G\) 和更新 \(\Delta\) 當成分層抽樣中的不同層,之后用加權求和。
對於多組更新,可以將每一次更新都當成分層抽樣的一層,之后再加權求和計算准確率。
實驗中重要的結論
實驗也是非常重要的部分,這里可以讓你直觀的了解到每種方法的優點和缺點,了解一些重要參數和方法。
比如,TWCS 評估的時間不受知識圖譜的大小影響!!這一結論真是太震驚了。
cost function
時間消耗模型中的參數為 \(c_1 = 45, c_2 = 25\)
Oracle Stratification
按照實際的正確率來分層,方差可以大大減少。從而我們可以確定分層之后,可以達到的最優解。這種分層方法僅僅是理想的分層,實際上我們並不能知道知識圖譜的結構,我們用這種方法來確定分層能達到的最優解。
static KG evaluation
所有方法中,TWCS 效率最高。
TWCS 對比 SRS,TWCS 抽取的實體種類少,TWCS 相比 SRS 大概節約 20% 的時間。但是,在高准確率的情況下,TWCS 又是並不明顯,有的甚至比 SRS 慢。
TWCS 中 m 的數值
一般來說,評估的時間先隨着 m 的增大而減小,到了最低點后,又隨着 m 的增大而增大。因為 m 大於一定值的時候,再增大 m 並不能減少需要抽取的實體個數 n。
理論上,m 的數值取決於實體大小和准確率的分布;實踐上,m 推薦設置為 3~5。
分層采樣
我們預設了“實體的三元組數量越多,正確率越高”,根據這一假設合成了 MOVIE-SYN,然后在上面的實驗結果非常美麗動人。
但是,在真實的知識圖譜上進行的時候,發現並不奏效。
結論:
in practice, cluster size may serve as a good signal indicating similarities among entity accuracies for large clusters but not for those small ones, and the overall variance is not reduced as we expected.
TWCS 評估時間的影響因素
TWCS 評估的時間不受知識圖譜的大小影響!!!
TWCS 評估的時間受到知識圖譜正確率的影響,在 50% 正確率的情況下,達到最大。
Single Batch of Update
不管更新內容的大小還是更新內容的准確率,SS 都比 RS 好。
Sequence of Updates
RS 能夠 fault-tolerant。實驗結果表明,如果一開始知識圖譜的正確率評估是不准確的,那么再接下來的更新中,RS 能夠較快的進入實際的正確率,但是 SS 一直受到之前結果的影響,很難達到實際的正確率。
因此,在需要多次、少量更新知識圖譜的情況下,推薦使用 RS。
Q&A
1,每個抽樣方法的 cost 分析得出的抽樣數量究竟有什么用?比如,SRS 中我們抽樣了 \(n_s\) 個,得到了均值,再用這個均值反推 \(n_s\),這不就死鎖了嗎?再比如,TWCS 中我們需要知道知識圖譜每個實體的准確率,整體的正確率,我們才能求 \(n, m\),我們去優化這個問題干什么呢?
實際上,我們采樣的時候,采樣的數量我們可以自己決定。
在 SRS 中,根據第 4 節的整體框架,我們每次抽取 a small batch of samples(每次我們抽 30 個),放入已經判斷過的樣本一起,然后讓人判斷新加入的樣本是否正確。判斷結束之后,使用全部樣本計算均值。再用這個均值計算是否達到最少需要的樣本,如果達到了,那么可以停止了,如果沒有,那么還要繼續。所以,n_s 的下界給出來的作用是,簡化 Quailty Control 的判斷。並不是我認為的,需要抽取的數量。
在 TWCS 中,m 取決於知識圖譜的結構,但是我們事先根本不知道知識圖譜的結構是如何的,根本無法計算 m。所以通過做實驗,推薦 m 為 3~5。那么判斷是否結束的條件,可以看看樣本來是否達到了 nm 個,如果達到了,就可以結束采樣了。
另外,我們分析的目的是,確定最優的抽樣算法,而不是確定需要采樣的數量是多少!比如,在對比 “TWCS” 和“分層的TWCS”兩種方法的時候,分析出了方差更小,誤差界限的不等式可以推出分層需要的樣本量更小,代價更小。所以,代價分析的結果是,分層的 TWCS 更好,當然了,實驗結果表明並不,因為分層的方式出發點不對。
2,RCS 和 WCS 的 cost 如何分析?
不分析!
這里不分析 RCS 和 WCS,原因很簡單,因為這兩種方法在隨機抽取 n 個實體之后,把這個實體的所有三元組都拿出來判斷了,但是有時候一個實體的三元組很多,這樣就消耗了更多時間了。從實驗來看,確實存在這種情況。
實際上,這兩者的 cost 取決於知識圖譜的結構,可能抽取到某些實體的三元組個數特別多,因此消耗更多的時間。
3,為什么 TWCS 需要計算出方差,而不用樣本方差呢?
假如我們直接拿樣本來分析,我們有 \(n\) 個不同的實體,一共抽取了 \(\sum^n_{k=1} min\{M_{I_k}, m\}\) 個實體。
優化目標是:
這里 \(n\) 和 \(\sum^n_{k=1} min\{M_{I_k}, m\}\) 都是優化目標的變量,但是\(\sum^n_{k=1} min\{M_{I_k}, m\}\)不好搞。
所以,在 TWCS 中,我們分析 cost,先分析正確率的方差(就是那個比較復雜的公式),然后重新構造置信區間,再分析 cost。