論文Text Generation from Knowledge Graphs with Graph Transformers發表于2019年自然語言處理頂級會議之一NAACL,本文将對其進行解讀,這是原文連結(https://arxiv.org/pdf/1904.02342.pdf)。
背景
生成表達複雜含義的多句文本需要結構化的表征作為輸入,本文使用知識圖譜作為輸入的表征,研究一個端到端的graph-to-text生成系統,并将其應用到科技類文本寫作領域。作者使用一個科技類文章資料集的摘要部分,使用一個IE來為每個摘要提取資訊,再将其重構成知識圖譜的形式。作者通過實驗表明,将IE抽取到知識用圖來表示會比直接使用實體有更好的生成效果。
graph-to-text的一個重要任務是從 Abstract Meaning Representation (AMR) graph生成内容,其中圖的編碼方法主要有graph convolution encoder,graph attention encoder,graph LSTM,本文的模型是graph attention encoder的一個延伸。
資料集
作者建構了一個Abstract GENeration Dataset(AGENDA),該資料包含40k個AI會議的論文标題和摘要。對于資料集中的每篇摘要,首先使用SciIE來擷取摘要中的命名實體及實體之間的關系(Compare, Used-for, Feature-of, Hyponymof, Evaluate-for, and Conjunction),随後将得到的這些組織成無連接配接帶标簽圖的形式。
模型
GraphWriter模型總覽
編碼器
建構圖
将之前資料集中的無連接配接帶标簽圖,轉化為有連接配接無标簽圖,具體做法為:原圖中的每個表示關系的邊用兩個節點替代,一個表示正向的關系,一個表示反向的關系;增加一個與所有實體節點連接配接全局向量節點,該向量将會被用來作為解碼器的初始輸入。下圖中
v_i
表示實體節點,
R_{ij}
表示關系,
G
表示全局向量節點
最終得到的有連接配接,無标簽圖為G=(V,E),其中V表示實體/關系/全局向量節點,E表示連接配接矩陣(注意這裡的G和V差別上述圖中的G和v)。
Graph Transformer
Graph Transformer由L個Block Network疊加構成,在每個Block内,節點的嵌入
V^0=[v_i]
首先送入Graph Attention子產品。這裡使用多頭自注意力機制,每個節點表征
v_i
通過與其連接配接的節點使用注意力,來得到上下文相關的表征。得到的表征随後再送入正則化層和一個兩層的前饋神經網絡層。最後一層的得到的
V^L=[v_i^L]
即表示上下文後的實體,關系,全局向量節點。
解碼器
在每個時間步t使用隐藏狀态
h_t
來計算圖和标題的上下文向量
c_g
和
c_s
,其中
c_g
通過
h_t
使用多頭注意力得到,
c_s
也通過類似的方式得到,最終的上下文向量是兩者的疊加
c_t=[c_g ][c_s ]
。随後使用類似pointer-network的方法來生成一個新詞或複制一個詞,
實驗
實驗包含自動和人工評估,在自動評估中,GraphWriter代表本篇文章的模型,GAT中将Graph Transformer encoder使用一個Graph Attention Network替換,Entity Writer僅使用到了實體和标題沒有圖的關系資訊,Rewriter僅僅使用了文章的标題,
從上圖可以看到,使用标題,實體,關系的模型(GraphWriter和GAT)的表現要顯著好于使用更少資訊的模型。在人工評估中,使用Best-Worst Scaling,
參考
[1] Koncel-Kedziorski R, Bekal D, Luan Y, et al. Text generation from knowledge graphs with graph transformers[J]. arXiv preprint arXiv:1904.02342, 2019.