1. 程式人生 > >知識圖譜構建 綜述

知識圖譜構建 綜述

知識圖譜技術是人工智慧技術的組成部分,其強大的語義處理和互聯組織能力,為智慧化資訊應用提供了基礎。以下內容涵蓋了基本定義與架構、代表性知識圖譜庫、構建技術、開源庫和典型應用。

引言

隨著網際網路的發展,網路資料內容呈現爆炸式增長的態勢。由於網際網路內容的大規模、異質多元、組織結構鬆散的特點,給人們有效獲取資訊和知識提出了挑戰。知識圖譜(Knowledge Graph) 以其強大的語義處理能力和開放組織能力,為網際網路時代的知識化組織和智慧應用奠定了基礎。最近,大規模知識圖譜庫的研究和應用在學術界和工業界引起了足夠的注意力[1-5]。一個知識圖譜旨在描述現實世界中存在的實體以及實體之間的關係。知識圖譜於2012年5月17日由[Google]正式提出[6],其初衷是為了提高搜尋引擎的能力,改善使用者的搜尋質量以及搜尋體驗。隨著人工智慧的技術發展和應用,知識圖譜作為關鍵技術之一,已被廣泛應用於智慧搜尋、智慧問答、個性化推薦、內容分發等領域。

知識圖譜的定義

在維基百科的官方詞條中:知識圖譜是Google用於增強其搜尋引擎功能的知識庫。本質上, 知識圖譜旨在描述真實世界中存在的各種實體或概念及其關係,其構成一張巨大的語義網路圖,節點表示實體或概念,邊則由屬性或關係構成。現在的知識圖譜已被用來泛指各種大規模的知識庫。 在具體介紹知識圖譜的定義,我們先來看下知識型別的定義:

知識圖譜中包含三種節點:

實體: 指的是具有可區別性且獨立存在的某種事物。如某一個人、某一個城市、某一種植物等、某一種商品等等。世界萬物有具體事物組成,此指實體。如圖1的“中國”、“美國”、“日本”等。,實體是知識圖譜中的最基本元素,不同的實體間存在不同的關係。

語義類(概念):具有同種特性的實體構成的集合,如國家、民族、書籍、電腦等。 概念主要指集合、類別、物件型別、事物的種類,例如人物、地理等。

內容: 通常作為實體和語義類的名字、描述、解釋等,可以由文字、影象、音視訊等來表達。

屬性(值): 從一個實體指向它的屬性值。不同的屬性型別對應於不同型別屬性的邊。屬性值主要指物件指定屬性的值。如圖1所示的“面積”、“人口”、“首都”是幾種不同的屬性。屬性值主要指物件指定屬性的值,例如960萬平方公里等。

關係: 形式化為一個函式,它把kk個點對映到一個布林值。在知識圖譜上,關係則是一個把kk個圖節點(實體、語義類、屬性值)對映到布林值的函式。

基於上述定義。基於三元組是知識圖譜的一種通用表示方式,即,其中,是知識庫中的實體集合,共包含|E|種不同實體; 是知識庫中的關係集合,共包含|R|種不同關係;代表知識庫中的三元組集合。三元組的基本形式主要包括(實體1-關係-實體2)和(實體-屬性-屬性值)等。每個實體(概念的外延)可用一個全域性唯一確定的ID來標識,每個屬性-屬性值對(attribute-value pair,AVP)可用來刻畫實體的內在特性,而關係可用來連線兩個實體,刻畫它們之間的關聯。如下圖1的知識圖譜例子所示,中國是一個實體,北京是一個實體,中國-首都-北京 是一個(實體-關係-實體)的三元組樣例北京是一個實體 ,人口是一種屬性2069.3萬是屬性值。北京-人口-2069.3萬構成一個(實體-屬性-屬性值)的三元組樣例。

圖1 知識圖譜示例

知識圖譜的架構

知識圖譜的架構包括自身的邏輯結構以及構建知識圖譜所採用的技術(體系)架構。

1) 知識圖譜的邏輯結構

知識圖譜在邏輯上可分為模式層與資料層兩個層次,資料層主要是由一系列的事實組成,而知識將以事實為單位進行儲存。如果用(實體1,關係,實體2)、(實體、屬性,屬性值)這樣的三元組來表達事實,可選擇圖資料庫作為儲存介質,例如開源的Neo4j[7]、Twitter的FlockDB[8]、sones的GraphDB[9]等。模式層構建在資料層之上,是知識圖譜的核心,通常採用本體庫來管理知識圖譜的模式層。本體是結構化知識庫的概念模板,通過本體庫而形成的知識庫不僅層次結構較強,並且冗餘程度較小。

2) 知識圖譜的體系架構

圖2 知識圖譜的技術架構

知識圖譜的體系架構是其指構建模式結構,如圖2所示。其中虛線框內的部分為知識圖譜的構建過程,也包含知識圖譜的更新過程。知識圖譜構建從最原始的資料(包括結構化、半結構化、非結構化資料)出發,採用一系列自動或者半自動的技術手段,從原始資料庫和第三方資料庫中提取知識事實,並將其存入知識庫的資料層和模式層,這一過程包含:資訊抽取、知識表示、知識融合、知識推理四個過程,每一次更新迭代均包含這四個階段。知識圖譜主要有自頂向下(top-down)與自底向上(bottom-up)兩種構建方式。自頂向下指的是先為知識圖譜定義好本體與資料模式,再將實體加入到知識庫。該構建方式需要利用一些現有的結構化知識庫作為其基礎知識庫,例如Freebase專案就是採用這種方式,它的絕大部分資料是從維基百科中得到的。自底向上指的是從一些開放連結資料中提取出實體,選擇其中置信度較高的加入到知識庫,再構建頂層的本體模式[10]。目前,大多數知識圖譜都採用自底向上的方式進行構建,其中最典型就是Google的Knowledge Vault[11]和微軟的Satori知識庫。現在也符合網際網路資料內容知識產生的特點。

代表性知識圖譜庫

根據覆蓋範圍而言,知識圖譜也可分為開放域通用知識圖譜和垂直行業知識圖譜[12]。開放通用知識圖譜注重廣度,強調融合更多的實體,較垂直行業知識圖譜而言,其準確度不夠高,並且受概念範圍的影響,很難藉助本體庫對公理、規則以及約束條件的支援能力規範其實體、屬性、實體間的關係等。通用知識圖譜主要應用於智慧搜尋等領域。行業知識圖譜通常需要依靠特定行業的資料來構建,具有特定的行業意義。行業知識圖譜中,實體的屬性與資料模式往往比較豐富,需要考慮到不同的業務場景與使用人員。下圖展示了現在知名度較高的大規模知識庫。

圖3 代表性知識圖譜庫概覽

知識圖譜構建的關鍵技術

大規模知識庫的構建與應用需要多種技術的支援。通過知識提取技術,可以從一些公開的半結構化、非結構化和第三方結構化資料庫的資料中提取出實體、關係、屬性等知識要素。知識表示則通過一定有效手段對知識要素表示,便於進一步處理使用。然後通過知識融合,可消除實體、關係、屬性等指稱項與事實物件之間的歧義,形成高質量的知識庫。知識推理則是在已有的知識庫基礎上進一步挖掘隱含的知識,從而豐富、擴充套件知識庫。分散式的知識表示形成的綜合向量對知識庫的構建、推理、融合以及應用均具有重要的意義。接下來,本文將以知識抽取、知識表示、知識融合以及知識推理技術為重點,選取代表性的方法,說明其中的相關研究進展和實用技術手段 。

1 知識提取

知識抽取主要是面向開放的連結資料,通常典型的輸入是自然語言文字或者多媒體內容文件(影象或者視訊)等。然後通過自動化或者半自動化的技術抽取出可用的知識單元,知識單元主要包括實體(概念的外延)、關係以及屬性3個知識要素,並以此為基礎,形成一系列高質量的事實表達,為上層模式層的構建奠定基礎。

1.1 實體抽取

實體抽取也稱為命名實體學習(named entity learning) 或命名實體識別 (named entity recognition),指的是從原始資料語料中自動識別出命名實體。由於實體是知識圖譜中的最基本元素,其抽取的完整性、準確率、召回率等將直接影響到知識圖譜構建的質量。因此,實體抽取是知識抽取中最為基礎與關鍵的一步。參照文獻[13],我們可以將實體抽取的方法分為4種:基於百科站點或垂直站點提取、基於規則與詞典的方法、基於統計機器學習的方法以及面向開放域的抽取方法。基於百科站點或垂直站點提取則是一種很常規基本的提取方法;基於規則的方法通常需要為目標實體編寫模板,然後在原始語料中進行匹配;基於統計機器學習的方法主要是通過機器學習的方法對原始語料進行訓練,然後再利用訓練好的模型去識別實體;面向開放域的抽取將是面向海量的Web語料[14]。

1) 基於百科或垂直站點提取

基於百科站點或垂直站點提取這種方法是從百科類站點(如維基百科、百度百科、互動百科等)的標題和連結中提取實體名。這種方法的優點是可以得到開放網際網路中最常見的實體名,其缺點是對於中低頻的覆蓋率低。與一般性通用的網站相比,垂直類站點的實體提取可以獲取特定領域的實體。例如從豆瓣各頻道(音樂、讀書、電影等)獲取各種實體列表。這種方法主要是基於爬取技術來實現和獲取。基於百科類站點或垂直站點是一種最常規和基本的方法。

2) 基於規則與詞典的實體提取方法

早期的實體抽取是在限定文字領域、限定語義單元型別的條件下進行的,主要採用的是基於規則與詞典的方法,例如使用已定義的規則,抽取出文字中的人名、地名、組織機構名、特定時間等實體[15]。文獻[16]首次實現了一套能夠抽取公司名稱的實體抽取系統,其中主要用到了啟發式演算法與規則模板相結合的方法。然而,基於規則模板的方法不僅需要依靠大量的專家來編寫規則或模板,覆蓋的領域範圍有限,而且很難適應資料變化的新需求。

3) 基於統計機器學習的實體抽取方法

鑑於基於規則與詞典實體的侷限性,為具更有可擴充套件性,相關研究人員將機器學習中的監督學習演算法用於命名實體的抽取問題上。例如文獻[17]利用KNN演算法與條件隨機場模型,實現了對Twitter文字資料中實體的識別。單純的監督學習演算法在效能上不僅受到訓練集合的限制,並且演算法的準確率與召回率都不夠理想。相關研究者認識到監督學習演算法的制約性後,嘗試將監督學習演算法與規則相互結合,取得了一定的成果。例如文獻[18]基於字典,使用最大熵演算法在Medline論文摘要的GENIA資料集上進行了實體抽取實驗,實驗的準確率與召回率都在70%以上。近年來隨著深度學習的興起應用,基於深度學習的命名實體識別得到廣泛應用。在文獻[19],介紹了一種基於雙向LSTM深度神經網路和條件隨機場的識別方法,在測試資料上取得的最好的表現結果。

圖4 基於BI-LSTM和CRF的架構

4) 面向開放域的實體抽取方法

針對如何從少量實體例項中自動發現具有區分力的模式,進而擴充套件到海量文字去給實體做分類與聚類的問題,文獻[20]提出了一種通過迭代方式擴充套件實體語料庫的解決方案,其基本思想是通過少量的實體例項建立特徵模型,再通過該模型應用於新的資料集得到新的命名實體。文獻[21]提出了一種基於無監督學習的開放域聚類演算法,其基本思想是基於已知實體的語義特徵去搜索日誌中識別出命名的實體,然後進行聚類。

1.2 語義類抽取

語義類抽取是指從文字中自動抽取資訊來構造語義類並建立實體和語義類的關聯, 作為實體層面上的規整和抽象。以下介紹一種行之有效的語義類抽取方法,包含三個模組:並列度相似計算、上下位關係提取以及語義類生成 [22]。

1) 並列相似度計算

並列相似度計算其結果是詞和詞之間的相似性資訊,例如三元組(蘋果,梨,s1)表示蘋果和梨的相似度是s1。兩個詞有較高的並列相似度的條件是它們具有並列關係(即同屬於一個語義類),並且有較大的關聯度。按照這樣的標準,北京和上海具有較高的並列相似度,而北京和汽車的並列相似度很低(因為它們不屬於同一個語義類)。對於海淀、朝陽、閔行三個市轄區來說,海淀和朝陽的並列相似度大於海淀和閔行的並列相似度(因為前兩者的關聯度更高)。

當前主流的並列相似度計算方法有分佈相似度法(distributional similarity) 和模式匹配法(pattern Matching)。分佈相似度方法[23-24]基於哈里斯(Harris)的分佈假設(distributional hypothesis)[25],即經常出現在類似的上下文環境中的兩個詞具有語義上的相似性。分佈相似度方法的實現分三個步驟:第一步,定義上下文;第二步,把每個詞表示成一個特徵向量,向量每一維代表一個不同的上下文,向量的值表示本詞相對於上下文的權重;第三步,計算兩個特徵向量之間的相似度,將其作為它們所代表的詞之間的相似度。 模式匹配法的基本思路是把一些模式作用於源資料,得到一些詞和詞之間共同出現的資訊,然後把這些資訊聚集起來生成單詞之間的相似度。模式可以是手工定義的,也可以是根據一些種子資料而自動生成的。分佈相似度法和模式匹配法都可以用來在數以百億計的句子中或者數以十億計的網頁中抽取詞的相似性資訊。有關分佈相似度法和模式匹配法所生成的相似度資訊的質量比較參見文獻。

2) 上下位關係提取

該該模組從文件中抽取詞的上下位關係資訊,生成(下義詞,上義詞)資料對,例如(狗,動物)、(悉尼,城市)。提取上下位關係最簡單的方法是解析百科類站點的分類資訊(如維基百科的“分類”和百度百科的“開放分類”)。這種方法的主要缺點包括:並不是所有的分類詞條都代表上位詞,例如百度百科中“狗”的開放分類“養殖”就不是其上位詞;生成的關係圖中沒有權重資訊,因此不能區分同一個實體所對應的不同上位詞的重要性;覆蓋率偏低,即很多上下位關係並沒有包含在百科站點的分類資訊中。

在英文資料上用Hearst 模式和IsA 模式進行模式匹配被認為是比較有效的上下位關係抽取方法。下面是這些模式的中文版本(其中NPC 表示上位詞,NP 表示下位詞):

NPC { 包括| 包含| 有} {NP、}* [ 等| 等等]

NPC { 如| 比如| 像| 象} {NP、}*

{NP、}* [{ 以及| 和| 與} NP] 等 NPC

{NP、}* { 以及| 和| 與} { 其它| 其他} NPC

NP 是 { 一個| 一種| 一類} NPC

此外,一些網頁表格中包含有上下位關係資訊,例如在帶有表頭的表格中,表頭行的文字是其它行的上位詞。

3) 語義類生成

該模組包括聚類和語義類標定兩個子模組。聚類的結果決定了要生成哪些語義類以及每個語義類包含哪些實體,而語義類標定的任務是給一個語義類附加一個或者多個上位詞作為其成員的公共上位詞。此模組依賴於並列相似性和上下位關係資訊來進行聚類和標定。有些研究工作只根據上下位關係圖來生成語義類,但經驗表明並列相似性資訊對於提高最終生成的語義類的精度和覆蓋率都至關重要。

1.3 屬性和屬性值抽取

屬性提取的任務是為每個本體語義類構造屬性列表(如城市的屬性包括面積、人口、所在國家、地理位置等),而屬性值提取則為一個語義類的實體附加屬性值。屬性和屬性值的抽取能夠形成完整的實體概念的知識圖譜維度。常見的屬性和屬性值抽取方法包括從百科類站點中提取,從垂直網站中進行包裝器歸納,從網頁表格中提取,以及利用手工定義或自動生成的模式從句子和查詢日誌中提取。

常見的語義類/ 實體的常見屬性/ 屬性值可以通過解析百科類站點中的半結構化資訊(如維基百科的資訊盒和百度百科的屬性表格)而獲得。儘管通過這種簡單手段能夠得到高質量的屬性,但同時需要採用其它方法來增加覆蓋率(即為語義類增加更多屬性以及為更多的實體新增屬性值)。

圖5 愛因斯坦資訊頁

由於垂直網站(如電子產品網站、圖書網站、電影網站、音樂網站)包含有大量實體的屬性資訊。例如上圖的網頁中包含了圖書的作者、出版社、出版時間、評分等資訊。通過基於一定規則模板建立,便可以從垂直站點中生成包裝器(或稱為模版),並根據包裝器來提取屬性資訊。從包裝器生成的自動化程度來看,這些方法可以分為手工法(即手工編寫包裝器)、監督方法、半監督法以及無監督法。考慮到需要從大量不同的網站中提取資訊,並且網站模版可能會更新等因素,無監督包裝器歸納方法顯得更加重要和現實。無監督包裝器歸納的基本思路是利用對同一個網站下面多個網頁的超文字標籤樹的對比來生成模版。簡單來看,不同網頁的公共部分往往對應於模版或者屬性名,不同的部分則可能是屬性值,而同一個網頁中重複的標籤塊則預示著重複的記錄。

屬性抽取的另一個資訊源是網頁表格。表格的內容對於人來說一目瞭然,而對於機器而言,情況則要複雜得多。由於表格型別千差萬別,很多表格製作得不規則,加上機器缺乏人所具有的背景知識等原因,從網頁表格中提取高質量的屬性資訊成為挑戰。

上述三種方法的共同點是通過挖掘原始資料中的半結構化資訊來獲取屬性和屬性值。與通過“閱讀”句子來進行資訊抽取的方法相比,這些方法繞開了自然語言理解這樣一個“硬骨頭”而試圖達到以柔克剛的效果。在現階段,計算機知識庫中的大多數屬性值確實是通過上述方法獲得的。但現實情況是隻有一部分的人類知識是以半結構化形式體現的,而更多的知識則隱藏在自然語言句子中,因此直接從句子中抽取資訊成為進一步提高知識庫覆蓋率的關鍵。當前從句子和查詢日誌中提取屬性和屬性值的基本手段是模式匹配和對自然語言的淺層處理。圖6 描繪了為語義類抽取屬性名的主框架(同樣的過程也適用於為實體抽取屬性值)。圖中虛線左邊的部分是輸入,它包括一些手工定義的模式和一個作為種子的(詞,屬性)列表。模式的例子參見表3,(詞,屬性)的例子如(北京,面積)。在只有語義類無關的模式作為輸入的情況下,整個方法是一個在句子中進行模式匹配而生成(語義類,屬性)關係圖的無監督的知識提取過程。此過程分兩個步驟,第一個步驟通過將輸入的模式作用到句子上而生成一些(詞,屬性)元組,這些資料元組在第二個步驟中根據語義類進行合併而生成(語義類,屬性)關係圖。在輸入中包含種子列表或者語義類相關模式的情況下,整個方法是一個半監督的自舉過程,分三個步驟:

模式生成:在句子中匹配種子列表中的詞和屬性從而生成模式。模式通常由詞和屬性的環境資訊而生成。

模式匹配。

模式評價與選擇:通過生成的(語義類,屬性)關係圖對自動生成的模式的質量進行自動評價並選擇高分值的模式作為下一輪匹配的輸入。

1.3 關係抽取

關係抽取的目標是解決實體語義連結的問題。關係的基本資訊包括引數型別、滿足此關係的元組模式等。例如關係BeCapitalOf(表示一個國家的首都)的基本資訊如下:

引數型別:(Capital, Country)

模式:

元組:(北京,中國);(華盛頓,美國);Capital 和 Country表示首都和國家兩個語義類。

早期的關係抽取主要是通過人工構造語義規則以及模板的方法識別實體關係。隨後,實體間的關係模型逐漸替代了人工預定義的語法與規則。但是仍需要提前定義實體間的關係型別。 文獻[26]提出了面向開放域的資訊抽取框架 (open information extraction,OIE),這是抽取模式上的一個巨大進步。但OIE方法在對實體的隱含關係抽取方面效能低下,因此部分研究者提出了基於馬爾可夫邏輯網、基於本體推理的深層隱含關係抽取方法[27]。

開放式實體關係抽取

開放式實體關係抽取可分為二元開放式關係抽取和n元開放式關係抽取。在二元開放式關係抽取中,早期的研究有KnowItAll[28]與TextRunner[27]系統,在準確率與召回率上表現一般。文獻[29]提出了一種基於Wikipedia的OIE方法WOE,經自監督學習得到抽取器,準確率較TextRunner有明顯的提高。針對WOE的缺點,文獻[30]提出了第二代OIE ReVerb系統,以動詞關係抽取為主。文獻[31]提出了第三代OIE系統OLLIE(open language learning for information extraction),嘗試彌補並擴充套件OIE的模型及相應的系統,抽取結果的準確度得到了增強。

然而,基於語義角色標註的OIE分析顯示:英文語句中40%的實體關係是n元的[32],如處理不當,可能會影響整體抽取的完整性。文獻[33]提出了一種可抽取任意英文語句中n元實體關係的方法KPAKEN,彌補了ReVerb的不足。但是由於演算法對語句深層語法特徵的提取導致其效率顯著下降,並不適用於大規模開放域語料的情況。

基於聯合推理的實體關係抽取

聯合推理的關係抽取中的典型方法是馬爾可夫邏輯網MLN(Markov logic network)[34],它是一種將馬爾可夫網路與一階邏輯相結合的統計關係學習框架,同時也是在OIE中融入推理的一種重要實體關係抽取模型。基於該模型,文獻[35]提出了一種無監督學習模型StatSnowball,不同於傳統的OIE,該方法可自動產生或選擇模板生成抽取器。在StatSnowball的基礎上,文獻[27,36]提出了一種實體識別與關係抽取相結合的模型EntSum,主要由擴充套件的CRF命名實體識別模組與基於StatSnowball的關係抽取模組組成,在保證準確率的同時也提高了召回率。文獻[27,37]提出了一種簡易的Markov邏輯TML(tractable Markov logic),TML將領域知識分解為若干部分,各部分主要來源於事物類的層次化結構,並依據此結構,將各大部分進一步分解為若干個子部分,以此類推。TML具有較強的表示能力,能夠較為簡潔地表示概念以及關係的本體結構。

2 知識表示

傳統的知識表示方法主要是以RDF(Resource Deion Framework資源描述框架)的三元組SPO(subject,property,object)來符號性描述實體之間的關係。這種表示方法通用簡單,受到廣泛認可,但是其在計算效率、資料稀疏性等方面面臨諸多問題。近年來,以深度學習為代表的以深度學習為代表的表示學習技術取得了重要的進展,可以將實體的語義資訊表示為稠密低維實值向量,進而在低維空間中高效計算實體、關係及其之間的複雜語義關聯,對知識庫的構建、推理、融合以及應用均具有重要的意義[38-40]。

2.1 代表模型

知識表示學習的代表模型有距離模型、單層神經網路模型、雙線性模型、神經張量模型、矩陣分解模型、翻譯模型等。詳細可參見清華大學劉知遠的知識表示學習研究進展。相關實現也可參見 [39]。

1)距離模型

距離模型在文獻[41] 提出了知識庫中實體以及關係的結構化表示方法(structured embedding,SE),其基本思想是:首先將實體用向量進行表示,然後通過關係矩陣將實體投影到與實體關係對的向量空間中,最後通過計算投影向量之間的距離來判斷實體間已存在的關係的置信度。由於距離模型中的關係矩陣是兩個不同的矩陣,使得協同性較差。

2)單層神經網路模型

文獻[42]針對上述提到的距離模型中的缺陷,提出了採用單層神經網路的非線性模型(single layer model,SLM),模型為知識庫中每個三元組(h,r,t) 定義了以下形式的評價函式:

式中, ut的T次冪∈R的k次冪為關係 r 的向量化表示;g()為tanh函式; Mr,1×Mr,2∈R的k次冪是通過關係r定義的兩個矩陣。單層神經網路模型的非線性操作雖然能夠進一步刻畫實體在關係下的語義相關性,但在計算開銷上卻大大增加。

3)雙線性模型

雙 線 性 模 型 又 叫 隱 變 量 模 型 (latent factor model,LFM),由文獻[43-44]首先提出。模型為知識庫中每個三元組 定義的評價函式具有如下形式:

式中,Mr∈R的d×d次冪是通過關係r 定義的雙線性變換矩陣;

lh×lt∈R的d次冪是三元組中頭實體與尾實體的向量化表示。雙線性模型主要是通過基於實體間關係的雙線性變換來刻畫實體在關係下的語義相關性。模型不僅形式簡單、易於計算,而且還能夠有效刻畫實體間的協同性。基於上述工作,文獻[45]嘗試將雙線性變換矩陣r M 變換為對角矩陣, 提出了DISTMULT模型,不僅簡化了計算的複雜度,並且實驗效果得到了顯著提升。

4)神經張量模型

文獻[45]提出的神經張量模型,其基本思想是:在不同的維度下,將實體聯絡起來,表示實體間複雜的語義聯絡。模型為知識庫中的每個三元組(h,r,t)定義了以下形式的評價函式:

式中, ut的T次冪∈R的k次冪為關係 r 的向量化表示;g()為tanh函式; Mr∈d×k×k是一個三階張量;Mr,1×Mr,2∈R的k次冪是通過關係r定義的兩個矩陣。

神經張量模型在構建實體的向量表示時,是將該實體中的所有單詞的向量取平均值,這樣一方面可以重複使用單詞向量構建實體,另一方面將有利於增強低維向量的稠密程度以及實體與關係的語義計算。

5)矩陣分解模型

通過矩陣分解的方式可得到低維的向量表示,故不少研究者提出可採用該方式進行知識表示學習,其中的典型代表是文獻[46]提出的RESACL模型。在RESCAL模型中,知識庫中的三元組集合被表示為一個三階張量,如果該三元組存在,張量中對應位置的元素被置1,否則置為0。通過張量分解演算法,可將張量中每個三元組(h,r,t)對應的張量值解為雙線性模型中的知識表示形式lh的T次冪×Mr×lt並使|Xhrt-lh的T次冪×Mr×l|儘量小。

6)翻譯模型

文獻[47]受到平移不變現象的啟發,提出了TransE模型,即將知識庫中實體之間的關係看成是從實體間的某種平移,並用向量表示。關係lr可以看作是從頭實體向量到尾實體向量lt的翻譯。對於知識庫中的每個三元組(h,r,t),TransE都希望滿足以下關係|lh+lt≈lt|:,其損失函式為:fr(h,t)=|lh+lr-lt|L1/L2, 該模型的引數較少,計算的複雜度顯著降低。與此同時,TransE模型在大規模稀疏知識庫上也同樣具有較好的效能和可擴充套件性。

2.2 複雜關係模型

知識庫中的實體關係型別也可分為1-to-1、1-to-N、N-to-1、N-to-N4種類型[47],而複雜關係主要指的是1-to-N、N-to-1、N-to-N的3種關係型別。由於TransE模型不能用在處理複雜關係上[39],一系列基於它的擴充套件模型紛紛被提出,下面將著重介紹其中的幾項代表性工作。

1)TransH模型

文獻[48]提出的TransH模型嘗試通過不同的形式表示不同關係中的實體結構,對於同一個實體而言,它在不同的關係下也扮演著不同的角色。模型首先通過關係向量lr與其正交的法向量wr選取某一個超平面F, 然後將頭實體向量lh和尾實體向量lt法向量wr的方向投影到F, 最後計算損失函式。TransH使不同的實體在不同的關係下擁有了不同的表示形式,但由於實體向量被投影到了關係的語義空間中,故它們具有相同的維度。

2)TransR模型

由於實體、關係是不同的物件,不同的關係所關注的實體的屬性也不盡相同,將它們對映到同一個語義空間,在一定程度上就限制了模型的表達能力。所以,文獻[49]提出了TransR模型。模型首先將知識庫中的每個三元組(h, r,t)的頭實體與尾實體向關係空間中投影,然後希望滿足|lh+lt≈lt|的關係,最後計算損失函式。

文獻[49]提出的CTransR模型認為關係還可做更細緻的劃分,這將有利於提高實體與關係的語義聯絡。在CTransR模型中,通過對關係r 對應的頭實體、尾實體向量的差值lh-lt進行聚類,可將r分為若干個子關係rc 。

3)TransD模型

考慮到在知識庫的三元組中,頭實體和尾實體表示的含義、型別以及屬性可能有較大差異,之前的TransR模型使它們被同一個投影矩陣進行對映,在一定程度上就限制了模型的表達能力。除此之外,將實體對映到關係空間體現的是從實體到關係的語 義聯絡,而TransR模型中提出的投影矩陣僅考慮了不同的關係型別,而忽視了實體與關係之間的互動。因此,文獻[50]提出了TransD模型,模型分別定義了頭實體與尾實體在關係空間上的投影矩陣。

4)TransG模型

文獻[51]提出的TransG模型認為一種關係可能會對應多種語義,而每一種語義都可以用一個高斯分佈表示。TransG模型考慮到了關係r 的不同語義,使用高斯混合模型來描述知識庫中每個三元組(h,r,t)頭實體與尾實體之間的關係,具有較高的實體區分。