天天看點

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction

  • 前言
  • 知識圖譜自動建構要素
  • 論文解決的問題
  • 論文方法
    • Module1 -- COMET and GPT model
    • Module2 -- Transformer block
  • 實驗結果與評價
    • 資料集介紹
    • 實驗結果

前言

知識圖譜(Knowledge Graph)自Google提出來之後,從一開始的Google搜尋,到現在的聊天機器人、大資料風控、證券投資、智能醫療、自适應教育、推薦系統,無一不跟其相關。自動建構知識圖譜,使得圖譜可以不斷的增加新的節點和關系補全,對于不同領域的應用而言都具有及其重要的意義。

本文将通過對發表在ACL 2019年的文獻“COMET: Commonsense Transformers for Automatic Knowledge Graph Construction”進行研讀分享,以補充知識圖譜自動建構研究工作的内容。詳細如下:

論文連結: https://arxiv.org/pdf/1906.05317.pdf

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

知識圖譜自動建構要素

在正式介紹本篇工作之前,我們首先通過了解知識圖譜建構的基本技術路線進行說明(注:本部分不讨論其中涉及的具體方法)。

IEEE & AAAS Fellow,明略科技首席科學家吳信東教授在2019知識圖譜前沿技術論壇的分享内容中提到,知識圖譜的總體架構中包含兩個核心要素:一為背景的領域知識庫,二為強化學習配合人機互動實作圖譜的自動糾錯和自主學習,如下圖所示。

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

結合對相關研究工作的深入了解,以及從0到1的建構一個領域知識圖譜的經曆可以發現,知識圖譜在建構設計之時,便需要有針對領域需求的考慮,以便設計能夠很好地應用于下遊任務(如檢索和推薦等)。這就意味着,知識圖譜建構之初由于領域知識的存儲量,以及需求的進一步增加或修改,會對已經建構好的知識圖譜提出提出擴充更新的需求。

筆者認為,這也是知識圖譜自動建構研究工作中最為直接的意義展現。

論文解決的問題

下圖為論文中給出的所要解決的任務:

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價
論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價
待解決問題

進行拆解後,可将其表示為:

對于已有知識庫中的形如( s s s, r r r, o o o)的三元組集合,其中 s s s 表示subject, r r r 表示relation, o o o 表示object.

給定查詢三元組的 s s s, 和 r r r 作為輸入, 生成符合該三元組的 o o o.

結果如左圖所示,虛線表示新生成的節點和關系.

論文方法

從論文中關于方法的介紹來看,本文提出的方法可使用如下一句話進行概括,即:

The solution introduces the architecture of GPT model, uses multiple transformer blocks of multi-headed scaled dot product attention and FC layers to encode input text.
論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

這裡使用文中給出的架構圖作為進一步闡述的依據,其中上圖(c)中為本文提出的方法COMET的架構結構,讓若對GPT模型稍有了解的話,可以判斷出這裡的結構與GPT model一緻;而架構圖中的Block則表示Transformer這一模型(即multiple transformer blocks),用作提取特征,對應上圖(b)所示;對于transformer block中的self-attention部分,文中采用了multi-head attention (采用scaled dot production,即縮放點積的方式計算),對應上圖(a)所示。

Module1 – COMET and GPT model

結合本文提出的問題,在這裡筆者借助GPT模型的輸入 / 輸出結構,并對COMET模型作進一步闡述:

以下圖為例,GPT模型,其含義可表示為生成式的預訓練過程。是以在第一階段預訓練時,會生成多個訓練樣本以預測對應樣本的目前輸出結果。如給定訓練樣本1:Second law of robotics: ,預測輸出結果為 “a”.

  • Generaating training examples
    論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

    并且,由于第一階段使用語言模型進行預訓練屬于無監督形式,故而通過最大化如下似然函數以獲得生成下個單詞的機率。

    L ( U ) = ∑ l o g P ( u i ∣ u i − k , . . . , u i − 1 ; Θ ) L(U)=\sum logP(u_{i}|u_{i-k},...,u_{i-1};\Theta) L(U)=∑logP(ui​∣ui−k​,...,ui−1​;Θ)

  • Training process
    論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價
    注:其中關于GPT模型更為詳細的圖解,可參見連結:http://jalammar.github.io/how-gpt3-works-visualizations-animations/

基于此,結合本文研究問題,可進一步将COMET模型看作是預測新生成新的節點是否能夠構成合理的三元組。總結如下:

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

(1)Input token for training model:在給定三元組中的subject以及relation的情況下,預測生成三元組的object是否正确。可将subject token (即 s s s tokens)和relation token(即 r r r token)作為輸入訓練樣本。值得注意的是,由于 s s s tokens可能存在由某一短語詞組表示,是以在 s s s tokens與 r r r token之間添加一個mask token用作區分.

(2)模型輸入向量表示:由于三元組的表示以( s s s, r r r, t t t),不能随意更換位置,否則該三元組可能無法成立。是以,在訓練時,與GPT模型一緻,也需要考慮輸入字元之間的位置編碼資訊,是以,模型輸入向量表示由word embedding e t e_{t} et​與位置編碼postion mebdding p t p_{t} pt​之群組成。

(3)損失函數:與GPT模型一緻,模型訓練的損失函數由似然函數估計表示,如上圖所示.

Module2 – Transformer block

對于模型中采用的多個Transformer block,可以通過下圖 (b) 進行表示:

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

可用如下式子表示:

g ~ l = M U L T I A T T E N ( h l − 1 ) \widetilde{g}^{l}=MULTIATTEN(h^{l-1}) g

​l=MULTIATTEN(hl−1)

g l = L A Y E R N O R M ( g ~ l + h l − 1 ) g^{l}=LAYERNORM(\widetilde{g}^{l}+h^{l-1}) gl=LAYERNORM(g

​l+hl−1)

h ~ l = F F N ( g l ) \widetilde{h}^{l}=FFN(g^{l}) h

l=FFN(gl)

h l = L A Y E R N O R M ( h ~ l + g l ) h^{l}=LAYERNORM(\widetilde{h}^{l}+g^{l}) hl=LAYERNORM(h

l+gl)

如圖(b)顯示,其中較為重要的一層為多頭注意力機制(即自注意力層),其模型結構如圖 (a) 所示,用來表示針對目前輸入的token與在處理下遊任務時,應當更加“關注”之前已經輸入的“哪一個”token。

筆者參考Transformer結構的圖解,在此闡述自注意力層如何起到作用:

(注:更為詳細的Transformer圖解,參見:http://jalammar.github.io/illustrated-transformer/)

  • 首先,對于目前輸入的token由word embedding和postion embedding嵌入表示為 h h h,分别利用三個不同的矩陣,即 W Q W^{Q} WQ, W K W^{K} WK, W V W^{V} WV,分别擷取查詢向量 Q Q Q, 鍵向量 K K K,以及值向量 V V V.
  • 利用矩陣運算,進行縮放點積(scaled dot product)可以得到 h h h 的經過自注意力之後的輸出 Z Z Z.

值得注意的是,縮放點積與其他計算方式(如additive attention 和 dot product attention)的差別,筆者認為僅僅是根據結果進行選擇。一般地,若 d K d_{K} dK​很小,那additive attention 和 dot product attention兩種不同的計算結果相差不大;反之,若 d K d_{K} dK​很大,對于dot product attention而言不進行scaling的話,結果會沒有additive attention好。并且,由于dot product的結果過大,不進行scaling的情況下經過softmax之後,梯度很小,不利于反向傳播,是以,本文中選擇使用sclaed dot production attention。

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價
  • 相比自注意力機制,多頭注意力僅僅是針對同一個 h h h 使用多組 W Q W^{Q} WQ, W K W^{K} WK, W V W^{V} WV矩陣,獲得多個自注意力輸出 Z Z Z。
論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價
  • 對于多個注意力輸出 Z Z Z, 為了保證 Z Z Z 和 h h h 的次元始終保持一緻,是以直接将多個注意力輸出 Z Z Z 直接拼接,并使用一個新的矩陣 W o W^{o} Wo 進行矩陣運算,得到最終的多頭注意力輸出 Z Z Z。
    論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價
    綜上,可以得到Transformer block的矩陣表示結構如下所示:
    論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

至此,關于本文模型COMET的細節描述已完。

實驗結果與評價

筆者在此僅讨論論文中記錄的ATOMIC資料集上的實驗,關于ConceptNet資料集上的實驗與ATOMIC相似,是以不進一步闡述。

資料集介紹

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

實驗中選用的資料集ATOMIC,為針對特定事件Event的社會常識描述,該知識庫包含了從 9 個次元描述事件的 877k 個三元組。實驗中,分别選用了 710k / 80k / 87k 的三元組作為訓練集 / 驗證集 / 測試集。

實驗結果

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

對于名額 BLEU-2,可以評估知識圖譜建構的品質;而對于名額 N/T s r o sro sro, N/T o o o, N/U o o o 而言,可以看出新生成的三元組,尾實體object,以及unique object分别在訓練集中的占比,即新的節點.

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價
論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

此外,實驗還對所生成的三元組使用人工評價的方式進行評價,即選擇來自 Amazon Mechanical Turk 的 5 名從業人員,分别從測試集中随機選擇 100 個樣本生成 10 個候選尾實體,即每種關系下的 100 * 10 = 1000 個三元組打分,分别取 5 名工作者打分的平均作為該關系的Human evaluation分數。并展示了對生成三元組的評價結果執行個體。

論文 | 知識圖譜自動建構 Automatic Knowledge Graph Construction前言知識圖譜自動建構要素論文解決的問題論文方法實驗結果與評價

此外,實驗考慮到并非所有領域都有足夠可以利用的三元組作為訓練,是以分别選擇訓練樣本數的 1%, 10%, 50% 作為對比。實驗證明,在訓練樣本數位 710k * 10% = 71k 時,實驗結果表現出依舊優良的性能。

繼續閱讀