寫在前面
最近清華的THUNLP整理了Pre-trained Languge Model (PLM)相關的工作:PLMpapers,非常全面,想要了解最新NLP發展的同學不要錯過。本來這篇是打算寫一寫Knowledge Graph + BERT系列工作的,但是最近有在做知識圖譜的一些東西所以就先整理一下**知識表示學習(knowledge representation learning)**的相關模型發展,這樣我們看後面的paper也會得心應手一些。
1. A glance at Knowledge Representation Learning
What
首先什麼是表示學習?其實我們早就在頻繁使用了,比如詞向量embedding,這種將研究對象的語義信息表示爲稠密低維的實值向量的形式就叫表示學習。
有了表示學習的定義,那麼知識表示學習(KRL) 就是面向知識庫中實體和關係的表示學習,通過將實體或關係投影到低維向量空間,能夠實現對實體和關係的語義信息的表示,可以高效地計算實體、關係及其之間的複雜語義關聯。
Why
那麼爲什麼會冒出知識表示學習呢?
- 顯著提高計算效率。 簡單地基於圖算法計算實體間的語義和推理關係,其計算複雜度高、可擴展性差;而表示學習得到的分佈式表示,則能夠高效地實現語義相似度計算等操作。
- 有效緩解數據稀疏。 一方面將每個對象投影到低維的稠密向量空間;另一方面在投影過程中也可以借用高頻對象的語義信息幫助低頻對象的語義表示,捕獲長尾分佈。
- 實現異質信息融合。 將不同來源的對象投影到同一語義空間中,就能夠建立統一的表示空間。
How
接下去會介紹知識表示學習的主要方法及前沿進展,這也是本系列博文的重要。首先給出整體定義:
知識庫表示爲 G=(E, R, S),其中是實體集合,是關係集合,S是三元組集合,表示爲(h, r, t)
- 基於距離的模型
- 基於翻譯的模型
- 語義匹配模型
- 融合多源信息的模型
- 前沿進展
paper list ref
2. Distance-Based Models
UM
Joint Learning of Words and Meaning Representations for Open-Text Semantic Parsing(2012)
SE
Learning Structured Embeddings of Knowledge Bases(AAAI/2011)
在本文中,作者指出目前已有的知識庫都是基於不同的框架,因此很難將它們整合應用到一個新的系統中。但是知識庫中存在大量的結構化和組織化的數據,如果能夠充分利用起來將會對AI領域非常有幫助。於是作者們提出一種模型將任何知識庫中的實體和關係嵌入到一個更靈活的連續向量空間。嵌入可以認爲是一個神經網絡,該神經網絡的特殊結構允許將原始數據結構集成到所學習的表示中。更準確地說,考慮到知識庫是由一組實體和它們之間的關係定義的,該模型爲每個實體(即一個低維向量)學習一個嵌入(embedding),爲每個關係(即矩陣)學習一個運算符(operator)。另外,在低維embedding空間使用核密度估計可以估量空間的概率密度,這樣可以量化實體之間的關係存在可能性。
結構表示(Structured Embeddings,SE)中每個實體用維的向量表示,所有實體被投影到同一個維向量空間中。同時,SE還爲每個關係定義了兩個矩陣用於三元組中頭實體和尾實體的投影操作。最後SE爲每個三元組定義了損失函數:
對於上述損失函數,我們可以理解爲通過兩個關係矩陣將頭尾兩個實體投影到同一關係空間中,然後在該空間中計算兩投影向量的距離。而這個距離則反映了頭尾實體之間在特定關係下的語義相似度,他們的距離越小則表明越有可能存在這種關係。
SE模型要學習的參數是實體向量矩陣 和兩個關係矩陣、,下面是模型的訓練過程:
可以看出SE模型對頭尾兩個實體使用不同的矩陣進行投影,協同性較差,往往無法精確刻畫兩實體之間的語義聯繫。
3. Trans-Based Models
TransE
Translating Embeddings for Modeling Multi-relational Data(NIPS2013)
TransE是Trans系列模型的開山之作,也是知識圖譜向量表示的baseline模型,後面會介紹它的很多變體。其實TransE的思想很簡單,爲了將實體與關係嵌入到低維的向量空間,對於知識庫中的每個三元組,認爲頭實體的embedding加上關係的embedding之後應該是與尾實體的embedding非常接近的。於是,可以將關係看做是兩個實體之間的某種平移向量,如下圖:
按照上面的思路,即有了TransE模型的損失函數:這個損失函數是帶有negative sampling和margin-based loss的
- negative sampling:表示負樣本三元組,構造的方法是將S中每個三元組的頭實體、關係和尾實體其中之一隨機替換成其他的實體或關係,注意每個三元組只能同時替換一個元素。
- margin-based loss:爲了增強知識表示的區分能力,採用了最大間隔的方法,可以類比SVR的損失函數。表示正樣本的不相似得分,表示負樣本的不相識得分,最小化這個損失函數可以使得正樣本的得分越來越高而負樣本的得分越來越低,並且只有兩個得分差距大於某一閾值的時候loss才爲0。
最終模型整體的訓練過程如下:
雖然TransE簡單有效,但仍然存在一個非常嚴重的問題:不能很好處理複雜關係。舉個栗子,有兩個三元組(美國,總統,奧巴馬)和(美國, 總統, 布什),使用TransE模型表示的話會得到奧巴馬和布什的表示向量非常接近,甚至完全相同。
Code Here
TransH
Knowledge Graph Embedding by Translating on Hyperplanes(AAAI2014)
相對於之前的知識表示模型,TransE有了很大的改進,但是當面對自反關係、一對多、多對一以及多對多這類複雜的關係時,就很難處理好(會使得一些不同的實體具有相同或者相近的向量表示)。於是作者提出TransH模型,在保證模型complexity和efficiency的同時,解決上述複雜關係的表示。
模型
TransH模型的主要思想是對每一個關係定義兩個向量:超平面和關係向量。對於任意一個三元組,和在超平面上的投影分別爲和,如果是golden triplet,則存在。看下圖可能會更清楚一些:
損失函數與TransE的一樣:
模型整體訓練過程也同TransE一樣,這裏就不再贅述。
負採樣策略
不同於TransE模型中的隨機替換頭實體和尾實體之一作爲負樣本的方法,在TransH中指出:
However, as a real knowledge graph is often far from completed, this way of randomly sampling may introduce many false negative labels into training.
於是,在替換頭實體或者尾實體的時候考慮了一個採樣概率,的概率替換頭實體,的概率替換尾實體,其中爲每個頭實體對應尾實體的平均數量,爲每個尾實體對應頭實體的平均數量。也就是說,對於一對多的關係,更大的概率替換頭實體;對於多對一的關係,更大概率替換尾實體。
Code Here
TransR
Learning Entity and Relation Embeddings for Knowledge Graph Completion(AAAI2015)
前面介紹的TransE和TransH都是假設三元組的實體和關係在同一語義空間中的,儘管在TransH中採用了關係超平面的策略,但由於實體和關係是完全不同的,每一個實體可能會有多個aspect,即是是同一個實體在不同的關係下關注的可能是完全不相關的aspect,因此之前的模型還是不足以準確地表示knowledge graph。
於是,在本文中作者提出一種新模型TransR,其思想就是將實體和關係的表示空間區分開來,實體有entity space,關係有relation space,在計算時通過一個投射矩陣將實體映射到關係空間進行計算。
此外,不僅僅實體有多個aspect,對於關係,也可能存在多義性,比如關係(location location contains)其實包含country-city、country-university、continent-country等多種含義。爲此,作者們提出CTransR,即Cluster-based TransR,對同一關係下的不同實體對進行聚類並學習到關係在不同聚類簇的表示。具體做法是
- 利用TransE訓練三元組
- 利用vector offset 進行聚類
- 對每一類的子關係都學習到一個變換矩陣和表示向量
Code Here
TransD
Knowledge graph embedding via dynamic mapping matrix(ACL2015)
文章首先指出了TransR的三個問題:
- 在TransR中,對於特定關係,所有實體共享同一映射矩陣。但是實際情況頭尾實體可能屬於不同範疇,例如(美國,總統,特朗普)這個三元組中,美國和特朗普就不是相同範疇的實體,因此應該採用不同的映射矩陣;
- 投影運算是實體與關係的交互過程,映射矩陣僅由關係確定是不合理的;
- 矩陣向量乘法運算量大,當關係數大時,矩陣向量乘法的參數也比TransE和TransH多。
基於此,作者們提出一種基於動態映射矩陣的TransD模型。對於每個三元組,其中每個元素都有兩種向量表示,一種是構建動態映射矩陣向量;另外一種是用於自身實體/關係語義表示。首先是利用頭尾實體的映射向量構建映射矩陣:接着通過各自的映射矩陣將實體投影到關係空間:整體的打分函數和損失函數以及訓練過程都跟之前的模型一樣。
Code Here
TranSparse
Knowledge Graph Completion with Adaptive Sparse Transfer Matrix(AAAI2016)
之前的Trans系列模型都忽略了知識表示面臨的兩個問題:
- 異構性(heterogeneous):不同關係連接的實體對數量差別巨大
- 不平衡性(imbalanced):同一關係鏈接的頭實體和尾實體數量差別巨大,例如對於關係
性別
,頭實體的數量很多(‘小明’‘小花’etc),而對於尾實體僅僅只有兩個(‘男’‘女’)
如果使用同一模型來處理所有情況的話,則可能由於異構性導致對於複雜關係(鏈接數量多)欠擬合,對簡單關係(鏈接數量少)過擬合。爲了解決異構性,作者提出TranSparse模型用自適應的稀疏矩陣代替一般的映射矩陣。
TranSparse(share)
爲了解決異構性問題,TranSparse將transfer matrix設置爲自適應的稀疏矩陣,對於複雜關係,我們需要更多的參數去學習其中包含的信息,所以transfer matrix的稀疏度會比較低,即有更多的元素不爲0;而對於簡單的關係則恰好相反。而這裏稀疏度由定義:
其中,是一個0-1之間的最小稀疏度超參,表示關係鏈接的實體對數量,表示其中鏈接的最大值。
TranSparse(share)這裏沒有考慮不平衡性,所以對於頭尾實體的mapping過程是一樣的:
TranSparse(separate)
爲了解決不平衡性問題,這裏更細緻地對頭實體和尾實體設置了不同的transfer matrix:
模型訓練
兩者(share和separate)的打分函數都是:
Code Here
TransM
Transition-based knowledge graph embedding with relational mapping properties(2014)
TransM也是爲了解決TransE只能處理一對一關係的問題,對於存在多種選擇的一方給了更多的自由度,即,如下圖
具體做法是在得分函數的前面加上了權重
其中表示尾實體對應的頭實體數量(heads per tail),同理。
ManiFoldE
From One Point to A Manifold: Knowledge Graph Embedding For Precise Link Prediction(IJCAI2016)
作者指出目前已有的研究都無法很好地解決精準鏈接預測(Precise Link Prediction),主要是有兩個問題:
- ill-posed algebraic problem:指一個方程組中的方程式個數遠大於變量個數,這會導致求得的解經常是不精確且不穩定的。之前的翻譯模型都是基於,如果三元組的數量爲,embedding的維度爲, 則一共有個方程,而所需要學習的變量一共有個,由於,那麼這類模型由於ill-posed algebraic problem無法給出精準鏈接預測;
- adopting an overstrict geometric form:TransE過於嚴格的限制使得鏈接預測得到的基本都爲一個點,這對於多對多關係顯然是不正確的。雖然在之前有TransH, TransR等模型對此進行優化,但是將關係映射到另外一個子空間後仍然會存在該問題。
爲了解決上述兩個問題,作者提出一種基於流形的模型,將約束進行放寬其中是流形函數
以爲例,所有合適的尾實體都分佈在高維流形上,舉個栗子,是一個高維球體,則所有的尾實體都在以爲球心,以爲半徑的球面上。
Code Here
TransF
Knowledge Graph Embedding by Flexible Translation(2016)
TransF提出主要是爲了解決TransE的一對一關係問題,雖然在之前有TransH提出解決思路,但是引入了更多的參數以及更大的複雜度。於是TransF就是爲了解決一對多多對一以及多對多關係,同時又不增加參數。具體就是將TransE的限制條件放寬爲,如下圖
得分函數同時衡量了和,和的方向:
TransA
TransA: An Adaptive Approach for Knowledge Graph Embedding(2015)
作者首先提出了兩個TransE模型的不足:
- loss metric:TransE的loss metric爲,是一種歐氏距離的計算,其對應的圖形是一個圓。由於這種簡單的loss metric導致不能很好處理複雜的關係(如一對多、多對一等)。論文中給出一個詳細案例,從下圖可知藍色部分爲正例,紅色部分爲負例,TransE 模型劃分錯了七個點。而本文提出了一種基於馬氏距離的 TransA 模型,其 PCA 降維圖形對應的是一個橢圓,該模型只分錯了三個點。
- identical dimension:TransE等之前的模型等價地對待向量中的每一維度,但是實際上各個維度的重要度是不相同的,有些維度是有作用的,有些維度卻是噪音。還是以論文中的栗子,對於關係
HasPart
來說,左邊的TransE模型根據歐氏距離計算得出(room, haspart, goniff)這樣錯誤的三元組。通過對x,y軸進行分解之後發現,關係HasPart
會更關注與x軸相近的實體。TransA模型爲此引入了對每一維度的加權矩陣。
模型
TransA模型對之前的打分函數進行了改進,引入加權矩陣:並通過LDL對進行分解:整理後得到最終的打分函數:訓練過程損失函數
KG2E
Learning to Represent Knowledge Graphs with Gaussian Embedding(2015)
作者指出TransE、TransR等之前的研究,在分離正三元組及其對應的負三元組時,不同的實體和關係往往共享相同的邊界,而知識庫中實體和關係的**(非)確定性**被完全忽略。但實際上,不同的實體和關係常常包含不同的確定性。在這裏,一個實體/關係的(非)確定性表示在將一個三元組作爲上下文評分時表示其語義的可信度。舉個栗子,在推斷一個人時,配偶關係的確定性明顯大於國籍。在預測Hillary Clinton
時,當我們知道她丈夫(配偶)是Bill Clinton
時,我們可能更有信心知道她是誰,而不是知道她出生在(國籍)美國。
爲此,本文使用Gaussian Distribution 來表示實體和關係,使用協方差來表示實體和關係的不確定度。相同顏色的圓圈代表同意三元組,圓圈大小則表示不同三元組的不確定度。
相對於之前的point-based model,本文的KG2E是一種density-based model。在建模過程中強調了(un)certainty的概念,融入關係和實體語義本身的不確定性並使用高斯分佈協方差表示實體關係的不確定度,使用高斯分佈的均值表示實體或關係在語義空間中的中心值。
但是KG2E在link prediction任務中的多對多關係上表現不是很好,主要原因是模型沒有考慮實體和關係的類型和粒度。
TransG
TransG : A Generative Model for Knowledge Graph Embedding(2016)
本文主要是爲了解決多關係語義(multiple relation semantics),即某一種關係可能會存在多個類別的語義,比如對於(Atlantics, HasPart, NewYorkBay)
和(Table, HasPart, Leg)
兩個三元組都屬於關係HasPart
,但是他們在語義上並不相同,一個是位置
的語義,一個是部件
的語義。其實這個問題在之前介紹的CTransR中也提出過解決方案,但是作者似乎認爲CTransR預處理聚類的操作不是很elegant。
爲此,作者們提出了一種基於貝葉斯非參的無限混和嵌入模型:認爲關係向量由若干子成分向量合成,模型會根據實體對自動選擇一個關係向量,而多少個這樣的關係向量還可以由模型自動選擇。 整體過程如下:
一張總結
以上
2019.10.08