網(wǎng)上有很多關(guān)于pos機sn,機器翻譯的自動化測試與改進的知識,也有很多人為大家解答關(guān)于pos機sn的問題,今天pos機之家(m.afbey.com)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
1、pos機sn
pos機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ù)機器翻譯系統(tǒng)一致性的自動方法——TransRepair,在沒有標準翻譯的情況下,結(jié)合 metamorphic testing 蛻變測試的 mutation 突變檢測不一致的問題,然后采用 probability-reference 或 cross-reference 對翻譯進行后處理,以灰盒或黑盒的方式修復(fù)不一致的問題。對谷歌翻譯和 Transformer 的評估表明,TransRepair 在生成翻譯一致的輸入對方面具有很高的準確率 (99%),使用自動一致性度量和手動評估,發(fā)現(xiàn)谷歌翻譯和 Transformer 大約有 36%和 40%的不一致 bug。黑盒修復(fù)了平均 28%和 19%的谷歌翻譯和 Transformer 錯誤,灰盒修復(fù)了平均 30%的 Transformer 錯誤。手動檢查表明,TransRepair 修復(fù)的譯文在 87%的情況下提高了一致性(在 2%的情況下降低了一致性),在 27%的情況下的修復(fù)具有更好的翻譯可接受性(在 8%的情況下降低了可接受性)。
1 介紹機器學(xué)習(xí)已經(jīng)成功地提供了通用的自然語言翻譯系統(tǒng),許多系統(tǒng)能夠?qū)崟r有效地在數(shù)千種語言之間進行翻譯[20]。然而,這樣的翻譯系統(tǒng)并不完美,用戶體驗到的錯誤與傳統(tǒng)的、基于非機器學(xué)習(xí)的軟件系統(tǒng)有著不同的特點。
誤譯的后果早已被研究過,其影響已被證明是嚴重的。例如,據(jù)報道,臭名昭著的歷史性誤譯《烏恰利條約》第 17 條導(dǎo)致了戰(zhàn)爭。據(jù)報道,誤譯的這種真正深刻和深遠的后果也正在成為國際緊張和沖突的嚴重和強有力的根源。
通過基于機器的翻譯器進行誤譯的后果也被證明是嚴重的。例如,機器翻譯已經(jīng)被證明顯示出有害的公平性錯誤,對特定的用戶群體造成了不定比例的傷害。作者已經(jīng)在廣泛使用的強效翻譯系統(tǒng)中發(fā)現(xiàn)了這樣的公平性缺陷的例子。圖 1 顯示了語言對(英語 → 中文)的幾個這樣的 Google 翻譯結(jié)果。從圖中可以看出,當主語是“男”或“男學(xué)生”時,Google Translate 將“good”翻譯成“hen hao de”(意思是“非常好”)。然而,有趣的是,也可悲的是,當主語“女性”或“女性學(xué)生”時,它會把“好”翻譯成“hen duo”(意思是“很多”)。
這種不一致性可能會讓用戶感到困惑,而且對計算機科學(xué)領(lǐng)域的女性研究人員也顯然是不公平的;與翻譯成“非常好”的相比,翻譯成“大量”顯然是一種更貶義的解釋。為了避免這種不公平的翻譯(在規(guī)模上),作者需要能夠自動識別和糾正這種不一致的技術(shù)。
為了解決這個問題,作者引入了一種測試和修復(fù)相結(jié)合的方法,它可以自動生成真實世界機器翻譯系統(tǒng)的測試,并自動修復(fù)測試階段發(fā)現(xiàn)的錯誤翻譯。正如作者在本文中所展示的,作者需要重新思考傳統(tǒng)的測試和修復(fù)方法,以便將它們應(yīng)用到自然語言翻譯中。
現(xiàn)有的工作已經(jīng)測試了機器翻譯系統(tǒng)是否為語義相等的轉(zhuǎn)換提供了穩(wěn)定的翻譯,例如同義詞替換(例如 buy→purchase)或縮寫替換(例如 what’s→what is)。然而,以往的研究還沒有集中在語境相似轉(zhuǎn)換的翻譯不一致性的測試和修復(fù)上;具有相似單詞嵌入的句子之間的轉(zhuǎn)換在語料庫中共享上下文(例如簡單的基于性別的轉(zhuǎn)換,如男孩 → 女孩)。
為了解決測試問題,作者引入了一種結(jié)合變異和蛻變測試的方法。該方法通過上下文相似的變異生成變異句子,作為被測譯者的測試輸入。當上下文相似的突變產(chǎn)生高于閾值的非突變部分的翻譯中斷時,該方法會報告一個不一致的錯誤。
傳統(tǒng)的“修復(fù)”機器學(xué)習(xí)系統(tǒng)的方法通常使用數(shù)據(jù)擴增或算法優(yōu)化。這些方法最好的特點是“提高”機器學(xué)習(xí)者的整體效率,而不是針對單個錯誤進行特定的修復(fù);它們還需要數(shù)據(jù)收集/標記和模型再培訓(xùn),這通常成本很高。
傳統(tǒng)的“修復(fù)”軟件錯誤的方法是白盒,因為這些技術(shù)需要識別需要修改的源代碼行來實現(xiàn)修復(fù)。這種方法本質(zhì)上不能應(yīng)用于修復(fù)源代碼不可用的軟件,例如第三方代碼。
作者的見解是,通過結(jié)合系統(tǒng)重復(fù)(可能不一致)輸出的結(jié)果,作者可以實現(xiàn)一種輕量的黑盒修復(fù)技術(shù),作為一種針對特定缺陷的“后處理”階段。作者的方法是第一種以純黑盒方式修復(fù)系統(tǒng)的修復(fù)技術(shù)。作者相信黑盒修復(fù)有相當大的潛在價值,能夠超越機器翻譯修復(fù)的具體應(yīng)用。當軟件工程師在沒有源代碼的系統(tǒng)中遇到 bug 時,這是唯一可用的方法。
作者不僅證明了黑盒修復(fù)是可行的,而且它可以擴展到現(xiàn)實世界的強效翻譯系統(tǒng),比如 GoogleTranslate。作者也給出了灰盒修復(fù)的結(jié)果,其預(yù)測概率是可用的。
TransRepair 在兩個最先進的機器翻譯系統(tǒng) Google Translate 和 Transformer 上進行了評估。作者特別關(guān)注兩種最流行的語言:英語和漢語之間的翻譯。這些語言在全世界都有超過 10 億的使用者。然而,在中國,只有 1000 萬人(不到總?cè)丝诘?1%)能夠通過英語進行交流。由于能說兩種語言的人太少了,機器翻譯往往很有吸引力,有時是必要的和不可避免的。
結(jié)果表明,TransRepair 能夠有效地生成有效的測試輸入,準確率為 99%;2)TransRepair 根據(jù)學(xué)習(xí)到的閾值自動報告不一致錯誤,Google Translate/Transformer 的平均 F-測度為 0.82/0.88;3)Google Translate 和 Transformer 都存在不一致錯誤。自動一致性度量和手動檢查顯示,googletranslate 在作者生成的測試輸入中有大約 36%的翻譯不一致。4) 黑盒修復(fù)減少了 28%和 19%的谷歌翻譯和 Transformer 的錯誤?;液袦p少了 30%的 Transformer 故障。人工檢查表明,修復(fù)后的譯文在 87%的情況下提高了一致性(僅降低了 2%),27%的翻譯接受度更好(僅 8%較差)
2 方法2.1 概述TransRepair 的概覽如圖 2 所示。從圖中可以看出,TransRepair 基于以下三個主要步驟自動測試和修復(fù)機器翻譯的不一致性:
1) 自動生成測試輸入。此步驟生成轉(zhuǎn)換后的句子(測試輸入)用于一致性測試。對于每個句子,TransRepair 通過上下文相似的詞替換進行句子突變。生成的突變候選者使用語法檢查進行過濾。通過語法檢查的突變體被視為被測機器翻譯的最終測試輸入。詳情見第 2.2 節(jié)。
2) 自動生成測試預(yù)言。這一步介紹了 oracle 的生成,這些 oracle 用于識別不一致的翻譯(bug)。在這一步中,作者依賴于翻譯輸入和翻譯輸出之間的變形關(guān)系。其思想是,翻譯輸出的原語和其上下文相似的變異詞應(yīng)具有一定程度的一致性模變異詞。作者使用相似性度量來度量翻譯輸出之間的一致性程度作為測試預(yù)言。第 2.3 節(jié)詳細介紹了這一步驟。作者研究了四個相似性度量,在第 3.2 節(jié)中進行了描述。
3) 自動不一致修復(fù)。自動修復(fù)不一致的翻譯步驟。TransRepair 采用黑盒和灰盒兩種方法,根據(jù)突變體中的最佳翻譯對原譯文進行轉(zhuǎn)換。作者探討了兩種選擇最佳譯文的方法,一種使用預(yù)測概率,另一種使用交叉引用。第 2.4 節(jié)給出了該步驟的詳細信息。
2.2 自動測試輸入生成生成輸入的過程包含以下步驟:
2.2.1 上下文相似度語料庫的建立。進行上下文相似的單詞替換的關(guān)鍵步驟是,找到一個可以被其他相似單詞替換、且不影響句子結(jié)構(gòu)的單詞,替換生成的新句應(yīng)與原句的翻譯一致。使用詞向量衡量相似度,兩個單詞 w1 和 w2 之間的相似度為 sim(w1, w2),vx 為詞 x 的向量。
為了構(gòu)建一個可靠的上下文相似語料庫,采用 GloVe、SpaCy 兩種詞向量模型,并使用其訓(xùn)練結(jié)果的交集。當兩個單詞在兩個模型中的相似度都超過 0.9 時,則認為它們是上下文相似的,將這對單詞放入上下文相似語料庫中,使用這種方法總共收集了 131,933 個單詞對。
2.2.2 翻譯輸入變異。下面作者分別介紹單詞替換和結(jié)構(gòu)過濾。
單詞替換。對于原句中的每個單詞,搜索上述語料庫看是否存在匹配單詞,如果找到了一個匹配的詞,就替換并生成突變句。與原句相比,每個突變句包含一個替換了的單詞,為了減少生成無法解析的突變的可能性,只替換名詞、形容詞和數(shù)字。
結(jié)構(gòu)過濾。生成的突變句可能無法解析,因為替換的單詞可能不適合句子的上下文,例如“one”和“another”是上下文相似的單詞,“a good one”可以解析,而“a good another”不能。因此附加約束檢測突變句的合理性,使用基于 Stanford Parser 的 structural filtering,假設(shè)原句為 s = w1, w2, …,wi, …, wn,突變句為 s' = w1, w2, …, w'i, …, wn 中,對于每個句子,Parser 輸出 l(wi),即每個單詞的 POS tag,如果 l(wi) ≠ l(w'i),說明句法結(jié)構(gòu)發(fā)生了變化,所以將 s' 從候選中刪除。
作者手動檢查生成的輸入的質(zhì)量,并在第 4 節(jié)中報告結(jié)果。
2.3 自動生成測試腳本測試時使用 oracle 增強生成的輸入,假設(shè)句子中沒有變化的部分保留了充分性和流利性(充分性指譯文是否具有相同的意義、信息是否丟失、增多或失真;流利性是指輸出是否流暢,語法是否正確),將源句 s 中的 w 替換為 w' 生成 s',兩個句子的翻譯分別為 t(s) 和 t(s'),希望在計算 t(s) 和 t(s') 的相似性時忽略單詞 w 和 w' 的翻譯,但是要去掉它們的影響并不容易,因為它們可能會改變整個句子的翻譯,且很難準確地將 w 和 w' 映射到譯文中與其對應(yīng)的詞。
為了繞過這個問題,計算 t(s) 和 t(s') 子序列的相似度,并使用最大相似度近似 t(s) 和 t(s') 的一致性,算法 1 展示了這個過程。對于 t(s) 和 t(s'),首先使用 GNU Wdiff 獲得 difference slices(第 1 行),GNU Wdiff 以單詞為基礎(chǔ)比較句子,對比較兩個文本中有幾個單詞被更改非常有效,Wdiff 可以將兩個句子“A B C D F”和“B B C G H F”的區(qū)分切片分別表示為“A”, “D”和“B”, “G H”。將 t(s) 和 t(s') 的區(qū)別切片保存為集合 Bs 和 Bs',然后每次從譯文中刪除一個切片(第 5 行和第 9 行),每個切片對應(yīng)一個子序列,例如“A B C D F”有兩個子序列:“B C D F”(刪除“A”)和“A B C F”(刪除“D”)。新的 t(s) / t(s') 子序列被添加到集合 To / Tm 中(第 6 行和第 10 行)。對于集合 To 中的每個元素,計算它與集合 Tm 中的每個元素的相似度(第 15 行),得到 |To| ? |Tm| 的相似性得分,其中 |To| 和 |Tm| 是 To 和 Tm 的大小,使用最高相似度作為最終一致性評分的結(jié)果(第 16 行)。這種方法減少了突變詞的影響,有助于選擇不一致的上界,即使相似度最大的兩個子序列包含被替換的單詞,其他句子部分的相似度也較差,所以這種情況下不太可能被替換的單詞所影響(導(dǎo)致出現(xiàn)假正例)。有關(guān)實驗設(shè)置和閾值設(shè)置結(jié)果的詳細信息在第 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ù),當且僅當兩個單詞具有翻譯關(guān)系時它們才會被連接起來。特別地,使用 Liu et al. 提出的技術(shù),一種用于無監(jiān)督單詞對齊的 latent-variable log-linear 模型。然后檢查 OrderedList 中的句子對 (sr, t(sr)) 是否可以用于修復(fù)原始翻譯,按照排序順序,直到找到一個可以接受不一致性修復(fù)的突變句翻譯。如果 sr 是原句 (sr == s),意味著原始譯文被認為是比其他突變譯文更好的選擇,所以不動它(第 6-8 行);否則,繼續(xù)對 s1 和 t(s1) 進行同樣的操作。變量 w_i,: w_i^r 表示 s, sr 中替換的單詞,通過對齊(第 9-12 行)得到翻譯后的單詞 t(w_i),: t(w_i^r)
單詞對齊不是 100%準確。如果作者直接用 t(wir)代替 t(wi)來映射翻譯,可能會導(dǎo)致語法錯誤或上下文不匹配。作者采用以下策略來判斷替換是否可以接受。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 行)的翻譯時,作者得到原句子的修復(fù)結(jié)果(第 23 行),然后檢查翻譯解決方案候選是否與原句子的修復(fù)翻譯(第 24-26 行)一致。如果沒有,作者繼續(xù)檢查其他候選修復(fù)。
2.4.2基于概率的翻譯排名。對于一個句子 s 和及其變體 S = s1, s2, …, sn,t(s), t(si) 分別為 s, si 的翻譯,記錄每個 t(si) 的翻譯概率,并選擇最高的一個作為候選翻譯,使用單詞對齊生成最終修復(fù)后的翻譯。
這是一種灰盒修復(fù)方法,既不需要訓(xùn)練數(shù)據(jù),也不需要訓(xùn)練算法的源代碼,只需要機器翻譯提供的預(yù)測概率,但該概率信息為方法的內(nèi)部屬性,通常不會提供給最終用戶。
2.4.3基于對照的翻譯排名。對于一個句子 s 及其變體 S = s1, s2, …, sn,t(s), t(si) 分別為 s, si 的翻譯,計算 t(s), t(s1), t(s2), ..., t(sn) 之間的相似度,并使用將最佳譯文(平均相似度得分最大)譯文與其他譯文映射并修復(fù)之前的譯文。這是一種黑盒修復(fù)方法,只需要翻譯器的輸出。
3 實驗設(shè)置3.1 研究問題作者從評估 TransRepair 生成有效且一致的測試輸入(可用于一致性測試)的能力開始作者的研究。因此,作者要求:
RQ1:TransRepair 的測試輸入有多精確?
作者通過隨機抽樣一些候選對并(手動)檢查它們是否有效來回答這個問題。這個問題的答案確保了 TransRepair 確實生成了適合于一致性檢查的輸入。
鑒于作者發(fā)現(xiàn)了 TransRepair 生成有效測試對的證據(jù),作者將注意力轉(zhuǎn)向這些對在檢測一致性錯誤方面的有效性問題。因此,作者要求:
RQ2:TransRepair 的缺陷揭示能力是什么?
為了回答 RQ2,作者根據(jù)相似性度量計算一致性得分,作為測試 oracle(確定是否檢測到 bug)。為了評估 TransRepair 揭示錯誤的能力,作者手動檢查一個翻譯樣本,并將手動檢查結(jié)果與自動測試結(jié)果進行比較。
在對錯誤揭示進行了實驗之后,作者評估了 TransRepair 的修復(fù)能力,以查看它修復(fù)不一致錯誤的能力。因此,作者要求:
RQ3:TransRepair 的缺陷修復(fù)能力是什么?
為了回答這個問題,作者記錄修復(fù)了多少不一致的 bug(通過一致性度量和手動檢查來評估)。作者還手動檢查由 TransRepair 修復(fù)的翻譯,并檢查它們是否提高了翻譯的一致性和質(zhì)量。
3.2 一致性度量作者探討了四種廣泛采用的度量不一致性的相似性度量。為了便于說明,作者使用 t1 來表示原始翻譯輸入的翻譯輸出;作者使用 t2 來表示變異的翻譯輸入的翻譯輸出。
基于 LCS 的度量。通過 t1、t2 之間的一個最長公共子序列的標準化長度度量其相似性:
LCS 是一個計算 t1、t2 之間以相同的相對順序出現(xiàn)的一個最長公共子序列的函數(shù),例如序列“ABCDGH”和“AEDFHR”的 LCS 是長為 3 的“ADH”。
基于 ED 的度量?;?t1、t2 之間的編輯距離,編輯距離是計算將一個字符串轉(zhuǎn)換為另一個所需的最少操作量以衡量二者差距的方法。標準化編輯距離使用以下公式,其中 ED 是計算 t1、t2 之間編輯距離的函數(shù)。
基于 tf-idf 的度量。tf-idf 可以用來衡量詞頻方面的相似性,單詞 w 的權(quán)重為:
其中 C 是一個文本語料庫(本文使用 Transformer 的訓(xùn)練數(shù)據(jù)),|C| 是句子總數(shù),fw 是包含詞 w 的句子數(shù)量。句子使用詞袋法表示,忽略語法和詞序。向量的每個維數(shù)都與它的權(quán)值 widf 相乘,計算 t1、t2 加權(quán)向量的余弦相似度作為最終的 tf-idf 一致性得分。
基于 BLEU 的度量。
計算句子匹配子序列的個數(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),使用較高的分數(shù)來作為 s、s' 之間的相似度,這與算法 1 中的想法是一致的:獲得一致性的一個上界,避免出現(xiàn)翻譯錯誤的假正例。
3.3 機器翻譯作者的實驗同時考慮了面向工業(yè)和最新研究的機器翻譯器。一個是 Google Translate[15](在 results 部分縮寫為 GT),一個由 Google 開發(fā)的廣泛使用的機器翻譯服務(wù)。另一個是 Transformer,一個由研究團體研究的翻譯家。
作者使用 Google translate,因為它是一個強迫作者進行黑盒修復(fù)的系統(tǒng)的例子;作者無法訪問訓(xùn)練數(shù)據(jù),也無法訪問翻譯系統(tǒng)的代碼,因此,根據(jù)定義,任何改進只能通過黑盒方法來實現(xiàn)。當然,它也是一個有產(chǎn)品質(zhì)量的主流翻譯系統(tǒng),使翻譯結(jié)果更加有趣。
作者使用默認設(shè)置來訓(xùn)練 Transformer。Transformer 是基于三個數(shù)據(jù)集進行訓(xùn)練的:CWMT 數(shù)據(jù)集[7]包含 7086820 個平行句,UN 數(shù)據(jù)集包含 15886041 個平行句,新聞評論數(shù)據(jù)集以 252777 個平行句作為訓(xùn)練數(shù)據(jù)集。驗證數(shù)據(jù)(幫助調(diào)整超參數(shù))也來自新聞評論,包含 2002 個平行句。Transformer 運行深度學(xué)習(xí) lib 庫。為了得到一個更有效的翻譯,作者訓(xùn)練了 500000 個時代的模型。
3.4 試驗裝置根據(jù)之前的機器翻譯研究,作者使用了來自新聞評論數(shù)據(jù)集的測試集來測試 Google Translate 和 Transformer。測試集包含 2001 個平行句,不同于訓(xùn)練集和驗證集。作者實驗中的漢語句子是以漢字的形式出現(xiàn)的。設(shè)置。
作者的實驗是在 Ubuntu16.04 上進行的,它有 256GBRAM 和四個 Intel E5-2620V4 CPU(2.10GHz),總共包含 32 個內(nèi)核。作者使用的神經(jīng)網(wǎng)絡(luò)都是在一個 Nvidia Titan RTX(24gb 內(nèi)存)上訓(xùn)練的。
4 結(jié)果本節(jié)報告了回答作者研究問題的結(jié)果。
4.1 輸入生成的有效性(RQ1)作者從回答 RQ1 開始。對于每個測試句子,作者生成突變體,并檢查它們是否通過了結(jié)構(gòu)過濾(詳見 2.2.2 節(jié))。特別是,對于每個句子,作者生成多達 5 個通過過濾器的突變體(作者在第 5 節(jié)中研究了突變體數(shù)量的影響)。在 2001 個測試句子中,生成了 21960 個變異候選,其中 17268 個被結(jié)構(gòu)過濾掉。在剩下的實驗中,作者使用剩下的 4692 個突變體,它們與 1323 個句子配對,作為測試輸入。
為了手動評估這些測試輸入是否有資格檢測翻譯不一致,作者隨機抽取了 400 個。前兩位作者手動檢查輸入的有效性,即突變體中被替換的單詞是否會導(dǎo)致語法錯誤,以及突變體是否應(yīng)該與原句子有一致的翻譯。這個驗證步驟揭示了三個無效的變種: 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 個樣本中剩下的 397 個符合兩個有效性標準,表明準確率為 99%。作者的結(jié)論是,作者的兩個策略的交集兩個 word2vec 模型,并使用斯坦福解析器作為過濾器有很高的概率產(chǎn)生有效的測試句子。400 個突變體和人工評估結(jié)果可以在 TransRepair 主頁上找到。
在下一節(jié)中,作者使用 4692 個突變體(來自 1323 個原始句子)來檢驗機器翻譯系統(tǒng)的測試翻譯一致性。
回答 RQ1:TransRepair 對于生成語法正確且翻譯一致的測試句子有很好的精確度(99%)。
4.2 跨修復(fù)的不一致揭示能力(RQ2)本節(jié)回答了 RQ2,即研究了 TransRepair 的不一致揭示能力。為了回答這個問題,作者研究了:1)突變與原始翻譯之間的一致性度量值;2)翻譯不一致的人工檢查結(jié)果。作者還探討了一致性度量和手動檢查在評估不一致性方面的接近程度。
一致性度量值。作者使用 googletranslate 和 Transformer 對 4692 個生成的輸入進行翻譯,并與原始句子的翻譯進行比較,遵循算法 1 的步驟。對于每個突變體,作者計算出四個一致性得分,每一個對應(yīng)于一個相似性度量(見第 3.2 節(jié))。
圖 3 顯示了低于 1.0 的一致性得分的柱狀圖。從圖中可以看出,不同的度量值具有不同的分布,但總體而言,所有四個度量報告了大量的翻譯(即約占總翻譯量的 47%),分數(shù)低于 1.0,表明翻譯存在不一致性。表 1 為四種度量不同閾值的不一致翻譯個數(shù),可以看到即使在一致性閾值較寬松時,bug 依然存在。
圖 3:指標得分直方圖。
表 1:在 1.0 和 0.6 之間的不同閾值下,報告的不一致錯誤數(shù)量。
人工檢查不一致。隨機抽取 300 個突變句的翻譯,其中有兩個無法解析,使用剩下的 298 個翻譯進行分析。作者手動檢查每個突變句和原句的翻譯,當滿足下面任何一個條件時,就報告一個不一致的錯誤:除了突變句的替代詞,這兩個翻譯 1) 有不同的含義;2) 有不同的 tones 聲調(diào);3) 專有名詞使用了不同的字符表示。手動檢查發(fā)現(xiàn)了谷歌翻譯、Transformer 中 107 個(36%)、140(47%) 個翻譯不一致錯誤。
比較度量分數(shù)和手動一致性評估結(jié)果,將 298 篇帶有人工標記的譯文分手動分成兩組,一組為一致的翻譯,另一組為不一致的翻譯,檢查每組的度量分數(shù)。圖 4 顯示了結(jié)果,虛線左右兩側(cè)的點分別為人工標記為一致/不一致翻譯的度量分數(shù),左側(cè)大部分點(82.2%)的得分為 1.0,左側(cè)平均分 0.99 高于右側(cè)平均分 0.86,表明度量和手動檢查的翻譯一致性傾向于一致。值得注意的是,左側(cè)有一些得分相對較低的度量,而右側(cè)有一些較高的度量,說明使用度量來評估一致性存在假正例和假負例,詳細分析如下:
圖 4:指標得分與人工檢查翻譯一致性的比較
_閾值學(xué)習(xí)_。度量分數(shù)是連續(xù)的值,為了自動報告不一致性,需要為每個度量選擇閾值,使度量判斷結(jié)果接近手動檢查。從谷歌翻譯中隨機抽取 100 個翻譯,手動標記為一致或不一致,然后根據(jù)標記選擇閾值(從 0.8 到 1.0,步長 0.01),使得每個相似度度量的 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。當度量分數(shù)低于 so-identify 閾值時,就報告一個不一致錯誤。為了了解所選閾值在多大程度上捕獲了一致性和不一致性之間的邊界,分別使用谷歌翻譯和 Transformer 對之前采樣的 298 個翻譯對閾值進行測試,結(jié)果如表 2 所示。
表 2:不一致揭示的精度/回報率。
假正例 FP 表示閾值判斷翻譯不一致、但人工檢查是一致的,假負例 FN 表示閾值判斷翻譯是一致的、但人工檢查是不一致的。從表中可以看出,F(xiàn)P 和 FN 的比例都在 10%以下,這是可以接受的。手動檢查 FP 和 FN 后,發(fā)現(xiàn) FN 可能是由一個小的字符差異、但具有不同的含義或語氣引起的,例如,一個突變句翻譯有一個額外的 er(意思是“but”),但它不出現(xiàn)原始翻譯中,人工檢查認為這是不一致的,而度量評價則相反。當兩個翻譯中有許多含義相同的不同詞語,可能會出現(xiàn) FP,例如,中文短語“尚未”和“還沒”都是“not yet”的意思,但每個短語的漢字完全不同。測試時 FP 可能帶來的害處在于有可能使翻譯變得更差。
不一致問題的總數(shù)。閾值確定后用于 4592 個輸入的翻譯(100 個已經(jīng)用于閾值學(xué)習(xí)),檢查其中有多少個低于閾值,結(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:這些指標的 F 度量為 0.82/0.88 在檢測 Google Translate/Transformer 的不一致錯誤時。度量和人工檢查都顯示 googletranslate 在 TransRepair 測試輸入上有大約 36%的翻譯不一致。
4.3 錯誤修復(fù)能力(RQ3)_4.3.1**通過指標評估改進_。作者將作者的修復(fù)方法應(yīng)用于所有不一致的翻譯,并檢查有多少翻譯可以用作者的方法修復(fù)。對于每個句子,作者生成 16 個用于修復(fù)的突變體(作者在第 5 節(jié)中研究了要修復(fù)的突變體數(shù)量的影響)。
表 3 顯示了結(jié)果,其中每個單元格包含修復(fù)方法修復(fù)的不一致錯誤的數(shù)量和比例?!案怕省绷斜硎靖怕蕝⒖迹ɑ液行迯?fù))的結(jié)果;“交叉引用”列表示交叉引用(黑盒修復(fù))的結(jié)果;對于 Google translate,由于灰盒方法不適用,作者只顯示黑盒方法的結(jié)果。
表 3:修復(fù)的 bug 數(shù)量和比例
從表中可以看出,TransRepair 平均減少了 googletranslate 中黑盒方法的 28%的 bug。對于 Transformer 模型,作者可以看到灰盒方法修復(fù)了 30%的缺陷,黑盒方法修復(fù)了 19%到 20%的錯誤。實驗結(jié)果表明,灰盒和黑盒方法在修復(fù)不一致性錯誤方面是有效的。
4.3.2 人工評價的改進。項目修復(fù)研究通常包括一個手動評估過程、,以驗證他們的發(fā)現(xiàn)。按照類似的做法,前兩位作者(手動)檢查了先前標記的 298 個抽樣翻譯的修復(fù)結(jié)果。作者的目標是通過修正譯文的一致性來檢查譯文的一致性。由于作者的修復(fù)也可以提高翻譯的可接受性,作者也會檢查這些變化是否會帶來翻譯可接受性的提高。對于基于交叉引用的修復(fù),作者僅手動評估 LCS 度量,因為作者(先前)的結(jié)果顯示其他度量中的結(jié)果相似。
在 298 個句子對中,有 113/136 的句子在 Google Translate/Transformer 上被報告為翻譯不一致。因此,作者的修復(fù)針對的是所有這些句子對,包括原始句子和變體的翻譯?;诟怕实男迯?fù)方法最終改變了 58 對(共 136 對),Google Translate/Transformer 的基于交叉引用的修復(fù)方法最終改變了 39/27 對(共 113/136 對)。對于被 TransRepair 修改過的翻譯對,手動比較:修復(fù)前后的翻譯一致性 & 修復(fù)前后翻譯的可接受性(原句和突變句),考慮充分性和流利性,手動給出“Improved”、“Unchanged”或“Decreased”標簽,結(jié)果見表 4。
表 4:基于人工檢查的改進
前四行是谷歌翻譯,其余是 Transformer 翻譯,帶有“overall”的行表示原句和突變句的翻譯接受度都有提高,帶有“original”/“mutant”的行表示原句/突變句的翻譯修復(fù)結(jié)果。TransRepair 在提高翻譯一致性方面有很好的效果,平均 87%的谷歌翻譯和 Transformer 翻譯的一致性提高了,只有 3 個翻譯一致性降低,其中一個原句的翻譯得到了改進,而突變句沒有,因此修復(fù)后原句改進的翻譯與突變句未改進的翻譯不匹配;剩下兩個是由于修復(fù)后原句變差、突變句翻譯沒變。
修復(fù)的主要目的是提高翻譯一致性,翻譯可接受性的提高是額外的“bonus”,從表 4 中可以發(fā)現(xiàn),修復(fù)約提高了四分之一(27%)的翻譯可接受性,而 8%的可接受性下降,手動檢查可接受性下降的原因是,有時修復(fù)方法可能會為了一致性而犧牲質(zhì)量。
5 擴展分析和討論本節(jié)提供進一步的細節(jié)和分析。
修復(fù)的翻譯示例。表 5 給出了作者改進誤譯的一些例子。第一列是翻譯輸入;第二列顯示原始翻譯輸出(轉(zhuǎn)換為拼音),其中斜體字解釋了誤譯部分;最后一列顯示了作者改進的翻譯。
表 5:修復(fù)后的譯文實例
數(shù)據(jù)擴增的有效性和效率。之前的工作采用了數(shù)據(jù)擴增的方法提高機器學(xué)習(xí)模型的魯棒性,對于源代碼已知的翻譯器,訓(xùn)練數(shù)據(jù)擴增是增加翻譯一致性的方案之一,因此設(shè)計實驗研究添加更多的訓(xùn)練數(shù)據(jù)是否會產(chǎn)生更好的翻譯一致性。使用 10%, 20%, ..., 90%的原始訓(xùn)練數(shù)據(jù)分別訓(xùn)練 Transformer,結(jié)果見圖 5,當比例在 0.7 到 1.0 之間時,沒有觀察到 bug 下降的趨勢,這說明增加訓(xùn)練數(shù)據(jù)對改善翻譯不一致性的效果有限。
圖 5:Transformer 不同訓(xùn)練數(shù)據(jù)大小下的不一致性 bug 比例
數(shù)據(jù)擴增需要模型再訓(xùn)練,在當前的配置下使用 100%的數(shù)據(jù)訓(xùn)練模型需要 19 個小時,且數(shù)據(jù)收集、標記和處理也需要時間,總之很少有證據(jù)表明數(shù)據(jù)擴增是這個問題的好的解決方案。與之相比,TransRepair 具有以下優(yōu)點:1) 黑盒不需要源代碼和訓(xùn)練數(shù)據(jù),灰盒只需要預(yù)測概率;2) 不需要額外的數(shù)據(jù)及模型再訓(xùn)練,成本更低;3) 更加靈活,可以修復(fù)特定的 bug 而不需要改動其他格式良好的翻譯。
TransRepair**效率**。TransRepair 的消耗包括測試和修理。在作者目前的實驗配置下(詳見第 3 節(jié)),平均測試時間為每句 0.97s;基于概率的方法平均修復(fù)時間為 2.68s,基于交叉引用的方法平均修復(fù)時間為 2.93s。因此,在當前的實驗配置下,當使用 TransRepair 優(yōu)化實時在線機器翻譯時,對于被認為沒有錯誤的句子,最終用戶只需不到 1 秒就可以收到最終翻譯。對于一個被認為有缺陷的句子,不到 4 秒(測試和修復(fù))就可以得到最終的翻譯。
突變數(shù)的影響。作者在不一致性測試和修復(fù)過程中生成突變體。對于測試/修復(fù)過程,作者的默認配置為每個句子最多生成 5/16 個變種。為了研究突變體的數(shù)量對測試和修復(fù)性能的影響,作者用 1 到 3 個突變體進行測試生成,用 4 個或 8 個突變體進行修復(fù)。然后,作者比較發(fā)現(xiàn)的不一致性 bug 的數(shù)量和作者的方法修復(fù)的 bug 的數(shù)量。對于修復(fù),由于篇幅原因,本文僅給出灰盒修復(fù)法的結(jié)果,如表 6 所示。完整的結(jié)果可以在作者的主頁上找到[2]。作者觀察到,在測試過程中,使用更多的突變體有助于揭示更多的不一致性錯誤。修復(fù)也是一樣,但是在修復(fù)過程中使用 4 個突變體也有可接受的效果。
表 6:不同突變體數(shù)量的檢測和修復(fù)的 bug 數(shù)量。
應(yīng)用場景。TransRepair 可以端到端應(yīng)用。給定一個翻譯輸入和一個機器翻譯,作者的方法將自動測試和修復(fù)翻譯輸出,并給最終用戶一個新的翻譯輸出。
6 相關(guān)工作軟件測試研究通常針對傳統(tǒng)的(基于非機器學(xué)習(xí)的)軟件系統(tǒng)。然而,最近機器學(xué)習(xí)在現(xiàn)實世界中重要性的提升,導(dǎo)致了機器學(xué)習(xí)軟件測試研究活動水平的相應(yīng)提高[50]。同時,對于機器學(xué)習(xí)系統(tǒng)來說,軟件修復(fù)的概念和技術(shù)還相對較少。在這一部分中,作者回顧了作者提出的機器翻譯測試和修復(fù)與先前測試和修復(fù)機器翻譯系統(tǒng)的工作之間的關(guān)系,這些工作主要集中在翻譯健壯性上。
翻譯魯棒性測試。為了測試翻譯的魯棒性,研究人員探索了測試輸入上的擾動如何影響翻譯。Heigold 等人[21]研究了通過字符交換、字置亂和字符翻轉(zhuǎn)生成的三種字符級噪聲測試輸入。他們發(fā)現(xiàn),機器翻譯系統(tǒng)對那些不會對人類構(gòu)成挑戰(zhàn)的微擾句子非常敏感。Belinkov 和 Bisk[3]也有類似的結(jié)論,不僅是關(guān)于合成噪音,還有自然噪音(自然發(fā)生的錯誤,如打字錯誤和拼寫錯誤)。為了有更多不同的測試用例來進行健壯性測試,趙等使用了生成對抗網(wǎng)絡(luò)(Generative atterial Networks,GANs)。他們將輸入的句子投影到一個潛在的空間,然后用這個空間搜索接近輸入的測試句。
這些工作的目標是健壯性測試。測試輸入是合成錯誤或自然發(fā)生的錯誤。測試神諭通常是 BLEU 分數(shù),它與人類的預(yù)言有界限。作者的方法以翻譯的一致性為目標,通過上下文相似的單詞替換來生成一致的測試輸入,而不是涉及錯誤。作者的方法在測試過程中也不需要人類的神諭。
孫和周提出了機器翻譯的變形關(guān)系。作者的工作和他們的工作有兩個主要的區(qū)別:1)他們的工作只涉及測試;作者也進行修復(fù);2)他們的測試輸入生成只是在“喜歡”或“討厭”之前替換人名,在他們之后替換類型;作者的方法相對來說更加詳盡。
翻譯魯棒性改進。為了提高翻譯的魯棒性,以往的工作主要依賴于數(shù)據(jù)擴充,即在訓(xùn)練數(shù)據(jù)中加入噪聲數(shù)據(jù)并對模型進行再訓(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í)算法也在改進。Belinkov 和 Bisk[3]提出在網(wǎng)絡(luò)中使用結(jié)構(gòu)不變的合成噪聲表示。他們發(fā)現(xiàn) CNN 的人物形象比其他人更強大。Cheng 等人通過在訓(xùn)練集中加入一個新的分量來識別噪聲,引入了穩(wěn)定性訓(xùn)練。這個組件減少了噪聲的影響,并在進行同義擾動時產(chǎn)生更穩(wěn)定的翻譯。
這些先前的方法旨在提高所有翻譯的整體健壯性,而不是修復(fù)特定的誤譯。
7 結(jié)論在本文中,作者提出了 TransRepair,這是第一個自動測試和改進上下文相似翻譯一致性的方法。TransRepair 獲取一個句子并應(yīng)用上下文相似的變異來生成稍微改變(突變)的句子,用于測試機器翻譯系統(tǒng)。測試是通過翻譯和比較原文和變異句來完成的。為了判斷一致性,TransRepair 計算翻譯子序列的相似度。當上下文相似的突變產(chǎn)生高于閾值的干擾時,TransRepair 認為這是一個潛在的缺陷。除了測試,TransRepair 還以黑盒或灰盒的方式自動修復(fù)不一致之處,后者根據(jù)變異句子的翻譯對翻譯進行后期處理。
本文由南京大學(xué)軟件學(xué)院 2020 級碩士王擎宇翻譯轉(zhuǎn)述。
以上就是關(guān)于pos機sn,機器翻譯的自動化測試與改進的知識,后面我們會繼續(xù)為大家整理關(guān)于pos機sn的知識,希望能夠幫助到大家!