知识图谱表示学习-TransE算法
知識圖譜表示學習-TransE算法
- 表示學習
- 知識圖譜表示學習
- TransE
(這是一篇小白入門筆記,請勿轉載)
表示學習
表示學習是一個利用模型自動地學習數據的隱式特征的過程,以此來計算得到對學習對象來說相比原始數據更好的表示形式,是一種數據預處理方法,幫助剔除數據中的無效信息,以便在后續訓練任務中更有效地利用數據的有用特征。表示學習算法的結果是用低維實值稠密向量,即表示對象的分布式表示(distributed representation),將語義信息分布式存儲于各維度中。
原始數據和經人工簡單加工得到的數據表示在應用過程中通常有缺陷。
比如獨熱表示(one-hot representation)是一種最簡單的數據表示。在這種表示下,每個表示對象的向量都相互獨立,但一般事實上的對象之間并非完全獨立,這顯然有違事實情況。獨熱編碼方式未能表示出不同對象之間可能存在的共同的隱式特征,同時也存在數據稀疏問題,會造成空間浪費。
表示學習利用各種算法對原始數據進行特征學習,在保留數據特征的前提下對數據降維,使得數據表示更為精煉。表示學習的方法多樣,可以是有監督的,例如監督神經網絡, 監督型字典學習(dictionary Learning)、多層感知器(multiple perceptron, MLP),也可以是無監督的,例如自編碼器(autoencoder, AE)、矩陣分解、獨立分量分析(Independent Component Analysis, ICA)等,也可以二者相結合地進行多次訓練。表示學習是深度學習領域中的重要內容,在各方向包括自然語言處理、計算機視覺、語音處理等應用相當廣泛。
知識圖譜表示學習
知識圖譜表示學習,也可以說知識圖嵌入(knowledge embedding learning),是對知識圖譜中實體及關系的表示學習。通過有效計算實體、關系及其復雜的語義關聯,提取實體和關系的特征,獲取高質量的數據表示,以提高知識獲取、融合和推理等后續任務的性能。
一個知識庫或一張知識圖譜被表示為 G = (E, R, S) ,E 為實體的集合,R 為關系集合,S 為實體和關系的三元組集合。在 S 中每個形如 (h, r, t) 的三元組代表一條事實,其中h為頭實體,t 為尾實體,r 為頭實體和尾實體間的關系。通常三元組從 RDF 中提取,實體用 URL 表示。在表示學習的過程中,根據定義的得分函數訓練模型,每一個事實對應的得分代表該事實的顯著性。
TransE
TransE是基于平移假設的模型。
根據詞向量空間中的平移不變現象,Bordes等人于 2013 年提出TransE模型。用向量之間的加法運算表達實體和關系之間的邏輯。規定當三元組為真,即 (h, r, t) 為真時,有 h + rt。在訓練過程中不斷調整向量 h, r, t 使得 h+r 的結果與 t 盡可能相等。定義得分函數為 h + r 和 t 的距離,f(h,r, t) = ||h + r ? t||1/2,三元組越接近事實時,得分函數越低,反之如果三元組與事實不符,則距離越遠得分越高。在開始訓練之前需要自行構造負例做負采樣,TransE 的負采樣方式是簡單地隨機打亂三元組的實體
項或關系項之一,并過濾掉包含在給定事實三元組的項來生成負例,負例用 (h’, r’, t’) 表示。基于此,TransE 的目標函數為:
γ 為一個大于 0 的超參數。
采用最大間隔法,在訓練模型過程中用梯度下降法(SGD)最小化目標函數,從而得到最優化模型, 這里的優化是指使表示學習結果對知識的真實與否有較好的辨別能力。
TransE 是知識圖譜表示學習經典基礎的算法,計算復雜度較低,模型效果尚可。它的局限在于只能處理實體之間一對一的關系,對較復雜的一對多、多對一、多對多或者自映射關系無法達到預期建模效果。由于它簡單地通過向量加法和向量距離來建模,且將實體關系投影到單一空間,同時也沒有對實體和關系的類型屬性、語義描述等信息進行利用,無法建立復雜模型對多源信息進行進一步融合。同時模型也沒有涉及到關系之間或許存在的相互依賴性,將所有關系視為相互獨立,所以它所完成的對數據的潛在特征提取非常片面。后續很多工作改進了該算法。
TransX 系列的模型訓練過程都是類似的,以 TransE 為例,步驟如下:
TransE 算法可以被分為三步。
在第三步中需要求導計算出梯度的具體表達式,如下所示:
L1-norm 時 d = P |h + rt|,梯度為:對 h 求導:?d?h = P(sign(h + r ? t)). 對 t 求導:??dt = P(sign(h + rt)). 對 r 求導:?d?r = P(sign(h + rt)).
L2-norm 時,d = P(h+r?t)T (h+r?t),梯度為:對 h 求導:?d?h = 2 P(h+rt). 對 t 求導:??dt = 2 P(h + rt). 對 r 求導:?d?t = 2 P(h + rt).
在循環第二第三步一定輪數之后,滿足了一定停止條件時,得到了目標函數最優化的結果,即得到該算法下實體向量的嵌入式表示和關系表示。
相關代碼就不展示了,github有各個語言的實現。以及個人感覺理解一個算法還是讀論文最快最清楚。
以上內容是做畢設時的學習筆記,歡迎指正。
總結
以上是生活随笔為你收集整理的知识图谱表示学习-TransE算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TransE算法原理与代码解析(2021
- 下一篇: 知识图谱——TransE模型原理