自然語言處理:關係抽取之分段卷積神經網絡(PCNN)

Tensorflow2.2實現,見github倉庫


遠程監督

關係抽取訓練集標註成本高,一般使用遠程監督方法(半監督)自動標註數據。遠程監督假設,若知識庫中兩個實體具有某種關係,則任何包含這兩個實體的句子都具有這種關係。

下圖爲使用遠程監督自動標註數據的實例,其中第一句標註正確,而第二句標註錯誤。

遠程監督是快速獲取關係抽取訓練集的有效方法,但其有 兩個缺點

  • 遠程監督假設過於強烈,易標註錯誤,從而引入噪聲數據,多數遠程監督方法的研究聚焦於降噪
  • 遠程監督多用於使用精細特徵(句法結構等)的監督模型,這些特徵一般使用已有的NLP工具提取,不可避免會引入誤差,使用NLP工具提取的傳統特徵,會造成誤差的傳播或積累,而且,遠程監督語料庫多來源於網絡的非正式文本,句子長度不一,隨着句子長度的增加,傳統特徵提取的正確性會急劇下降;

PCNN關係抽取

Piecewise Convolutional Neural Networks (PCNNs) with multi-instance learning 解決以上兩個難題:

爲解決第一個問題,將遠程監督關係抽取視爲多實例問題。多實例問題中,訓練集由很多包組成,每個包多個實例,每個包的標籤已知,而包中實例的標籤未知。設計目標函數只考慮每一個包的預測標籤,PCNN僅選取每包中預測類別最接近真實類別的一個實例作爲包的輸出,一定程度上可降低包中一些實例標註錯誤的影響。

爲解決第二個問題,使用CNN網絡自動提取特徵,不使用複雜的NLP預處理。對卷積層輸出使用單一最大池化,能一定程度提取文本特徵表達,但難以捕獲兩個實體間的結構信息。PCNN基於兩實體位置信息將卷積層輸出劃分爲3個部分,基於此,PCNN可能表現出更好的性能。

PCNN與Text CNN的主要區別在於輸入層引入position embedding、池化層分爲三段!


PCNN方法論

如圖3所示,PCNNS主要由四部分組成:Vector Representation, Convolution, Piecewise Max Pooling and Softmax Output.

向量表達

句子的向量表達爲兩部分的拼接結果:詞嵌入和位置嵌入。

  • 使用skip-gram方法預訓練詞向量;
  • 使用Position Embeddings表示句子單詞到兩個實體的相對距離,如下圖,單詞son到實體Kojo Annan和Kofi Annan的相對距離分別爲3和-2。

隨機初始化兩個位置嵌入矩陣,圖3中詞嵌入的維度是4,位置嵌入的維度是1。結合詞嵌入和位置嵌入,句向量表示爲
S=Rs×d S=\R^{s\times d}

其中,ss是句子長度(單詞數),d=dw+dp2d=d_w+d_p*2.

卷積層

對於長度爲ss的句子,首尾填充w1w-1長度,則卷積核w\boldsymbol w的輸出
cRs+w1,cj=wqjw+1:j,1js+w1 \boldsymbol c\in\R^{s+w-1},\quad c_j=\boldsymbol w\boldsymbol q_{j-w+1:j},\quad 1\leq j\leq s+w-1
若使用nn個卷積核,則卷積操作的輸出爲
C={c1,,cn},cij=wiqjw+1;j,1in C=\{\boldsymbol c_1,\cdots,\boldsymbol c_n\},\quad c_{ij}=\boldsymbol w_i\boldsymbol q_{j-w+1;j}, \quad 1\leq i\leq n

圖3中,卷積核的數目爲3。

分段最大池化層

卷積層輸出維度爲Rn×(s+w1)\R^{n\times (s+w-1)},輸出維度依賴於句子的長度。爲便於應用於下游任務,卷積層的輸出必須獨立於序列長度,一般採用池化操作,主要思想是僅保留每個feature map中的主要的特徵。

使用單一最大池化無法捕獲兩個實體的結構信息特徵,PCNN使用分段最大池化代替單一最大池化,如圖3所示,每個卷積核的輸出ci\boldsymbol c_i被兩個實體劃分爲3部分,分段最大池化輸出長度爲3的向量
pi={pi1,pi2,pi3}, pij=max(cij)1in, 1j3 \boldsymbol p_i=\{p_{i1},p_{i2},p_{i3}\},\ p_{ij}=\max(c_{ij})\quad 1\leq i\leq n,\ 1\leq j\leq 3
拼接所有卷積核分段池化層輸出爲p1:n\boldsymbol p_{1:n},經非線性函數輸出爲(維度與句子長度無關)
g=tanh(p1:n),gR3n \boldsymbol g=\tanh(\boldsymbol p_{1:n}), \quad\boldsymbol g\in\R^{3n}

Softmax層

首先將輸出轉化爲類別分數(softmax轉換爲類別概率)
o=W1g+b,W1Rn1×3n, oRn1 \boldsymbol o=W_1\boldsymbol g+b,\quad W_1\in\R^{n_1\times 3n},\ \boldsymbol o\in\R^{n_1}

多實例學習

爲降低數據標註錯誤的影響,PCNN使用多實例(半監督)學習。

考慮包含TT個包的訓練集{M1,M2,,MT}\{M_1,M_2,\cdots,M_T\},其中Mi={mi1,mi2,,miqi}M_i=\{m_i^1,m_i^2,\cdots,m_i^{q_i}\},包中qiq_i個不同實例互爲獨立。對於實例mijm_i^j,神經網絡Θ\Theta輸出向量o\boldsymbol o,其中第rr個關係對應的概率爲
p(rmij;θ)=eork=1n1eok p(r|m_i^j;\theta)=\frac{e^{o_r}}{\sum_{k=1}^{n_1}e^{o^k}}

將目標函數定義爲極小化每個包的損失,從而降低包中部分數據標註錯誤的影響。每個包的標籤已知,包中實例標籤未知,訓練過程中將包中實例在包標籤上的最大概率作爲預測輸出,則目標函數定義爲
J(θ)=i=1Tlogp(yimij;θ),j=argmaxjp(yimij;θ) J(\theta)=\sum_{i=1}^T\log p(y_i|m_i^j;\theta),\quad j^*=\arg\max_jp(y_i|m_i^j;\theta)


Reference

1. Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks
2. EMNLP 2015 | PCNN實現遠程監督在關係提取中的應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章