0
雷鋒網(wǎng) AI 科技評論按:本文作者 Rachael 是 Kaggle 的一位數(shù)據(jù)科學家,擁有語言學博士學位,尤其對 NLP 領域有較深入的研究。近日,基于 NLP 入門者常問到她的一個問題——怎樣評價輸出為文本的系統(tǒng),她總結(jié)出了各種評價方法,并對其中的一個經(jīng)典的評價標準——BLEU 進行了反思,她認為 BLEU 存在著較為嚴重的問題,并呼吁各位研究者要謹慎地使用它。這篇文章發(fā)表在 Medium 上,雷鋒網(wǎng) AI 科技評論編譯如下。
我經(jīng)常被 NLP 領域的入門者問到的一個問題就是,當系統(tǒng)輸出文本而不是對輸入文本的一些分類時,該如何去評價這些系統(tǒng)。在模型中輸入文本然后模型輸出其它文本的這類問題,就是我們都知道的序列到序列(sequence to sequence)或者字符串轉(zhuǎn)導(string transduction)問題。
并且這些問題非常有趣!序列到序列建模的一般任務就是 NLP 中最有難度的一些任務的核心所在,這些任務包括:
文本摘要
文本簡化
問答
聊天機器人
機器翻譯
這類技術也在科幻小說以外的現(xiàn)實中實現(xiàn)了。通在如此廣泛的出色應用中,我們很容易找出序列到序列建模越來越受歡迎的原因。而不容易的是,真正去評價這些模型。
遺憾的是,對于那些剛開始學習 NLP 的人來說,評價模型應該使用什么度量標準很難說清楚。更糟地是,評價序列到序列任務的最受歡迎的一種度量標準——BLEU,也有很多缺陷,尤其是當被應用于此前它從未計劃評價的任務時。
不過你是幸運的,因為你看到了這篇全面深入的博客!在本文中,我將探討這一經(jīng)典的度量方法是怎樣進行評價的(不用擔心,我會將最大限度地減少方程式的使用)。我們將討論 BLEU 存在的一些問題,并最終如何在你自己的工作中將這些問題減到最少。
找不到什么關于NLP評價指標的有趣的圖,上面這張圖大概可以算是大海撈針的一張:Orange painted blue on a blue background. 你的NLP模型感到困擾了嗎?
開發(fā) BLEU 的初衷是用它來評價機器翻譯,因此,我們不妨先來看一個翻譯案例。這里有一句用語言 A(即「法語」)表示的文本:
J'ai mangé trois filberts.
下面是上述句子翻譯成語言 B(即「英語」)的參考翻譯句(注意,一些以英語為母語的人也將「hazelnuts」稱為「filberts」,因此下面的這兩個句子都是非常完美的翻譯。)
I have eaten three hazelnuts.
I ate three filberts.
而下面則是生成的「神經(jīng)系統(tǒng)的」翻譯。(在這個示例中的「神經(jīng)系統(tǒng)的」是指「Rachael 使用她的大腦所翻譯出來的一個句子,」但是假裝這句話是由你所訓練的網(wǎng)絡生成的。)
I ate three hazelnuts.
現(xiàn)在,這里存在一個極度困難的問題:我怎樣為這句翻譯打一個對應的數(shù)值分數(shù),僅根據(jù)給定的參考句子和神經(jīng)系統(tǒng)的輸出,來判別這個翻譯到底有多「好」?
為什么需要一個對應的數(shù)值分數(shù)?好問題!如果我們想要使用機器學習來創(chuàng)建一個機器翻譯系統(tǒng),我們需要將一個對應、真實的數(shù)字分數(shù)輸入到損失函數(shù)中。如果我們也知道潛在的最佳分數(shù),我們就能測算出兩者(真實分數(shù)和最佳分數(shù))之間的差距。這就讓我們能給正處于訓練中的系統(tǒng)一個反饋——也就是說,潛在的變化是否能通過讓分數(shù)逼近理想分數(shù)來改善翻譯——以及通過查看兩個經(jīng)過訓練的系統(tǒng)在同一個任務上的分數(shù)來對二者進行對比。
你要做的一件事情是查看輸出句子中的每一個單詞,并為這個單詞打分:如果它出現(xiàn)在了任意一個參考句子中,就給它打 1 分;如果沒有就打 0 分。然后對分數(shù)進行標準化處理,使分值都處于 0~1 之間,這樣你就可以用輸出句子中單詞的總個數(shù)來除以出現(xiàn)在某個參考翻譯句中的單詞個數(shù)。這為我們帶來了一種評價方法——一元精度(unigram precision)。
所以,針對我們前面的案例「I ate three hazelnuts」,我們至少可以在一個參考翻譯句中看到輸出句子中的所有單詞。兩個參考翻譯句中都出現(xiàn)了的單詞個數(shù)除以輸出句子中的單詞個數(shù)——4,這句翻譯得出的到的分數(shù)為 1。到目前為止一切都很棒!但是下面這個句子呢?
Three three three three.
使用同樣的度量方法,我們同樣可以給它打 1 分。這個地方的問題是:我們需要想辦法來讓正在訓練中的系統(tǒng)知道,類似于第一種句子(「I ate three hazelnuts」)的翻譯結(jié)果要比類似于第二種句子(「Three three three three」)的翻譯結(jié)果要好。
你可以通過對單詞出現(xiàn)的次數(shù)進行求交運算,基于每個單詞在任意一個參考翻譯句中出現(xiàn)的最高次數(shù)來給每個單詞打分,從而對最終的分數(shù)稍微進行調(diào)整。使用這種評價方法,我們的第一個句子(「I ate three hazelnuts」)依舊得 1 分,而第二個句子(「Three three three three」)則僅得到 0.25 分。
這就幫我們解決了「three three three three」的問題,但是在下面這個因為某些原因單詞按照字母進行了排序的句子中,這個方法沒有什么作用:
Ate hazelnuts I three
如果使用我們當前這一方法,這個句子就能得到 1 分——最佳分數(shù)!我們可以通過給相鄰的兩個單詞而不是單個單詞打分,來解決這一問題。這種方法叫做 n 元語法(n-grams),這里的 n 就是每一組的單詞個數(shù)。一元語法(Unigrams)、二元語法(bigrams)、三元語法(trigrams)和四元語法(4-grams)分別由一個、兩個、三個以及四個單詞組成。
對于這個案例,我們使用二元語法。一般而言,BLEU 分數(shù)是基于一元、二元、三元和四元精度得出來的,不過我們這里為了簡化,僅使用二元語法。同樣為了簡化,我們添加一個能讓我們知道句子開頭和結(jié)尾的句子邊界的「單詞」。遵照這些準則,這個單詞按字母排序的案例的二元語法是:
[Ate hazelnuts]
[hazelnuts I]
[I three]
如果我們在上述評價單個單詞的方法中使用這些二元語法,這個句子(「Ate hazelnuts I three」)現(xiàn)在的得分就是 0。上面的「three three three three」案例現(xiàn)在的得分也是 0 分,而不是 0.25 分;不過第一個案例「I ate three hazelnuts」的得分依舊為 1 分。不妙的是,下面的這個案例同樣也能得 1 分:
I ate.
解決該問題的一個方法是,讓目前已有的分數(shù)與句長比所有參考翻譯句都短的輸出句子的懲罰評價分數(shù)相乘。具體方式是,將這個句子與句長跟它最接近的參考翻譯句進行句長對比。這種方法就是簡短懲罰(brevity penalty)。
如果輸出句長與參考翻譯句一樣長或者更長,懲罰值就是 1。由于我們將分數(shù)乘以了這個懲罰值,因而不會改變最終的輸出得分。
另一方面,如果輸入比所有的參考翻譯句都要短,我們基于輸出句子的長度找出與它的句長最接近的參考翻譯句的長度,用后者的長度減去前者的長度,再取整個式子的 e 次方。一般來說,最短的參考翻譯句越長以及輸出句子越短,簡短懲罰值就越接近于 0.
在「I ate」的案例中,輸出句子長度為兩個單詞,而最接近的參考翻譯句是四個單詞,我們得出了簡短懲罰就是 0.36,這個值乘以我們的二元精度分數(shù) 1 后,最終的得分就降低為 0.36 了。
這種找出輸出句子與參考句子之間的 n 元語法重疊部分并對(比參考句子)更短的輸出句子施以懲罰的評價方法,稱作 BLEU(雙語互譯質(zhì)量評估輔助工具,「Bilingual evaluation understudy」的簡寫,這一全稱僅僅當人們在解釋 BLEU 這一縮寫字母時才會被使用),由 IBM 的 Kishore Papineni、Salim Roukos、Todd Ward 和 Wei-Jing Zhu 在 2002 年提出(論文查看網(wǎng)址:https://www.aclweb.org/anthology/P02-1040.pdf)。它是 NLP 領域的一種常用的評價標準,特別針對系統(tǒng)輸出一個文本串而非一個分類的任務,包括機器翻譯以及越來越多的自然語言生成任務。對于我在博文開頭提到的一個極度困難的問題——創(chuàng)建一種方法來為翻譯句子打一個對應的數(shù)值分數(shù),從而判斷這個句子有多「好」,BLEU 是一個解決方案。
然而,這個方法同樣也有嚴重的缺陷。
看到這里你或許想問「Rachael,如果這個評價標準存在這么嚴重的缺陷,那你為什么還要跟我們探討怎樣去計算它?」——主要是為了告訴你這個評價標準的合理程度。BLEU 是一個相當直觀和基礎的方法,讓你能夠通過比較機器翻譯輸出的句子與參考翻譯來對前者進行評價,這一方法對 NLP 領域產(chǎn)生了相當大的影響(雖然該方法的批評者并不認同)。
當然,BLEU 也是有很多優(yōu)勢的。對于 NLP 領域的從業(yè)者來說,該方法最大的意義在于它給研究人員所帶來的便利:
它易于計算且快速,尤其相比于人類翻譯員對模型輸出進行評估時。
它是普遍使用的,這就讓你的模型與同一任務上的基準進行比較變得十分容易。
遺憾地是,這就非常容易導致該領域的從業(yè)者過度應用該方法,即便對于某些任務來說,該方法并不是最佳的評價標準——他們也非得使用這一方法。
盡管我上面只提到單句案例,但是 BLEU 的初衷是為了成為一個語料庫級別的評價標準。提取語料庫中每個句子的 BLEU 分數(shù),然后對這些分數(shù)進行平均化處理,從而來人為增加你的實際分數(shù)——如果你使用了這種方法來試圖發(fā)表工作,你的論文肯定會被評審拒絕。
并且即使這個方法沒有被過度應用,它也存在很嚴重的限制——這個是你在選擇花大量時間來追求計算出更好的 BLEU 分數(shù)前就應該知道的。雖然現(xiàn)在已經(jīng)有很多關于 BLEU 缺點的討論,但我認為它最主要的四個缺點如下:
它不考慮文本的意思
它不直接考慮句子結(jié)構
它沒有很好地掌握詞法豐富的語言
它沒有很好映射出人類的判斷
接下來讓我們一個接一個地討論這四個缺點,讓我來告訴你為什么我認為它們是最主要的問題。
BLEU 不考慮文本的意思
對于我來說,這是為什么不要僅僅依賴于 BLEU 這一方法來評價機器翻譯(MT)系統(tǒng)的唯一一個最重要的理由。作為機器翻譯的人類用戶,我最主要的目標就是準確地理解源語言中文本的潛在意思。只要機器能正確翻譯出來源語言的意思,我也樂意接受輸出句子中的一些句法或語法錯誤。
BLEU 卻沒有對機器翻譯出來的意思進行評價,而僅僅對系統(tǒng)在參考系統(tǒng)中實現(xiàn)了精確匹配的 n 元語法進行了「獎勵」。這就意味著,將功能詞(如「an」或者「on」)翻譯得不一致與將更重要的實詞翻譯得不一致所受到的懲罰是一樣的。此外,這也意味著,當翻譯句中存在一個完全有效的同義詞時,它會僅僅因為該同義詞沒有出現(xiàn)在參考翻譯句中就受到懲罰。
讓我們來分析一個案例,這樣你就能明白為什么這是一個問題。
源語言(法語):J'ai mangé la pomme.
參考翻譯(英語): I ate the apple.
基于 BLEU 評價標準,下面這些輸出的句子被評價為「同樣糟糕」:
I consumed the apple.
I ate an apple.
I ate the potato.
作為機器翻譯系統(tǒng)的一位終端用戶,我其實認為前兩個句子翻譯得還可以。即便它們并不完全跟參考翻譯一樣,但是它們翻譯出了句子的意思。然而,第三個句子是完全不可接受的,它完全改變了源語言句子的意思。
NIST 是一個基于 BLEU 的評價方法,它通過對不匹配的 n 元句法的懲罰值進行加權來解決了這一問題。因此,在更普遍的 n 元句法(例如「of the」)上的不匹配將會得到一個更低的懲罰值,不過在更少見的 n 元句法(例如「buffalo buffalo」,案例查看 http://mentalfloss.com/article/18209/buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo-buffalo)上的不匹配則會受到更重的懲罰。不過雖然該方法解決了功能詞占太高權重的問題,它實際上也使得懲罰同義詞(例如將「walked」翻譯成「ambled」)這一問題更加嚴重,因為這些同義詞僅僅出現(xiàn)在少見的 r 元語法中,從而會得到一個更高的懲罰值。
BLEU 不直接考慮句子結(jié)構
或許你完全不敢相信「即便你將一些關鍵詞打亂完全改變句子的意思,你也能夠得出一個非常好的 BLEU 分數(shù)」這件事。也許一些句法能夠讓你相信?
句法是句子結(jié)構的一個研究課題,這一領域的研究能夠讓我們更正式地模擬句子,例如「I saw the dog with the telescope」,這句話可以表達「我使用望遠鏡去看一只狗」的意思,也可以理解為「這只狗擁有這臺望遠鏡」,這兩種意思的不同點,只能通過對句子中的單詞彼此存在不同的關系這一現(xiàn)實進行建模才能捕捉得到。
我(絕對)算不上世界上最好的語法學家,但是即便是我也知道自然語言中有很多重要的內(nèi)部語法結(jié)構,并且如果你隨機打亂句子中單詞的順序,你或者得到 1)沒有意義的一堆單詞;或者 2)意思完全不同的句子。
幸運的是,現(xiàn)在研究人員已經(jīng)在對句子結(jié)構進行自動建模的系統(tǒng)開發(fā)上做了大量工作,這個系統(tǒng)被稱作句法分析(parsing)。
遺憾的是,BLEU 完全沒有以這一研究為基礎。我可以理解你想要跳過句法分析,因為它的計算相當密集,并且每次評價輸出的時候,都要對整個輸出句子進行句法分析,這的確增加了一些工作量(即便 STM 或子樹評價標準等方法,也都是直接對參考翻譯句和輸出翻譯句的句法分析進行比較。)
然而,忽視句法結(jié)構的結(jié)果是,那些單詞順序完全紊亂的輸出和那些單詞順序與參考翻譯句更加一致的輸出所得到的分數(shù)是一樣的。
這在 Callison-Burch 等人在 2006 年發(fā)表的論文(論文地址:http://www.aclweb.org/anthology/E06-1032)中得到了很好的說明。參考翻譯句子如下:
Orejuela appeared calm as he was led to the American plane which will take him to Miami, Florida.
Orejuela appeared calm while being escorted to the plane that would take him to Miami, Florida.
Orejuela appeared calm as he was being led to the American plane that was to carry him to Miami in Florida.
Orejuela seemed quite calm as he was being led to the American plane that would take him to Miami in Florida.
機器翻譯生成的句子如下:
Appeared calm when he was taken to the American plane, which will to Miami, Florida.
這句翻譯得不太好——漏掉了人的名字,并且后面半句話中,「will」后面缺少了動詞,不過它也不是完全沒有意義。不過下面這個例子:
which will he was, when taken appeared calm to the American plane to Miami, Florida.
即便第一個輸出句子的英文翻譯明顯比第二個句子要好,但是兩個句子得到的 BLEU 分數(shù)完全相同。這是不是很有意思?
BLEU 沒有很好地掌握詞法豐富的語言
如果你想世界上的大部分人一樣,正好也使用非英語語言,你或許早就發(fā)現(xiàn)了該評價標準的這個問題:它基于單詞級別的匹配。對于形態(tài)非常豐富的語言,這種方法會很快出現(xiàn)這個問題。
詞素是語言意義中最小的單元,它們組合在一起共同來構成單詞。英語中一個案例是:「cats」中的「s」讓我們了解到貓不止一只。一些語言如土耳其語,一個單詞有許多詞素,而其他語言如英文,每個單詞的詞素往往更少。
看一下下面用希皮博語(秘魯?shù)哪撤N語言)表示的句子(這些案例來自于 Pilar Valenzuela 所寫的「Evidentiality in Shipibo-Konibo, with a comparative overview of the category in Panoan」,閱讀地址:https://books.google.com/books?hl=en&lr=&id=GWk9AAAAQBAJ&oi=fnd&pg=PA33&dq=info:q5ttUx4ZjpAJ:scholar.google.com&ots=p_ThJSA1nj&sig=TmEBbdwVxZP8lj0xt4DHmHeKZ84#v=onepage&q&f=false)。
Jawen jemara ani iki.
Jawen jemaronki ani iki.
這兩個句子都是由英文原句「her village is large」翻譯過來的,非常不錯。你或許注意到了兩個句子中間那個以「jemar-,」開頭的單詞的后半部分是不同的——二者的詞素也不同,它們表示說話者在闡述「村莊很大」這個事實時有多大的把握:前者意味著說話者就在村莊現(xiàn)場,而后者則是說話者從其他人那里聽到的「村莊很大」。
這一詞素特例被稱作「言據(jù)性制造者」(evidentiality marker),而英語則不具備這些詞素。然而在希皮博語中,你至少需要讓句子的該兩種詞素中的一種符合語法規(guī)則,因此參考翻譯句中一定會有兩種詞素中的一種。但是如果輸出翻譯生成的單詞形式跟參考翻譯句中的對應單詞的形式不完全一樣,BLEU 就會因此而懲罰該單詞... 即便兩個句子都很好地抓住了英文句的意思。
BLEU 沒有很好映射出人類的判斷
如果在我講述語法部分的時候,你的眼睛開始變得呆滯,現(xiàn)在是回神的時候了。
創(chuàng)建一個機器翻譯或聊天 AI 或問答系統(tǒng)的終極目標是什么?你最終無非是想讓人們來使用它,不是嗎?不過如果系統(tǒng)無法進行輸出有用的結(jié)果,人們就不會去使用這個系統(tǒng)。所以實際上,你想要不斷優(yōu)化你的系統(tǒng)的意義,就在于不斷加深系統(tǒng)用戶對它的喜愛程度?;旧衔覀兪褂玫慕^大部分評價標準的初衷,也都是從不同的角度來接近這個目標。
實際上,BLEU 被首次提出時,論文作者就進行了行為測試來確保這個評價標注與人類判斷相互關聯(lián)。(同時持續(xù)進行行為測試來確保二者間的關聯(lián)!)遺憾的是,當研究者進行大量實驗來比較 BLEU 分數(shù)與人類判斷時,他們發(fā)現(xiàn)這一關聯(lián)并不總是非常強,并且其他的評價標準依靠特定任務,評價方式比 BLEU 更接近人類判斷。
例如,Turian 等人的論文(2003,論文地址:https://nlp.cs.nyu.edu/publication/papers/turian-summit03eval.pdf)就對比了三種機器翻譯的評價標準,發(fā)現(xiàn) BLEU 與機人類判斷的關聯(lián)度最弱,而 F1 與人類判斷的關聯(lián)度最強;其次是 NIST。Callison-Burch 等人的論文(2006,論文地址:http://www.aclweb.org/anthology/E06-1032)則探討了專為分享任務(比如面向?qū)W術的 Kaggle 競賽,不過沒有獎金)開發(fā)的系統(tǒng),發(fā)現(xiàn)根據(jù)是否考量 BLEU 分數(shù)或者人類評估員的判斷,這些系統(tǒng)的相對排名也會非常不同。同時 Sun 的論文(2010,論文地址:http://www.lrec-conf.org/proceedings/lrec2010/pdf/87_Paper.pdf)則比較了 BLEU、GTM and TER 三種不同的評價標準,并再度發(fā)現(xiàn) BLEU 的分數(shù)與人類判斷的關聯(lián)度是最低的。
換句話說:如果你希望人們享受使用你的系統(tǒng),你就不應該僅僅專注于提高 BLEU 分數(shù)。
或許你依舊不相信,BLEU 并不總是評估工作的正確工具。好吧,實際上我要為你的質(zhì)疑精神鼓掌!然而,我并不是唯一一位不那么熱衷于使用這一評估標準的 NLP 從業(yè)者。大家可前往以下鏈接,去閱讀同行評議的論文,他們還對 BLEU 的一些其他缺點進行了更多的探討。
同行評議的論文:
Reiter 的論文(A Structured Review of the Validity of BLEU,2018)是對 ACL 論文的后設意見,它使用了 BLEU 和人類判斷來對機器翻譯進行評價,并發(fā)現(xiàn)只有專門針對機器學習系統(tǒng)的系統(tǒng)級審查,它們才會被設計在一起。
Sulem 等人的論文(BLEU is Not Suitable for the Evaluation of Text Simplification,2018)不推薦使用 BLEU 來進行文本簡化。他們發(fā)現(xiàn) BLEU 分數(shù)既沒有很好地反映語法也不能很好地反映原意的保留情況。
Novicova 等人的論文(Why We Need New Evaluation Metrics for NLG,2017)表明 BLEU 以及其他一些常用的評價標準在評估 NLG(自然語言生成)任務時,都不能很好地映射人類判斷。
Ananthakrishnan 等人的論文(Some Issues in Automatic Evaluation of English-Hindi MT: More Blues for BLEU,2006)為 BLEU 設計了幾個特定的目標,并對 BLEU 得分較好的英語/北印度語翻譯中的特定錯誤進行了全面深度的探究。
下面則是一些非同行評議的資源。(這些資源雖然無法讓那些評審你寫的論文的審稿人信服,但是能很輕易地讓你的老板信服。)
其他資源:
Amazon 研究院的 Matt Post 針對預處理對 BLEU 分數(shù)的影響進行了非常不錯的探討。論文地址:A Call for Clarity in Reporting BLEU Scores,https://arxiv.org/pdf/1804.08771.pdf
從事翻譯工作的 Kirti Vashee 在博文中,從一位翻譯者的視角探討 BLEU 所存在的問題。博文地址:http://kv-emptypages.blogspot.com/2010/03/problems-with-bleu-and-new-translation.html
Yoav Goldberg 在 2018 年的自然語言生成國際會議上帶來了一場非常棒的演講,其中就討論為什么不應該在 NLG 領域中使用 BLEU。你可以前往 https://inlg2018.uvt.nl/wp-content/uploads/2018/11/INLG2018-YoavGoldberg.pdf 搜索詞條(搜索「BLEU can be Misleading」去找到相關詞條)。特別地,他和合作作者還發(fā)現(xiàn),他們的句子簡化模型即便在增加、消除或者重復信息等情況下,依舊得到了一個很高的 BLEU 分數(shù)。
Ana Marasovi?的博文「NLP's generalization problem, and how researchers are tackling it」(查看地址:https://thegradient.pub/frontiers-of-generalization-in-natural-language-processing/)探討了訓練期間,包括 BLEU 在內(nèi)的單個評價標準是怎樣在無法捕獲模型能力的情況下去處理不同于其所接觸過的數(shù)據(jù)的。
我希望你在有文本輸出的評價系統(tǒng)中用到的最主要的東西就是「謹慎」,尤其是當你在開發(fā)某個可能最終投入生產(chǎn)的系統(tǒng)時。對于 NLP 從業(yè)者來說,思考我們的工作成果將來怎樣得到應用以及可能會出現(xiàn)什么差池是非常重要的?;叵胍幌履俏挥捎?Facebook 將一封郵件上寫著的「早上好」翻譯成了「攻擊他們」而遭到逮捕的巴勒斯坦人(新聞查看網(wǎng)址:https://www.theguardian.com/technology/2017/oct/24/facebook-palestine-israel-translates-good-morning-attack-them-arrest)!我這并不是在專門指責 Facebook,我只是想要指出 NLP 產(chǎn)品的風險可能比我們所意識到的要高。
謹慎地挑選好我們要優(yōu)化的評價標準是確保工作的系統(tǒng)真正有用的重要一環(huán)。例如,針對機器翻譯等任務,我個人認為懲罰對愿意進行了較大改變的單詞非常重要。
也就是說,現(xiàn)在有大量能夠進行自動評價的評價標準可以代替 BLEU,其中的一些對于不同的任務還會有更好的表現(xiàn),因此值得花時間去評估一下對于你的特定項目來說,最好的選擇是哪個。
現(xiàn)在有兩個比較經(jīng)典的方法,它們實際上衍生自 BLEU,專門為解決 BLEU 的某些缺點而設計:
NIST:正如我在上面所提到的,它基于 n 元語法的稀缺性對其進行加權。這就意味著對某個稀缺 n 元語法的正確匹配能提高的分數(shù),要多于對某個常見的 n 元語法的正確匹配。
ROUGE:它對 BLEU 進行了修改,聚焦于召回率而非準確率。換句話說,該方法看重的是參考翻譯句中有多少 n 元語法出現(xiàn)在輸出句中,而不是輸出句中有多少 n 元語法出現(xiàn)在參考翻譯句中。
同時,你還可以使用很多方法去評價不基于 BLEU 的序列到序列模型,其中一些方法是從機器翻譯以外的 NLP 其他細分領域中借鑒過來的。
Perplexity :該方法借鑒自信息理論領域,通常被應用于語言建模。它可以對學到的與輸入文本匹配的單詞的概率分布的好壞進行評價。
單詞錯誤率(WER):它是語音識別中常用的評價標準,在給定參考輸入的情況下,可以對輸出序列中的置換(將「the」置換為「an」)、缺失以及插入的數(shù)量進行評估。
F-score:該方法通常也叫做 F1,它是準確率(有多少預測是正確的)與召回率(做出了多少可能正確的預測)的平均值。
其他方法則是專為序列到序列任務而設計的:
STM(即子樹評價標準,subtree metric,我在上文中也提到過):它對參考翻譯句和輸出翻譯句的句法進行比較,并對存在不同句法結(jié)構的輸出進行懲罰。
METEOR :該方法類似于 BLEU,不過它增加了額外的步驟,例如考慮同義詞,并對詞干進行比較(因此「running」與「runs」會被計算為匹配)。此外,不像 BLEU 一樣,METEOR 的設計初衷非常明確:用來比較句子而不是語料庫。
TER (翻譯錯誤率):評價將原始輸出轉(zhuǎn)變?yōu)榭山邮艿倪_到人類水平的翻譯所需要的編輯量。
TERp(翻譯錯誤率 plus):是 TER 評價標準的一個擴展,它同樣考慮釋義、詞干以及同義詞。
hLEPOR :是一個為更好地翻譯土耳其語、捷克語等形態(tài)復雜語言而設計的評價標準。此外,它還考慮有助于抓住句法信息的詞性(名詞、動詞等)等其他因素。
RIBES:像 hLEPOR 一樣,該評價標準不要求語言英語一樣(形態(tài)簡單)。它專門為日語、中文等更具有信息量的亞洲國家的語言而設計,同時不需要遵循單詞邊界。
MEWR:它大概是列表中最新的評價標準了,也是最令我興奮的一種方法:它不要求參考翻譯?。▽τ跊]有大量可用的平行語料的稀缺語言來說,這真是太棒了!)它結(jié)合利用了單詞與句子向量(可以抓住句意的一些內(nèi)容)以及為翻譯打分的復雜度。
當然,在本文中,我沒有時間將研究人員們開發(fā)出來的所有自動的評價標準一一列舉出來。不過,大家可以隨心所欲地在評論區(qū)中留言你最喜歡的評價標準,并說明原因!
這幾乎就是問題的核心了。語言是復雜的,這就意味著自動評價語言是非常困難的。我個人認為,為自然語言生成開發(fā)評價標注是 NLP 領域當前最困難的問題。(實際上,NAACL 2019 上,將會有一場針對該問題的 workshop,如果大家跟我一樣感興趣的話可以持續(xù)關注 https://neuralgen.io/。)
也就是說,現(xiàn)在有一個非常好的方法來確保系統(tǒng)在完成某些任務時,實際表現(xiàn)得像人類所期望的那樣好:你可以直接詢問真人他們覺得怎么樣。人類評價過去常常被用作機器翻譯的標準,并且我認為這種評價標準依舊有可用的空間。是的,人類評價成本高且耗時長,但是至少對系統(tǒng)來說,這種方法是可投入使用的,我認為你應該至少做一輪在人類專家?guī)椭碌南到y(tǒng)評價。
不過,在你做這一輪系統(tǒng)評價之前,你或許需要使用至少一個自動的評價標準。并且我僅在以下情況下推薦你使用 BLEU:
1. 你正在評價機器翻譯;
2. 你正在整個語料庫上進行評價;
3. 你了解 BLEU 這個評價標準的局限性,并且你也準備好了接受這些局限。
否則,不妨多投入點時間去找到更適用于你的特定問題的評價標準吧。
via:https://medium.com/@rtatman/evaluating-text-output-in-nlp-bleu-at-your-own-risk-e8609665a213
如果大家對 Rachael Tatman 的 NLP 領域的研究感興趣,可以前往她的主頁:
https://www.kaggle.com/rtatman/kernels?sortBy=voteCount&group=everyone&pageSize=20&userId=1162990&tagIds=11208 雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。