2023年下半年參加的一場比賽,複賽排名13。本次比賽提供的是乙個法律領域的短文本匹配任務,這題的難點在於a榜中存在較多的對抗樣本, 並且b榜中的對抗性樣本較a榜中更多。 所以這次比賽中除去系統的準確性外,系統的魯棒性也是很重要。
本次比賽中資料集以問題組的方式給出, 問題組中的問題分為等價性和不等價問題形式。
什麼是公益訴訟?
公益訴訟的定義?
公益訴訟的概念
公益訴訟的定義是什麼?
環境公益訴訟的原告是什麼意思?
什麼樣的鑑定依據算是民事公益訴訟
檢察機關提起公益訴訟是什麼意思
什麼是行政訴訟?
訓練集的構建:這題在構建訓練樣本可以有多種形式。通過等價問句之間互相組合可以生成正樣本,等價問句和不等價問句之間互相組合可以生成負樣本,這樣可以生成8萬多條訓練樣本。考慮到兩個問句的順序調換,每個epoch可以生成16萬多條訓練樣本。 在比賽結束時發現很多人都是直接按照討論區baseline給出的分割方式生成了8萬條文字資料。
但根據這種方式構建的資料集進行訓練時線下dev分數在幾個epoch後就達到了95+,線上分數在86-89左右。 分析原因後我們認為這種方式在經過shuffle後,在劃分資料集時發生了資料洩露。 因此相同型別的question需要group在一起,我們預先按8:2的比例對資料集進行了劃分了train和dev集,然後分別在對其生成正負樣本並shuffle。
同時在這個比賽中,針對對抗性樣本,我們嘗試了多種方式增加模型的魯棒性。
在這個比賽中,a榜的對抗性樣本比例不大,b榜中的比例較大。由於測試集中有許多對抗樣本,具體來看我們發現現有的資料中存在如下型別的攻擊性樣本:
特殊符號,文字截斷,亂序,隨機插入,隨機刪除,同義詞,疑問詞新增。
針對這個問題,我們發現構建對抗樣本進行資料增強能夠顯著的提高模型的魯棒性。 我們的構建方式有如下幾種:
在對資料進行分析後, 我們對模型做了如下的優化。
在模型的構建上我們首先嘗試了esim模型, 但是在這個比賽中esim模型的效果遠不如基於bert的sentence pair classification方法。 後續的比賽中我們以bert為基線模型,線上效果為89分左右。 考慮到google給出的預訓練模型是基於字的,後續我們將bert-base-chinese換為哈工大的bert-wwm-chinese,由於wwm基於詞進行mask,並且額外加入了一些中文語料進行訓練,這給我們的模型的線上表現提公升了近乙個點。
fast gradient method
與cv任務相比,而nlp問題中,輸入是離散的單詞序列,一般以one-hot vector的形式呈現,如果直接在raw text上進行擾動,那麼擾動的大小和方向可能都沒什麼意義。goodfellow在17年的iclr[1]中提出了可以在連續的embedding上做擾動。
加入干擾的目的是使模型**分類為正確類別的概率最低, 其思路是通過對樣本x加入擾動\(r_\), 並共同優化\(loss_\) 和原先分類器的 \(loss_\) ,實現對抗訓練,這個可以用下圖的公式表示
\[\begin
-log p(y | x+r_;\theta) \ where \ r_ = \arg\min_\right \| \leq\epsilon} log p(y | x+ r; \hat)
\end
\]因為r不可微分,這裡的擾動可以用如下的替代方案來近似計算:
\[\begin
r_ = -\epsilon g/\left \| g \right \|_2 \ where \ g = \nabla_x log p (y | x ; \hat)
\end
\]選擇的擾動\(r_\)目的是最小化loss函式,從而提公升魯棒性。由於這裡的g為\(loss_\)的梯度,對應的是梯度上公升,因此取-g方向。g//|g| 是用二正規化做了乙個scale,進行了歸一化處理,從而得到了乙個單位向量,乘以epsilon(我們可以通過它來控制擾動的大小),得到模型最害怕的乙個擾動,也就是\(r_\)。
通過該種方式, 我們在驗證集上能提公升0.5-1個點。 另外值得注意的是:
在b榜中,我們對之前使用的模型進行了整合,線上成績0.782.
這次比賽有幾個遺憾:
adversarial training methods for semi-supervised text classification
單鏈表判環判交問題
摘要 有乙個單鏈表,其中可能有乙個環,也就是某個節點的next指向的是鍊錶中在它之前的節點,這樣在鍊錶的尾部形成一環。1 如何判斷乙個鍊錶是不是這類鍊錶?2 如果鍊錶為存在環,如果找到環的入口點?擴充套件 判斷兩個單鏈表是否相交,如果相交,給出相交的第乙個點。有乙個單鏈表,其中可能有乙個環,也就是某...
instanceof與Class的等價性
在查詢型別資訊時,以instanceof的形式 即以instanceof的形式或isinstance 的形式 與直接比較class物件有乙個很重要的差別。instanceof保持了型別的概念,它指的是 你是這個類或者這個類的派生類嗎?而用 比較實際的class物件,就沒有考慮繼承,它或者是這個確切的...
離線等價類問題
等價類是滿足自反性,傳遞性的一組關係,其具有find和union兩個方法。這之前我們已經說過了。這裡我們介紹的離線等價類是find的公升級版本,find只找尋root,而離線等價尋找,乙個等價類的所有元素。其原理就是首先隨便尋找乙個等價類元素,然後利用傳遞性去把所有和他相關的元素找出來。int ma...