Coupled Multi-layer Attentions for Co-extraction of Aspect and Opinion Terms(AAAI 2017)

本文旨在進行 aspect 和 opinion term 的同步提取。根據現有文獻,作者總結三種 aspect and/or opinion term 的提取方式:

rule-based

該方法基於語法或者依存結構手動設置一些規則,然後將一些種子集合作為輸入,迭代地獲取一些 aspect 和 opinion term。

feature-engineering-based

該方法訓練一個具有大量的,手動定義的基於語言學和句法學的特徵的分類器,這些特徵來源於標記過的語料庫,來在句子中的每一個 token 預測標籤。

deep-learning-based

句法或依存關係分析在一份非規範化或複雜文本上表現的比較差,所以文中採用 attention

架構(Coupled Multi-layer Attention,CMLA)

圖1 句法依存關係

  • 針對每一句話我們構建一個 attention 對,一個用於 aspect 抽取,另一個用於 opinion term 的抽取。每一個 attention 致力於學習出一個 aspect 或者 opinion 的 prototype vector,一個針對於每一個 token 的 high-level feature vector,和一個針對於每一個 token 的 attention score。feature vector 和 attention score 用以測量輸入 token 和 prototype vector 之間的關聯關係。因此,一個帶有高分值的 token 代表著它是一個 aspect 或 opinion term 的可能性更大。
  • 為了捕獲 aspect 和 opinion term 之間的直接關係,如圖1 中的 A    xrightarrow{xcomp}  B 。這樣的 attention 對在學習中是成對存在的,這樣 attention 之間是相互影響的。
  • 為了捕獲 aspect 和 opinion term 之間的間接關係, 如圖1 中的 A    xrightarrow{nsubj}  B  xleftarrow{acl} C 關係。文中引入了多層的 coupled attention。

Attention With Tensor Operator

CMLA 的基礎是一對 attention:aspect attention 和 opinion attention。與之前的方法不同,文中採用 attention 來鑒定一個 token 作為 aspect term 或者 opinion term 的可能性。

在 aspect attention 中,我們首先產生一個aspect 的初始表示 prototype vector u^a ,他可以被看做是句中 aspect term 的一個 general feature representation(通常表示)。給定 u^aH={h_1,dotsm, h_n}H 代表一個長度為 n 的詞序列表示,模型掃描整個輸入序列,並針對第 i 個 token,計算一個 attention vector r_i^a 和一個 attention score e^a_i

為了獲得 r_i^a ,我們首先計算一個 composition vector eta _ { i } ^ { a } in mathbb { R } ^ { K } ,該矩陣代表著 h_i 和 prototype vector 的關聯程度,計算方式如下:

圖2 tensor operator

其中 G ^ { a } in mathbb { R } ^ { K 	imes d 	imes d } , f^a 的計算如圖二所示,可以理解為,對 KG ^ { a } in mathbb { R } ^ { d 	imes d } 分別針對 u^a,h_i 進行操作:

	anh left( h _ { i } ^ { 	op } G _k^ { a } u ^ { a } 
ight) qquad 1 leq k leq K

文中指出, h _ { i } ^ { 	op } G ^ { a } u ^ { a } in mathbb { R } ^ { K } 代表著 Kh_i ,u^a 的組合形式,也可以說代表 aspect 的 K 種文本特徵(如語法特徵)。之後,通過 GRU,將 eta_i^a 轉化為 r_i^a ,通過 GRU 使得 eta_i^a 具有上下文信息。

attention score e_i^a 的計算方式如下:

e_i^a = v^{a	op}r_i^a

因為 r_i^a 代表著一個關聯關係 vector, v^a in mathbb { R } ^ { K } 可以視作 r_i^a 的權值向量。此時, e_i^a 的大小代表著其為 aspect 或者 opinion term 的大小。

在最後一層, r_i^a 也代表著詞 w_i 的最終表示。因此,最終也將 r_i^a 作為計算標籤概率的輸入,計算如下:

l_i^a = softmax(C^ar^a_i)

其中 C^a in mathbb { R } ^ { c 	imes K } , c 為標籤的種類,可以理解為針對每個 token 做 c 分類。

Coupled Attention for Dual Propagation

圖3 Multi-layer Coupled attentions

如圖3所示,實線和虛線分別代表 aspect attention 和 opinion attention。這兩個 attention 針對於相同的 token 共享 相同的特徵向量 h_i 。我們在每一次迭代的時候,將兩個 prototype vector 都帶入到兩邊的形成一個 vector 對 left{ u ^ { a } , u ^ { p } 
ight} ,並將前面的操作進行更改:

f ^ { m } left( h _ { i } , u ^ { a } , u ^ { p } 
ight) = 	anh left( left[ h _ { i } ^ { 	op } G ^ { m } u ^ { m } : h _ { i } ^ { 	op } D ^ { m } u ^ { overline { m } } 
ight] 
ight)

m in {a,p }overline { m } = {a,p} - mG ^ { m } in mathbb { R } ^ { K 	imes d 	imes d },D ^ { m } in mathbb { R } ^ { K 	imes d 	imes d } ,其中 D^m 用以幫助判定當前 token 和  u ^ { overline { m } } 之間的關係,從而達到判定 aspect 和 opinion term 之間關聯關係的效果。

上文中提到的 r_i^m 計算如下:

r _ { i } ^ { m } = mathrm { GRU } left( f ^ { m } left( h _ { i } , u ^ { a } , u ^ { p } 
ight) , 	heta ^ { m } 
ight) , 	ext { and } e _ { i } ^ { m } = v ^ { m 	op } r _ { i } ^ { m }

Muti-Layer Coupled Attentions

成對的關係只能捕獲 aspect 和 opinion term 之間的直接關係,捕獲不到間接關係(上文中有提及),所以文中提出了一個 Muti-Layer Coupled Attentions。

圖4 Attention prototype

如圖4 所示,t+1 層 attention 是從 t 層 attention 獲得的,公式如下:

u _ { t + 1 } ^ { m } = 	anh left( V ^ { m } u _ { t } ^ { m } 
ight) + o _ { t } ^ { m }

V^m in mathbb { R } ^ { d 	imes d } , o_t^m 計算如下:

o _ { t } ^ { m } = sum _ { i = 1 } ^ { n } alpha _ { t i } ^ { m } h _ { i } \ alpha _ { t i } ^ { m } = exp left( e _ { t i } ^ { m } 
ight) / sum _ { j } ^ { n } exp left( e _ { t j } ^ { m } 
ight) \

最後,我們可以接入全連接層輸出最終結果:

l _ { i } ^ { m } = operatorname { softmax } left( C ^ { m } sum _ { t = 1 } ^ { T } r _ { t i } ^ { m } 
ight)

可視化結果


推薦閱讀:
相关文章