日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TransE,知识图谱嵌入(KGE)论文精读

發布時間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TransE,知识图谱嵌入(KGE)论文精读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TransE


寫作目的:

在學習論文時,參考查閱許多博客,我認為大多在照搬原文翻譯中的話,另外,按此順序的寫作手法,對于我或其他讀者仍舊晦澀難懂,甚至這些博客中出現很多錯誤的理解,在閱讀和參考中,寫下自己的主觀理解并分享,因個人能力極其有限,難免會有出錯的地方,因此不完全代表原論文中作者的意思,誠懇希望大家在評論區糾錯指正和補充完善,萬分感激!

本文相關:

1.機器學習中正則化項L1和L2的直觀理解
2.論文筆記(一):TransE論文詳解及代碼復現
3.如何理解隨機梯度下降(stochastic gradient descent,SGD)
4.batch GD, mini-batch GD, SGD的理解
5.機器學習:SVM(目標函數推導:Hard Margin SVM、Soft Margin SVM)

資源下載:

1.線性回歸與正則化
2.基于TransE的表示學習方法研究綜述


TransE: Translating Embedding,將實體與關系嵌入到低維向量空間中,并對向量空間中的三元組(h,r,l)進行操作,把關系 r 視為“翻譯”來進行建模的知識表示方法
Motivation: 處理在低維向量空間中嵌入的實體和多關系數據的關系的問題【知識圖譜(KG)是其中的重要的研究對象】
Advantage: 相比之前存在的諸多三元組的訓練表示方法,更易于訓練,且包含較少的參數,可以擴展到非常大的數據庫,并且,在現實世界中存在的知識圖譜上的鏈接預測方面可以顯著優于發表時的最先進的方法
Paper: Antoine Bordes等人在2013年發表于NIPS上的文章


一. TransE 向量空間假設

TransE 對三元組(h,r,t)中的實體和關系映射到向量空間作了一些假設:

每一個三元組(h,r,t)都能表示為(),其中,是指頭實體的向量表示,是指關系的向量表示,是指尾實體的向量表示

通過不斷調整來構建三元組(其中三元組的實體和關系都來自源知識圖譜),來發現向量空間中,頭實體向量 加上關系 等于尾實體向量 的三元組,這個過程稱為翻譯,如果在向量空間這種關系成立,就說明三元組(h,r,t)所代表的知識表示可以看作是正確的,以此來發現實體間新的關系,如下圖所示:

用我自己的理解,TransE 的功用在于:

通過詞向量表示知識圖譜中已存在的三元組(所以TransE可以看作知識表示方法

擴大知識圖譜中的關系網,擴充構建多元關系數據。其中,關系數據包括單一關系數據(single-relational data)和多元關系數據(multi-relational data)(單一關系通常是結構化的,可以直接進行簡單的推理,多元關系則依賴于多種類型的實體和關系,因此需要一種通用的方法能夠同時考慮異構關系)(所以TransE可以看作“活的”或“更高級的”的知識表示方法,因為可以做知識圖譜上的鏈接預測,或作為媒介完善知識圖譜

實驗的訓練集使用的是知識圖譜中的實體集和關系集進行構造:

Given a training set S of triplets (h, l, t)
composed of two entities h, t ∈ E (the set of entities) and a relationship l ∈ L (the set of relationships)
即訓練集中頭實體向量和尾實體向量都來源于原知識圖譜中的實體集,l 來自于知識圖譜現有的關系集

知識圖譜(KG)中現存的關系構成關系集,實體構成實體集,我們抽取兩個集合來構造三元組,讓知識圖譜(KG)中的成對的實體與每個關系做向量的運算,如果近似達到要求,就連接兩個實體來補充完善知識圖譜,從而挖掘或者說是發現實體間的多元關系,擴大知識圖譜實體間的關系網,發揮鏈接預測的作用。


二. TransE 原理分析

① 對知識圖譜中的現有關系進行表示

按照自己理解畫圖如下:


② 分析TransE的算法原理

把算法偽代碼放在了最后,從頭到尾分析設計流程,再去看就容易理解很多


在知識圖譜的實體向量集中,隨機取得頭實體向量 尾實體向量并對初始三元組的對應向量進行替換(一次替換一個,另一種設計方案,替換關系 r ,也可以,原理一樣),得到若干三元組d ( h’ + r,t’ ),構成訓練集進行訓練。損失函數 L 在后邊介紹(此處先不過多關注)


論文中提到了兩類樣本,即正樣本三元組和負樣本三元組,主觀理解如下:

正樣本三元組: 翻譯關系成立的三元組稱為正樣本三元組(KG中原本存在的關系一定滿足,另外,新構建的三元組一部分也滿足翻譯關系),這些樣本從某種程度可以看作一類樣本,可用于完善知識圖譜或做鏈接預測表明兩個實體存在這種關系。

負樣本三元組: 通過均勻負采樣技術得到: 隨機替換 KG 中現有的三元組中的頭實體向量或尾實體向量構建的樣本視為錯誤的樣本,即錯誤的樣本【當然也有可能正好替換為正確的樣本,對訓練造成影響,這也是 TransE 的槽點之一吧,后期有通過改進這種負采樣技術的方法】,這些錯誤的樣本在這些三元組樣本中,部分樣本的翻譯關系是不成立的(三元組中兩個實體不存在這種關系),來輔助訓練。


負采樣過程示例:

里邊有個負采樣(替換)的過程,來構建出負樣本三元組(替換的過程也會無意構成正樣本三元組,因為這種無意充滿不確定性,因此訓練時影響最終的真實模型精度,因此在測試中也應該過濾掉,文中稱為Filter),和正樣本三元組一起構成訓練集。訓練的過程對每個三元組進行打分,因此這要進行打分函數的設計,訓練中朝著確保正樣本三元組的得分盡可能小,負樣本三元組的得分盡可能大的方向進行,這樣模型最終效果才會好,采用 mini-batch SGD來更新參數,找到相應的三元組,使得模型快速收斂。同時,在分類邊界,損失函數中也設置間隔作為容錯機制,使得最近的樣本間隔最遠,以此可使得模型對兩者的分類效果或精度達到不錯的水平,損失函數也相應越小。模型最終使用場景,輸入頭實體向量和關系,輸出約十個置信度較高(通過排名得到)的尾實體向量的預測,同時去掉數據集(包括訓練集,測試集和驗證集)中的負樣本三元組。因此在測試集中,可以通過看真實值在預測值里的命中率來評估。

這里我們也能看出 TransE 的另一個槽點

由于頭尾實體向量(統稱為實體向量)在一個集合(ent2id 即 實體-id 詞典)中,負采樣也是在這個詞典進行。
正如從 [ h + r ≈ t ] 的二維向量空間展示圖中可以看到那樣,如果 h + r ≈ t 代表 h 和 t 存在父子關系,誰父誰子是體現不了的。
作者提到知識圖譜中可能沒有箭頭指向,更多關注這種存在的關系,按我這樣理解應該是這層含義。


基于翻譯的模型的設計與分析:

得分函數的設計 :

注:d ( h + r,t ) = || h + r - t ||,距離公式 d ( h + r,t ) 可以取 L1 或 L2 范數,論文中的設置是 d ( h + r,t ) = || h + r - t ||( L1 / L2 可自行選擇 ) = f (h,r,t),這是個小細節,我們可以看到正樣本三元組距離函數值幾乎為 0,負樣本三元組的距離函數值較大,經過 L1 或 L2正則化確定最終的得分函數值,正則化后的值最終用于損失函數(這樣可以避免訓練出現過擬合),通過梯度下降朝著損失函數最小的方向更新參數(通過負采樣,最小化損失函數來構建訓練集,實際上,采集的樣本隨著參數的更新,在時序推進中,正樣本的 d 會越來越小,負樣本的 d 會越來越大),直至模型收斂,從而達到理想的精度

對 L1 或 L2正則化有疑惑可以參考文首的本文相關和資源下載對應內容,以下是回憶舊知,以平方誤差函數作為損失函數,分別加入 L1 正則項和 L2 正則項舉例,目標是讓損失函數最小,同時使得最終訓練的模型避免過擬合現象,關鍵原理如下:





同理可得,對 r 和 t 的梯度


參數更新:

使用 minibatch SGD,如下圖所示,可參考文首鏈接的博客,對應查漏補缺,此處不再贅述…

損失函數更新的參數,是所有 entities 和 relations 的 Embedding 數據,包括h、r、t,每一次SGD更新的參數就是一個Batch中所有embedding的值,總參數是最初我們畫的那倆矩陣的所有元素的個數之和


損失函數的設計:


公式理解:

[x]+ 指的是 max (0 , x)

γ 指的是損失函數中的間隔,γ > 0,這個參數按論文,寫的模糊,看其他博客,各有各的理解法,我寫下自己的理解:


類似于Soft Margin SVM,下圖摘自一篇博客的講解,鏈接放在文首了,我把重點截圖放下邊:

首先,我們可以觀察哪個分類邊界更好,如何去取舍某些樣本點?



我對 γ 的理解: 最終使得最相近的正負樣本三元組的樣本距離最大化

容錯機制

要求 h + r ≈ t 其實是一種理想狀態,比如學校對學生的成績期望是80分以上,難免有能力強的學生,失誤沒達到標準,我們認為這種機制太嚴格了,于是設定60分為合格,容錯區間長度達到20,這沒話說了,即使你考試失誤,能失誤到20分,把你掛科也不虧(比如你有90分的專業水平,我們放寬給了20分的允許失誤的范圍(容錯范圍),60-80就算過,可是你卻考出了50分的水平,把你分為差生,你也別怪誰,這個機制已經很寬容了。比如你有50分的專業水平,但你考到70分,你在60這個及格邊界構建的容錯范圍內,恭喜你,不把你當差生看待)。這樣區分課程考核是否合格的機制較為人性化,也具有普適性。

主觀理解,不嚴謹的地方,懇請評論區指正…

Soft Margin SVM要表達的意思,即使有些樣本現實中明明是A類,但在B類的容錯范圍內,為了整體模型的泛化性能,仍然將其劃分為B類

這種設計具有合理性,比如,人們見到金典兩字時會想到它是牛奶的品牌,可是確實有小伙伴的名字叫金典,當你認識到這個事實時,是否會加大它在你腦海中的印象,下次見到金典兩字時,也理直氣壯的說金典是人的名字?當然不會,我們會自動忽略這樣的小概率事件,再次見到金典兩字時,依舊認為金典是牛奶品牌。當然你會更理性,說金典也有概率是人的名字,可對于機器而言,它沒有感性認識,只有理性的錯覺,當下,大數據等技術為人工智能發展提供了豐富的數據資源,協助訓練出更加智能化的算法模型,大量的算法都是基于概率的,訓練集中存在“金典是人名”這樣的現實世界中真實存在的數據時(當然很少),機器在大數據中學習到的模型在真正遇到金典本人時依然大概率判斷錯誤,不僅如此,在遇到金典牛奶品牌時,有極小概率也判斷錯誤,這脫離了或超出了機器本身是機器的界限…我們只能盡可能完善判別機制,而不可能達到完全的準確,正如沒有絕對的100%,因此我們不為難機器了,我們設定容錯范圍來解決這個問題,對訓練集中關于“金典(真實 label:人名)”的數據,如果這條數據在“金典(真實 label:牛奶品牌)”的分類邊界構建的容錯范圍內,認為“金典是牛奶品牌”,【對訓練集中關于“金典(真實 label:牛奶品牌)①”的數據,如果這條數據在“金典(真實 label:牛奶品牌) ②”的分類邊界構建的容錯范圍內,認為“金典是牛奶品牌 ①”, 說明:① 雖然在整體數據分布的最外側,但不構成分類邊界,分類邊界 ② 是經過多次訓練得到的最佳支持向量所在直線,可以和異類進行最大的間隔劃分】,這樣,模型具有普適性(更好的泛化性能和判斷精度),為此需要進行模型參數的調整…


個人認為 γ 是一種容錯機制,下邊我結合課程考核成績與績點的對應關系來介紹:

與之類似,來理解本論文中 γ 的含義

比如原三元組的 d ( h + r,t ), 經正則化后為85分,關系 r 代表績點3.7以上

① 替換頭實體或尾實體向量后的d ( h’ + r,t’ ),經正則化后為95分,那么此三元組是否具備關系r呢
兩式差值為-10,γ 的設置在(1,10)區間,不用太多修正,最后三個式子加起來為負數, max (負數 , x)作用后為0,即損失 L 為0
這說明很容易判定你是績點為3.7以上的學生,模型一般不會出錯

② 替換頭實體或尾實體向量后的d ( h’ + r,t’ ),經正則化后為87分,那么此三元組是否具備關系 r 呢
兩式差值為-2,85是個界,這已經說明被分類的三元組在臨界區域中
γ 具體設置,按照我的理解:

  • 如果 γ 太小,損失值接近于0,說明在臨界區域,即使分類錯誤的樣本損失值也幾乎可以忽略,代表容錯空間相對更大,這是我們期望的,也是合理的
  • 如果 γ 太大,損失值大,說明在臨界區域,三元組分類正確或是錯誤的都不會被原諒,代表容錯空間相對苛刻,這顯然會降低泛化性能

TransE 通過不斷訓練、算法的優化,可以使損失函數 L 達到最小值


三. 實驗部分

數據集:WordNet 和 FreeBase

評估:

1.在測試集中,不斷從實體向量集中【原知識圖譜中正確的三元組】替換頭實體向量,我們可以通過損失函數的大小來判斷新構建的三元組關系成立的可能性,給替換后的三元組的打分并升序排列,并保存可使得三元組關系成立的實體的得分。替換尾實體向量也是這個原理。
2.預測得分的平均值和和排在前10位的三元組中,關系成立的三元組的占比。
3.移除所有的訓練集和驗證集或者測試集中不成立的三元組,保證它們不屬于數據集。

這相當于對頭實體向量和尾實體向量做了預測,實驗結果如圖所示:

Baselines就不多介紹了,因為TransE的提出已有近十年的時間,之前的知識表示模型更早,研究價值相對較小

如果有興趣了解,可以點擊進入論文或了解TransE之前的研究現狀

按照元組中關系的類型,將測試集的按結果分類更細,或者將關系細化(都可以,怎么說都行),作者展示了結果:

我針對尾實體預測中的1-TO-M,按自己理解寫了一個例子:

作者給出的例子:

在劃分好的測試集中驗證泛化性能,左邊是輸入頭實體和關系向量【來自于知識圖譜中對應的向量或矩陣表示】,右側的尾實體向量是在訓練集中按照排名規則,最有可能是真實的一些尾實體(Top 10)。加粗的尾實體是測試集中與頭實體和關系向量真正對應或者真實的尾實體,由此可驗證模型的質量如何。


在少量樣本中,給定頭實體向量和關系,預測尾實體向量,左圖表示測試集的平均排名情況(Loss),右圖表示測試集Hits@top10中正確的比例(Accuracy)??梢园l現當訓練集越大,測試集中 TransE 的平均排名(或者說預測的平均損失值)下降的最快,右圖表明,TransE模型的學習速度很快,在只有10個新關系的例子中,hits@10已經是達到約 18%,并且隨著訓練集中提供的樣本數量的增加,效果改善明顯。

TransE 的實驗設置:

不多介紹了,這里直接看論文直觀,實驗中可以靈活調整:


再來看整個算法,就相對清晰多了:


四. TransE 方法的優缺點

優點

① 解決多關系數據的處理問題,是一種簡單高效的 KG 表示學習方法
② 能夠完成多種關系的鏈接預測任務,能夠自動且很好地捕捉推理特征
③ 適合在大規模復雜的 KG 上推廣,是一種有效的 KG 推理手段

缺點

表達能力不足,不能夠有效充分的捕捉實體對間語義關系,無法有效處理一對多、多對一、多對多的關系以及自反關系。
處理圖像信息效果差、負樣本三元組的質量低、嵌入模型不能快速收斂、泛化能力差、邊緣識別能力…


五. TransE的變體

TransE是知識圖譜的向量化表示的基礎,衍生出來了很多變體:

1、TransH,AAAI2014,Knowledge graph embedding by translating on hyperplanes

2、TransD,ACL2015,Knowledge graph embedding via dynamic mapping matrix

3、TransA,arXiv2015,An adaptive approach for knowledge graph embedding

4、TransG,arxiv2015,A Generative Mixture Model for Knowledge Graph Embedding)

5、KG2E,CIKM2015,Learning to represent knowledge graphs with gaussian embedding

6、TranSparse,AAAI2016,Knowledge graph completion with adaptive sparse transfer matrix


寫到這里吧…


自我批評:

  • 能力有限,部分內容,可能理解并不到位,另外,表述上或邏輯上還有很多不足,或許大家看的不是很懂?是我的錯沒跑了,誠懇道歉…
  • 補救起見,可以在評論區多提問題,我會及時關注和回復,修改完善對本篇論文的理解,希望大家多提建議,多批評,多交流…
  • 總結

    以上是生活随笔為你收集整理的TransE,知识图谱嵌入(KGE)论文精读的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。