【NLP】基于神经网络PCNN(Piece-Wise-CNN)的关系抽取模型
背景
關系抽取是信息抽取的基本任務之一,對于知識庫的構建以及文本的理解十分重要,在自然語言處理的一些任務,如問答,文本理解等得到了廣泛的應用。
這里介紹的關系抽取主要指的是實體之間的關系抽取,實體是之前NER任務中介紹的概念。實體之間可能存在各式各樣的關系,關系抽取就是通過自動識別實體之間具有的某種語義關系。有的實體之間可能有多種關系,例如“徐崢自導自演了《人在囧途》”,那么徐崢 和 《人在囧途》 之間的關系就存在“導演”與“參演”兩種關系,。這里介紹的是兩個實體之間的關系也稱為二元關系抽取( Binary Relation Extraction,BiRE)是比較經典的關系抽取任務,我們也稱為簡單關系抽取。近些年隨著關系抽取場景的變化,慢慢衍生出需要復雜關系抽取(Complex Relation Extration,CoRE),如:多個實體之間的關系抽取,即多元關系抽取,文檔關系抽取,多模態關系抽取,嵌套關系抽取等等。
目前的在深度學習領域關系抽取方法主要分為三大類:基于監督學習的BiRE(Supervised BiRE)、基于半監督學習的(Semi-supervised BiRE)以及基于遠程監督的BiRE(Distant Supervised BiRE)。畢竟在工程中,標注數據并不是那么多,成本高。對于有監督的關系抽取任務,通常也將其分為兩大類
Pipline: 將實體抽取與關系抽取分為兩個獨立的過程,關系抽取依賴實體抽取的結果,容易造成誤差累積;Joint Model: 實體抽取與關系抽取同時進行,通常用模型參數共享的方法來實現。
關系抽取還可以按照業務領域分為:限定領域和開放領域兩類。限定領域關系抽取,指在一個或多個限定的領域內對實體間的語義關系進行抽取。一般來說,在限定領域下,關系都是預先定義好的有限個類別,該任務可以采用基于監督學習的方法來處理,也就是針對每個關系類別標注足夠多的樣本,然后使用多分類模型來訓練關系抽取模型;開放領域關系抽取,該任務不限定關系的類別,也就是在抽取關系之前不知道會有什么樣的關系被抽取到,依據模型對自然語言句子理解的結果從中開放式的抽取實體三元組。
傳統的解決方案可以通過書寫規則(模板)的方式確保關系抽取的準確性,但是召回效果并不理想,并且還需要人工去總結歸納。
當然關系抽取也有很多難點,如:
下面我就從經典深度學習關系抽取模型開始介紹,Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks(2015年),該論文實在 ACL 2014的中《Relation Classification via Convolutional Deep Neural Network》改進,就是我們所說的PCNN。這是一個pipline形式的模型。
論文閱讀
Distant Supervised Learning 遠程監督學習
2010年提出Distant Supervision可以自動標注訓練樣本,Distant supervision for relation extraction without labeled data。原理很簡單,利用知識圖譜中的兩個entity以及對應的某個relation,在corpus中進行回標,如果某個句子中同時包含了兩個entity,那么就假定這個句子包含了上述的relation。這樣就可以獲得大量的標注數據。當然缺陷就是假設太強,會引入了很多噪音數據, 因為包含兩個entity的句子不一定可以刻畫對應的relation。
正文概覽
論文要解決的兩個問題:
- Distant supervised 會產生有大量噪音或者被錯誤標注的數據,直接使用supervised的方法進行關系分類,效果很差。
- 傳統的方法大都是基于詞法、句法特征來處理, 無法自動提取特征。而且句法樹等特征在句子長度變長,正確率會顯著下降。
針對第一個問題,文中是這么說的:
To address the first problem, distant supervised relation extraction istreated as a multi-instance problem similar to pre-vious studies 。In multi-instance problem, the training set consists of many bags,and each contains many instances. The labels of the bags are known; however, the labels of the in-stances in the bags are unknown. We design an objective function at the bag level. In the learning process, the uncertainty of instance labels can be taken into account; this alleviates the wrong label problem。
概括起來就是,對樣本使用Multi-Instance Learning(MIL),構建了一個bag級別的目標函數。如何理解這個MIL呢,可以參考:
設想有若干個人,每個人手上有一個鑰匙串(bag),串有若干個鑰匙(instance)。已知某個鑰匙串能否打開特定的一扇門(training set)。我們的任務是要學習到哪一串鑰匙串能打開這扇門,以及哪個鑰匙能打開這扇門。
針對第二個問題,概括來說,就是在Zeng 2014 的CNN基礎上修改了Pooling的方式,調整了特征提取方案,根據實體位置將一個sentence分成三段,每段單獨進行max pooling以進行特征提取。
具體模型
模型主要分為四個模塊:Vector Representation,Convolution,Piecewise Max PoolingandSoftmax Output,如下圖:
Vector Representation
NLP中文本常規操作,將文本轉成低緯度的向量。詞語使用的是預訓練的詞向量(Word Embeddings),此外還未對應的詞語添加了position feature(PF),也就是位置向量(Position Embeddings)。這個PF的構建還是比較有意思的,位置的設定取與關系詞的相對距離,如下圖:Kojo Annan 相對于關系吃son,左邊第三個,以此類推,Kofi Annan則是在關系詞son右邊第二個開始。
假設詞向量的維度為dwd_wdw?,位置信號的維度為dpd_pdp?,拼接后的向量維度d=dw+dp×2d=d_w+d_p \times 2d=dw?+dp?×2。
Convolution
卷積計算是一個比較經典的操作了,也比較容易理解。為了提高捕捉特征的能力,可以在卷積操作中增加多個卷積核或者稱為filter的家伙。想諒解相關的計算公式可參見原文。
Piecewise Max Pooling
分段池化應該屬于論文中的一個亮點。就是把每個卷積核得到向量cic_ici?按照兩個實體的位置將向量劃分三個部分,然后使用最大池化的方式取出每個部分的最大值,相比于傳統的全局max pooling 每個卷積核只能得到一個值,這樣可以更加充分有效的得到句子特征信息。每個通道經過分段最大池化后,再拼接成一個向量,最后再與其他通道的向量拼接起來,再經過一個非線性層。
Softmax Output
深度學習分類常規操作層,添加softmax函數,對各個類別進行打分輸出。
Multi-instance Learning
多實例學習。在訓練的過程中需要設計學習的目標函數,也就是我們常說的損失函數的構造。模型輸入是一個bag。假設有個TTT個bag {M1,?,MT}\{M_1,\cdots, M_T\}{M1?,?,MT?},第iii個bag有qiq_iqi?個實例Mi={mi1,?,miqi}M_i=\{ m^1_i, \cdots, m_i^{q_i}\}Mi?={mi1?,?,miqi??},即有qiq_iqi?個句子。下面我們看看如何構造這個目標函數。
一個bag中所有的實例都認為是獨立的。包含兩個同樣實體的實例就是一個bag,按照遠程監督的情況樣本處理的方式,認為一個bag有一個relation標簽。
對于一個實例mijm_i^jmij?經過模型后輸出的結果為ooo。這個結果的維度是與關系類別想對應的,包含oro_ror?表示對第rrr個類別的打分,文章這個打分是未經過softmax處理的。經過softmax處理后的打分如下:
p(r∣mij;θ)=eor∑k=1n1eokp\left(r \mid m_{i}^{j} ; \theta\right)=\frac{e^{o_{r}}}{\sum_{k=1}^{n_{1}} e^{o_{k}}} p(r∣mij?;θ)=∑k=1n1??eok?eor??
多實例學習的目的是區分bag而不是實例,于是需要定義bag級別的目標函數。對于訓練集(Mi,yi)(M_i, y_i)(Mi?,yi?)來說,目標函數在bag級使用的是交叉熵損失函數:
J(θ)=∑i=1Tlog?p(yi∣mij;θ)J(\theta)=\sum_{i=1}^{T} \log p\left(y_{i} \mid m_{i}^{j} ; \theta\right) J(θ)=i=1∑T?logp(yi?∣mij?;θ)
其中,TTT表示訓練集(bag)數目,θ\thetaθ表示模型??雌饋磉@個和普通的分類損失函數沒有什么不同,需要注意的是上式中的jjj是有限制的,如下:
j?=arg?max?jp(yi∣mij;θ)1≤j≤qij^{*}=\arg \max _{j} p\left(y_{i} \mid m_{i}^{j} ; \theta\right) \quad 1 \leq j \leq q_{i} j?=argjmax?p(yi?∣mij?;θ)1≤j≤qi?
從bag中選取標注結果打分最高的實例進行誤差反向傳播的計算。這里也從側面說明了,默認每一個bag中必有一個實例的標注是正確的,即所謂的at least one假設。
到這里,整個模型已經介紹完畢了。
論文結論
首先把PCNNs結合多實例學習的遠程監督模型(PCNNs+MIL),與人工構造特征的遠程監督算法(記為Mintz)和多實例學習的算法(記為MultiR和MIML)進行比較。
上圖中,根據縱橫坐標的意義,值在坐標系的右上角效果越好。從實驗結果中可以看到,無論是查準率還是查全率,PCNNs+MIL模型都顯著優于其他模型,這說明用卷積神經網絡作為自動特征抽取器,可以有效降低人工構造特征和NLP工具提取特征帶來的誤差。即在問題二上有一定的改善。
將分段最大池化和普通的最大池化的效果進行對比(PCNNs VS CNNs),將結合多實例學習的卷積網絡與單純的卷積網絡進行對比(PCNNs+MIL VS PCNNs)。
從結果可以看出,分段最大池化比普通的最大池化效果更好,說明分段最大池化可以抽取更豐富的結構特征。把多實例學習加入到卷積網絡中,效果也有一定的提升,表明多實例學習可以緩解樣本標注錯誤的問題。這說明針對問題1和問題2都已一定的改善。
總結
總得來說,在限定域的pipline形式的關系抽取中,使用分段的最大池化能夠減少人為特征提取的操作,再引入遠程監督的內容后,使用多實例學習的方式在一定程度上也能夠減少遠程監督引入的錯誤,使得關系抽取的整體效果達到當時的sota水平。
當然也存在不足之處,多實例學習僅從某個實體對句子中挑選最可能的句子進行反向傳播計算,這也必然造成信息的大量損失。
總結
以上是生活随笔為你收集整理的【NLP】基于神经网络PCNN(Piece-Wise-CNN)的关系抽取模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LBP特征算子原理过程
- 下一篇: Modbus的CRC校验算法