1、 關係抽取綜述 算法
2、 遠程監督關係抽取算法的濫觴 網絡
3、 多實例學習和分段最大池化 app
4、 句子級別的注意力機制 機器學習
信息抽取是天然語言處理中很是重要的一塊內容,包括實體抽取(命名實體識別,Named Entity Recognition)、關係抽取(Relation Extraction)和事件抽取(Event Extraction)。函數
此次介紹的關係抽取屬於天然語言理解(NLU)的範疇,也是構建和擴展知識圖譜的一種方法。工具
關係抽取理解起來也比較簡單,好比下面圖片中的第一句話:學習
He was in Tennessee.測試
首先作命名實體識別,識別出He(PER)和Tennessee(GPE)兩個實體,而後找出兩個實體之間的關係爲:Physical-Located,最後能夠把抽取出來的關係表示爲三元組的形式:(HePER, Physical-Located, TennesseeGPE),或者Physical-Located(HePER, TennesseeGPE)。編碼
可見關係抽取包含命名實體識別在內,在技術實現上更復雜。spa
關係抽取從流程上,能夠分爲流水線式抽取(Pipline)和聯合抽取(Joint Extraction)兩種,流水線式抽取就是把關係抽取的任務分爲兩個步驟:首先作實體識別,再抽取出兩個實體的關係;而聯合抽取的方式就是一步到位,同時作好了實體和關係的抽取。流水線式抽取會致使偏差在各流程中傳遞和累加,而聯合抽取的方式則實現難度更大。
關係抽取從實現的算法來看,主要分爲四種:
一、手寫規則(Hand-Written Patterns);
二、監督學習算法(Supervised Machine Learning);
三、半監督學習算法(Semi-Supervised Learning,好比Bootstrapping和Distant Supervision);
四、無監督算法。
本文的主人公是遠程監督算法(Distant Supervision),這是一種半監督學習算法。其餘的方法大體瞭解一下,有助於理解,爲何相對而言,遠程監督作關係抽取是一種比較可行的方法。
(一)手寫規則模板的方法
一、例子:
有種關係叫作上下位關係,好比hyponym(France; European countries)。從下面兩個句子中均可以抽取出這種關係:
European countries, especially France, England, and Spain...
European countries, such as France, England, and Spain...
兩個實體之間的especially和such as能夠看作這種關係的特徵。觀察更多表達這種關係的句子,咱們就能夠構造以下的規則模板,來抽取構成上下位關係的實體,從而發現新的三元組。
二、優勢和缺點:
優勢是抽取的三元組查準率(Precision)高,尤爲適合作特定領域的關係抽取;缺點是查全率(Recall)很低,也就是說查得準,可是查不全,並且針對每一種關係都須要手寫大量的規則,比較慘。
(二)監督學習的方法
監督學習的方法也就是給訓練語料中的實體和關係打上標籤,構造訓練集和測試集,再用傳統機器學習的算法(LR,SVM和隨機森林等)或神經網絡訓練分類器。
一、機器學習和深度學習方法
對於傳統的機器學習方法,最重要的步驟是構造特徵。可使用的特徵有:
(1)詞特徵:實體1與實體2之間的詞、先後的詞,詞向量能夠用Bag-of-Words結合Bigrams等。
(2)實體標籤特徵:實體的標籤。
(3)依存句法特徵:分析句子的依存句法結構,構造特徵。這個不懂怎麼弄。
人工構造特徵很是麻煩,並且某些特徵好比依存句法分析,依賴於NLP工具庫,好比HanLP,工具帶來的偏差不可避免會影響特徵的準確性。
用端到端的深度學習方法就沒這麼費勁了。好比使用CNN或BI-LSTM做爲句子編碼器,把一個句子的詞嵌入(Word Embedding)做爲輸入,用CNN或LSTM作特徵的抽取器,最後通過softmax層獲得N種關係的機率。這樣省略了特徵構造這一步,天然不會在特徵構造這裏引入偏差。
二、監督學習的優缺點
監督學習的優勢是,若是標註好的訓練語料足夠大,那麼分類器的效果是比較好的,可問題是標註的成本太大了。
(三)半監督
鑑於監督學習的成本太大,因此用半監督學習作關係抽取是一個很值得研究的方向。
半監督學習的算法主要有兩種:Bootstrapping和Distant Supervision。Bootstrapping不須要標註好實體和關係的句子做爲訓練集,不用訓練分類器;而Distant Supervision能夠看作是Bootstrapping和Supervise Learning的結合,須要訓練分類器。
這裏介紹Bootstrapping的思想,Distant Supervision做爲主人公,在後面的部分詳細介紹。
一、例子
Bootstrapping算法的輸入是擁有某種關係的少許實體對,做爲種子,輸出是更多擁有這種關係的實體對。敲黑板!不是找到更多的關係,而是發現擁有某種關係的更多新實體對。
怎麼作的呢?舉個栗子,「創始人」是一種關係,若是咱們已經有了一個小型知識圖譜,裏面有3個表達這種關係的實體對:(嚴定貴,你我貸),(馬雲,阿里巴巴),(雷軍,小米)。
第一步:在一個大型的語料集中去找包含某一實體對(3箇中的任意1個)的句子,所有挑出來。好比:嚴定貴於2011年創立了你我貸;嚴定貴是你我貸的創始人;在嚴定貴董事長的帶領下,嘉銀金科赴美上市成功。
第二步:概括實體對的先後或中間的詞語,構造特徵模板。好比:A 創立了 B;A 是 B 的創始人;A 的帶領下,B。
第三步:用特徵模板去語料集中尋找更多的實體對,而後給全部找到的實體對打分排序,高於閾值的實體對就加入到知識圖譜中,擴展示有的實體對。
第四步:回到第一步,進行迭代,獲得更多模板,發現更多擁有該關係的實體對。
細心的小夥伴會發現,不是全部包含「嚴定貴」和「你我貸」的句子都表達了「創始人」這種關係啊,好比:「在嚴定貴董事長的帶領下,嘉銀金科赴美上市成功」——這句話就不是表達「創始人」這個關係的。某個實體對之間可能有不少種關係,哪能一口咬定就是知識圖譜中已有的這種關係呢?這不是會獲得錯誤的模板,而後在不斷的迭代中放大錯誤嗎?
沒錯,這個問題叫作語義漂移(Semantic Draft),通常有兩種解決辦法:
一是人工校驗,在每一輪迭代中觀察挑出來的句子,把不包含這種關係的句子剔除掉。
二是Bootstrapping算法自己有給新發現的模板和實體對打分,而後設定閾值,篩選出高質量的模板和實體對。具體的公式能夠看《Speech and Language Processing》(第3版)第17章。
二、Bootstrapping的優缺點
Bootstrapping的缺點一是上面提到的語義漂移問題,二是查準率會不斷下降並且查全率過低,由於這是一種迭代算法,每次迭代準確率都不可避免會下降,80%---->60%---->40%---->20%...。因此最後發現的新實體對,還須要人工校驗。
(四)無監督
半監督的辦法效果已經勉強,無監督的效果就更差強人意了,這裏就不介紹了。
第一篇要介紹的論文是《Distant supervision for relation extraction without labeled data》,斯坦福大學出品,把遠程監督的方法用於關係抽取。研究關係抽取的遠程監督算法,不得不提這篇論文。
(一)遠程監督的思想
這篇論文首先回顧了關係抽取的監督學習、無監督學習和Bootstrapping算法的優缺點,進而結合監督學習和Bootstrapping的優勢,提出了用遠程監督作關係抽取的算法。
遠程監督算法有一個很是重要的假設:對於一個已有的知識圖譜(論文用的Freebase)中的一個三元組(由一對實體和一個關係構成),假設外部文檔庫(論文用的Wikipedia)中任何包含這對實體的句子,在必定程度上都反映了這種關係。基於這個假設,遠程監督算法能夠基於一個標註好的小型知識圖譜,給外部文檔庫中的句子標註關係標籤,至關於作了樣本的自動標註,所以是一種半監督的算法。
具體來講,在訓練階段,用命名實體識別工具,把訓練語料庫中句子的實體識別出來。若是多個句子包含了兩個特定實體,並且這兩個實體是Freebase中的實體對(對應有一種關係),那麼基於遠程監督的假設,認爲這些句子都表達了這種關係。因而從這幾個句子中提取文本特徵,拼接成一個向量,做爲這種關係的一個樣本的特徵向量,用於訓練分類器。
論文中把Freebase的數據進行了處理,篩選出了94萬個實體、102種關係和180萬實體對。下面是實體對數量最多的23種關係。
關係種類至關於分類的類別,那麼有102類;每種關係對應的全部實體對就是樣本;從Wikipedia中全部包含某實體對的句子中抽取特徵,拼接成這個樣本的特徵向量。最後訓練LR多分類器,用One-vs-Rest,而不是softmax,也就是訓練102個LR二分類器——把某種關係視爲正類,把其餘全部的關係視爲負類。
由於遠程監督算法可使用大量無標籤的數據,Freebase中的每一對實體在文檔庫中可能出如今多個句子中。從多個句子中抽出特徵進行拼接,做爲某個樣本(實體對)的特徵向量,有兩個好處:
一是單獨的某個句子可能僅僅包含了這個實體對,並無表達Freebase中的關係,那麼綜合多個句子的信息,就能夠消除噪音數據的影響。
二是能夠從海量無標籤的數據中獲取更豐富的信息,提升分類器的準確率。
可是問題也來了,這個假設一聽就不靠譜!哪能說一個實體對在Freebase中,而後只要句子中出現了這個實體對,就假定關係爲Freebase中的這種關係呢?一個實體對之間的關係可能有不少啊,好比馬雲和阿里巴巴的關係,就有「董事長」、「工做」等關係,哪能判定就是「創始人」的關係呢?
這確實是個大問題,在本篇論文中也沒有提出解決辦法。
(二)分類器的特徵
論文中使用了三種特徵:詞法特徵(Lexical features)、句法特徵(Syntactic features)和實體標籤特徵(Named entity tag features)。
一、詞法特徵
詞法特徵描述的是實體對中間或兩端的特定詞彙相關的信息。好比有:
而後把這些特徵表示成向量再拼接起來。好比用詞袋模型,把詞語和詞性都表示爲向量。
二、句法特徵
論文中的句法特徵就是對句子進行依存句法分析(分析詞彙間的依存關係,如並列、從屬、遞進等),獲得一條依存句法路徑,再把依存句法路徑中的各成分做爲向量,拼接起來。
以下爲一個句子的依存句法路徑,我不太懂,很少說。
三、命名實體標籤特徵
論文中作命名實體識別用的是斯坦福的NER工具包。把兩個實體的標籤也做爲特徵,拼接起來。
總結一下,論文中使用的特徵不是單個特徵,而是多種特徵拼接起來的。有多個句子包含某實體對,能夠從每一個句子中抽取出詞法特徵、句法特徵和實體特徵,拼接起來,獲得一個句子的特徵向量,最後把多個句子的特徵向量再拼接起來,獲得某實體對(一個樣本)的特徵向量。
不過做者爲了比較詞法特徵和句法特徵的有效性,把特徵向量分爲了3種狀況:只使用詞法特徵,只使用句法特徵,詞法特徵與句法特徵拼接。
(三)實驗細節
一、數據集說明
知識圖譜或者說標註數據爲Freebase,非結構化文本庫則是Wikipedia中的文章。
論文中把Freebase的三元組進行了篩選,篩選出了94萬個實體、102種關係和相應的180萬實體對。用留出法進行自動模型評估時,一半的實體對用於訓練,一半的實體對用於模型評估。
一樣對Wikipedia中的文章進行篩選,獲得了180萬篇文章,平均每篇文章包含約14.3個句子。從中選擇80萬條句子做爲訓練集,40萬條做爲測試集。
二、構造負樣本
因爲對於每種關係,都要訓練一個LR二分類器,因此須要構造負樣本。這裏的負樣本不是其餘101種關係的訓練樣本,而是這樣的句子:從訓練集中的句子中抽取實體對,若是實體對不在Freebase中,那麼就隨機挑選這樣的句子就做爲負樣本。
三、訓練過程
LR分類器以實體對的特徵向量爲輸入,輸出關係名和機率值。每種關係訓練一個二分類器,一共訓練102個分類器。
訓練好分類器後,對測試集中的全部實體對的關係進行預測,並獲得機率值。而後對全部實體對按機率值進行降序排列,從中挑選出機率最高的N個實體對(機率值大於0.5),做爲發現的新實體對。
四、測試方法和結論
測試的指標採用查準率,方法採用了留出法(自動評估)和人工評估兩種方法。留出法的作法是,把Freebase中的180萬實體對的一半做爲測試集(另外一半用於訓練)。新發現的N個實體對中,若是有n個實體對在Freebase的測試集中,那麼查準率爲n/N。人工評估則採用多數投票的方法。
模型評估的結果代表,遠程監督是一種較好的關係抽取算法。在文本特徵的比較上,詞法特徵和句法特徵拼接而成的特徵向量,優於單獨使用其中一種特徵的狀況。此外,句法特徵在遠程監督中比詞法特徵更有效,尤爲對於依存句法結構比較短而實體對之間的詞語很是多的句子。
(四)評價
這篇論文把遠程監督的思想引入了關係抽取中,充分利用未標註的非結構化文本,從詞法、句法和實體三方面構造特徵,最後用留出法和人工校驗兩種方法進行模型評估,是一種很是完整規範的關係抽取範式。
不足之處有兩點:
第一個是前面所提到的問題,那就是遠程監督所基於的假設是一個很是強的假設。哪能說一個實體對在Freebase中存在一種關係,那麼只要外部語料庫中的句子中出現了這個實體對,就假定關係爲Freebase中的關係呢?還多是其餘關係啊?
Bootstrapping中也有這個問題,稱爲語義漂移問題,但Bootstrapping自己經過給新發現的規則模板和實體對打分,在必定程度上緩解了這個問題,而這篇論文並無提到這個問題,更沒有涉及到解決辦法。我猜這是由於Freebase中的實體對和關係主要就是從Wikipedia中抽取出來的,並且關係屬於比較典型的關係。
這點就成了後續遠程監督關係抽取算法的一個改進方向,後面的研究人員提出了利用多實例學習和句子級別的注意力機制來解決這個問題。
第二個是論文中用到了三種特徵,貌似一頓操做猛如虎,但實際上構造這些特徵很是繁瑣,並且詞性標註和依存句法分析依賴於NLP工具庫,所以工具庫在標註和解析中所產生的偏差,天然會影響到文本特徵的準確性。
這點也是後續研究的一個改進方向,後面的研究人員用神經網絡做爲特徵提取器,代替人工提取的特徵,並用詞嵌入做爲文本特徵。
第二篇論文是《Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks》,是用神經網絡結合遠程監督作關係抽取的扛鼎之做。
(一)論文的貢獻
一、用PCNNs的神經網絡結構自動學習文本特徵,代替複雜的人工構造特徵和特徵處理流程。
PCNNs全名爲Piecewise Convolutional Neural Networks,包含兩層含義:Piecewise max pooling layer和Convolutional Neural Networds,對應到最大池化層和卷積層。用卷積神經網絡強大的特徵提取功能,能自動抽取豐富的特徵,而且減小人工設計特徵和NLP工具庫抽取特徵帶來的偏差。省時省力又能減小偏差,何樂不爲。
二、設計了分段最大池化層(三段,Piecewise max pooling layer)代替通常的最大池化層,提取更豐富的文本結構特徵。
通常的最大池化層直接從多個特徵中選出一個最重要的特徵,其實是對卷積層的輸出進行降維,但問題是維度下降過快,沒法獲取實體對在句子中所擁有的結構信息。
以下圖,把一個句子按兩個實體切分爲前、中、後三部分的詞語,而後將通常的最大池化層相應地劃分爲三段最大池化層,從而獲取句子的結構信息。
三、用多實例學習(Multi-Instances Learning)解決遠程監督作自動標註的錯誤標註問題。
遠程監督本質上是一種自動標註樣本的方法,可是它的假設太強了,會致使錯誤標註樣本的問題。
論文認爲遠程監督作關係抽取相似於多實例問題(Multi-Instances Problem)。知識圖譜中一個實體對(論文中的Bag)的關係是已知的,而外部語料庫中包含該實體對的多個句子(Instances of Bag),表達的關係是未知的(自動標註的結果未知真假),那麼多實例學習的假設是:這些句子中至少有一個句子表達了已知的關係。因而從多個句子中只挑出最重要的一個句子,做爲這個實體對的樣本加入到訓練中。
本篇論文設計了一個目標函數,在學習過程當中,把句子關係標籤的不肯定性考慮進去,從而緩解錯誤標註的問題。
總結一下,本文的亮點在於把多實例學習、卷積神經網絡和分段最大池化結合起來,用於緩解句子的錯誤標註問題和人工設計特徵的偏差問題,提高關係抽取的效果。
(二)研究方法
本文把PCNNs的神經網絡結構和多實例學習結合,完成關係抽取的任務。
一、PCNNs網絡的處理流程
PCNNs網絡結構處理一個句子的流程分爲四步:特徵表示、卷積、分段最大池化和softmax分類。具體以下圖所示。
(1)文本特徵表示
(1)文本特徵表示
使用詞嵌入(Word Embeddings)和位置特徵嵌入(Position Embeddings),而後把句子中每一個詞的這兩種特徵拼接起來。
詞嵌入使用的是預訓練的Word2Vec詞向量,用Skip-Gram模型來訓練。
位置特徵是某個詞與兩個實體的相對距離,位置特徵嵌入就是把兩個相對距離轉化爲向量,再拼接起來。
好比下面這個句子中,單詞son和實體Kojo Annan的相對距離爲3,和實體Kofi Annan的相對距離爲-2。
假設詞嵌入的維度是dw,位置特徵嵌入的維度是dp,那麼每一個詞的特徵向量的維度就是:d=dw+2*dp。假設句子長度爲s,那麼神經網絡的輸入就是s×d維的矩陣。
(2)卷積
假設卷積核的寬爲w(滑動窗口),長爲d(詞的特徵向量維度),那麼卷積核的大小爲W=w * d。步長爲1。
輸入層爲q = s×d維的矩陣,卷積操做就是每滑動一次,就用卷積核W與q的w-gram作點積,獲得一個數值。
卷積完成後會獲得(s+w-1)個數值,也就是長度爲(s+w-1)的向量c。文本的卷積和圖像的卷積不一樣,只能沿着句子的長度方向滑動,因此獲得的是一個向量而不是矩陣。
爲了獲得更豐富的特徵,使用了n個卷積核W={W1, W2, ... Wn},第i個卷積核滑動一次獲得的數值爲:
最終,卷積操做完成後會輸出一個矩陣C:
(3)分段最大池化
把每一個卷積核獲得的向量ci按兩個實體劃分爲三部分{ci1, ci2, ..., ci3},分段最大池化也就是分別取每一個部分的最大值:
那麼對於每一個卷積核獲得的向量ci,咱們都能獲得一個3維的向量pi。爲了便於下一步輸入到softmax層,把n個卷積核通過池化後的向量pi拼接成一個向量p1:n,長度爲3n。
最後用tanh激活函數進行非線性處理,獲得最終的輸出:
(4)softmax多分類
把池化層獲得的g輸入到softmax層,計算屬於每種關係的機率值。論文中使用了Dropout正則化,把池化層的輸出g以r的機率隨機丟棄,獲得的softmax層的輸出爲:
輸出的向量是關係的機率分佈,長度爲關係的種類(n1)。機率值最大的關係就是句子中的實體對被預測的關係。
二、多實例學習的過程
咱們知道通常神經網絡模型的套路是,batch-size個句子通過神經網絡的sotfmax層後,獲得batch-size個機率分佈,而後與關係標籤的one-hot向量相比較,計算交叉熵損失,最後進行反向傳播。所以上述PCNNs網絡結構的處理流程僅是一次正向傳播的過程。
PCNNs結合多實例學習的作法則有些差異,目標函數仍然是交叉熵損失函數,可是基於實體對級別(論文中的bags)去計算損失,而不是基於句子級別(論文中的instances)。這是什麼意思呢?
對照上面的圖,計算交叉熵損失分爲兩步:
第一步,對於每一個實體對,會有不少包含該實體對的句子(qi個),每一個句子通過softmax層均可以獲得一個機率分佈,進而獲得預測的關係標籤和機率值。爲了消除錯誤標註樣本的影響,從這些句子中僅挑出一個機率值最大的句子和它的預測結果,做爲這個實體對的預測結果,用於計算交叉熵損失。好比上面的例子中,挑出了第二個句子。公式爲:
第二步,若是一個batch-size有T個實體對,那麼用第一步挑選出來的T個句子,計算交叉熵損失:
最後用梯度降低法求出梯度,並進行偏差反向傳播。
以下是算法的僞代碼,θ是PCNNs的參數,Eq.(9)是第一步中的公式。
(四)實驗細節
一、數據集和評估方法
知識圖譜爲Freebase,外部文檔庫爲NYT。把NYT文檔庫中2005-2006年的句子做爲訓練集,2007年的句子做爲測試集。
評估方法沿用第一篇論文中的方法,留出法和人工校驗相結合。
二、詞嵌入和調參
預訓練的詞向量方面,本文用Skip-Gram模型和NYT文檔庫訓練了50維的詞向量。
位置特徵嵌入使用隨機初始化的向量,維度爲5。
調參方面,PCNNs網絡結構中有兩個參數比較重要:卷積核的滑動窗口大小和卷積核的個數。本文使用網格搜索,最終肯定滑動窗口爲3,卷積核個數爲230。
模型的其餘參數以下:
三、模型評估結果
(1)對留出法和人工校驗法的說明
使用留出法和人工校驗法來評估模型的效果。這裏對這兩種評估方法進行補充說明:
留出法的作法是把Freebase中一半的實體對用於訓練,一半的實體對用於測試。多分類模型訓練好以後,對外部文檔庫NYT中的測試集進行預測,獲得測試集中實體對的關係標籤。若是新發現的實體對有N個,其中有n個出如今Freebase的測試集中,那麼準確率爲n/N,而不在Freebase測試集中的實體對就視爲不存在關係。但是因爲Freebase中的實體對太少了,新發現的、不在Freebase裏的實體對並不是真的不存在關係,這就會出現假負例(False Negatives)的問題,低估了準確率。
因此人工校驗的方法是對留出法的一個補充,對於那些新發現的、不在Freebase測試集中的實體對(一個實體不在或者兩個實體都不在)進行檢查,計算查準率。因此留出法和人工校驗要評估的兩個新實體對集合是沒有交集的。具體作法是從這些新實體對中選擇機率值最高的前N個,而後人工檢查其中關係標籤正確的實體對,若是有n個,那麼查準率爲n/N。
(2)卷積神經網絡與人工構造特徵的對比
首先把PCNNs結合多實例學習的遠程監督模型(記爲PCNNs+MIL),與人工構造特徵的遠程監督算法(記爲Mintz)和多實例學習的算法(記爲MultiR和MIML)進行比較。
從下面的實驗結果中能夠看到,不管是查準率仍是查全率,PCNNs+MIL模型都顯著優於其餘模型,這說明用卷積神經網絡做爲自動特徵抽取器,能夠有效下降人工構造特徵和NLP工具提取特徵帶來的偏差。
(3)分段最大池化和多實例學習的有效性
將分段最大池化和普通的最大池化的效果進行對比(PCNNs VS CNNs),將結合多實例學習的卷積網絡與單純的卷積網絡進行對比(PCNNs+MIL VS PCNNs)。
能夠看到,分段最大池化比普通的最大池化效果更好,代表分段最大池化能夠抽取更豐富的結構特徵。把多實例學習加入到卷積網絡中,效果也有必定的提高,代表多實例學習能夠緩解樣本標註錯誤的問題。
(四)評價
這篇論文中,分段最大池化的奇思妙想來自於傳統人工構造特徵的思想,而多實例學習的引入緩解了第一篇論文中的樣本錯誤標註問題。這篇論文出來之後是當時的SOTA。
不足之處在於,多實例學習僅從包含某個實體對的多個句子中,挑出一個最可能的句子來訓練,這必然會損失大量的信息。因此有學者提出用句子級別的注意力機制來解決這個問題。
第三篇論文是《Neural Relation Extraction with Selective Attention over Instances》,這篇論文首次把注意力機制引入到了關係抽取的遠程監督算法中,刷新了當時的SOTA。論文做者中有知乎網紅劉知遠老師。
(一)論文的貢獻
這篇論文要解決的問題,就是多實例學習會遺漏大量信息的問題。因此這篇論文用句子級別的注意力機制代替多實例學習,對於包含某實體對的全部句子,給每個句子計算一個注意力得分,動態地下降標註錯誤的樣本的得分,再進行加權求和,從而充分利用全部句子的信息。
多實例學習至關於硬注意力機制(Hard Attention),而咱們耳熟能詳的以及論文中用到的注意力機制是選擇性注意力機制(Selective Attention)或者說軟注意力機制(Soft Attention),因此多實例學習實際上是選擇性注意力機制的特殊狀況(只有一個句子的權重爲1,其餘全爲0)。
(二)模型介紹
模型主要分爲兩個部分:句子編碼器和注意力層。
一、句子編碼器
句子編碼器就是上一篇論文中的PCNN或CNN網絡結構,由卷積神經網絡的輸入層、卷積層、池化層、非線性映射層(或者說激活函數)構成。
文本特徵一樣用詞嵌入和位置特徵嵌入,池化層用普通的最大池化或者分段最大池化。
所以,本文的句子編碼器部分輸出的是一個句子通過最大池化而且非線性激活後的特徵向量,用於輸入到注意力層。這部分和上一篇論文基本相同,無須贅述。
二、注意力層
句子編碼器的做用是抽取一個句子的特徵,獲得一個特徵向量。若是外部文檔庫中包含某實體對的句子有n條,那麼通過句子編碼器的處理後,能夠獲得n個特徵向量:x1, x2, ..., xn。在句子編碼器和softmax層之間加一個選擇性注意力層,那麼處理的步驟以下:
第一步:計算句子的特徵向量xi和關係標籤r的匹配度ei,並計算注意力得分αi。公式中的r是關係標籤的向量表示。
第二步:計算該實體對的特徵向量s。該實體對的特徵向量是全部句子的特徵向量xi的加權之和,權重爲每一個句子的注意力得分αi。
第三步:通過softmax層獲得該實體對關於全部關係的機率分佈,機率值最大的關係爲預測的關係標籤。
三、偏差反向傳播
若是一個batch-size有s個實體對,那麼用s個實體對的機率分佈,計算交叉熵損失:
最後用梯度降低法求出梯度,並進行偏差反向傳播。
(三)實驗細節
一、數據集和評估方法
數據集和上一篇論文同樣,知識圖譜是Freebase,外部的文檔庫是NYT(New York Times corpus)。劃分數據集的作法也一致。
評估方法採用留出法,再也不贅述。
二、詞嵌入和參數設置
用NYT數據集訓練Word2Vec,用網格搜索(Grid Search)肯定參數。
三、選擇性注意力機制的效果
句子編碼器分別採用CNN和PCNN的網絡結構,PCNN+ONE表示PCNN結合多實例學習的模型,PCNN+ATT表示論文中的選擇性注意力模型,PCNN+AVE表示對各句子求算術平均的模型(每一個句子的注意力得分相同)。
實驗結果代表,不管是CNN仍是PCNN,加入注意力機制的模型在查準率和查全率上,都顯著優於其餘模型。
論文還有其餘更細緻的實驗,欲知詳情,請自行翻看論文。
(四)評價
這篇論文把注意力機制和CNN句子編碼器結合,用來解決多實例學習存在的遺漏信息問題,更好地緩解了遠程監督算法中的樣本錯誤標註問題。
注意力機制在NLP任務中的效果是有目共睹的,PCNN+ATT的模型看起來很是漂亮,那麼有什麼改進方向呢?
開頭咱們說了,關係抽取能夠分爲流水線式抽取(Pipline)和聯合抽取(Joint Extraction)兩種,流水線式抽取就是把關係抽取的任務分爲兩個步驟:首先作實體識別,再抽取出兩個實體的關係;而聯合抽取的方式就是一步到位,同時抽取出實體和關係。
所以上面介紹的三篇論文中的模型都屬於流水線式抽取的方法,實體識別和關係抽取的模型是分開的,那麼實體識別中的偏差會影響到關係抽取的效果。而聯合抽取用一個模型直接作到了實體識別和關係抽取,是一個值得研究的方向。
參考資料:
一、《Speech and Language Processing》(Third Edition draft)第17章
二、《cs224u: Relation extraction with distant supervision》
三、《Distant supervision for relation extraction without labeled data》
四、《Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks》
五、《Neural Relation Extraction with Selective Attention over Instances》
六、《Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme》