根據Survey of Data-Selection Methods in Statistical Machine Translation的總結,MT中的資料選擇分類圖如下:
使用場景 資料使用的場景決定了選擇什麼樣的資料,及該方法要解決什麼問題。
- Improve Quality:Domain Improvement、Unhelpful Data Reduction、Noise Reduction
- Limited Resources:Training Resources、Deployment Resources、Human Labeling Resources
評估方法
特徵結合
問題定義
句子打分函式
- 上下文無關(depend on nothing but the candidate sentences in question):語言模型、對齊模型、其他
- 依賴上下文(depend on the selected pool):語言模型、短語表、解碼器、n元統計資訊
選擇演算法
- 依據閾值過濾
- 貪心搜尋
- 子模組最優化
- 主動學習
- Batch Model Learning
下面是一些經典的論文的總結,供個人學習用,寫的不當的地方請輕噴~
Dynamic Data Selection for Neural Machine Translation 2017
靜態資料選擇
最初源自Moore-Lewis 2010的資料選擇方法——交叉熵之差CED:用in domain\general domain 源端語料分別訓練語言模型,再計算候選句子的in domain和general domain交叉熵之差,越低表示離in domain越近離general越遠。(其中的語言模型可以是n gram語言模型或者LSTM等等)
上面方法的source、target雙語變種 Axelrod 2011:源端的CED+目標端的CED
文章中用的雙語的變種,語言模型是LSTM
動態資料選擇
sampling
- 按照上述靜態資料選擇的方法給訓練集中的句子對打分,排序;
- 把上述CED分數標準化到0-1之間,生成新的分數CED‘,離in domain越近的,CED‘分數越高(1 - 最大最小歸一化的結果);
- 再把CED‘的分數歸一化為權重;
- 每個epoch按照權重取樣,不重複取樣,分數高的句子會被多次取樣
gradual fine-tuning
依照fine tune的靈感,先在general 資料集G上訓,再在in domain資料上微調:本文逐步減小訓練集G的大小,比如每兩個epoch換一次資料,選的資料是上一輪排名靠前的60%——1、2個epoch在整個G上訓練;3、4epoch選擇在G中靜態資料分數排名靠前的60%,總量是0.6*|G|;第5、6epoch選擇3、4個epoch中靜態資料分數排名靠前的60%,總量是0.6*0.6*|G|。。。
結果是LSTM 好於n gram、gradual fine-tuning好於sampling
Boost neural machine translation 2017
翻譯PPL高的句子結構複雜,更難翻譯,NMT應該花時間關注更難的句子。句子按翻譯的ppl排序。
實驗策略:
- boost——在original基礎上加入10%高ppl的句子;
- reduce——去掉20%低ppl排名的句子,即保留80%高ppl的翻譯句子。依次保留整個訓練集中高ppl的100%-80%-64%-100%-80%-64%-100%-...。(此方法結果最好)
- bootstrap——random resampling 100%,從original中再次sampling,所以有些低ppl的或者高的會消失/重複出現
Dynamic Sentence Sampling for Efficient Training of Neural Machine Translation 2018
zhang 17(即上篇)的文章用sentence-level training cost作為衡量句子翻譯質量的手段,訓練損失越小代表模型把句子學的好,缺點有兩個:訓練損失小的句子繼續訓練可能還可以提升;如果訓練資料不斷變小,但是這些被移除句子中包含的知識可能在NMT的訓練過程中逐漸被丟棄掉。
這篇文章用句子兩次迭代的訓練損失之差(the differences between the training costs of two iterations)作為句子翻譯質量能否被提升的衡量標準。越小表示這句話的損失不太可能變化,所以這句話繼續訓練對NMT沒有幫助:
(上一次的訓練損失 - 該次訓練損失)/ 上一次的訓練損失 = 該次的dif
dif(差異度)可能是正值,也可能是負值。所以要最大最小歸一化到【0,1】之間 = criterion
實驗方法:
- weighted sampling WS——上述criterion值轉換為歸一化的概率分佈,按照權重子取樣整個訓練集的80%(不重複取樣)作為下一iteration的訓練集,訓練目標函式也會更新為在選的的子訓練集上。一個句子可能在一個子取樣的過程中沒有被選擇,但是在下一個子取樣的過程中,由於被選擇句子的criterion都發生了變化,未被選擇的句子的criterion不變,因此weight也會發生變化,所以該句子仍有可能被選擇到。
- review mechanisim RM——選擇的80% top-ranked資料組成了
,未被選擇的20%資料組成了
,
中的資料在訓練中也就無法被選擇了。而且
會隨著訓練過程越來越大,因此可能導致一些資訊丟失。為了避免這個問題,論文引入了一個引數
,比如為10%,則表示取樣
中10%的資料進行復習。損失函式中會由
和
兩部分組成。
(該方法效果更好)
在極大資料集的訓練中還提到可以採用小部分已經訓練的和未訓練過的句子相似度作為取樣句子的一個標準。
Feature Decay Algorithms for Neural Machine Translation 2018
是一種transductive data selection method ,最初用在SMT中有很好的效果,現在把它用在NMT中。
FDA:用test set的源端來選擇句子,讓選擇的樣本能與該set最相關。一旦n gram被選上,就減小它們的值,FDA通過這樣來最大化所選擇訓練集中relevant n-grams的方差。具體方法要看下面。
方法:
- 首先從test集抽取n-grams作為特徵,這些特徵有初始值,該值表明被選擇的相關性;每個候選句也有總得分。
- 迭代的選擇分數高的句子加入set L,選擇一句話後,計算set L中已選擇的資料的某個特徵出現的次數,該特徵的分值會隨出現的次數增加而衰減。這樣使得下一次選擇之前沒被選擇的特徵。
特徵分值衰減公式:
,L is the set of selected sentences,CL(f) is the count of the feature f in L
句子得分的計算:sentences are scored as the normalized sum of values of contained features.
,Fs是句子s中的特徵集
文章中的是3元特徵,還用了第一篇文章中gradual fine-tuning的設定,訓練集測試集都是WMT2015的實驗結果中,在用FDA選擇少量資料(100k 200k)時,先訓練base model、到最後一輪再用FDA選擇的資料微調比較好;當FDA選擇的資料到500k時,只用FDA選擇的資料從頭訓NMT模型效果更高。
Adaptation of Machine Translation Models with Back-translated Data using Transductive Data Selection Methods 2019
上篇的同一作者
Transductive Algorithm(TA)是利用test集的資訊獲取句子:
- Infrequent n-gram Recovery(INR)-選擇包含不頻繁n-gram的句子
t是閾值:超過代表該n-gram頻繁,小於代表ngr不頻繁。
如果選擇池中的ngr超過閾值t,則對句子分數沒貢獻=0
- FDA
(前面有提到)
原本是用test集(源端)作為種子,現在用通用NMT模型把test翻譯為目標端,也作為種子,對源端和目標端種子都用TA方法選擇資料,把兩者選的資料combine
a和1-a,分別代表從TAsrcTAtrg中選的資料比例
方法比較見下圖:
TA還包括TF-IDF距離
詞頻逆文件頻率
稀有詞比常見詞對句子相似度的指示性更強
下面兩篇論文均有利用該指標
Extracting In-domain Training Corpora for Neural Machine Translation Using Data Selection Methods 2018
Dynamic Data Selection and Weighting for Iterative Back-Translation 2020
tf是term在文件中出現的頻率;df是多少個文件中包含term(idf is the inverse document frequency),N是文件數
該文中(we apply tokenization, remove punctuation and common stopwords in the texts, and finally truecase the sentences)把資料集中的每個句子當文件,詞當作term。
計算詞(term)對句子(文件)的tf-idf值,把句子中所有詞的tf-idf向量平均作為整個句子的詞向量表示,再計算in和general中句子詞向量的cosine相似度,按cos相似度給general domain的句子排序,相似度越大離in domain越近。
Dynamic Data Selection and Weighting for Iterative Back-Translation 2020
相對於靜態選擇資料,對迭代反向翻譯,提出一個新的課程學習策略。
該論文中提到句子由代表性和簡單性兩種指標進行評分,注意評分都分別最大最小歸一化到[0,1]
- 代表性指標:
In-Domain Language Model Cross-Entropy(LM-in)、TF-IDF Scores (TF-IDF)、BERT Representation Similarities (BERT).
- 簡單性指標:
General-Domain Language Model Cross-Entropy (LM-gen)、Round-Trip BLEU (R-BLEU)
說一下BERT Representation Similarities (BERT).
把句子送入multilingual bert,把除了[CLS] [SEP] 之外輸入tokens在第8層的隱藏狀態平均,得到句子的表示,根據句子表示可以計算單語中某個句子和in domain所有句子的cosine相似度。
兩種評分標準由一個引數lambda控制,該引數的來源是19的一篇CL的論文,代表了模型能力隨epoch的變化曲線(按sqrt增加)。最初選的資料是簡單性為主,隨時間推移後期是選代表性的句子。
選擇出的偽句子還會賦有權重,讓翻譯質量低的句子權重更小。提出兩種當前質量估計方法:一種是計算偽平行句對分別用兩個方向NMT模型的encoder的最後一層表示、再平均,算cosine相似度;另一種是計算偽平行句對在兩個方向模型中的翻譯概率、再計算條件概率之差絕對值、取負指數,值越大,句子質量越差。
還有計算句子質量進步的指標,該指標與當前質量結合了:
EMBEDDING-BASED METRICS
Improving Neural Machine Translation by Filtering Synthetic Parallel Data 2019
學習一個線性對映,把兩種語言詞向量對映到同一詞向量空間,通過雙語詞向量分別得到句子詞向量(詞向量累加再平均),計算雙語句子向量的cosine相似度,設定閾值,去掉小於threshold的句子。
1.在維基百科語料上用fastext訓練韓語,英語詞向量;
2.選排名靠前的4500個常用英語單詞建立英語詞表(不含功能詞和停用詞)
3.會用雙語的人把英語詞表翻譯為韓語;
4.利用已有雙語的詞向量X,Z和雙語詞典,用現有的方法學習線性對映W。