UNION An Unreferenced Metric for Evaluating Open-ended Story Generation精讀網絡
UNION: 一種評估開放故事生成無參考文本依賴metric模型,這是一篇EMNLP 2020的論文 (Empirical Methods in Natural Language Processing 2020)函數
常見的文本生成評價指標有BLEU 和MoverScore,但BLEU 和MoverScore又一個巨大的缺陷。在NLG任務中,對於相同的輸入,NLG模型能夠生成各類各樣的文本,這些各類各樣的輸出在字符層面和語義層面上常常和參考文本不一致,可是這些不一致的文本也能夠是合理的文本;在另外一方面NLG模型生成的一些文本和參考文本字符層面上比較一致,但這些比較一致的文本又不必定是合理文本。測試
如表中所示, Sample2是NLG生成文本,和Reference在字符層面和語義層面上不一致,但smaple也是一個符合人類邏輯的文本。Sample3也是NLG生成文本,和Reference在字符層面和語義層面較爲一致,但不是一個符合人類邏輯的文本。由於句子」Jack started drinking「是在 「The bartender told him it was already time to leave.」的後面,但從邏輯上講是先有喝酒,纔有後面的酒吧員工勸Jack下班了該撤了。lua
表中B表示BLEU, M表示MoverScore, U表示Union,分數越接近1.0說明文本越接近人類寫做文本。 BLEU 和MoverScore對Sample2都是很低的分數,但做者提出的Union網絡有最高分數1.0;BLEU 和MoverScore對Sample3都有必定的分數,但做者提出的Union網絡有最低分數0.0。顯然對於Sampl2和Sample3的在是否符合人類邏輯性的人物上,Union模型是最好的。設計
UNION網絡結構如圖所示3d
UNION的訓練樣本正樣本是人類寫的故事,負樣本是經過Repetition(重複), Substitution(替代), Reordering(亂排), Negation Alteration(否認改寫)等幾種負樣本生成方法創造。最後訓練輸入代入一個基於Bert的二分類模型中對文本進行判斷,判斷是否爲人類寫的故事仍是負樣本。blog
爲何做者認爲Repetition(重複), Substitution(替代), Reordering(亂排), Negation Alteration(否認改寫)能夠生成與人類寫的故事對應的負樣本了?是由於做者統計過NLG生成故事中常見的錯誤有四種,並且對應上面四種負樣本生成策略。排序
做者分析381篇根據Plan&Write和微調GTP-2生成文本,總結下述NLG錯誤token
第一種錯誤是Repeated plots,即相同文本被重複,佔整體錯誤的44.1%;第二種錯誤是Poor coherence,即生成故事和主幹內容無關的關鍵詞和事件,佔整體錯誤的56.2%;第三種錯誤是Conflicting logic,即生成故事有錯誤的因果關係和時間順序,佔整體錯誤的67.5%;第四種錯誤是Chaotic scenes,即生成故事有很難理解的文本和前文矛盾的錯誤,佔整體錯誤的50.4%。並且每兩種錯誤類型之間Spearman相關性均小於0.15(p值> 0.01),所以做者採用這四種錯誤來生成負樣本。事件
Repetition針對Repeated plots錯誤,有兩種具體的負樣本產生策略,分別是句子級的重複和詞語N-gram級的重複。
句子級的重複是隨機選擇n個非首句子,而後重複其中一個句子,好比一篇文章句子 有6個,好比一篇文章是[1 2 3 4 5 6],選擇3個非首句子是2 3 6,這裏假設重複第二句,則第3句和第6句會被第2句內容覆蓋,即1 2 3 4 5 6 ==> 1 2 2 4 5 2
詞語N-gram級的重複是隨機選擇n個非首句子, 而後每一個句子中挑選一個token的n-gram重複一遍。好比句子Rome was not bulit in one day. 挑選其中一個token爲was,選定2-gram重複,即選定了was not bulit重複一遍,則獲得負樣本爲Rome was not bulit was not bulit in one day.
Substitution針對Poor coherence錯誤,有兩種具體的負樣本產生策略,分別是句子級的替換和詞語級替換。 句子級替換是隨機選擇n個非開頭句,用語料庫中其餘做文的某一句進行替換。假設一篇做文是I love cat. I love dog. Beacause i love animale. 選擇1個非開頭句即第2句進行替換,此時從做文語料庫其餘做文那隨便抽了一個句子Rome was not bulit in one day來替換,獲得負樣本爲I love cat. Rome was not bulit in one day. Beacause i love animale. 詞語級替換是隨機選擇n個非開頭句,句子中15%關鍵詞替換成反義詞,不然替換成同一詞性的關鍵詞。其中關鍵詞和反義詞會使用一個叫知識圖譜ConceptNet,它是一個三元組知識圖譜(h, r, t), 第1個元素是頭部實體,第2個元素是關係,第3個元素是尾部實體。全體h和t構造的集合就是關鍵詞集合,若是h和t的關係是反義關係,即認爲h和t互爲反義詞。做者採用NLTK來對英文進行詞性標註。假設輸入的文章是I like playing computer game.則通過本策略,可獲得的一個負樣本可能爲I hate playing computer game.
Reordering針對Conflicting logic錯誤,即打亂非開頭的句子的排序。好比一篇文章是[1 2 3 4 5 6],則須要隨機打亂2 3 4 5 6的順序,即1 2 3 4 5 6 ==>1 2 3 5 6 4
Negation Alteration針對Chaotic scenes錯誤,即隨機選擇n個非首句子,否認句變成確定句,確定句變否認句。經過動詞前加don’t, doesn’t等形式,否認詞去掉not實現
假設輸入的文章是Bill love Alice .則通過本策略,可獲得的一個負樣本爲Bill don’t love Alice.
正樣本生成負樣本有四種策略,一個正樣本能夠採用多個策略來生成,好比下面的負樣本採用了Repetition、Reordering、Negation Alteration三種策略來生成。
首先是Bert獲得Hidden State,接着做者設計來兩個任務來訓練完了過,第一個是主任務,即預測一篇文章是否接近人類,預測輸出是一個0到1的浮點數,數值越接近1說明文章越接近人類;第二個任務是還原任務,即模型要預測當前詞語是不是正樣本對應詞語。
第一個任務是[CLS]這個token的hidden state進入一個線性層+Sigmoid函數,採用交叉熵損失
第一個任務每個real token的hidden state進入一個線性層+Softmax函數,採用廣義交叉熵損失,但只針對預測正確的token。
兩個任務的損失函數採用權重相加來構造整體損失函數,其中lambda是一個可設置的超參數,做者在論文中取0.1
做者採用了三類BaseLine,一類是基於參考文章的Referenced metrics,一類是不基於參考文章的Unreferenced metrics,還有一類是混合度量Hybrid metrics.
Referenced metrics採用的模型有基於n-gram重合度的BLEU,和基於embeding空間中推土機距離計算和Ref的類似程度MoverScore
Unreferenced metrics採用的模型有困惑度Perplexity,和基於Bert的度量,容易對特定數據集overfit的DisScore
Hybrid metrics採用的BLEURT和RUBER-BERT,其中RUBER-BERT有無參考的RUBER-BERT和有參考的RUBER-BERT
BLEURT
無參考的RUBER-BERT
有參考的RUBER-BERT
做者採用了2個數據集,ROC和WP。
ROC 是一個98,161五句文本構成的故事數據集, 平均每一個故事有49.4詞, 使用[MALE] [FEMALE] [NEUTRAL]對名字進行mask處理。 WP 是一個有303,358篇文章的故事數據集, 平均每一個故事有734.5詞語, 由於這個數據集中故事太長做者對每一個故事截斷取200詞語.
做者採用90% ,5%,5%的比例劃分訓練集、驗證集和測試集。
但做者針對BLEURT這個metric模型,採用seq2seq ,plan&write, 微調 GPT-2 ,基於知識庫 GPT-2來創造負樣本, 而後進行人工標註。全部模型使用同一個測試集,測試集是專門在外包平臺讓人標註的數據。
表中的相關係數計算的是模型標註分數和人類標註分數,顯然這個相關係數越來高說明模型越接近人類。從上表中明顯看出,UNION模型三個相關係數指標均遠遠高於其餘度量模型,從而證實了UNION模型的優秀。
上表是驗證UNION魯棒性,看看UNION對於Dataset Drift是否也有良好的表現,實驗證實在魯棒性上UNION也是優於其餘度量模型的。