訂閱
糾錯(cuò)
加入自媒體

TransRepair:自動(dòng)測(cè)試及修復(fù)神經(jīng)網(wǎng)絡(luò)翻譯模型的不一致性問(wèn)題

機(jī)器翻譯是計(jì)算語(yǔ)言學(xué)的一個(gè)分支,是人工智能的終極目標(biāo)之一,具有重要的科學(xué)研究?jī)r(jià)值。同時(shí),機(jī)器翻譯又具有重要的實(shí)用價(jià)值。隨著經(jīng)濟(jì)全球化及互聯(lián)網(wǎng)的飛速發(fā)展,機(jī)器翻譯技術(shù)在促進(jìn)政治、經(jīng)濟(jì)、文化交流等方面起到越來(lái)越重要的作用。
機(jī)器翻譯雖已廣泛應(yīng)用于各個(gè)領(lǐng)域,但現(xiàn)有神經(jīng)網(wǎng)絡(luò)測(cè)試工作均未在自然語(yǔ)言處理的模型上進(jìn)行過(guò)測(cè)試。然而,研究發(fā)現(xiàn)在這些翻譯模型中存在不一致性問(wèn)題。發(fā)表于 ICSE 2020 的論文《Automatic Testing and Improvement of Machine Translation》率先對(duì)機(jī)器翻譯進(jìn)行測(cè)試,并提出了一種用于檢測(cè)及修復(fù)神經(jīng)網(wǎng)絡(luò)翻譯器中所存在的不一致性問(wèn)題的方法——TransRepair。
TransRepair 結(jié)合了變異測(cè)試及蛻變測(cè)試兩種方法以檢測(cè)不一致性問(wèn)題。對(duì)于所檢測(cè)的問(wèn)題,提出了一種基于概率的后處理方法以對(duì)該問(wèn)題進(jìn)行修復(fù)。本期 AI Time PHD 直播間,我們很榮幸地邀請(qǐng)到論文的一作,北京大學(xué)孫澤宇博士為大家分享他們的研究成果!

孫澤宇,北京大學(xué)信息科學(xué)技術(shù)學(xué)院 2019 級(jí)博士生,導(dǎo)師為張路教授,指導(dǎo)老師為熊英飛研究員。主要研究方向?yàn)槌绦蜃詣?dòng)生成和軟件測(cè)試,已在相關(guān)領(lǐng)域的國(guó)際頂級(jí)會(huì)議如ICSE, AAAI, IJCAI, FSE等發(fā)表多篇論文。

研究動(dòng)機(jī):機(jī)器翻譯的不一致性

隨著機(jī)器學(xué)習(xí)的發(fā)展,多用途的自然語(yǔ)言翻譯系統(tǒng)相繼問(wèn)世,許多系統(tǒng)能夠?qū)崟r(shí)有效地在數(shù)千種語(yǔ)言之間進(jìn)行翻譯。然而事實(shí)上,大多翻譯系統(tǒng)并不完美,存在大量翻譯上的錯(cuò)誤。
研究發(fā)現(xiàn),人為的誤譯可能造成非常嚴(yán)重的后果,成為改變歷史的導(dǎo)火索。例如,19 世紀(jì)末著名的《烏查里條約》誤譯事件。由于意大利對(duì)條約第17條錯(cuò)誤的翻譯,最終導(dǎo)致了意大利和埃塞俄比亞兩國(guó)爆發(fā)戰(zhàn)爭(zhēng)。

同樣,機(jī)器翻譯的誤譯也會(huì)造成困惑及誤解。例如,將傳統(tǒng)小吃“四喜烤夫”翻譯成“roasted husband”,將“小心滑倒”譯為“slip and fall down carefully”等。更為嚴(yán)重地,出現(xiàn)不公平性現(xiàn)象,對(duì)特定的用戶群體造成傷害。圖1顯示了幾個(gè)語(yǔ)言對(duì)(英語(yǔ)→中文)的谷歌翻譯結(jié)果,當(dāng)主語(yǔ)是“men”或“male students”,將“good”翻譯成“很好的 (very good)”,然而當(dāng)主語(yǔ)是“women”或“female students”時(shí),則將“good”翻譯成“很多 (a lot)”,這種不一致性不僅會(huì)讓用戶感到困惑,而且顯然對(duì)計(jì)算機(jī)科學(xué)領(lǐng)域的女性研究人員也不公平。與進(jìn)行“very good”研究相比,進(jìn)行“a lot”研究明顯是一種更具貶義的解釋。為了避免這種翻譯錯(cuò)誤,需要能夠自動(dòng)識(shí)別和糾正不一致性的技術(shù)。

圖1 翻譯不一致產(chǎn)生的公平問(wèn)題的示例

方法:如何解決不一致性問(wèn)題

針對(duì)機(jī)器翻譯中的不一致性問(wèn)題,傳統(tǒng)機(jī)器學(xué)習(xí)系統(tǒng)的修復(fù)方法一般是使用數(shù)據(jù)增強(qiáng)或算法優(yōu)化,提高機(jī)器學(xué)習(xí)的整體性能,不針對(duì)單個(gè)錯(cuò)誤進(jìn)行特定修復(fù);同時(shí)還需要數(shù)據(jù)收集、標(biāo)注和模型的再訓(xùn)練,通常來(lái)說(shuō)成本很高。

另外,傳統(tǒng)修復(fù)軟件錯(cuò)誤的方法是白盒,當(dāng)識(shí)別出需要修改的源代碼后才能進(jìn)行修復(fù),但這種方法不能用于修復(fù)源代碼不可用的軟件,比如第三方代碼。

圖2 不一致性問(wèn)題的傳統(tǒng)修復(fù)方法

為改進(jìn)傳統(tǒng)修復(fù)方法存在的缺陷,孫澤宇等提出了一種用于檢測(cè)及修復(fù)神經(jīng)網(wǎng)絡(luò)翻譯器中所存在的不一致性問(wèn)題的組合方法——TransRepair,結(jié)合變異測(cè)試及蛻變測(cè)試的方法對(duì)不一致性問(wèn)題進(jìn)行測(cè)試,并通過(guò)黑盒和灰盒兩種方式自動(dòng)修復(fù)在測(cè)試階段發(fā)現(xiàn)的翻譯錯(cuò)誤。

圖3 TransRepair方法

TransRepair 測(cè)試及修復(fù)概述

圖4 TransRepair測(cè)試及修復(fù)不一致性問(wèn)題概述

圖4為 TransRepair 測(cè)試及修復(fù)的過(guò)程概述,主要有以下三個(gè)步驟:

1) 自動(dòng)測(cè)試輸入生成生成用于一致性測(cè)試的句子,對(duì)每個(gè)句子使用上下文相似的單詞進(jìn)行替換,生成的候選變異句使用語(yǔ)法檢查進(jìn)行篩選,通過(guò)篩選的變異句將作為被測(cè)機(jī)器翻譯的輸入。

2) 自動(dòng)測(cè)試oracle生成根據(jù)翻譯輸入和輸出之間的蛻變關(guān)系,生成oracle以識(shí)別不一致的翻譯,思想是,翻譯原句與其上下文相似變異句的輸出應(yīng)具有一定程度的一致性。使用相似度指標(biāo)衡量翻譯輸出和oracle的一致性程度。

3)自動(dòng)不一致性修復(fù)自動(dòng)修復(fù)具有不一致性的翻譯,有黑盒和灰盒兩種方法,根據(jù)變異中最優(yōu)的翻譯對(duì)原譯文進(jìn)行轉(zhuǎn)換?紤]兩種最優(yōu)翻譯的選擇方法,一種是預(yù)測(cè)概率法,另一種是交叉引用法。

一、測(cè)試

測(cè)試第一步是構(gòu)建上下文相似語(yǔ)料庫(kù)。進(jìn)行上下文相似的單詞替換的關(guān)鍵步驟是,找到一個(gè)可以被其他相似單詞替換、且不影響句子結(jié)構(gòu)的單詞,替換生成的新句應(yīng)與原句的翻譯一致,單詞之間的相似度通過(guò)詞向量進(jìn)行衡量。

為了構(gòu)建一個(gè)可靠的上下文相似語(yǔ)料庫(kù),采用 GloVe、SpaCy 兩種詞向量模型,并使用其訓(xùn)練結(jié)果的交集。當(dāng)兩個(gè)單詞在兩個(gè)模型中的相似度都超過(guò) 0.9 時(shí),則認(rèn)為它們是上下文相似的,將這對(duì)單詞放入上下文相似語(yǔ)料庫(kù)中,得到變異算子。以圖 5 的句子為例,通過(guò)計(jì)算詞向量相似度,衡量句中“Male”和“Female”能否進(jìn)行替換?在設(shè)定的標(biāo)準(zhǔn)下,答案是可替換的。

圖5 上下文相似語(yǔ)料庫(kù)構(gòu)建

構(gòu)建好上下文相似語(yǔ)料庫(kù)后,下一步進(jìn)行翻譯輸入變異。首先是單詞替換,對(duì)于原句中的每個(gè)單詞,在語(yǔ)料庫(kù)中搜索是否存在匹配單詞,如果找到了一個(gè)匹配的詞,替換并生成變異句。同一單詞在不同語(yǔ)境下意思或許有所不同,但上述替換只考慮了整體語(yǔ)境,忽視了具體情況下的差異,因此替換的單詞可能不適合新句子的上下文,導(dǎo)致生成的變異句無(wú)法解析。

為解決此類解析失敗問(wèn)題,提出通過(guò)附加約束來(lái)檢測(cè)變異句的合理性,基于 Stanford Parser 進(jìn)行結(jié)構(gòu)過(guò)濾。分析得到原句和變異句的語(yǔ)法樹(shù),假設(shè)二者結(jié)構(gòu)相同,則認(rèn)為對(duì)原句的變異在結(jié)構(gòu)上是合理的,反之不合理,從候選中刪除。

圖6 翻譯輸入變異

通過(guò)對(duì)原句和變異句的翻譯結(jié)果進(jìn)行比較,測(cè)試翻譯是否具有一致性。具體做法是對(duì)原句和變異句的譯文進(jìn)行切片,刪除部分得到不同子序列并分別計(jì)算它們的相似度。相似度計(jì)算主要采用 Tf-idf, BLEU, LCS, ED 等幾種常用方法,使用最高相似度作為最終一致性評(píng)分的結(jié)果。當(dāng)最終相似度小于設(shè)定的閾值時(shí),認(rèn)定為翻譯不一致。

圖7 翻譯不一致性測(cè)試

二、黑盒和灰盒修復(fù)

發(fā)現(xiàn)問(wèn)題就要解決問(wèn)題,下一步工作是對(duì)識(shí)別出的不一致性問(wèn)題進(jìn)行修復(fù)。同樣以之前的句子為例,在將“Male”改為“Female”之后,對(duì)“good”的翻譯從“很好”變?yōu)榱恕昂芏唷,那么究竟哪個(gè)翻譯是正確的還是都不正確?首先任取一句話作為原句,然后通過(guò)上述測(cè)試同樣的方法對(duì)句子進(jìn)行變異,生成變異句并進(jìn)行翻譯。使用預(yù)測(cè)概率(Predictive probability)或交叉引用(cross reference)對(duì)原句及變異句的譯文進(jìn)行排序,排序高者為候選目標(biāo)翻譯,再利用詞對(duì)齊(Word Alignment)尋找單詞之間的映射關(guān)系,生成最終修復(fù)后的翻譯結(jié)果。

其中,利用預(yù)測(cè)概率意在選擇出現(xiàn)概率最高的譯文成為修復(fù)依據(jù),是一種灰盒修復(fù)方法,既不需要訓(xùn)練數(shù)據(jù),也不需要訓(xùn)練算法的源代碼,只需要機(jī)器翻譯提供的預(yù)測(cè)概率。而交叉引用是計(jì)算譯文之間的相似度,兩兩比較后找到與其他句子相似度最高的譯文,是一種黑盒修復(fù)方法,只需要翻譯器的輸出。

圖8 不一致性問(wèn)題修復(fù)

圖9 詞對(duì)齊后的翻譯結(jié)果

TransRepair的模型評(píng)估

TransRepair能夠自動(dòng)檢測(cè)和修復(fù)機(jī)器翻譯中的不一致性問(wèn)題,那么模型性能究竟如何,還需要進(jìn)行評(píng)估。對(duì)TransRepair的評(píng)估主要圍繞以下三個(gè)問(wèn)題:

問(wèn)題一

TransRepair測(cè)試輸入的準(zhǔn)確度?

問(wèn)題二

TransRepair發(fā)現(xiàn)bug的能力?

問(wèn)題三

TransRepair修復(fù)bug的能力?

評(píng)估實(shí)驗(yàn)主要通過(guò)谷歌翻譯和 Transformer 模型兩個(gè)機(jī)器翻譯器進(jìn)行,測(cè)試數(shù)據(jù)集為News Commentary。對(duì)于每個(gè)測(cè)試句,生成變異句并檢查它們是否通過(guò)了結(jié)構(gòu)過(guò)濾。2001 個(gè)測(cè)試句一共生成 21960 個(gè)變異句,過(guò)濾掉 17268 句保留 4692 句作為測(cè)試輸入,隨機(jī)抽取 400 句手動(dòng)評(píng)估它們是否能夠檢測(cè)翻譯不一致性,查看變異句的替換詞是否會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤、變異體的翻譯是否與原句一致。這一驗(yàn)證步驟發(fā)現(xiàn)了三個(gè)無(wú)效的變異句,其余的 397 句符合有效性標(biāo)準(zhǔn),準(zhǔn)確率為 99%,說(shuō)明 Transformer 有很高的概率能夠產(chǎn)生有效的測(cè)試句。

圖10 測(cè)試輸入準(zhǔn)確度

使用谷歌翻譯和 Transformer 對(duì) 4692 個(gè)變異句進(jìn)行翻譯,將它們與原始句的翻譯進(jìn)行比較,計(jì)算每個(gè)變異句的四種一致性得分,圖 11 右邊為一致性得分直方圖,四種度量都發(fā)現(xiàn)了大量得分低于 1.0 的翻譯,表明翻譯存在不一致性。圖 11 左邊為四種度量不同閾值下的不一致翻譯個(gè)數(shù),可以看到即使在一致性閾值較寬松時(shí),bug 依然存在。

圖11 一致性指標(biāo)值

手動(dòng)檢查變異句和原句的翻譯,不一致錯(cuò)誤的條件為:1)有不同的含義;2) 有不同的情感色彩;3)專有名詞使用了不同的字符表示。最后結(jié)果如圖12,可以看出Transformer 在發(fā)現(xiàn) bug 問(wèn)題上能夠有很好地表現(xiàn)。

圖12 Transformer發(fā)現(xiàn)bug能力的實(shí)驗(yàn)結(jié)果

對(duì)所有不一致的翻譯進(jìn)行修復(fù),檢驗(yàn) Transformer 對(duì) bug 的修復(fù)能力,修復(fù)結(jié)果對(duì)比見(jiàn)圖 13。黑盒平均減少了谷歌翻譯 28% 的 bug,灰盒修復(fù)了 Transformer 30% 的 bug、黑盒修復(fù)了 19% 到 20% 的 bug,表明灰盒和黑盒方法是修復(fù)不一致缺陷的有效方法。

圖13 Transformer不一致性修復(fù)結(jié)果

手動(dòng)比較修復(fù)前后的翻譯一致性&修復(fù)前后翻譯的可接受性(原句和變異句),考慮充分性和流利性,手動(dòng)出“Improved”、“Unchanged”或“Decreased”標(biāo)簽,結(jié)果見(jiàn)圖 14。表明 TransRepair 在提高翻譯一致性方面有很好的效果,平均 87% 的谷歌翻譯和 Transformer 翻譯的一致性提高了。

圖14 Transformer修復(fù)bug能力的實(shí)驗(yàn)結(jié)果

擴(kuò)展分析和討論

之前的工作采用了數(shù)據(jù)增強(qiáng)的方法提高機(jī)器學(xué)習(xí)模型的魯棒性,對(duì)于源代碼已知的翻譯器,訓(xùn)練數(shù)據(jù)增強(qiáng)是增加翻譯一致性的方案之一,因此設(shè)計(jì)實(shí)驗(yàn)研究添加更多的訓(xùn)練數(shù)據(jù)是否會(huì)產(chǎn)生更好的翻譯一致性。使用 10%, 20%, ..., 90% 的原始訓(xùn)練數(shù)據(jù)分別訓(xùn)練  Transformer,結(jié)果見(jiàn)圖 15,當(dāng)比例在 0.7 到 1.0 之間時(shí),沒(méi)有觀察到 bug 下降的趨勢(shì),這說(shuō)明增加訓(xùn)練數(shù)據(jù)對(duì)改善翻譯不一致性的效果有限。

圖15 數(shù)據(jù)增強(qiáng)實(shí)驗(yàn)結(jié)果

在不一致檢測(cè)和修復(fù)過(guò)程中都會(huì)產(chǎn)生變異句,為了研究變異句的數(shù)量如何影響檢測(cè)和修復(fù)性能,比較不同設(shè)置下不一致的 bug 數(shù)和修復(fù)的 bug 數(shù),灰盒修復(fù)結(jié)果如圖 16 所示?梢钥吹皆跈z測(cè)時(shí),使用更多的變異句有助于發(fā)現(xiàn)和修復(fù)更多不一致的問(wèn)題。

圖16 不同變異句數(shù)量比較結(jié)果

TransRepair 可以應(yīng)用到端到端模型上,給定輸入和翻譯器,將自動(dòng)測(cè)試和修復(fù)翻譯輸出,并向用戶提供新的翻譯輸出。圖 17 是 TransRepair 的幾個(gè)具體使用示例。

圖17 TransRepair使用示例

總結(jié)來(lái)說(shuō),TransRepair 通過(guò)黑盒和灰盒方法,在自動(dòng)測(cè)試和修復(fù)機(jī)器翻譯不一致性問(wèn)題上具有很好的表現(xiàn)。不需要源代碼,不需要訓(xùn)練數(shù)據(jù),能夠修復(fù)特定錯(cuò)誤,不僅成本較低,還具有高效、實(shí)時(shí)、靈活等優(yōu)點(diǎn)。

圖片標(biāo)題

點(diǎn)擊閱讀原文,下載本次報(bào)告!
喜歡本篇內(nèi)容,請(qǐng)分享、點(diǎn)贊、在看

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)