pos機(jī)sn,機(jī)器翻譯的自動化測試與改進(jìn)

 新聞資訊  |   2023-07-03 12:31  |  投稿人:pos機(jī)之家

網(wǎng)上有很多關(guān)于pos機(jī)sn,機(jī)器翻譯的自動化測試與改進(jìn)的知識,也有很多人為大家解答關(guān)于pos機(jī)sn的問題,今天pos機(jī)之家(www.rcqwhg.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機(jī)sn

pos機(jī)sn

引用:

Automatic Testing and Improvement of Machine Translation Z Sun,JM Zhang,M Harman,M Papadakis,L Zhang // ICSE '20: 42nd International Conference on Software Engineering

摘要

本文提出一種測試和修復(fù)機(jī)器翻譯系統(tǒng)一致性的自動方法——TransRepair,在沒有標(biāo)準(zhǔn)翻譯的情況下,結(jié)合 metamorphic testing 蛻變測試的 mutation 突變檢測不一致的問題,然后采用 probability-reference 或 cross-reference 對翻譯進(jìn)行后處理,以灰盒或黑盒的方式修復(fù)不一致的問題。對谷歌翻譯和 Transformer 的評估表明,TransRepair 在生成翻譯一致的輸入對方面具有很高的準(zhǔn)確率 (99%),使用自動一致性度量和手動評估,發(fā)現(xiàn)谷歌翻譯和 Transformer 大約有 36%和 40%的不一致 bug。黑盒修復(fù)了平均 28%和 19%的谷歌翻譯和 Transformer 錯(cuò)誤,灰盒修復(fù)了平均 30%的 Transformer 錯(cuò)誤。手動檢查表明,TransRepair 修復(fù)的譯文在 87%的情況下提高了一致性(在 2%的情況下降低了一致性),在 27%的情況下的修復(fù)具有更好的翻譯可接受性(在 8%的情況下降低了可接受性)。

1 介紹

機(jī)器學(xué)習(xí)已經(jīng)成功地提供了通用的自然語言翻譯系統(tǒng),許多系統(tǒng)能夠?qū)崟r(shí)有效地在數(shù)千種語言之間進(jìn)行翻譯[20]。然而,這樣的翻譯系統(tǒng)并不完美,用戶體驗(yàn)到的錯(cuò)誤與傳統(tǒng)的、基于非機(jī)器學(xué)習(xí)的軟件系統(tǒng)有著不同的特點(diǎn)。

誤譯的后果早已被研究過,其影響已被證明是嚴(yán)重的。例如,據(jù)報(bào)道,臭名昭著的歷史性誤譯《烏恰利條約》第 17 條導(dǎo)致了戰(zhàn)爭。據(jù)報(bào)道,誤譯的這種真正深刻和深遠(yuǎn)的后果也正在成為國際緊張和沖突的嚴(yán)重和強(qiáng)有力的根源。

通過基于機(jī)器的翻譯器進(jìn)行誤譯的后果也被證明是嚴(yán)重的。例如,機(jī)器翻譯已經(jīng)被證明顯示出有害的公平性錯(cuò)誤,對特定的用戶群體造成了不定比例的傷害。作者已經(jīng)在廣泛使用的強(qiáng)效翻譯系統(tǒng)中發(fā)現(xiàn)了這樣的公平性缺陷的例子。圖 1 顯示了語言對(英語 → 中文)的幾個(gè)這樣的 Google 翻譯結(jié)果。從圖中可以看出,當(dāng)主語是“男”或“男學(xué)生”時(shí),Google Translate 將“good”翻譯成“hen hao de”(意思是“非常好”)。然而,有趣的是,也可悲的是,當(dāng)主語“女性”或“女性學(xué)生”時(shí),它會把“好”翻譯成“hen duo”(意思是“很多”)。

這種不一致性可能會讓用戶感到困惑,而且對計(jì)算機(jī)科學(xué)領(lǐng)域的女性研究人員也顯然是不公平的;與翻譯成“非常好”的相比,翻譯成“大量”顯然是一種更貶義的解釋。為了避免這種不公平的翻譯(在規(guī)模上),作者需要能夠自動識別和糾正這種不一致的技術(shù)。

為了解決這個(gè)問題,作者引入了一種測試和修復(fù)相結(jié)合的方法,它可以自動生成真實(shí)世界機(jī)器翻譯系統(tǒng)的測試,并自動修復(fù)測試階段發(fā)現(xiàn)的錯(cuò)誤翻譯。正如作者在本文中所展示的,作者需要重新思考傳統(tǒng)的測試和修復(fù)方法,以便將它們應(yīng)用到自然語言翻譯中。

現(xiàn)有的工作已經(jīng)測試了機(jī)器翻譯系統(tǒng)是否為語義相等的轉(zhuǎn)換提供了穩(wěn)定的翻譯,例如同義詞替換(例如 buy→purchase)或縮寫替換(例如 what’s→what is)。然而,以往的研究還沒有集中在語境相似轉(zhuǎn)換的翻譯不一致性的測試和修復(fù)上;具有相似單詞嵌入的句子之間的轉(zhuǎn)換在語料庫中共享上下文(例如簡單的基于性別的轉(zhuǎn)換,如男孩 → 女孩)。

為了解決測試問題,作者引入了一種結(jié)合變異和蛻變測試的方法。該方法通過上下文相似的變異生成變異句子,作為被測譯者的測試輸入。當(dāng)上下文相似的突變產(chǎn)生高于閾值的非突變部分的翻譯中斷時(shí),該方法會報(bào)告一個(gè)不一致的錯(cuò)誤。

傳統(tǒng)的“修復(fù)”機(jī)器學(xué)習(xí)系統(tǒng)的方法通常使用數(shù)據(jù)擴(kuò)增或算法優(yōu)化。這些方法最好的特點(diǎn)是“提高”機(jī)器學(xué)習(xí)者的整體效率,而不是針對單個(gè)錯(cuò)誤進(jìn)行特定的修復(fù);它們還需要數(shù)據(jù)收集/標(biāo)記和模型再培訓(xùn),這通常成本很高。

傳統(tǒng)的“修復(fù)”軟件錯(cuò)誤的方法是白盒,因?yàn)檫@些技術(shù)需要識別需要修改的源代碼行來實(shí)現(xiàn)修復(fù)。這種方法本質(zhì)上不能應(yīng)用于修復(fù)源代碼不可用的軟件,例如第三方代碼。

作者的見解是,通過結(jié)合系統(tǒng)重復(fù)(可能不一致)輸出的結(jié)果,作者可以實(shí)現(xiàn)一種輕量的黑盒修復(fù)技術(shù),作為一種針對特定缺陷的“后處理”階段。作者的方法是第一種以純黑盒方式修復(fù)系統(tǒng)的修復(fù)技術(shù)。作者相信黑盒修復(fù)有相當(dāng)大的潛在價(jià)值,能夠超越機(jī)器翻譯修復(fù)的具體應(yīng)用。當(dāng)軟件工程師在沒有源代碼的系統(tǒng)中遇到 bug 時(shí),這是唯一可用的方法。

作者不僅證明了黑盒修復(fù)是可行的,而且它可以擴(kuò)展到現(xiàn)實(shí)世界的強(qiáng)效翻譯系統(tǒng),比如 GoogleTranslate。作者也給出了灰盒修復(fù)的結(jié)果,其預(yù)測概率是可用的。

TransRepair 在兩個(gè)最先進(jìn)的機(jī)器翻譯系統(tǒng) Google Translate 和 Transformer 上進(jìn)行了評估。作者特別關(guān)注兩種最流行的語言:英語和漢語之間的翻譯。這些語言在全世界都有超過 10 億的使用者。然而,在中國,只有 1000 萬人(不到總?cè)丝诘?1%)能夠通過英語進(jìn)行交流。由于能說兩種語言的人太少了,機(jī)器翻譯往往很有吸引力,有時(shí)是必要的和不可避免的。

結(jié)果表明,TransRepair 能夠有效地生成有效的測試輸入,準(zhǔn)確率為 99%;2)TransRepair 根據(jù)學(xué)習(xí)到的閾值自動報(bào)告不一致錯(cuò)誤,Google Translate/Transformer 的平均 F-測度為 0.82/0.88;3)Google Translate 和 Transformer 都存在不一致錯(cuò)誤。自動一致性度量和手動檢查顯示,googletranslate 在作者生成的測試輸入中有大約 36%的翻譯不一致。4) 黑盒修復(fù)減少了 28%和 19%的谷歌翻譯和 Transformer 的錯(cuò)誤。灰盒減少了 30%的 Transformer 故障。人工檢查表明,修復(fù)后的譯文在 87%的情況下提高了一致性(僅降低了 2%),27%的翻譯接受度更好(僅 8%較差)

2 方法2.1 概述

TransRepair 的概覽如圖 2 所示。從圖中可以看出,TransRepair 基于以下三個(gè)主要步驟自動測試和修復(fù)機(jī)器翻譯的不一致性:

1) 自動生成測試輸入。此步驟生成轉(zhuǎn)換后的句子(測試輸入)用于一致性測試。對于每個(gè)句子,TransRepair 通過上下文相似的詞替換進(jìn)行句子突變。生成的突變候選者使用語法檢查進(jìn)行過濾。通過語法檢查的突變體被視為被測機(jī)器翻譯的最終測試輸入。詳情見第 2.2 節(jié)。

2) 自動生成測試預(yù)言。這一步介紹了 oracle 的生成,這些 oracle 用于識別不一致的翻譯(bug)。在這一步中,作者依賴于翻譯輸入和翻譯輸出之間的變形關(guān)系。其思想是,翻譯輸出的原語和其上下文相似的變異詞應(yīng)具有一定程度的一致性模變異詞。作者使用相似性度量來度量翻譯輸出之間的一致性程度作為測試預(yù)言。第 2.3 節(jié)詳細(xì)介紹了這一步驟。作者研究了四個(gè)相似性度量,在第 3.2 節(jié)中進(jìn)行了描述。

3) 自動不一致修復(fù)。自動修復(fù)不一致的翻譯步驟。TransRepair 采用黑盒和灰盒兩種方法,根據(jù)突變體中的最佳翻譯對原譯文進(jìn)行轉(zhuǎn)換。作者探討了兩種選擇最佳譯文的方法,一種使用預(yù)測概率,另一種使用交叉引用。第 2.4 節(jié)給出了該步驟的詳細(xì)信息。

2.2 自動測試輸入生成

生成輸入的過程包含以下步驟:

2.2.1 上下文相似度語料庫的建立。進(jìn)行上下文相似的單詞替換的關(guān)鍵步驟是,找到一個(gè)可以被其他相似單詞替換、且不影響句子結(jié)構(gòu)的單詞,替換生成的新句應(yīng)與原句的翻譯一致。使用詞向量衡量相似度,兩個(gè)單詞 w1 和 w2 之間的相似度為 sim(w1, w2),vx 為詞 x 的向量。

為了構(gòu)建一個(gè)可靠的上下文相似語料庫,采用 GloVe、SpaCy 兩種詞向量模型,并使用其訓(xùn)練結(jié)果的交集。當(dāng)兩個(gè)單詞在兩個(gè)模型中的相似度都超過 0.9 時(shí),則認(rèn)為它們是上下文相似的,將這對單詞放入上下文相似語料庫中,使用這種方法總共收集了 131,933 個(gè)單詞對。

2.2.2 翻譯輸入變異。下面作者分別介紹單詞替換和結(jié)構(gòu)過濾。

單詞替換。對于原句中的每個(gè)單詞,搜索上述語料庫看是否存在匹配單詞,如果找到了一個(gè)匹配的詞,就替換并生成突變句。與原句相比,每個(gè)突變句包含一個(gè)替換了的單詞,為了減少生成無法解析的突變的可能性,只替換名詞、形容詞和數(shù)字。

結(jié)構(gòu)過濾。生成的突變句可能無法解析,因?yàn)樘鎿Q的單詞可能不適合句子的上下文,例如“one”和“another”是上下文相似的單詞,“a good one”可以解析,而“a good another”不能。因此附加約束檢測突變句的合理性,使用基于 Stanford Parser 的 structural filtering,假設(shè)原句為 s = w1, w2, …,wi, …, wn,突變句為 s' = w1, w2, …, w'i, …, wn 中,對于每個(gè)句子,Parser 輸出 l(wi),即每個(gè)單詞的 POS tag,如果 l(wi) ≠ l(w'i),說明句法結(jié)構(gòu)發(fā)生了變化,所以將 s' 從候選中刪除。

作者手動檢查生成的輸入的質(zhì)量,并在第 4 節(jié)中報(bào)告結(jié)果。

2.3 自動生成測試腳本

測試時(shí)使用 oracle 增強(qiáng)生成的輸入,假設(shè)句子中沒有變化的部分保留了充分性和流利性(充分性指譯文是否具有相同的意義、信息是否丟失、增多或失真;流利性是指輸出是否流暢,語法是否正確),將源句 s 中的 w 替換為 w' 生成 s',兩個(gè)句子的翻譯分別為 t(s) 和 t(s'),希望在計(jì)算 t(s) 和 t(s') 的相似性時(shí)忽略單詞 w 和 w' 的翻譯,但是要去掉它們的影響并不容易,因?yàn)樗鼈兛赡軙淖冋麄€(gè)句子的翻譯,且很難準(zhǔn)確地將 w 和 w' 映射到譯文中與其對應(yīng)的詞。

為了繞過這個(gè)問題,計(jì)算 t(s) 和 t(s') 子序列的相似度,并使用最大相似度近似 t(s) 和 t(s') 的一致性,算法 1 展示了這個(gè)過程。對于 t(s) 和 t(s'),首先使用 GNU Wdiff 獲得 difference slices(第 1 行),GNU Wdiff 以單詞為基礎(chǔ)比較句子,對比較兩個(gè)文本中有幾個(gè)單詞被更改非常有效,Wdiff 可以將兩個(gè)句子“A B C D F”和“B B C G H F”的區(qū)分切片分別表示為“A”, “D”和“B”, “G H”。將 t(s) 和 t(s') 的區(qū)別切片保存為集合 Bs 和 Bs',然后每次從譯文中刪除一個(gè)切片(第 5 行和第 9 行),每個(gè)切片對應(yīng)一個(gè)子序列,例如“A B C D F”有兩個(gè)子序列:“B C D F”(刪除“A”)和“A B C F”(刪除“D”)。新的 t(s) / t(s') 子序列被添加到集合 To / Tm 中(第 6 行和第 10 行)。對于集合 To 中的每個(gè)元素,計(jì)算它與集合 Tm 中的每個(gè)元素的相似度(第 15 行),得到 |To| ? |Tm| 的相似性得分,其中 |To| 和 |Tm| 是 To 和 Tm 的大小,使用最高相似度作為最終一致性評分的結(jié)果(第 16 行)。這種方法減少了突變詞的影響,有助于選擇不一致的上界,即使相似度最大的兩個(gè)子序列包含被替換的單詞,其他句子部分的相似度也較差,所以這種情況下不太可能被替換的單詞所影響(導(dǎo)致出現(xiàn)假正例)。有關(guān)實(shí)驗(yàn)設(shè)置和閾值設(shè)置結(jié)果的詳細(xì)信息在第 4.2 節(jié)中討論。此外,作者通過人工檢查來評估一致性度量的有效性。這些結(jié)果見第 4.2 節(jié)。

2.4 不一致性自動修復(fù)

作者首先介紹了整體修復(fù)過程,及兩種突變翻譯排序方法(probability and cross-reference)。

2.4.1 整體修復(fù)過程

首先修復(fù)原句的翻譯,然后尋找通過一致性測試的突變句的翻譯,算法 2 為修復(fù)過程。對于已經(jīng)被發(fā)現(xiàn)有不一致問題的 t(s),生成一組突變句,并得到它們的譯文 t(s1), t(s2), …, t(sn),這些突變句及其翻譯,連同原句及其翻譯,被放入字典 T 中(第 1 行),然后使用預(yù)測概率或交叉引用對 T 中的元素降序排序,結(jié)果存入 OrderedList(第 2 行),接下來使用單詞對齊獲得 s 和 t 之間的映射單詞 a(s)(第 3 行),單詞對齊是一種自然語言處理技術(shù),當(dāng)且僅當(dāng)兩個(gè)單詞具有翻譯關(guān)系時(shí)它們才會被連接起來。特別地,使用 Liu et al. 提出的技術(shù),一種用于無監(jiān)督單詞對齊的 latent-variable log-linear 模型。然后檢查 OrderedList 中的句子對 (sr, t(sr)) 是否可以用于修復(fù)原始翻譯,按照排序順序,直到找到一個(gè)可以接受不一致性修復(fù)的突變句翻譯。如果 sr 是原句 (sr == s),意味著原始譯文被認(rèn)為是比其他突變譯文更好的選擇,所以不動它(第 6-8 行);否則,繼續(xù)對 s1 和 t(s1) 進(jìn)行同樣的操作。變量 w_i,: w_i^r 表示 s, sr 中替換的單詞,通過對齊(第 9-12 行)得到翻譯后的單詞 t(w_i),: t(w_i^r)

單詞對齊不是 100%準(zhǔn)確。如果作者直接用 t(wir)代替 t(wi)來映射翻譯,可能會導(dǎo)致語法錯(cuò)誤或上下文不匹配。作者采用以下策略來判斷替換是否可以接受。1) 作者約束 wi,wir,t(wir),t(wi)必須屬于同一類型(即數(shù)字或非數(shù)字)(第 13-15 行)。2) 如果被替換的單詞是非數(shù)字類型,作者將應(yīng)用 Stanford Parser 來檢查替換是否會導(dǎo)致結(jié)構(gòu)變化(第 17-21 行)。

在修復(fù)變異輸入(第 22 行)的翻譯時(shí),作者得到原句子的修復(fù)結(jié)果(第 23 行),然后檢查翻譯解決方案候選是否與原句子的修復(fù)翻譯(第 24-26 行)一致。如果沒有,作者繼續(xù)檢查其他候選修復(fù)。

2.4.2基于概率的翻譯排名。對于一個(gè)句子 s 和及其變體 S = s1, s2, …, sn,t(s), t(si) 分別為 s, si 的翻譯,記錄每個(gè) t(si) 的翻譯概率,并選擇最高的一個(gè)作為候選翻譯,使用單詞對齊生成最終修復(fù)后的翻譯。

這是一種灰盒修復(fù)方法,既不需要訓(xùn)練數(shù)據(jù),也不需要訓(xùn)練算法的源代碼,只需要機(jī)器翻譯提供的預(yù)測概率,但該概率信息為方法的內(nèi)部屬性,通常不會提供給最終用戶。

2.4.3基于對照的翻譯排名。對于一個(gè)句子 s 及其變體 S = s1, s2, …, sn,t(s), t(si) 分別為 s, si 的翻譯,計(jì)算 t(s), t(s1), t(s2), ..., t(sn) 之間的相似度,并使用將最佳譯文(平均相似度得分最大)譯文與其他譯文映射并修復(fù)之前的譯文。這是一種黑盒修復(fù)方法,只需要翻譯器的輸出。

3 實(shí)驗(yàn)設(shè)置3.1 研究問題

作者從評估 TransRepair 生成有效且一致的測試輸入(可用于一致性測試)的能力開始作者的研究。因此,作者要求:

RQ1:TransRepair 的測試輸入有多精確?

作者通過隨機(jī)抽樣一些候選對并(手動)檢查它們是否有效來回答這個(gè)問題。這個(gè)問題的答案確保了 TransRepair 確實(shí)生成了適合于一致性檢查的輸入。

鑒于作者發(fā)現(xiàn)了 TransRepair 生成有效測試對的證據(jù),作者將注意力轉(zhuǎn)向這些對在檢測一致性錯(cuò)誤方面的有效性問題。因此,作者要求:

RQ2:TransRepair 的缺陷揭示能力是什么?

為了回答 RQ2,作者根據(jù)相似性度量計(jì)算一致性得分,作為測試 oracle(確定是否檢測到 bug)。為了評估 TransRepair 揭示錯(cuò)誤的能力,作者手動檢查一個(gè)翻譯樣本,并將手動檢查結(jié)果與自動測試結(jié)果進(jìn)行比較。

在對錯(cuò)誤揭示進(jìn)行了實(shí)驗(yàn)之后,作者評估了 TransRepair 的修復(fù)能力,以查看它修復(fù)不一致錯(cuò)誤的能力。因此,作者要求:

RQ3:TransRepair 的缺陷修復(fù)能力是什么?

為了回答這個(gè)問題,作者記錄修復(fù)了多少不一致的 bug(通過一致性度量和手動檢查來評估)。作者還手動檢查由 TransRepair 修復(fù)的翻譯,并檢查它們是否提高了翻譯的一致性和質(zhì)量。

3.2 一致性度量

作者探討了四種廣泛采用的度量不一致性的相似性度量。為了便于說明,作者使用 t1 來表示原始翻譯輸入的翻譯輸出;作者使用 t2 來表示變異的翻譯輸入的翻譯輸出。

基于 LCS 的度量。通過 t1、t2 之間的一個(gè)最長公共子序列的標(biāo)準(zhǔn)化長度度量其相似性:

LCS 是一個(gè)計(jì)算 t1、t2 之間以相同的相對順序出現(xiàn)的一個(gè)最長公共子序列的函數(shù),例如序列“ABCDGH”和“AEDFHR”的 LCS 是長為 3 的“ADH”。

基于 ED 的度量?;?t1、t2 之間的編輯距離,編輯距離是計(jì)算將一個(gè)字符串轉(zhuǎn)換為另一個(gè)所需的最少操作量以衡量二者差距的方法。標(biāo)準(zhǔn)化編輯距離使用以下公式,其中 ED 是計(jì)算 t1、t2 之間編輯距離的函數(shù)。

基于 tf-idf 的度量。tf-idf 可以用來衡量詞頻方面的相似性,單詞 w 的權(quán)重為:

其中 C 是一個(gè)文本語料庫(本文使用 Transformer 的訓(xùn)練數(shù)據(jù)),|C| 是句子總數(shù),fw 是包含詞 w 的句子數(shù)量。句子使用詞袋法表示,忽略語法和詞序。向量的每個(gè)維數(shù)都與它的權(quán)值 widf 相乘,計(jì)算 t1、t2 加權(quán)向量的余弦相似度作為最終的 tf-idf 一致性得分。

基于 BLEU 的度量。

計(jì)算句子匹配子序列的個(gè)數(shù)、pn(n-gram precision,n 為子序列長度)和過短翻譯懲罰因子(c 為 t(si) 的長度,r 為 t(s) 的長度),BLEU 的公式如下,其中 wn = 1/N(N = 4)為 pn 的權(quán)值。

由于 BLEU 是 unidirectional 單向的,BLEU(s, s') ≠ BLEU(s', s),使用較高的分?jǐn)?shù)來作為 s、s' 之間的相似度,這與算法 1 中的想法是一致的:獲得一致性的一個(gè)上界,避免出現(xiàn)翻譯錯(cuò)誤的假正例。

3.3 機(jī)器翻譯

作者的實(shí)驗(yàn)同時(shí)考慮了面向工業(yè)和最新研究的機(jī)器翻譯器。一個(gè)是 Google Translate[15](在 results 部分縮寫為 GT),一個(gè)由 Google 開發(fā)的廣泛使用的機(jī)器翻譯服務(wù)。另一個(gè)是 Transformer,一個(gè)由研究團(tuán)體研究的翻譯家。

作者使用 Google translate,因?yàn)樗且粋€(gè)強(qiáng)迫作者進(jìn)行黑盒修復(fù)的系統(tǒng)的例子;作者無法訪問訓(xùn)練數(shù)據(jù),也無法訪問翻譯系統(tǒng)的代碼,因此,根據(jù)定義,任何改進(jìn)只能通過黑盒方法來實(shí)現(xiàn)。當(dāng)然,它也是一個(gè)有產(chǎn)品質(zhì)量的主流翻譯系統(tǒng),使翻譯結(jié)果更加有趣。

作者使用默認(rèn)設(shè)置來訓(xùn)練 Transformer。Transformer 是基于三個(gè)數(shù)據(jù)集進(jìn)行訓(xùn)練的:CWMT 數(shù)據(jù)集[7]包含 7086820 個(gè)平行句,UN 數(shù)據(jù)集包含 15886041 個(gè)平行句,新聞評論數(shù)據(jù)集以 252777 個(gè)平行句作為訓(xùn)練數(shù)據(jù)集。驗(yàn)證數(shù)據(jù)(幫助調(diào)整超參數(shù))也來自新聞評論,包含 2002 個(gè)平行句。Transformer 運(yùn)行深度學(xué)習(xí) lib 庫。為了得到一個(gè)更有效的翻譯,作者訓(xùn)練了 500000 個(gè)時(shí)代的模型。

3.4 試驗(yàn)裝置

根據(jù)之前的機(jī)器翻譯研究,作者使用了來自新聞評論數(shù)據(jù)集的測試集來測試 Google Translate 和 Transformer。測試集包含 2001 個(gè)平行句,不同于訓(xùn)練集和驗(yàn)證集。作者實(shí)驗(yàn)中的漢語句子是以漢字的形式出現(xiàn)的。設(shè)置。

作者的實(shí)驗(yàn)是在 Ubuntu16.04 上進(jìn)行的,它有 256GBRAM 和四個(gè) Intel E5-2620V4 CPU(2.10GHz),總共包含 32 個(gè)內(nèi)核。作者使用的神經(jīng)網(wǎng)絡(luò)都是在一個(gè) Nvidia Titan RTX(24gb 內(nèi)存)上訓(xùn)練的。

4 結(jié)果

本節(jié)報(bào)告了回答作者研究問題的結(jié)果。

4.1 輸入生成的有效性(RQ1)

作者從回答 RQ1 開始。對于每個(gè)測試句子,作者生成突變體,并檢查它們是否通過了結(jié)構(gòu)過濾(詳見 2.2.2 節(jié))。特別是,對于每個(gè)句子,作者生成多達(dá) 5 個(gè)通過過濾器的突變體(作者在第 5 節(jié)中研究了突變體數(shù)量的影響)。在 2001 個(gè)測試句子中,生成了 21960 個(gè)變異候選,其中 17268 個(gè)被結(jié)構(gòu)過濾掉。在剩下的實(shí)驗(yàn)中,作者使用剩下的 4692 個(gè)突變體,它們與 1323 個(gè)句子配對,作為測試輸入。

為了手動評估這些測試輸入是否有資格檢測翻譯不一致,作者隨機(jī)抽取了 400 個(gè)。前兩位作者手動檢查輸入的有效性,即突變體中被替換的單詞是否會導(dǎo)致語法錯(cuò)誤,以及突變體是否應(yīng)該與原句子有一致的翻譯。這個(gè)驗(yàn)證步驟揭示了三個(gè)無效的變種: 1) He was a kind spirit with a big heart: kind → sort; 2) Two earthquakes with magnitude 4.4 and 4.5 respectively: Two → Six; 3) It is in itself a great shame: great → good。

400 個(gè)樣本中剩下的 397 個(gè)符合兩個(gè)有效性標(biāo)準(zhǔn),表明準(zhǔn)確率為 99%。作者的結(jié)論是,作者的兩個(gè)策略的交集兩個(gè) word2vec 模型,并使用斯坦福解析器作為過濾器有很高的概率產(chǎn)生有效的測試句子。400 個(gè)突變體和人工評估結(jié)果可以在 TransRepair 主頁上找到。

在下一節(jié)中,作者使用 4692 個(gè)突變體(來自 1323 個(gè)原始句子)來檢驗(yàn)機(jī)器翻譯系統(tǒng)的測試翻譯一致性。

回答 RQ1:TransRepair 對于生成語法正確且翻譯一致的測試句子有很好的精確度(99%)。

4.2 跨修復(fù)的不一致揭示能力(RQ2)

本節(jié)回答了 RQ2,即研究了 TransRepair 的不一致揭示能力。為了回答這個(gè)問題,作者研究了:1)突變與原始翻譯之間的一致性度量值;2)翻譯不一致的人工檢查結(jié)果。作者還探討了一致性度量和手動檢查在評估不一致性方面的接近程度。

一致性度量值。作者使用 googletranslate 和 Transformer 對 4692 個(gè)生成的輸入進(jìn)行翻譯,并與原始句子的翻譯進(jìn)行比較,遵循算法 1 的步驟。對于每個(gè)突變體,作者計(jì)算出四個(gè)一致性得分,每一個(gè)對應(yīng)于一個(gè)相似性度量(見第 3.2 節(jié))。

圖 3 顯示了低于 1.0 的一致性得分的柱狀圖。從圖中可以看出,不同的度量值具有不同的分布,但總體而言,所有四個(gè)度量報(bào)告了大量的翻譯(即約占總翻譯量的 47%),分?jǐn)?shù)低于 1.0,表明翻譯存在不一致性。表 1 為四種度量不同閾值的不一致翻譯個(gè)數(shù),可以看到即使在一致性閾值較寬松時(shí),bug 依然存在。

圖 3:指標(biāo)得分直方圖。

表 1:在 1.0 和 0.6 之間的不同閾值下,報(bào)告的不一致錯(cuò)誤數(shù)量。

人工檢查不一致。隨機(jī)抽取 300 個(gè)突變句的翻譯,其中有兩個(gè)無法解析,使用剩下的 298 個(gè)翻譯進(jìn)行分析。作者手動檢查每個(gè)突變句和原句的翻譯,當(dāng)滿足下面任何一個(gè)條件時(shí),就報(bào)告一個(gè)不一致的錯(cuò)誤:除了突變句的替代詞,這兩個(gè)翻譯 1) 有不同的含義;2) 有不同的 tones 聲調(diào);3) 專有名詞使用了不同的字符表示。手動檢查發(fā)現(xiàn)了谷歌翻譯、Transformer 中 107 個(gè)(36%)、140(47%) 個(gè)翻譯不一致錯(cuò)誤。

比較度量分?jǐn)?shù)和手動一致性評估結(jié)果,將 298 篇帶有人工標(biāo)記的譯文分手動分成兩組,一組為一致的翻譯,另一組為不一致的翻譯,檢查每組的度量分?jǐn)?shù)。圖 4 顯示了結(jié)果,虛線左右兩側(cè)的點(diǎn)分別為人工標(biāo)記為一致/不一致翻譯的度量分?jǐn)?shù),左側(cè)大部分點(diǎn)(82.2%)的得分為 1.0,左側(cè)平均分 0.99 高于右側(cè)平均分 0.86,表明度量和手動檢查的翻譯一致性傾向于一致。值得注意的是,左側(cè)有一些得分相對較低的度量,而右側(cè)有一些較高的度量,說明使用度量來評估一致性存在假正例和假負(fù)例,詳細(xì)分析如下:

圖 4:指標(biāo)得分與人工檢查翻譯一致性的比較

_閾值學(xué)習(xí)_。度量分?jǐn)?shù)是連續(xù)的值,為了自動報(bào)告不一致性,需要為每個(gè)度量選擇閾值,使度量判斷結(jié)果接近手動檢查。從谷歌翻譯中隨機(jī)抽取 100 個(gè)翻譯,手動標(biāo)記為一致或不一致,然后根據(jù)標(biāo)記選擇閾值(從 0.8 到 1.0,步長 0.01),使得每個(gè)相似度度量的 F 值最大。這種方法確定的 LCS、ED、tf-idf、BLEU 的最佳閾值分別為 0.963、0.963、0.999、0.906,F(xiàn) 值分別為 0.81、0.82、0.79、0.82。當(dāng)度量分?jǐn)?shù)低于 so-identify 閾值時(shí),就報(bào)告一個(gè)不一致錯(cuò)誤。為了了解所選閾值在多大程度上捕獲了一致性和不一致性之間的邊界,分別使用谷歌翻譯和 Transformer 對之前采樣的 298 個(gè)翻譯對閾值進(jìn)行測試,結(jié)果如表 2 所示。

表 2:不一致揭示的精度/回報(bào)率。

假正例 FP 表示閾值判斷翻譯不一致、但人工檢查是一致的,假負(fù)例 FN 表示閾值判斷翻譯是一致的、但人工檢查是不一致的。從表中可以看出,F(xiàn)P 和 FN 的比例都在 10%以下,這是可以接受的。手動檢查 FP 和 FN 后,發(fā)現(xiàn) FN 可能是由一個(gè)小的字符差異、但具有不同的含義或語氣引起的,例如,一個(gè)突變句翻譯有一個(gè)額外的 er(意思是“but”),但它不出現(xiàn)原始翻譯中,人工檢查認(rèn)為這是不一致的,而度量評價(jià)則相反。當(dāng)兩個(gè)翻譯中有許多含義相同的不同詞語,可能會出現(xiàn) FP,例如,中文短語“尚未”和“還沒”都是“not yet”的意思,但每個(gè)短語的漢字完全不同。測試時(shí) FP 可能帶來的害處在于有可能使翻譯變得更差。

不一致問題的總數(shù)。閾值確定后用于 4592 個(gè)輸入的翻譯(100 個(gè)已經(jīng)用于閾值學(xué)習(xí)),檢查其中有多少個(gè)低于閾值,結(jié)果表明,Transformer 不一致的翻譯結(jié)果是--LCS: 1917 (42%); ED:1923 (42%); tf-idf: 2102 (46%); BLEU:1857 (40%)??偟膩碚f,大約五分之二的翻譯低于選擇的一致性閾值;谷歌翻譯不一致的翻譯結(jié)果是--LCS: 1708 (37%); ED:1716 (37%); tf-idf: 1875 (41%); BLEU:1644 (36%),這表明在一致性方面,谷歌翻譯比 Transformer 要稍好一些。

回答 RQ2:這些指標(biāo)的 F 度量為 0.82/0.88 在檢測 Google Translate/Transformer 的不一致錯(cuò)誤時(shí)。度量和人工檢查都顯示 googletranslate 在 TransRepair 測試輸入上有大約 36%的翻譯不一致。

4.3 錯(cuò)誤修復(fù)能力(RQ3)

_4.3.1**通過指標(biāo)評估改進(jìn)_。作者將作者的修復(fù)方法應(yīng)用于所有不一致的翻譯,并檢查有多少翻譯可以用作者的方法修復(fù)。對于每個(gè)句子,作者生成 16 個(gè)用于修復(fù)的突變體(作者在第 5 節(jié)中研究了要修復(fù)的突變體數(shù)量的影響)。

表 3 顯示了結(jié)果,其中每個(gè)單元格包含修復(fù)方法修復(fù)的不一致錯(cuò)誤的數(shù)量和比例?!案怕省绷斜硎靖怕蕝⒖迹ɑ液行迯?fù))的結(jié)果;“交叉引用”列表示交叉引用(黑盒修復(fù))的結(jié)果;對于 Google translate,由于灰盒方法不適用,作者只顯示黑盒方法的結(jié)果。

表 3:修復(fù)的 bug 數(shù)量和比例

從表中可以看出,TransRepair 平均減少了 googletranslate 中黑盒方法的 28%的 bug。對于 Transformer 模型,作者可以看到灰盒方法修復(fù)了 30%的缺陷,黑盒方法修復(fù)了 19%到 20%的錯(cuò)誤。實(shí)驗(yàn)結(jié)果表明,灰盒和黑盒方法在修復(fù)不一致性錯(cuò)誤方面是有效的。

4.3.2 人工評價(jià)的改進(jìn)。項(xiàng)目修復(fù)研究通常包括一個(gè)手動評估過程、,以驗(yàn)證他們的發(fā)現(xiàn)。按照類似的做法,前兩位作者(手動)檢查了先前標(biāo)記的 298 個(gè)抽樣翻譯的修復(fù)結(jié)果。作者的目標(biāo)是通過修正譯文的一致性來檢查譯文的一致性。由于作者的修復(fù)也可以提高翻譯的可接受性,作者也會檢查這些變化是否會帶來翻譯可接受性的提高。對于基于交叉引用的修復(fù),作者僅手動評估 LCS 度量,因?yàn)樽髡撸ㄏ惹埃┑慕Y(jié)果顯示其他度量中的結(jié)果相似。

在 298 個(gè)句子對中,有 113/136 的句子在 Google Translate/Transformer 上被報(bào)告為翻譯不一致。因此,作者的修復(fù)針對的是所有這些句子對,包括原始句子和變體的翻譯?;诟怕实男迯?fù)方法最終改變了 58 對(共 136 對),Google Translate/Transformer 的基于交叉引用的修復(fù)方法最終改變了 39/27 對(共 113/136 對)。對于被 TransRepair 修改過的翻譯對,手動比較:修復(fù)前后的翻譯一致性 & 修復(fù)前后翻譯的可接受性(原句和突變句),考慮充分性和流利性,手動給出“Improved”、“Unchanged”或“Decreased”標(biāo)簽,結(jié)果見表 4。

表 4:基于人工檢查的改進(jìn)

前四行是谷歌翻譯,其余是 Transformer 翻譯,帶有“overall”的行表示原句和突變句的翻譯接受度都有提高,帶有“original”/“mutant”的行表示原句/突變句的翻譯修復(fù)結(jié)果。TransRepair 在提高翻譯一致性方面有很好的效果,平均 87%的谷歌翻譯和 Transformer 翻譯的一致性提高了,只有 3 個(gè)翻譯一致性降低,其中一個(gè)原句的翻譯得到了改進(jìn),而突變句沒有,因此修復(fù)后原句改進(jìn)的翻譯與突變句未改進(jìn)的翻譯不匹配;剩下兩個(gè)是由于修復(fù)后原句變差、突變句翻譯沒變。

修復(fù)的主要目的是提高翻譯一致性,翻譯可接受性的提高是額外的“bonus”,從表 4 中可以發(fā)現(xiàn),修復(fù)約提高了四分之一(27%)的翻譯可接受性,而 8%的可接受性下降,手動檢查可接受性下降的原因是,有時(shí)修復(fù)方法可能會為了一致性而犧牲質(zhì)量。

5 擴(kuò)展分析和討論

本節(jié)提供進(jìn)一步的細(xì)節(jié)和分析。

修復(fù)的翻譯示例。表 5 給出了作者改進(jìn)誤譯的一些例子。第一列是翻譯輸入;第二列顯示原始翻譯輸出(轉(zhuǎn)換為拼音),其中斜體字解釋了誤譯部分;最后一列顯示了作者改進(jìn)的翻譯。

表 5:修復(fù)后的譯文實(shí)例

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

圖 5:Transformer 不同訓(xùn)練數(shù)據(jù)大小下的不一致性 bug 比例

數(shù)據(jù)擴(kuò)增需要模型再訓(xùn)練,在當(dāng)前的配置下使用 100%的數(shù)據(jù)訓(xùn)練模型需要 19 個(gè)小時(shí),且數(shù)據(jù)收集、標(biāo)記和處理也需要時(shí)間,總之很少有證據(jù)表明數(shù)據(jù)擴(kuò)增是這個(gè)問題的好的解決方案。與之相比,TransRepair 具有以下優(yōu)點(diǎn):1) 黑盒不需要源代碼和訓(xùn)練數(shù)據(jù),灰盒只需要預(yù)測概率;2) 不需要額外的數(shù)據(jù)及模型再訓(xùn)練,成本更低;3) 更加靈活,可以修復(fù)特定的 bug 而不需要改動其他格式良好的翻譯。

TransRepair**效率**。TransRepair 的消耗包括測試和修理。在作者目前的實(shí)驗(yàn)配置下(詳見第 3 節(jié)),平均測試時(shí)間為每句 0.97s;基于概率的方法平均修復(fù)時(shí)間為 2.68s,基于交叉引用的方法平均修復(fù)時(shí)間為 2.93s。因此,在當(dāng)前的實(shí)驗(yàn)配置下,當(dāng)使用 TransRepair 優(yōu)化實(shí)時(shí)在線機(jī)器翻譯時(shí),對于被認(rèn)為沒有錯(cuò)誤的句子,最終用戶只需不到 1 秒就可以收到最終翻譯。對于一個(gè)被認(rèn)為有缺陷的句子,不到 4 秒(測試和修復(fù))就可以得到最終的翻譯。

突變數(shù)的影響。作者在不一致性測試和修復(fù)過程中生成突變體。對于測試/修復(fù)過程,作者的默認(rèn)配置為每個(gè)句子最多生成 5/16 個(gè)變種。為了研究突變體的數(shù)量對測試和修復(fù)性能的影響,作者用 1 到 3 個(gè)突變體進(jìn)行測試生成,用 4 個(gè)或 8 個(gè)突變體進(jìn)行修復(fù)。然后,作者比較發(fā)現(xiàn)的不一致性 bug 的數(shù)量和作者的方法修復(fù)的 bug 的數(shù)量。對于修復(fù),由于篇幅原因,本文僅給出灰盒修復(fù)法的結(jié)果,如表 6 所示。完整的結(jié)果可以在作者的主頁上找到[2]。作者觀察到,在測試過程中,使用更多的突變體有助于揭示更多的不一致性錯(cuò)誤。修復(fù)也是一樣,但是在修復(fù)過程中使用 4 個(gè)突變體也有可接受的效果。

表 6:不同突變體數(shù)量的檢測和修復(fù)的 bug 數(shù)量。

應(yīng)用場景。TransRepair 可以端到端應(yīng)用。給定一個(gè)翻譯輸入和一個(gè)機(jī)器翻譯,作者的方法將自動測試和修復(fù)翻譯輸出,并給最終用戶一個(gè)新的翻譯輸出。

6 相關(guān)工作

軟件測試研究通常針對傳統(tǒng)的(基于非機(jī)器學(xué)習(xí)的)軟件系統(tǒng)。然而,最近機(jī)器學(xué)習(xí)在現(xiàn)實(shí)世界中重要性的提升,導(dǎo)致了機(jī)器學(xué)習(xí)軟件測試研究活動水平的相應(yīng)提高[50]。同時(shí),對于機(jī)器學(xué)習(xí)系統(tǒng)來說,軟件修復(fù)的概念和技術(shù)還相對較少。在這一部分中,作者回顧了作者提出的機(jī)器翻譯測試和修復(fù)與先前測試和修復(fù)機(jī)器翻譯系統(tǒng)的工作之間的關(guān)系,這些工作主要集中在翻譯健壯性上。

翻譯魯棒性測試。為了測試翻譯的魯棒性,研究人員探索了測試輸入上的擾動如何影響翻譯。Heigold 等人[21]研究了通過字符交換、字置亂和字符翻轉(zhuǎn)生成的三種字符級噪聲測試輸入。他們發(fā)現(xiàn),機(jī)器翻譯系統(tǒng)對那些不會對人類構(gòu)成挑戰(zhàn)的微擾句子非常敏感。Belinkov 和 Bisk[3]也有類似的結(jié)論,不僅是關(guān)于合成噪音,還有自然噪音(自然發(fā)生的錯(cuò)誤,如打字錯(cuò)誤和拼寫錯(cuò)誤)。為了有更多不同的測試用例來進(jìn)行健壯性測試,趙等使用了生成對抗網(wǎng)絡(luò)(Generative atterial Networks,GANs)。他們將輸入的句子投影到一個(gè)潛在的空間,然后用這個(gè)空間搜索接近輸入的測試句。

這些工作的目標(biāo)是健壯性測試。測試輸入是合成錯(cuò)誤或自然發(fā)生的錯(cuò)誤。測試神諭通常是 BLEU 分?jǐn)?shù),它與人類的預(yù)言有界限。作者的方法以翻譯的一致性為目標(biāo),通過上下文相似的單詞替換來生成一致的測試輸入,而不是涉及錯(cuò)誤。作者的方法在測試過程中也不需要人類的神諭。

孫和周提出了機(jī)器翻譯的變形關(guān)系。作者的工作和他們的工作有兩個(gè)主要的區(qū)別:1)他們的工作只涉及測試;作者也進(jìn)行修復(fù);2)他們的測試輸入生成只是在“喜歡”或“討厭”之前替換人名,在他們之后替換類型;作者的方法相對來說更加詳盡。

翻譯魯棒性改進(jìn)。為了提高翻譯的魯棒性,以往的工作主要依賴于數(shù)據(jù)擴(kuò)充,即在訓(xùn)練數(shù)據(jù)中加入噪聲數(shù)據(jù)并對模型進(jìn)行再訓(xùn)練。一些工作使用模型無關(guān)的數(shù)據(jù)生成(也稱為黑盒數(shù)據(jù)生成)。Heigold 等人、Belinkov 和 Bisk 以及 Sperber 等人使用合成噪聲來保持模型。Karpukhin 等人評估了合成噪聲百分比對訓(xùn)練集的影響。

有些工作使用依賴模型的數(shù)據(jù)生成(白盒數(shù)據(jù)生成)。Ebrahimi 等人引入了一種依賴于原子翻轉(zhuǎn)操作的方法。此操作通過根據(jù)輸入向量的梯度交換字符來生成測試。Cheng 等人[5]提出了一種基于梯度的方法,通過詞替換生成對抗句。

通過優(yōu)化學(xué)習(xí)算法也在改進(jìn)。Belinkov 和 Bisk[3]提出在網(wǎng)絡(luò)中使用結(jié)構(gòu)不變的合成噪聲表示。他們發(fā)現(xiàn) CNN 的人物形象比其他人更強(qiáng)大。Cheng 等人通過在訓(xùn)練集中加入一個(gè)新的分量來識別噪聲,引入了穩(wěn)定性訓(xùn)練。這個(gè)組件減少了噪聲的影響,并在進(jìn)行同義擾動時(shí)產(chǎn)生更穩(wěn)定的翻譯。

這些先前的方法旨在提高所有翻譯的整體健壯性,而不是修復(fù)特定的誤譯。

7 結(jié)論

在本文中,作者提出了 TransRepair,這是第一個(gè)自動測試和改進(jìn)上下文相似翻譯一致性的方法。TransRepair 獲取一個(gè)句子并應(yīng)用上下文相似的變異來生成稍微改變(突變)的句子,用于測試機(jī)器翻譯系統(tǒng)。測試是通過翻譯和比較原文和變異句來完成的。為了判斷一致性,TransRepair 計(jì)算翻譯子序列的相似度。當(dāng)上下文相似的突變產(chǎn)生高于閾值的干擾時(shí),TransRepair 認(rèn)為這是一個(gè)潛在的缺陷。除了測試,TransRepair 還以黑盒或灰盒的方式自動修復(fù)不一致之處,后者根據(jù)變異句子的翻譯對翻譯進(jìn)行后期處理。

本文由南京大學(xué)軟件學(xué)院 2020 級碩士王擎宇翻譯轉(zhuǎn)述。

以上就是關(guān)于pos機(jī)sn,機(jī)器翻譯的自動化測試與改進(jìn)的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機(jī)sn的知識,希望能夠幫助到大家!

轉(zhuǎn)發(fā)請帶上網(wǎng)址:http://www.rcqwhg.com/news/77602.html

你可能會喜歡:

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 babsan@163.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。