兩篇知識表示方面的論文閱讀筆記

Storm*Rage發表於2020-10-05

兩篇知識表示方面的論文

一、RDF相關

原文連結An RDF Data Set Quality Assessment Mechanism for Decentralized Systems

  這篇文獻的主要內容是針對現在去中心化的網路結構,其資料的描述具有多樣性,而這些資料大多都是根據原始的RDF資料集所產生的。RDF資料集的質量對這種去中心化的網路結構有著重要的影響。文獻中提出了一種對RDF資料集的評估模型,用來衡量RDF資料集的質量高低。

  分散的網路結構的特點:

  • 有很多節點
  • 節點之間沒有層次關係
  • 每個節點可以獨立執行,不受其它節點干擾
  • 節點之間相互連線

  優點:減少對中心節點的依賴,增強整個結構的安全性和魯棒性。

  去中心化產品:區塊鏈、比特幣

  RDF出現在第三代Internet,其核心是語義Web技術,其目的是解決不同形式的資料描述造成的難以整合。原始RDF資料集的質量是影響分散系統效能的關鍵因素。使用區塊鏈來儲存質量評估結果,這可以減少權威機構的集中化。

1.1 模型設計

  結點質量由兩部分組成:節點服務質量(節點有效提供服務的能力,受物理因素影響)、節點資料質量(節點服務質量度量,重點關注)。

  RDF資料集的質量因素:空白節點數量、資料冗餘、URI的可訪問性

1) 評估結果構造

  資料冗餘的定義為:

Redundancy (data) = 1 − USPO ⁡ ( data ) SPO ⁡ ( data ) \text {Redundancy}_{\text {(data)}}=1-\frac{\operatorname{USPO} {(\text {data})}}{\operatorname{SPO} {(\text {data})}} Redundancy(data)=1SPO(data)USPO(data)

  其中 S P O SPO SPO表示三元組的數量, U S P O USPO USPO表示去重後的三元組數量。

  資料集中每一個主體(subject)的平均屬性數量:

V P (data) = S P O ( data ) U S ( data ) V P_{\text {(data)}}=\frac{S P O(\text {data})}{U S(\text {data})} VP(data)=US(data)SPO(data)

  其中 S S S表示三元組中主體(subject)的數量, U S US US表示去重後的subject。這個值越大,說明每個subject的屬性越多,從而知識更完整。

  RDF的質量評估結果用QRDF表示:

Q R D F (data)  = k 1 × ( 1 − Redundancy ( data ) ) + k 2 × ( 1 − Blank ( data ) S P O ( data ) ) + k 3 × U R I (data) + k 4 × V P (data) \begin{array}{l} Q R D F_{\text {(data) }}=k_{1} \times\left(1-\text {Redundancy}_{(\text {data})}\right) \\ +k_{2} \times\left(1-\frac{\text {Blank}(\text {data})}{S P O(\text {data})}\right)+k_{3} \times U R I_{\text {(data)}} \\ +k_{4} \times V P_{\text {(data)}} \end{array} QRDF(data) =k1×(1Redundancy(data))+k2×(1SPO(data)Blank(data))+k3×URI(data)+k4×VP(data)

  其中 URI (data) \text{URI}_{\text {(data)}} URI(data)表示可訪問的URI的數量。
  第一項是資料集中不重複的subject的比例,第二項是非空節點的比例,第三項是可用URI的比例,最後一項是平均subject的出度。

2) 可驗證性

  即要求通過相同的輸入,應該獲得相同的輸出,能夠復現。但是KG、RDF會動態變化,進行維護和補全,無法保持一成不變,因此需要評估可驗證性。文獻中定義的可驗證性結果是每一次查詢的正確/錯誤率差值(這裡有個問題,論文中的previous record是上一次還是之前的所有):

Verifiability ( data ) = ∑ i = 1 n ( CorrectRate ( logi ) − ErrorRate (logi) ) \text {Verifiability}_{(\text {data})}=\sum_{i=1}^{n}\left(\right.\text {CorrectRate}_{(\text {logi})} - \text {ErrorRate} \left._{\text {(logi)}}\right) Verifiability(data)=i=1n(CorrectRate(logi)ErrorRate(logi))
在這裡插入圖片描述

  從公式中可以看出,當結點穩定,即無更改的情況下,每次的查詢結果都相同,則可驗證性的結果應該等於不同的查詢的個數。

3) 完整性、相關性、唯一性

  如果節點 A A A具有在其他節點中不存在的實體 S i S_i Si,並且使用者對 S i S_i Si的需求更大。對於實體 S i S_i Si,節點 A A A中的資料集對整個知識圖有很大貢獻。相反,如果每個節點都擁有一個實體,則該實體在該節點中的貢獻很小。

  定義實體 S i S_i Si的完整性:

I (data , S i ) = P ( d a t a , S i ) B P ( S i ) I_{ \text {(data} \left., S_{i}\right)}=\frac{P_{\left(d a t a, S_{i}\right)}}{B P_{\left(S_{i}\right)}} I(data,Si)=BP(Si)P(data,Si)

  其中 P ( d a t a , S i ) P_{(data,S_i)} P(data,Si)表示 Data \text{Data} Data中以 S i S_i Si為主體的謂語。 B P ( S i ) BP_{(S_i)} BP(Si)表示整個KG中 S i S_i Si為主體的謂語。

  相關性是由實體 S i S_i Si在節點資料集之間計算的重複屬性的比例之和:

Relationship (data) = ∑ i = 1 n ( P ( d a t a , S i ) B P ( S i ) ) ( S i ∈ D a t a ∩ Each other node ) \begin{array}{l} \text {Relationship}_{\text {(data)}}=\sum_{i=1}^{n}\left(\frac{P_{\left(d a t a, S_{i}\right)}}{B P_{\left(S_{i}\right)}}\right) \\ \left(S_{i} \in D a t a \cap \text {Each other node}\right) \end{array} Relationship(data)=i=1n(BP(Si)P(data,Si))(SiDataEach other node)

  唯一性是指一個節點擁有其他節點所不具備的知識的程度。計算公式為:

Uniqueness ( data ) = ∑ i = 1 n ( P ( d a t a , S i ) − P u b l i c P ( d a t a , S _ i ) B P ( S i ) ) ( S i ∈ D a t a ) \text {Uniqueness}_{(\text {data})}=\sum_{i=1}^{n}\left(\frac{P_{(data,S_{i})} - PublicP_{(data,S\_i)}}{B P_{\left(S_{i}\right)}}\right) (S_i \in Data) Uniqueness(data)=i=1n(BP(Si)P(data,Si)PublicP(data,S_i))(SiData)

  其中 P u b l i c P ( d a t a , S i ) PublicP_{(data,S_i)} PublicP(data,Si)是Data與KG中重合的謂語。

  從唯一性的評分值可以推匯出節點對整個網路的貢獻值:

Contribution ( data ) = ∑ i = 1 n (  Uniqueness  ( data , s i ) ) × ( S C ( S i ) − S F ( S i ) × k ) ( S i ∈ D a t a , S F ( S i ) ∈ [ 0 , 1 ] , k > 0 ) \begin{aligned} &\text {Contribution}_{(\text {data})}=\sum_{i=1}^{n}\left(\text { Uniqueness }_{\left(\text {data}, s_{i}\right)}\right) \times \left(S C_{\left(S_{i}\right)}-S F_{\left(S_{i}\right)} \times k\right)\\ &\left(S_{i} \in D a t a, S F_{\left(S_{i}\right)} \in[0,1], k>0\right) \end{aligned} Contribution(data)=i=1n( Uniqueness (data,si))×(SC(Si)SF(Si)×k)(SiData,SF(Si)[0,1],k>0)

  其中 S C ( S i ) SC_{(S_i)} SC(Si) S i S_i Si的查詢頻率, S F ( S i ) SF_{(S_i)} SF(Si) S i S_i Si的使用者反饋係數,值越小說明越可靠; k k k是比例係數。
在這裡插入圖片描述

  直觀上看,假設節點A具有實體 S 1 S_1 S1,而這個結點在其他節點中不存在,並且其查詢頻率很高,則該節點將對整個知識圖譜做出更大的貢獻。而如果節點A和其他節點不僅具有相同的實體 S 2 S_2 S2,而且具有相同的實體屬性,則節點A中的實體 S 2 S_2 S2對該知識圖譜的貢獻較小。

4) 結點的資料質量

  節點的資料質量包括RDF的檢測維度、資料完整性、可驗證性、使用者反饋幾個方面。綜合上面的幾個特徵,作者得出了最終的評估方式:

Q D (data)  = k 1 × Q R D F (data) + k 2 × Contribution (data) + k 3 × Verifiability (data) ( k 1 > 0 , k 2 > 0 , k 3 > 0 ) \begin{array}{l} Q D_{\text {(data) }}=k_{1} \times Q R D F_{\text {(data)}}+k_{2} \times \text {Contribution}_{\text {(data)}}+k_{3} \times \text {Verifiability}_{\text {(data)}} \\ \left(k_{1}>0, k_{2}>0, k_{3}>0\right) \end{array} QD(data) =k1×QRDF(data)+k2×Contribution(data)+k3×Verifiability(data)(k1>0,k2>0,k3>0)

  這個評估參量包含了節點的本身的質量、節點的可驗證性、以及節點對整個知識圖譜的貢獻(佔比較大)幾個維度。

1.2 DCQA系統設計

  去中心的節點結構主要可以用在P2P系統中。每個節點擁有獨立的知識,並在知識受保護的情況下與其他節點互動。使用者可以從任何節點進行訪問,訪問效果是一致的。
在這裡插入圖片描述

OWL相關

原文連結Constructing and Cleaning Identity Graphs in the LOD Cloud

  這篇論文的核心點在於,由於LOD雲的資料量過於龐大,owl:sameAs語句中存在一些錯誤的聯絡。為了削弱這種錯誤對整個KG所帶來的影響,文獻中提出了一種方法:通過抽取出相關的資料,並且定義了錯誤程度這個引數。通過評估相關的node,將錯誤程度較高的三元組除去,得到一個子圖,並且通過實驗證明了這個子圖的效果不會因為刪掉了一些元素而降低。
  同時,由於整個KG中的owl:sameAs語句數量相當龐大,如果不進行處理直接進行評估會耗費大量的時間。因此論文中對抽取出來的元素進行了結構化簡,降低複雜度,因而在評估時可以提高效率。

2.1 問題的提出

  由於不同的機構命名方式不太一樣,在進行整合時,如果有多個名稱表示同一事物時,需要使用owl:sameAs語句來連結資料並促進重用。但是有時owl:sameAs的語句會出現一些錯誤。

  解決方案:

  • 集中式實體命名系統OKKAM:重複使用現有名稱
  • 訪問的身份認證,受語義和覆蓋率的限制
  • 利用owl:sameAs的閉包
  • LODsyndesis共同引用
  • 唯一名稱假設檢驗
  • 基於邏輯不一致的檢測

  現有方法存在的問題:難以擴充套件,將其應用到整個LOD雲中;假設的基礎建立在不完備的資料集上。

  利用錯誤程度的引數來評估連結質量,並進行一定的調整——構建兩個子圖並計算傳遞閉包。兩種模式:僅採用高質量連結;限制錯誤連結的認定,同時減少資訊丟失——丟棄一個低質量的subsub資料集。

2.2 從LOD中構造閉包

  總流程如下所示:
在這裡插入圖片描述

  構造閉包的流程:

  • (1)提取顯式的owl:sameAs語句(extraction)
  • (2)刪除計算演繹閉包不必要的owl:sameAs語句,同時進行化簡(construction、compaction)
  • (3)通過對owl進行分割槽來計算閉包(closure)

1) 提取相關知識

  利用SPARQL語言進行查詢,抽取需要的語句

select distinct ?s ?p ?o {
    bind (owl:sameAs AS ?p)
    ?s ?p ?o }

2) 顯式身份網路

  抽象化LOD雲圖,定義資料圖: G = ( V , E , ∑ E , I E ) G=(V,E,\sum_E,I_E) G=(V,E,E,IE) ∑ E \sum_E E是邊的標籤, I E I_E IE E E E ∑ E \sum_E E的獨熱編碼函式。

  從 G G G中進行extraction,得到顯式身份網路: G e x = ( V e x , E e x ) G_{ex} = (V_{ex},E_{ex}) Gex=(Vex,Eex) E e x E_{ex} Eex是label為owl:sameAs的邊, V e x V_{ex} Vex是相關的node。

3) 構建身份網路

  owl:sameAs是自反、對稱、傳遞的,對 G e x G_{ex} Gex進行化簡: I = ( V I , E I , { 1 , 2 } , w ) I=(V_I,E_I,\{1,2\},w) I=(VI,EI,{1,2},w),因為邊的型別都是owl:sameAs,還是自反的,可以轉化為無向圖,並設定邊的權重 weight ∈ { 1 , 2 } \text{weight} \in \{1,2\} weight{1,2}。2是兩條有向邊都在 G e x G_{ex} Gex中,1就是隻有1條。 w w w是轉換函式。
E I = { e i j ∈ E e x ∣ i < j } E_I = \{e_{ij} \in E_{ex} | i < j\} EI={eijEexi<j}

V I = V e x [ E I ] V_I = V_{ex}[E_I] VI=Vex[EI]

4) 身份集的壓縮/閉包

  進一步壓縮,將無向圖 I I I轉化為節點對:假定 x , y x,y x,y按字典序排序,構造節點對的集合 { ( x , y ) ∣ e x , y ∧ ( x < y ) } \{(x,y)|e_{x,y} \wedge (x<y)\} {(x,y)ex,y(x<y)}

  求閉包:然後將節點對映為ID: V I ↦ v I D V_I \mapsto_{v} ID VIvID。對這種結構的構造分為三種情況:

  • x x x y y y不存在於任何集合:新建立一個集合,然後構造 x ↦ v i d , y ↦ v i d , i d ↦ k { x , y } x \mapsto_v id,y \mapsto_v id,id \mapsto_k \{x,y\} xvid,yvid,idk{x,y}
  • 只有 x x x y y y類似)存在於集合中:對 x x x的集合加入 y y y y ↦ v v a l ( x ) , v a l ( x ) ↦ k k e y ( v a l ( x ) ) ∪ { y } y \mapsto_v val(x),val(x) \mapsto_k key(val(x)) \cup \{y\} yvval(x),val(x)kkey(val(x)){y}
  • x x x y y y都存在於各自的集合中,則取兩個集合的並集: v a l ( x ) ↦ k k e y ( v a l ( x ) ) ∪ k e y ( v a l ( y ) ) val(x) \mapsto_k key(val(x)) \cup key(val(y)) val(x)kkey(val(x))key(val(y)),也就是說 ∀ y ′ ∈ k e y ( v a l ( y ) ) \forall y' \in key(val(y)) ykey(val(y)),都有 y ′ ↦ v v a l ( x ) y' \mapsto_v val(x) yvval(x)

2.3 計算誤差度

  論文中,作者對於誤差度error degree的定義和思想主要是認為owl:sameAs的錯誤程度取決於兩個方面:

  • 集合的內部密度或者相互之間的關聯的密度
  • 無向圖中的邊的權重是否為2

  作者認為錯誤程度用於對身份連結進行排序,從而允許識別潛在錯誤的連結並驗證潛在的真實連結。這種演算法具有:記憶體佔用低、支援並行、能夠處理KG的更新的特點。

  誤差度的計算對每一個 I I I進行檢測,並且構造其錯誤程度(error degree),主要按照下面的步驟進行:

1) Community檢測

  這裡Community的定義是成員之間連線緊密,但是與網路的其餘部分連線稀疏的群體。內部採用模組化的演算法。

  模組化演算法modularity-based method.

  • 輸入:叢集 Q k Q_k Qk
  • 輸出:不重疊的社群 C ( Q k ) = { C 1 , C 2 , ⊙ , C n } C(Q_k) = \{C_1,C_2,\odot,C_n\} C(Qk)={C1,C2,,Cn}

  其中 C C C Q k Q_k Qk的子圖.

   A A A是網路的鄰接矩陣, c v c_v cv c w c_w cw是結點 v v v w w w所在的社群,社群內部的邊數和網路總邊數的比例:

∑ v w A v w δ ( c v , c w ) ∑ v w A v w = 1 2 m ∑ v w A v w δ ( c v , c w ) \frac{\sum_{v w} A_{v w} \delta\left(c_{v}, c_{w}\right)}{\sum_{v w} A_{v w}}=\frac{1}{2 m} \sum_{v w} A_{v w} \delta\left(c_{v}, c_{w}\right) vwAvwvwAvwδ(cv,cw)=2m1vwAvwδ(cv,cw)

  其中 δ ( c v , c w ) \delta(c_v,c_w) δ(cv,cw)表示如果 c v = c w c_v=c_w cv=cw,則為1,否則為0, m m m為網路總邊數。

  模組度的大小定義為社群內部的總邊數和網路中總邊數的比例減去一個期望值,該期望值是將網路設定為隨機網路時同樣的社群分配所形成的社群內部的總邊數和網路中總邊數的比例的大小,於是模組度 Q Q Q為:

Q = 1 2 m ∑ v w [ A v w − k v k w 2 m ] δ ( c v , c w ) Q=\frac{1}{2 m} \sum_{v w}\left[A_{v w}-\frac{k_{v} k_{w}}{2 m}\right] \delta\left(c_{v}, c_{w}\right) Q=2m1vw[Avw2mkvkw]δ(cv,cw)

  其中 k v k_v kv表示點 v v v的度。

  具有高模組化的網路在社群內的節點之間具有密集的連線,但在不同社群內的節點之間的連線卻稀疏。

2) 誤差度計算

  社群內部連結:已知社群 C C C e C e_C eC是一條加權邊 e i j e_{ij} eij v i , v j ∈ C v_i,v_j \in C vi,vjC E C E_C EC C C C的內部連結的集合。

  社群間連結:已知兩個不相交的社群 C i , C j C_i,C_j Ci,Cj e i j e_{ij} eij是一條加權邊, v i , v j v_i,v_j vi,vj分別屬於 C i C_i Ci C j C_j Cj E C i j E_{C_{ij}} ECij是這兩個社群的互連結的集合。

  社群內的連結既依賴包含邊的社群的密度,也依賴於邊的權重。該社群的密度越低,邊的權重越低,錯誤度將越高。

  社群內連結的錯誤程度:

err ⁡ ( e C ) = 1 w ( e C ) × ( 1 − W C ∣ C ∣ × ( ∣ C ∣ − 1 ) ) \operatorname{err}\left(e_{C}\right)=\frac{1}{w\left(e_{C}\right)} \times\left(1-\frac{W_{C}}{|C| \times(|C|-1)}\right) err(eC)=w(eC)1×(1C×(C1)WC)

  其中, W C W_C WC是社群中的邊的權重總和, W C = ∑ e C ∈ E C w ( e C ) W_{C}=\sum_{e_{C} \in E_{C}} w\left(e_{C}\right) WC=eCECw(eC)

  社群間連結時既依賴於社群間連結的密度,又依賴於該邊的權重。兩個社群之間的連結越少,邊的權重越低,錯誤度越高。

err ⁡ ( e C i j ) = 1 w ( e C i j ) × ( 1 − W C i j 2 × ∣ C i ∣ × ∣ C j ∣ ) \operatorname{err}\left(e_{C_{i j}}\right)=\frac{1}{w\left(e_{C_{i j}}\right)} \times\left(1-\frac{W_{C_{i j}}}{2 \times\left|C_{i}\right| \times\left|C_{j}\right|}\right) err(eCij)=w(eCij)1×(12×Ci×CjWCij)

  其中, W C i j = ∑ e C i j ∈ E C i j w ( e c i j ) W_{C_{i j}}=\sum_{e_{C_{i j}} \in E_{C_{i j}}} w\left(e_{c_{i j}}\right) WCij=eCijECijw(ecij)

2.4 評估

  • 相同:terms指代同一個實體
  • 相關:terms指代密切相關的實體
  • 不相關:既不相同也不緊密相關
  • 存疑:沒有明確的判斷依據

  作者通過實驗發現,錯誤程度 d e g r e e ≤ 0.4 degree \leq 0.4 degree0.4時,same佔據100%,且二者正相關。
在這裡插入圖片描述

2.5 對原LOD進行調整

  兩種方法:

  • 丟棄存在“潛在錯誤”的owl:sameAs元組;
  • 只留下“高質量”的owl:sameAs元組

  對於“潛在錯誤”和“高質量”這兩個標準,論文中根據之前的引數認為, d e g r e e ≤ 0.4 degree \leq 0.4 degree0.4是“可能正確”的; d e g r e e ≤ 0.99 degree \leq 0.99 degree0.99具有“潛在錯誤”。

  因此將 d e g r e e ≤ 0.4 degree \leq 0.4 degree0.4或者 d e g r e e ≤ 0.99 degree \leq 0.99 degree0.99的都從圖中丟棄。

  作者對這兩種方法的處理結果進行了分別的實驗,實驗結果表明丟棄少量連結——錯誤程度高於0.99(約0.17%)連結,可以顯著提高生成的封閉的質量;而丟棄大量連結——錯誤率高於0.4(27%)會導致語義上的問題,準確率也會降低。
在這裡插入圖片描述

相關文章