1. 程式人生 > 實用技巧 >【論文精讀】TACRED Revisited: A Thorough Evaluation of the TACRED Relation Extraction Task

【論文精讀】TACRED Revisited: A Thorough Evaluation of the TACRED Relation Extraction Task

這篇文章是ACL2020上的文章,來德國研究中心的Christoph Alt。

文章主要研究的是Tacred的資料集合中的Dev和Test集的標註錯誤,並且做了標註錯誤型別的分組,做了對比試驗驗證這些不同的錯誤原因對四個對比模型的影響,得出了 per:loc 和 same nertag&positive兩個group的樣例容易被分類錯誤的結論,並且認為將instance難度考慮到評估過程是有必要的。

這篇文章看到當前在Tacred上的SOTA模型仍然還有30%錯誤率,於是提出了問題,當前的Tacred的上的分類模型是否已經到達的了天花板;以及什麼對於資料集和模型來講是重要的。

作者從該任務最基本的組成部分——資料集本身出發,探究資料集中是否存在一些錯誤,導致模型無法正確分類。

那麼由於Tacred資料集本身資料量還是比較大,因此需要篩選出一批最有可能出問題的樣本。篩選方法是用49個模型對資料集分別在dev和test上測試,從dev和test集合中選出了最難分類的5000個樣本。然後分成了Challenging(被一半模型分錯)和Control(每個類別最多20個樣本,至少被39個模型分類正確)兩個集合。

在這裡插入圖片描述

然後通過人工校驗這5000個數據點,這些校驗人員都是經過明確的guidance和訓練,校驗標記後的結果如表2。
在這裡插入圖片描述

從這個表中可以看出對於Dev和Test中Challenging部分的資料,原資料集中錯誤標記佔比還是比較高的,達到了50%;而在Control集合中,錯誤標記比較少,不到10%。【模型會因為50%的dev錯誤標註被帶偏】。

在這裡插入圖片描述

從這個不同標記來源的一致性檢驗【附加的PDF中有例子】中可以看到,經過本文指導的標註者H1和H2的標註一致性比較高。而本文的標註結果H和原資料集C中的標註結果一致性僅有0.54左右。

作者在修改後的test集合上進行49個模型的驗證,F1值從62.1%漲到了70.1%。作者認為這是Tacred上影響模型準確率的主要因素。本文還對比了Riedel et al. (2010) 遠端監督資料集的錯誤率大概在31%,低於本文的監督資料集Tacred。但是,作者並不反對訓練集中出現的錯誤,本文作者認為測試集應該是準確的。

接下來作者開始研究來自模型的誤差是怎麼來的,也就是什麼樣子,具有什麼能力的模型更有效果。

第一步:
之前獲得到的revisited 資料集繼續使用,用兩個標註人員為每個錯誤標記的樣本指定“錯誤型別”。作者通過不同的錯誤型別,來驗證模型具有哪些處理錯誤的能力,不具有哪些能力。從而得出模型的誤差來源。

通過人工標記,共得出了9種錯誤型別:

在這裡插入圖片描述

這1017個re-annotated樣本是49個模型中預測錯誤的最多的。錯誤大致分兩個類別Argument error和context error。

第二步:
進行自動誤差分析,首先定義了四組誤差來源:
1.
Surface structure – Groups for argument distance (argdist=1, argdist>10) and sentence length (sentlen>30) •
2.
Arguments – Head and tail mention NER type (same nertag, per:, org:, per:loc), and pronominal head/tail (has coref) •
3.
Context – Existence of distracting entities (has distractor) •
4.
Ground Truth – Groups conditioned on the ground truth (positive, negative, same nertag&positive)

一共是13種具體情形。

第三步:
選取模型進行實驗,CNN+masked,TRE,SpanBERT,KnowBERT四個模型。

在這裡插入圖片描述

圖上的1234對應四組誤差。以其中一個模型為例說明,CNN_masked,對於positive這個誤差類別和sam_nertag&positive容易分錯。而1 2 3組的樣本容易分正確。而這兩個容易分錯的樣本對模型的影響都比較大,即容易被模型誤分類。

作者單獨做了實驗驗證context對模型的影響。

對於一個句子,remove outside意思是移除兩個實體外面的詞;remove inside意思是移除兩個實體中間的詞。

在這裡插入圖片描述
表明,在same nertag&positive上,SpanBERT更關注entity masking和context,因此它deF1值會降低比較多;Knowbert更關注實體本身的語義,因此下降不懂【將Knowbert和spanbert融合】

作者單獨做實驗驗證瞭如果對例項難度進行加權後再驗證,該權重來自49個模型,如果都被預測正確,權重為0,如果都被預測錯誤權重為1.使得模型更關注難分類的樣本。

在這裡插入圖片描述
從表中可以看出,資料集合還是有很多容易分類的樣本。

自己思考:

  1. 首先他的revisited的資料集沒有給出。
  2. 其次這個最後加權僅僅是在評估的時候加上權重,總而更能校驗模型對複雜樣本的分類能力,但是沒給出他們的re-annotated驗證資料集,說屁呢?
  3. 嘗試進行Spanbert和Knowbert優勢融合。