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