論文解讀:Denoising Distant Supervision for Relation Extraction via Instance-Level Adversarial Training

論文解讀:Denoising Distant Supervision for Relation Extraction via Instance-Level Adversarial Training

  本文是一篇以生成對抗網絡爲出發點的遠程監督關係抽取文章,其使用GAN來完成噪聲數據的過濾,其相比普通的multi-instance能夠更有效的過濾出噪聲,避免multi-instance的at-least-once過強的假設。

一、簡要信息

序號 屬性
1 模型名稱 CNN+AN/RNN+AN
2 所屬領域 自然語言處理
3 研究內容 遠程監督關係抽取
4 核心內容 Relation Extraction,GAN
5 GitHub源碼
6 論文PDF https://arxiv.org/pdf/1805.10959.pdf

二、全文摘要翻譯

  現有的神經關係抽取模型都依賴於遠程監督,其遭受錯誤標籤的問題。本文,我們提出以示例爲主的一個新的對抗訓練機制用於關係抽取和降噪。相比其他一些降噪模型,我們提出的方法能夠更好的從噪聲中判別出富有信息的示例。我們的方法也有效的靈活的應用各種不同的關係抽取模型。在大尺度基準數據集進行實驗表明,我們的降噪方法相比現有的最優模型能夠有效的過濾掉噪聲。

三、相關工作與介紹

  關係抽取的任務是給定目標的兩個實體,根據對應的句子表達來提取出兩者之間的語義關係。現如今的關係抽取絕大多數視爲一種分類任務。傳統的關係抽取是基於監督學習,但其需要大量的人工標註語料,費時費力。遠程監督學習被提出,其根據現有的知識庫與現有的語料進行對齊,其認爲所有句子中如果都出現目標實體對,其都能表達知識庫中所標註的關係,這顯然會造成許多錯誤標籤。多示例學習被提出,其結合句子級別的注意力加權提取每個包中各個句子的語義,權重高的則暗示句子不是噪聲,權重低的則句子爲噪聲,該方法效果得以提升,但仍然建立在一個較強的假設——每個包都至少包含一個正樣本,對於有一些實體對包含的句子非常少,因此這種方法也有弊端。爲了解決這個問題,作者受到生成對抗網絡訓練的啓發,提出一個在句子級別上進行對抗訓練的方法。這種對抗訓練並非是添加對抗擾動,而是以GAN爲架構的對抗學習。

  首先將原始的數據集劃分爲兩個子集,非常小的confident集合保存positive(也就是沒有噪聲的)句子、unconfident保存未知的句子(可能包含positive、negative)。模型主要包括兩個部分:
(1)判別器(Discriminator):判別器用來判斷給定的句子是true positive還是negative。即需要正確的劃分給定的句子是來自confident還是unconfident。如果來自confident,則給與高分,否則給與低分;
(2)採樣器(Sampler):採樣器也就相當於生成器,其目標是從unconfident中採樣出一些認爲是confusing的句子,企圖騙過Discriminator給高分。
  整個對抗訓練的過程就是:Sampler根據一種採樣機制,在unconfident集合中選擇confusing score最高的句子,Discriminator則從confident中採樣真實的句子,然後分別對兩部分數據進行打分,其儘可能的爲來自confident的句子打高分,爲Sampler採樣的句子低分;Sampler則企圖提高採樣的能力來騙過Discriminator,讓Discriminator給高分。仔細思考可知,Sampler的目標就是從unconfident中選出positive的句子,因爲當模型訓練到一定程度時,Discriminator已經無法區分哪些句子究竟來自哪個集合,同時認爲Sampler採樣出來的句子是positive,因此此時,Sampler採樣的句子就是positive的。

  每10論對抗訓練,作者便使用Sampler來從unconfident中選擇positive的句子更新到confident中,而此時Discriminator可以作爲一個分類器。下面將詳細描述這個模型:

四、提出的方法

  模型的框架如圖所示。首先使用預訓練的分類器,將數據集劃分confident集合IcI_{c}和unconfident集合IuI_{u}。其中confident是少量的,但全部包含真實數據。
在這裏插入圖片描述

4.1 Sentence Encoder

  對於給定一個句子,首先使用SkipGram模型表示爲詞向量,同時引入位置表示,形成Input Embedding,記爲 S={[w1,p1],[w2,p2],...[wn,pn]}\mathbf{S}=\{[w_1,p_1],[w_2,p_2],...[w_n,p_n]\}
  作者分別使用現有的一些句子編碼器,例如CNN、PCNN、RNN、BiGRU等,相關模型可參閱文章基於深度學習的命名實體識別與關係抽取基於監督學習和遠程監督的神經關係抽取。最終編碼器生成的句子向量記爲 y\mathbf{y}

4.2 Sampler

  採樣器的目標是儘可能選擇一些confusing的句子來騙過判別器給它高分。因此首先作者給出了confusing score:

C(S)=WyC(S)=\mathbf{W·y}

其中 W\mathbf{W} 是權重參數,類似於超空間的超平面,其與同空間的句子向量點乘後可得到對應的得分。作者基於此使用一層softmax歸一化,即得到集合中每個句子的confusing概率分佈Pu(s)=softmax(C(s))P_u(s)=softmax(C(s))

  設判別器的打分函數爲 D(s,rs)D(s,r_s) (4.3細講),則一個優秀的Sampler目標即是其選出的樣本能夠得到較高的 D(S,rs)D(S,r_s)。根據GAN原理,即最小化Sampler的損失函數:

Ls=sIuPu(s)log(D(s,rs))L_s=-\sum_{s\in I_u}P_u(s)log(D(s,r_s))

這裏需要注意這個損失函數中,概率分佈Pu(s)P_u(s)表示採樣器認爲的分佈,因此從實驗角度來看,Sampler並非是從集合中挑選句子,而是針對每個句子在這個概率分佈上的期望,Sampler即是希望這個期望值越大越好。

4.3 Discriminator

  作者定義了Discriminator的打分函數 D(s,rs)=σ(rsy)D(s,r_s)=\sigma(\mathbf{r}_s·\mathbf{y}),其中 σ\sigma是sigmod函數。該函數表達的意思即給定當前的句子(可能是confident中的,也可能是Sampler採樣的)來判斷其是否能夠表達對應的關係rsr_s,其中點乘通常被認爲是一種相似度計算,sigmod函數則將這個得分映射到一個0-1之間。作者還考慮到了關於NA的句子,因爲NA的句子有可能會被預測爲其他關係,因此爲了避免Discriminator判斷錯誤,作者特定設計了NA標籤的得分函數:D(s,NA)=1R1rR,rNAD(s,r)D(s,NA)=\frac{1}{|R|-1}\sum_{r\in R,r\neq NA}D(s,r),其表達的意思是分別計算這個句子與除NA以外其他所有關係的得分並取平均,爲什麼這麼計算,作者沒有給出解釋,但直觀理解可知,如果當前句子是NA,則它一定與其他所有關係對應的得分都很低,因此是一種類似排除法,遍歷所有關係,只有每個關係都與之相似度很低時,則被認爲是無關。

  再來看看如何訓練Discriminator,作者定義了損失函數:

LD=sIc1Iclog(D(s,rs))sIuPu(s)log(1D(s,rs))L_D=-\sum_{s\in I_c}\frac{1}{|I_c|}log(D(s,r_s)) - \sum_{s\in I_u}P_u(s)log(1-D(s,r_s))

一個訓練優秀的Discriminator的目標是能夠很好的區分給定的句子是來自哪個集合,其儘可能給來自confident的句子高分,即最小化前一項;給來自unconfident的句子低分,即最小化後一項。我們可以發現,前一項中Pd(s)=1IcP_d(s)=\frac{1}{|I_c|}也是一個概率分佈,因爲confident中每一個句子都是真實的,因此其confusing score應該是完全一樣,因此對應的概率分佈也是相等的。

  將Sampler與Discriminator結合起來,便是一個min max任務:

minPumaxDsIcPd(s)log(D(s,rs))sIuPu(s)log(1D(s,rs))\min_{P_u} \max_{D} -\sum_{s\in I_c}P_d(s)log(D(s,r_s)) - \sum_{s\in I_u}P_u(s)log(1-D(s,r_s))

對GAN比較瞭解的可以知道,其即是最小化PuP_uPdP_d之間的JS散度。

  在具體的訓練時,因爲unconfident集合很大(幾十萬級別),因此作者每次從中隨機採樣一批,並分別計算Qu(s)=softmax(C(s)α)Q_u(s)=softmax(C(s)^{\alpha}),其中α\alpha是一個超參數,用來對概率分佈進行微調,因爲隨機採樣的子集合與原先的集合概率分佈會有很大差異,因此使用這個超參數作爲一種調和。Qu(s)Q_u(s)Pu(s)P_u(s)都是概率分佈,後續計算則使用Qu(s)Q_u(s)

4.4 Filter & Classifier

  究竟如何降噪呢?作者指定每10論迭代訓練後,Sampler則充當Filter。因爲其能夠比較準確的挑選一些confusing句子使得Discriminator認爲是positive,因此將這些confusing score較高的且D(s,rs)D(s,r_s)較高的句子轉移到confident中。作者並沒有給出較高究竟是多少。Discriminator則充當分類器,對給定的句子對每個類分別計算相似度,並將得分最高的作爲預測的關係。這裏面需要注意的是Discriminator應該不計算NA,因爲NA也被當做是noisy,所以NA關係的句子一定不會被Sampler採樣,也不會出現在confident集合中。

  作者並沒有給出在測試階段模型如何運行,在此我做一個推論。給定測試集中的句子,使用訓練好的Sampler爲其計算confusing score,並得到概率分佈,其次分別通過Discriminator打分,因爲目標是預測關係,所以Discriminator會分別對包括NA在內的每個關係計算得分,並取最高得分的作爲預測的關係。

五、實驗

  作者選擇NYT數據集進行實驗,可知這個數據集富含大量的噪聲,且非均衡,能夠比較有效的驗證模型能力。
  作者分別與現有的baseline進行對比(左圖)PCNN+AN是本文模型,其次對Sentence Encoder進行對比,全部使用CNN時(中圖)和RNN時(右圖)PR曲線對比。
在這裏插入圖片描述
  在訓練過程中,相同召回率下的精度如下所示:
在這裏插入圖片描述
  作者也對TOP@N進行了對比:

在這裏插入圖片描述
  作者在case study中,給出了樣例,可知,模型可以很好的過濾出噪聲。
在這裏插入圖片描述

六、總結

  這篇文章在思路上很新穎,打破了以multi-instance的套路,試圖在訓練之前就將噪聲過濾掉,提升樣本的純度。但其有一些潛在未知的問題:
(1)作者使用預訓練的分類器先對數據集劃分,這個預訓練的分類器是什麼?怎麼能夠保證初始化的confident完全是純的?
(2)作者在爲NA標籤設計打分函數存在一個問題。例如在訓練階段,unconfident中存有NA標籤的句子,判別器應該目標是給低分,sampler也應該儘可能不把它作爲confusing數據去欺騙,因爲NA標籤的數據本身作爲一個噪聲,不可能會是positive。而打分函數是對其他關係的得分均值,那一定落在最大值最小值之間,如果在預測標籤時,如何預測出NA的句子呢?同時我們還知道,NA標籤的句子佔整個數據集的97%,將其與所有關係分別計算相似度會帶消耗巨大的計算資源和時間。
(3)作者認爲confusing score對應的概率分佈應該儘可能與confident的均勻分佈JS距離儘可能的小,但事實上是不可能的;
(4)confusing score只有一個W\mathbf{W}來學習,打分函數也過於簡單,雖然sentence encoder可以提升模型的複雜度,但仍然會存在collapse mode問題,感覺訓練後的結果要麼是採樣器訓練崩了,要麼是判別器判別能力太高,使得采樣器無論如何學習都學不好,這也是GAN自身存在的問題。一種改進方法就是適當提升採樣器和判別器的模型參數,同時可以採用WGAN替代GAN。
(5)作者沒有詳細給出測試階段是如何實現的,也並沒有開源代碼,這一部分很難去復現。
(6)作者在conclusion中還提到他們的方法可以解決long-tail問題,但是文章中並沒有提出解決這個問題的方案,因此本人覺得可能僅僅是湊巧,或者在句子很少的實體對中表現效果還可以,還有需驗證。
作者最後給出兩個研究目標,一個是引入額外知識庫對模型進行增強,這一個想法也是現如今在NRE中很常用的策略;另一個作者將其擴展到entity-pair級別進行對抗,說白了就是multi-instance + 對抗。

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