論文報告
Attention Guided Graph Convolutional Networks for Relation Extraction(ACL19)
Motivation
關係抽取的目的是檢測文本中實體之間的關係。他是自然語言處理中較爲基礎的任務,可以應用在生物醫學知識發現、數據庫檢索等多種領域,同樣也是智能問答、自然語言生成、閱讀理解等領域的基礎。
Related Work
現有的大多關係抽取模型可以分爲兩類,基於序列的和基於依賴的。基於序列的模型只對單詞序列起作用,而基於依賴的模型將依賴樹(語法樹)合併到模型中。與基於序列的模型只能提取表面形式的局部句法關係相比,基於依賴的模型能夠捕獲較爲深層次的非局部句法關係。
基於依賴的模型,如何構造依賴樹(語法樹)的結構很大程度上影響了語法樹最終的性能。有人提出了基於規則的剪枝的方法去掉一些冗餘的信息。然而基於規則的剪枝策略可能會消除整個樹中的一些重要信息,理想情況下,模型應該學會如何在全樹中包含和排除某些信息之間保持平衡。在該文中,提出了一種基於attention的圖卷積網絡(AGGCNs),他直接作用於全樹。開發了一種軟修剪的策略,將原始依賴樹轉換爲全連接的加權圖。這些權重可以被視爲節點之間的關聯強度,可以通過使用self-attention的機制進行端到端的方式學習。
How?
GCN
對於一個n個節點的圖,我們用A 來表示它的鄰接矩陣,如果節點i和節點j之間有邊則A i , j = 1 A_{i,j}=1 A i , j = 1 ,對於無向圖A j , i = 1 A_{j,i}=1 A j , i = 1 ,無邊則爲0。則節點i在第l層的卷積運算h i ( l ) \mathbf{h}_{i}^{(l)} h i ( l ) 定義爲:
h i ( l ) = ρ ( ∑ j = 1 n A i j W ( l ) h j ( l − 1 ) + b ( l ) )
\mathbf{h}_{i}^{(l)}=\rho\left(\sum_{j=1}^{n} \mathbf{A}_{i j} \mathbf{W}^{(l)} \mathbf{h}_{j}^{(l-1)}+\mathbf{b}^{(l)}\right)
h i ( l ) = ρ ( j = 1 ∑ n A i j W ( l ) h j ( l − 1 ) + b ( l ) )
其中W ( l ) \mathbf{W}^{(l)} W ( l ) ,b ( l ) \mathbf{b}^{(l)} b ( l ) 是模型中的參數,ρ \rho ρ 是激活函數本文用的(RELU),h i ( 0 ) \mathbf{h}_{i}^{(0)} h i ( 0 ) 是初始的輸入x i x_i x i ,其中x i ∈ R d \mathbf{x}_{i} \in \mathbb{R}^{d} x i ∈ R d ,d是輸入的特徵維度。
圖1
如圖一所示,AGGCN模型由M個相同的block組成,每個block包含三層,Attention Guided Layer、Densely connected layer、linear combination layer。
Attention Guided Layer
如圖一所示,傳統的基於規則的剪枝方式邊的權重只包含0或1,而AGGCN添加attention之後每個單詞之間就有了關係。
A ~ ( t ) = softmax ( Q W i Q × ( K W i K ) T d ) V
\tilde{\mathbf{A}}^{(\mathbf{t})}=\operatorname{softmax}\left(\frac{Q \mathbf{W}_{i}^{Q} \times\left(K \mathbf{W}_{i}^{K}\right)^{T}}{\sqrt{d}}\right) V
A ~ ( t ) = s o f t m a x ( d Q W i Q × ( K W i K ) T ) V
其中Q,K都分別表示模型上一層的輸出h ( l − 1 ) h^{(l-1)} h ( l − 1 ) ,W i K \mathbf{W}_{i}^{K} W i K 和W i Q \mathbf{W}_{i}^{Q} W i Q 是模型的參數矩陣,W i Q ∈ R d × d \mathbf{W}_{i}^{Q} \in \mathbb{R}^{d \times d} W i Q ∈ R d × d ,W i K ∈ R d × d \mathbf{W}_{i}^{K} \in \mathbb{R}^{d \times d} W i K ∈ R d × d ,A ~ ( t ) \tilde{\mathbf{A}}^{(\mathbf{t})} A ~ ( t ) 是第t層的attention鄰接矩陣。
注:此處有N組不同的參數,N是一個超參數,A ~ ( t ) \tilde{\mathbf{A}}^{(\mathbf{t})} A ~ ( t ) 表示第t個attention矩陣
Densely Connected Layer
因爲attention層構造了一個完全圖,爲了在更大的圖上捕獲更多的節點信息,使我們能夠訓練一個更加深入的模型。引入densely connected layer。
如圖2所示,
g j ( l ) = [ x j ; h j ( 1 ) ; … ; h j ( l − 1 ) ]
\mathbf{g}_{j}^{(l)}=\left[\mathbf{x}_{j} ; \mathbf{h}_{j}^{(1)} ; \ldots ; \mathbf{h}_{j}^{(l-1)}\right]
g j ( l ) = [ x j ; h j ( 1 ) ; … ; h j ( l − 1 ) ]
在實踐中,每個Densely Connected Layer都有L個子層。這些子層的尺寸由L和輸入特徵尺寸d決定。在AGGCN中,使用d hidden = d / L d_{\text {hidden}}=d / L d hidden = d / L 例如如果Densely Connected Layer有3個子層,輸入維度是300,則d hidden = d / L = 300 / 3 = 100 d_{\text {hidden}}=d / L =300/3=100 d hidden = d / L = 3 0 0 / 3 = 1 0 0 。然後我們將每個子層的輸出鏈接起來,形成新的表示。
因爲有N組不同的attention矩陣,所以需要N個不同的Densely Connected Layer。所以每層的的計算方式爲:
h t i ( l ) = ρ ( ∑ j = 1 n A ~ i j ( t ) W t ( l ) g j ( l ) + b t ( l ) )
\mathbf{h}_{t_{i}}^{(l)}=\rho\left(\sum_{j=1}^{n} \tilde{\mathbf{A}}_{i j}^{(t)} \mathbf{W}_{t}^{(l)} \mathbf{g}_{j}^{(l)}+\mathbf{b}_{t}^{(l)}\right)
h t i ( l ) = ρ ( j = 1 ∑ n A ~ i j ( t ) W t ( l ) g j ( l ) + b t ( l ) )
其中t = 1 , … , N t=1, \ldots, N t = 1 , … , N ,t 選擇對應的該組的參數。由於Densely Connected Layer,每層獲取到前邊層傳過來的信息所以每層的W維度也逐層增加。
W t ( l ) ∈ R d h i d d e n × d ( l ) \mathbf{W}_{t}^{(l)} \in \mathbb{R}^{d_{h i d d e n} \times d^{(l)}} W t ( l ) ∈ R d h i d d e n × d ( l ) ,d ( l ) = d + d h i d d e n × ( l − 1 ) d^{(l)}=d+d_{h i d d e n} \times(l-1) d ( l ) = d + d h i d d e n × ( l − 1 )
Linear Combination Layer
最後一層用於集成來自N個不同密度連接層的表示。線性組合層的輸出定義爲:
h c o m b = W c o m b h o u t + b c o m b
\mathbf{h}_{c o m b}=\mathbf{W}_{c o m b} \mathbf{h}_{o u t}+\mathbf{b}_{c o m b}
h c o m b = W c o m b h o u t + b c o m b
其中h out = [ h ( 1 ) ; … ; h ( N ) ] ∈ R d × N \mathbf{h}_{\text {out}}=\left[\mathbf{h}^{(1)} ; \ldots ; \mathbf{h}^{(N)}\right] \in \mathbb{R}^{d \times N} h out = [ h ( 1 ) ; … ; h ( N ) ] ∈ R d × N ,W c o m b ∈ R ( d × N ) × d \mathbf{W}_{c o m b} \in\mathbb{R}^{(d \times N) \times d} W c o m b ∈ R ( d × N ) × d
AGGCNs for Relation Extraction
首先計算出句子的表示h sent \mathbf{h}_{\text {sent}} h sent
h sent = f ( h mask ) = f ( AGGCN ( x ) )
h_{\text {sent}}=f\left(\mathbf{h}_{\text {mask}}\right)=f(\text { AGGCN }(\mathbf{x}))
h sent = f ( h mask ) = f ( AGGCN ( x ) )
其中mask表示我們把句子中要求的實體mask掉,只選擇句子中非實體的單詞。f函數是max pooling函數,f : R d × n → R d × 1 f: \mathbb{R}^{d \times n} \rightarrow \mathbb{R}^{d \times 1} f : R d × n → R d × 1
對於第i個實體,他的表示h e i h_{e_i} h e i 可以被計算爲
h e i = f ( h e i )
h_{e_{i}}=f\left(\mathbf{h}_{\mathbf{e}_{\mathbf{i}}}\right)
h e i = f ( h e i )
將句子表示和實體表示連接起來形成新的表示,使用前饋神經網絡FFNN得到最後的向量:
h final = FFNN ( [ h sent ; h e 1 ; … h e i ] )
h_{\text {final}}=\operatorname{FFNN}\left(\left[h_{\text {sent}} ; h_{e_{1}} ; \ldots h_{e_{i}}\right]\right)
h final = F F N N ( [ h sent ; h e 1 ; … h e i ] )
最後使用邏輯迴歸對h final h_{\text {final}} h final 進行分類。
Proof
在跨句的n元關係提取和句子級的關係提取上進行了實驗。
跨句n元關係提取
對於跨句n元關係提取任務,數據集包含從PubMed中提取的6,987個三元關係實例和6,087個二元關係實例。大多數實例包含多個句子,每個實例都有五個標籤,包括“resistance
or nonresponse”、“sensitivity”、“response”、“resistance”和“none”。本文考慮兩個具體的評價任務,即:二類n元關係提取和多類n元關係提取。如之前人們做的工作,本文同樣對多類標籤進行二值化,將前四個關係類分組爲“yes”,將“none”分組爲“no”。
我們首先關注二元類n元關係的提取任務。對於三元關係提取(表1中的前兩列),AGGCN模型分別在單個句子(single)和所有實例(Cross)中的實例上實現了87.1和87.0的準確性,這優於其他所有模型。與GCN模型相比,我們的模型比最優的修剪樹模型(K=1)高1.3和1.2個百分點。對於二進制關係提取(表1中的第三和第四列),AGGCN的性能始終優於GS GLSTM和GCN。
句子級的關係抽取
logistic迴歸分類器(LR)的精度得分最高。本文認爲這是由於數據不平衡的問題。這種基於特徵的方法傾向於非常頻繁預測一個的標籤。
消融實驗:
不同超參數
不同句子長度的F1score
不同數據集大小比較兩個模型
Summary
將attention+GCN應用於關係抽取,學習一種“軟修剪”策略,通過權重來學習如何選擇和丟棄信息。再結合Densely Connected Layer,提升了關係抽取的性能。
該篇論文做的實驗非常全,不僅有三個數據集,而且對各個方面都進行了實驗。比如數據集的大小,不同的句子長度,不同超參數,不同的關係抽取任務等方面。