COMET —— 常識Transformer用於自動知識圖構建


《COMET:Commonsense Transformers for Automatic Knowledge Graph Construction》

論文地址

論文源碼

任務

  • 目的層面 —— 根據兩個當前最常用的常識知識圖ATOMICConceptNet構建一個用於開發常識知識的自適應生成模型COMET,以協助完成常識知識的自我補充

COMET是一個自適應框架,用於通過在知識元組的種子集上訓練語言模型來從語言模型構建常識知識庫。這些知識元組為COMET提供了必須學習的知識庫結構和關系,COMET學習調整從預處理中學習的語言模型表示,以向種子知識圖添加新的節點和邊。

image-20201020100524650

  • 實驗層面
    • 訓練知識庫 —— 格式為 \(\{s ,r, o\}\)的自然語言元組, 其中 \(s\) 為元組的短語主語, \(r\) 為元組的關系, \(o\) 為元組的短語賓語。例如 \(\left(s="take \space a \space nap", r=Causes, o="have \space energy" \right)\)
    • 任務 —— 給定 \(s\)\(r\) 作為輸入, 要求生成 \(o\)

Transformer語言模型

​ 采用GPT的語言模型架構構建COMET

image-20201020101020335

多頭注意力

​ 多頭注意力機制 —— 顧名思義, 注意力由多個頭部組成,每個頭部使用查詢 \(Q\) 和鍵 \(K\) 來計算一個唯一的點積注意力分布。

\[\text { ATTENTION }(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right) V \]

​ 其中,\(d_{k}\) 為 $ Q, \space K, \space V $ 的輸入向量的維度。對於每個注意力頭來說,在計算注意力之前, $ Q, \space K, \space V $ 被一組矩陣唯一映射。(對應a圖藍色部分)

\[H_{i} = \text { ATTENTION }(QW_{i}^{Q}, KW_{i}^{K}, V_{i}^{V}) \]

\(H_{i}\) 為單個注意力頭的輸出, \(W_{i}^{Q}, \space W_{i}^{K}, \space W_{i}^{V}\) 為特定頭的關於 \(Q, \space K, \space V\) 的映射矩陣。

​ 同時,多個注意力頭的輸出將被連接在一起。(對應a圖紫色部分)

\[\operatorname{MULTIH}(\mathrm{Q}, \mathrm{K}, \mathrm{V})=\left[H_{1} ; \ldots ; H_{b}\right] W^{O} \]

​ 其中 \(W^{O}\) 為輸出的映射矩陣。

多頭注意力的輸入

​ 如b圖所示,當前層多頭注意力的輸入來源於上一層Transformer Block的輸出。其中,輸入的 \(Q\) 對應於上一層Block的輸出 $ h_{t}^{l-1}$,而 \(K\)\(V\) 對應於所有先前時間步長的前一層塊的輸出 \(\mathbf{h}_{t}^{l-1} = \left\{h^{l-1}\right\}_{<t}\)

\[\operatorname{MULTIATTN}\left(h_{t}^{l-1}\right)=\operatorname{MULTIH}\left(h_{t}^{l-1}, \mathbf{h}_{t}^{l-1}, \mathbf{h}_{t}^{l-1}\right) \]

Transformer塊

​ 如b圖所示,每個Transformer層包含一個架構上相同的Transformer Block塊(盡管具有唯一的可訓練參數),該Transformer Block對該塊的輸入應用以下變換:

\[\begin{aligned} \tilde{g}^{l} &=\mathrm{MULTIATTN}\left(h^{l-1}\right) \\ g^{l} &=\mathrm{LAYERNORM}\left(\tilde{g}^{l}+h^{l-1}\right) \\ \tilde{h}^{l} &=\mathrm{FFN}\left(g^{l}\right) \\ h^{l} &=\text { LAYERNORM }\left(\tilde{h}^{l}+g^{l}\right) \end{aligned} \]

​ 其中,\(\tilde{g}^{l}\) 為多頭注意力的輸出,\(FFN\) 是一個兩層的前饋神經網絡(Feedforward Network), 而 \(LAYERNORM\)層是對多頭注意力層輸出以及前饋層輸出的正則化操作,操作的輸入包含一個殘差連接,該連接將前一個操作的輸出和輸入相加。

輸入編碼器

文本嵌入 —— $ \mathbf{X}= { X^{s}, \space X^{r}, \space X^{o} } $, 其中 \(X^{s}, \space X^{r}, \space X^{o}\) 分別代表知識元組 \(\{s ,r, o\}\) 中每一項的單詞序列,$ \mathbf{X}$ 為三者的串聯。對於任意 \(x_{t} \in \mathbf{X}\) ,單詞 \(x_{t}\) 的單詞嵌入為 \(e_{t} = \sum x_{t}^{i}\) ,這里的 \(\sum\) 為向量和。

為何單詞嵌入是一種向量和的形式?

這是因為GPT采用字節對編碼(BPE)的方式構建字詞,准確來說,GPT以子詞表中子詞作為詞嵌入的基本單位的,這里輸入的文本中的完整單詞在字詞表中可能是好幾個字詞之和,所以在表示完整單詞的文本嵌入時,用的是子詞嵌入向量的和。關於字節對編碼的具體步驟,我之前的一篇文章中有提到,這里不再贅述。

位置嵌入 —— 因為transformer是一種自注意力模型,沒有token順序的概念,所以引入位置編碼 \(p_{t}\) 來指示模型各個token在文本序列中所處的絕對位置。

最終輸入 —— $ h_{t}^{l} = e_{t} + p_{t} $, 其中 \(l\) 表示transformer層數, \(t\) 代表第 \(t\) 個時間步。如c圖所示,第一層的輸入為: \(h^{0} = e_{0} + p_{0}\)

訓練

  • 訓練任務 —— 給定知識元組 \(\{ s, \space r, \space o \}\),要求以 \(s\)\(r\) 對應token的串接 \(\left[ X^{s}, X^{r} \right]\) 作為輸入,模型需要學會生成 \(o\) 對應的那些tokens,即 $ X^{o}$ 。
  • 損失函數 —— 標准的語言模型的損失函數,即對數似然函數。

\[\mathcal{L}=-\sum_{t=|s|+|r|}^{|s|+|r|+|o|} \log P\left(x_{t} \mid x_{<t}\right) \]

​ 已知前 \(t-1\) 個生成的token \(x_{<t}\) ,當前第 \(t\) 個位置生成token \(x_{t}\)的概率為:

\[P\left(x_{t} \mid x_{<t}\right)=\operatorname{softmax}\left(\mathbf{W}_{\text {vocab}} \cdot \mathbf{h}_{\mathrm{t}}\right) \]

​ 其中,$ |s|, \space |r|, \space |o|$ 分別為短句主語、關系、賓語對應的token數目。 這里 \(h_{t}\) 表示在解碼時GPT對\(x_{t}\) 的最終表示,\(\mathbf{W}_{\text {vocab}}\)是GPT使用的詞匯表的嵌入矩陣。

  • 實驗數據集 —— ATOMIC 和 ConceptNet

  • 輸入構造

    • ATOMIC —— 關系token只有一個

    image-20201020151850272

    • ConceptNet —— 關系token可能有多個,引入第二組mask來分隔關系token和賓語token。

    image-20201020151911114

  • 模型參數初始化 —— 使用GPT的預訓練模型權重初始化模型,為了微調,往詞匯表中加入了一些特殊的token。例如,關系嵌入(如oReact for ATOMIC和IsA for ConceptNet)是通過從標准正態分布中采樣來初始化的。

  • 超參設置

    • 12 layers
    • 768-dimensional hidden states
    • 12 attention heads
    • dropout 0.1
    • activation fuction GeLU
    • batch size 64
    • lr 6.25e-5 (with a warmup period of 100 minibatches)
    • decay method linear

實驗細節

ATOMIC
數據集
  • 877K 知識元組,涵蓋圍繞特定事件的社會常識知識
  • 九個關系維度提煉事件中的常識知識

image-20201020155247771

​ 對應到實驗中,ATOMIC事件(例如,“X goes to the store”)是短語主體 \(s\)xIntent是短語關系 \(r\)causes/effects(例如,“to get food”)是短語客體 \(o\)。訓練集/開發集/測試集的數目分別為:710k/80k/87k

模型評估
  • 自動評估

image-20201020161036289

​ 上圖為采用自動評估標准的評估結果(評估的是生成 \(o\) 的質量和新穎性,第一列對比的模型為ATOMIC提出文章中的baseline,后面兩個是論文提出的COMET模型。從第二列開始都是評估的指標,第二列是困惑度PPL,第三列是BLEU-2,第三列是模型生成元組所占的比例,第四列是模型生成的未出現在訓練集元組中 \(o\) 所占的比例(元組新穎性),為了證明模型生成的元組新客體不是唯一的,把產生的新客體的數目作為測試集事件產生的唯一客體集合的函數,就是第五列。

  • 人工評估

image-20201020162837968

BLEU-2的評估結果表明,COMET模型超越了所有baseline的表現,比表現最好的baseline實現了51%的相對表現提升。對於人工評估的結果,COMET報告了統計上顯著的相對Avg性能,比最高基線提高了18%。

​ 為了評估在大型語料庫上的預訓練如何幫助模型學習產生知識,訓練了一個沒有用預訓練權重初始化的COMET版本(COMET(- pretrain))。通過在不同比例的訓練數據上訓練模型來評估方法的數據效率。

​ 最后,因為最終目標是能夠執行高質量、多樣化的知識庫構建,所以探索了各種解碼方案如何影響候選知識元組的質量,采用了不同生成策略進行了實驗,這些策略包括:argmax貪婪解碼、波束大小的波束搜索、b=2、5、10和k = 5、10的top-k采樣。對於每種解碼方法,對每種方法產生的最終候選數進行人工評估,結果如下:

image-20201020172700221

​ 上述結果表明,使用貪婪解碼來產生知識元組,與人工評估ATOMIC測試集相比,僅存在10%的相對性能差距,表明由模型產生的知識接近人工性能。

ConceptNet
數據集
  • 標准的SRO三元組格式,涵蓋大量關系三元組,例如(take a nap, Causes, have energy)

​ 對應到實驗中,各選取了1200個三元組作為測試集和開發集,包含34個關系類型的100k版本的訓練集用於訓練模型。

模型評估

image-20201020195851314

生成質量評估

​ 為了評估生成知識的質量,給出在測試集中生成的正面示例的數量,這些正面示例被評為正確。對於給定的 \(s \space r \space o \space\)元組,考慮該模型產生元組是否正確的概率,以50%的概率對分數進行閾值化,以識別正確的預測。

​ 結果表明,該模型可以生成高質量的知識:上表中的低困惑度(PPL)分數表明其預測的高模型置信度,而高分類器得分Score(95.25%)表明知識庫補全模型在大多數情況下將生成的元組評分為正確。在人工評估(遵循與ATOMIC相同的設計)中,貪婪解碼得到的元組的91.7%被評為正確。

生成新穎度評估

\(N/T \space sro\) 達到了59.25%,說明有接近6成的生成元組未出現在訓練集中,顯示該模型能夠在節點之間生成新的邊,甚至創建新的節點(\(N/T \space o = 3.75\) ,即3.75%的節點是新的)來擴展知識圖的大小。但是需要注意的是,有一些新產生的元組僅僅是訓練集中元組的簡化形式。為此論文進行了研究,這些簡化形式的新元組到底有多少。結論是大多數產生的新元組與訓練集中它們最接近的元組具有明顯不同的單詞序列。

結論

​ 本文引入常識轉換器(COMET)來自動構建常識知識庫。COMET是一個框架,用於調整語言模型的權重,以學習生成新穎和多樣的常識知識元組。在兩個常識知識庫ATOMICConceptNet上的實驗結果表明,COMET經常產生人類評估者認為是正確的新常識知識。這些積極的結果表明未來可以尋求將該方法擴展到各種其他類型的知識庫上,以及研究COMET是否可以學習為任意知識種子產生OpenIE風格的知識元組。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM