关系抽取之分段卷积神经网络(PCNN)
文章目錄
- 遠(yuǎn)程監(jiān)督
- PCNN關(guān)系抽取
- PCNN方法論
- 向量表達(dá)
- 卷積層
- 分段最大池化層
- Softmax層
- 多實(shí)例學(xué)習(xí)
- Reference
Tensorflow2.2實(shí)現(xiàn),見github倉(cāng)庫(kù)。
遠(yuǎn)程監(jiān)督
關(guān)系抽取訓(xùn)練集標(biāo)注成本高,一般使用遠(yuǎn)程監(jiān)督方法(半監(jiān)督)自動(dòng)標(biāo)注數(shù)據(jù)。遠(yuǎn)程監(jiān)督假設(shè),若知識(shí)庫(kù)中兩個(gè)實(shí)體具有某種關(guān)系,則任何包含這兩個(gè)實(shí)體的句子都具有這種關(guān)系。
下圖為使用遠(yuǎn)程監(jiān)督自動(dòng)標(biāo)注數(shù)據(jù)的實(shí)例,其中第一句標(biāo)注正確,而第二句標(biāo)注錯(cuò)誤。
遠(yuǎn)程監(jiān)督是快速獲取關(guān)系抽取訓(xùn)練集的有效方法,但其有 兩個(gè)缺點(diǎn):
- 遠(yuǎn)程監(jiān)督假設(shè)過于強(qiáng)烈,易標(biāo)注錯(cuò)誤,從而引入噪聲數(shù)據(jù),多數(shù)遠(yuǎn)程監(jiān)督方法的研究聚焦于降噪;
- 遠(yuǎn)程監(jiān)督多用于使用精細(xì)特征(句法結(jié)構(gòu)等)的監(jiān)督模型,這些特征一般使用已有的NLP工具提取,不可避免會(huì)引入誤差,使用NLP工具提取的傳統(tǒng)特征,會(huì)造成誤差的傳播或積累,而且,遠(yuǎn)程監(jiān)督語(yǔ)料庫(kù)多來(lái)源于網(wǎng)絡(luò)的非正式文本,句子長(zhǎng)度不一,隨著句子長(zhǎng)度的增加,傳統(tǒng)特征提取的正確性會(huì)急劇下降;
PCNN關(guān)系抽取
Piecewise Convolutional Neural Networks (PCNNs) with multi-instance learning 解決以上兩個(gè)難題:
為解決第一個(gè)問題,將遠(yuǎn)程監(jiān)督關(guān)系抽取視為多實(shí)例問題。多實(shí)例問題中,訓(xùn)練集由很多包組成,每個(gè)包多個(gè)實(shí)例,每個(gè)包的標(biāo)簽已知,而包中實(shí)例的標(biāo)簽未知。設(shè)計(jì)目標(biāo)函數(shù)只考慮每一個(gè)包的預(yù)測(cè)標(biāo)簽,PCNN僅選取每包中預(yù)測(cè)類別最接近真實(shí)類別的一個(gè)實(shí)例作為包的輸出,一定程度上可降低包中一些實(shí)例標(biāo)注錯(cuò)誤的影響。
為解決第二個(gè)問題,使用CNN網(wǎng)絡(luò)自動(dòng)提取特征,不使用復(fù)雜的NLP預(yù)處理。對(duì)卷積層輸出使用單一最大池化,能一定程度提取文本特征表達(dá),但難以捕獲兩個(gè)實(shí)體間的結(jié)構(gòu)信息。PCNN基于兩實(shí)體位置信息將卷積層輸出劃分為3個(gè)部分,基于此,PCNN可能表現(xiàn)出更好的性能。
PCNN與Text CNN的主要區(qū)別在于輸入層引入position embedding、池化層分為三段!
PCNN方法論
如圖3所示,PCNNS主要由四部分組成:Vector Representation, Convolution, Piecewise Max Pooling and Softmax Output.
向量表達(dá)
句子的向量表達(dá)為兩部分的拼接結(jié)果:詞嵌入和位置嵌入。
- 使用skip-gram方法預(yù)訓(xùn)練詞向量;
- 使用Position Embeddings表示句子單詞到兩個(gè)實(shí)體的相對(duì)距離,如下圖,單詞son到實(shí)體Kojo Annan和Kofi Annan的相對(duì)距離分別為3和-2。
隨機(jī)初始化兩個(gè)位置嵌入矩陣,圖3中詞嵌入的維度是4,位置嵌入的維度是1。結(jié)合詞嵌入和位置嵌入,句向量表示為
S=Rs×dS=\R^{s\times d} S=Rs×d
其中,sss是句子長(zhǎng)度(單詞數(shù)),d=dw+dp?2d=d_w+d_p*2d=dw?+dp??2.
卷積層
對(duì)于長(zhǎng)度為sss的句子,首尾填充w?1w-1w?1長(zhǎng)度,則卷積核w\boldsymbol ww的輸出
c∈Rs+w?1,cj=wqj?w+1:j,1≤j≤s+w?1\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 c∈Rs+w?1,cj?=wqj?w+1:j?,1≤j≤s+w?1
若使用nnn個(gè)卷積核,則卷積操作的輸出為
C={c1,?,cn},cij=wiqj?w+1;j,1≤i≤nC=\{\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 C={c1?,?,cn?},cij?=wi?qj?w+1;j?,1≤i≤n
圖3中,卷積核的數(shù)目為3。
分段最大池化層
卷積層輸出維度為Rn×(s+w?1)\R^{n\times (s+w-1)}Rn×(s+w?1),輸出維度依賴于句子的長(zhǎng)度。為便于應(yīng)用于下游任務(wù),卷積層的輸出必須獨(dú)立于序列長(zhǎng)度,一般采用池化操作,主要思想是僅保留每個(gè)feature map中的主要的特征。
使用單一最大池化無(wú)法捕獲兩個(gè)實(shí)體的結(jié)構(gòu)信息特征,PCNN使用分段最大池化代替單一最大池化,如圖3所示,每個(gè)卷積核的輸出ci\boldsymbol c_ici?被兩個(gè)實(shí)體劃分為3部分,分段最大池化輸出長(zhǎng)度為3的向量:
pi={pi1,pi2,pi3},pij=max?(cij)1≤i≤n,1≤j≤3\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 pi?={pi1?,pi2?,pi3?},?pij?=max(cij?)1≤i≤n,?1≤j≤3
拼接所有卷積核分段池化層輸出為p1:n\boldsymbol p_{1:n}p1:n?,經(jīng)非線性函數(shù)輸出為(維度與句子長(zhǎng)度無(wú)關(guān))
g=tanh?(p1:n),g∈R3n\boldsymbol g=\tanh(\boldsymbol p_{1:n}), \quad\boldsymbol g\in\R^{3n} g=tanh(p1:n?),g∈R3n
Softmax層
首先將輸出轉(zhuǎn)化為類別分?jǐn)?shù)(softmax轉(zhuǎn)換為類別概率)
o=W1g+b,W1∈Rn1×3n,o∈Rn1\boldsymbol o=W_1\boldsymbol g+b,\quad W_1\in\R^{n_1\times 3n},\ \boldsymbol o\in\R^{n_1} o=W1?g+b,W1?∈Rn1?×3n,?o∈Rn1?
多實(shí)例學(xué)習(xí)
為降低數(shù)據(jù)標(biāo)注錯(cuò)誤的影響,PCNN使用多實(shí)例(半監(jiān)督)學(xué)習(xí)。
考慮包含TTT個(gè)包的訓(xùn)練集{M1,M2,?,MT}\{M_1,M_2,\cdots,M_T\}{M1?,M2?,?,MT?},其中Mi={mi1,mi2,?,miqi}M_i=\{m_i^1,m_i^2,\cdots,m_i^{q_i}\}Mi?={mi1?,mi2?,?,miqi??},包中qiq_iqi?個(gè)不同實(shí)例互為獨(dú)立。對(duì)于實(shí)例mijm_i^jmij?,神經(jīng)網(wǎng)絡(luò)Θ\ThetaΘ輸出向量o\boldsymbol oo,其中第rrr個(gè)關(guān)系對(duì)應(yīng)的概率為
p(r∣mij;θ)=eor∑k=1n1eokp(r|m_i^j;\theta)=\frac{e^{o_r}}{\sum_{k=1}^{n_1}e^{o^k}} p(r∣mij?;θ)=∑k=1n1??eokeor??
將目標(biāo)函數(shù)定義為極小化每個(gè)包的損失,從而降低包中部分?jǐn)?shù)據(jù)標(biāo)注錯(cuò)誤的影響。每個(gè)包的標(biāo)簽已知,包中實(shí)例標(biāo)簽未知,訓(xùn)練過程中將包中實(shí)例在包標(biāo)簽上的最大概率作為預(yù)測(cè)輸出,則目標(biāo)函數(shù)定義為
J(θ)=∑i=1Tlog?p(yi∣mij;θ),j?=arg?max?jp(yi∣mij;θ)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) J(θ)=i=1∑T?logp(yi?∣mij?;θ),j?=argjmax?p(yi?∣mij?;θ)
Reference
1. Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks
2. EMNLP 2015 | PCNN實(shí)現(xiàn)遠(yuǎn)程監(jiān)督在關(guān)系提取中的應(yīng)用
總結(jié)
以上是生活随笔為你收集整理的关系抽取之分段卷积神经网络(PCNN)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PCNN探究实验
- 下一篇: 谷粒商城--分布式基础篇1