目錄

Virtual Augmentation Supported Contrastive Learning of Sentence Representations

Virtual Augmentation Supported Contrastive Learning of Sentence Representations

Introduction

Problem

當我們在訓練模型的時候,模型的效果有很大一部分取決於資料的品質和數量。當資料量有限的情況下,使用資料增強可以生成更多的樣本,幫助模型更好的學習。

但是在SimCSE這篇論文中提到,單純的把句子或文本做刪除字、替換詞等這些操作,對於模型來說效果提升有限,因此SimCSE的作者提出

  • 使用dropout來進行正樣本增強的對比學習方法,在無監督學習中得到不錯的效果。

  • 在有監督學習中,SimCSE的作者引入了困難負樣本並做實驗,研究結果證明,引入困難樣本後,有監督的SimCSE的效果會有顯著的提升。

  • 發現的問題

    • 這篇論文發現,在對比學習中,引入困難樣本是可以提升模型效果的。但是在無監督SimCSE中,只有使用dropout來增強正樣本,沒有額外引入困難樣本。
    • 因此這篇論文的想要解決的問題是,在SimCSE的無監督學習中,引入困難樣本,希望模型能學得更好
  • 困難樣本 : 對模型來說,難以區分或容易混淆的樣本。

對比學習

  • 傳統對比學習方法

    對比學習是一種自監督學習方法,用於學習有用的特徵表示。在對比學習中,不依賴標籤,而是使用原始的未標記數據。此方法的基本原理是透過比較正樣本和負樣本之間的差異,訓練模型學習區分兩者的特徵表示。

    正樣本是指來自同一類別或相似分佈的一對資料,而負樣本則是來自不同類別或不同分佈的資料。透過將正樣本拉近,使它們在特徵空間中更加相似,同時將負樣本推開,使它們在特徵空間中更加分離,讓模型能夠更好地捕捉資料之間的差異性。

  • 對比學習在句子表示中的應用

    在自然語言處理和電腦視覺等領域,能夠在缺乏標籤的情況下,從大量的未標記數據中學習到有用的特徵表示,並為後續的監督學習任務提供更好的初始化。透過引入對比學習,以充分利用大量的未標記數據,提高模型的性能和泛化能力。

目前NLP在對比學習遇到的問題

傳統的對比學習方法在訓練時使用正樣本和負樣本對進行對比,主要是希望相似的樣本靠近,不相似的樣本分開。

但是,在處理自然語言的句子表示時,由於句子具有多樣性和變異性,單純使用正負樣本對比的方式可能無法充分理解句子之間的差異。

NLP與影像辨識在對比學習的比較,有以下幾點因素:

  • 離散性質:自然語言是離散的,而影像數據是連續的。在影像辨識中,像素值和圖像的空間結構提供了豐富的連續性信息,這使得對比學習更容易建模。然而,自然語言中的詞語和句子是離散的符號,缺乏直接的連續性特徵,這增加了對比學習在NLP上的挑戰。
  • 多樣性和變化性:自然語言具有豐富的多樣性和變化性。同一個句子可以通過不同的表達方式和詞彙組合來表達相似的含義。這使得在NLP中尋找通用的句子表示更加困難,因為相似的句子可能在文本表示上有很大的差異。相比之下,影像辨識中的圖像通常具有更明確的視覺特徵,相似的圖像可能在像素級別上具有更高的相似性。
  • 多義性和語義復雜性:自然語言中存在多義性和語義復雜性的挑戰。相似的句子可以具有不同的含義,而不同的句子也可以具有相似的含義。這種歧義和復雜性增加了對比學習中語義表示的困難性。在影像辨識中,圖像通常更加直觀,不太容易出現類似的多義性和語義復雜性的問題。
  • 數據增強的困難:對比學習通常依賴於數據增強來生成正負樣本對。在影像領域,可以通過平移、旋轉、縮放等操作來生成不同的圖像樣本。然而,在自然語言處理中,由於語言的離散性質,通用的數據增強方法更加困難。找到有效的、語義保持的文本增強方法是一個挑戰。

Solution

為了解決上述提到的問題,這篇論文的作者提出了VaSCL

在VaSCL中

  • 採用了基於無監督SimCSE的dropout方法來增強正樣本,透過對同一句子使用dropout生成兩個相似的句向量。
  • 此外,利用K近鄰演算法找到一個包含困難負樣本的領域
  • 然後在該領域中對句子進行擾動,來做資料增強,以達到混淆模型的效果。這些方法共同提高了模型的魯棒性和泛化能力。
    • 擾動的意義: 違反一致性,一致性的定義是加入一個擾動,也能讓模型預測正確。作者想藉由違反一致性,來找到一個最大的干擾,讓模型判別不出這是經過擾動後的正樣本
    • 對抗訓練(Adversarial Training),目的是提高模型的魯棒性。它通常用於解決對抗樣本攻擊等問題。在對抗訓練中,模型會被同時訓練來處理正常的數據和對抗性的數據。對抗性數據是通過向正常數據添加一些微小的扰動而生成的,這些扰動可以使模型產生錯誤預測或降低其準確度。在訓練過程中,模型會嘗試最小化正常數據和對抗性數據之間的差異,從而提高其魯棒性和泛化能力。

Method

Input

STS-12(Semantic Textual Similarity)資料集用來衡量模型在句子語意相似性任務上的性能。選擇此數據集是因為它提供了用於模型評估的廣泛、多樣的句子對,可以幫助訓練和驗證模型的能力來理解和比較句子之間的語義相似性。

/3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%201.png

VaSCL

/3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%202.png

  1. 基於SimCSE的dropout資料增強,這裡也是將同一個句子分別輸入模型中兩次

    1. 資料增強 : 使用不同的dropout mask編碼得到兩個向量
    2. 用這兩個向量來計算loss
  2. 另外,VaSCL設計一種方式來增強困難樣本

    1. 先找到K近鄰: 從 $h_i$ 在 batch中距離最近的K個負樣本,在這篇論文中記為 $N(i)$
    2. 正樣本增強 : 對 $h_i$ 加上一個擾動 $\delta_i$ ,得到 $h_i^\delta = h_i + \delta_i$ 。這裡的 $h_i^\delta$ 就是經過擾動後的正樣本
    3. 用原始向量與經過擾動後的向量計算loss
  3. 最後,把兩個LOSS相加後,取平均

Loss Function

  • Contrastive Learning w/ Dropout

    原始句子$x_i$經過encoder並分別經過兩次dropout,得到 $e_i$ 和 $e_i’$ 兩個向量。

    這個batch 的 size 為N,把這兩個向量拿去算loss

    紅色框框的是損失函數中的正樣本,也就是要讓這兩個增強後的向量越接近越好

    其餘樣本都是負樣本

    /3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%203.png

  • Neighborhood Constrained Contrastive Learning

    在基於無監督SimCSE的損失函數上,這篇論文設計一種基於K近鄰的虛擬困難樣本增強的損失函數

    先將$D= {x_i}{i=1}^N$ 透過Transformer編碼後得到向量 $B= {h_i}{i=1}^N$

    並利用以下方式得到$i^{th}$的虛擬困難樣本

    1. 計算K近鄰 : 用$h_i$與其餘在batch中的句子做相似度計算,取得距離$h_i$最近的K個負樣本,在這篇論文中稱為K近鄰或是鄰域(neighborhood) $N(i)$。

    2. 正樣本增強 : 隨機初始化一個擾動,把擾動加到$h_i$上,會得到 $h_i^\delta = h_i + \delta_i$, 這個 $h_i^\delta$ 就是經過噪聲增強後的正樣本

      /3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%204.png

  • Final VaSCL loss

    /3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%205.png

    1. 針對每個input的句子,拉近同一個句子經過dropout後的兩句向量之間的距離,拉遠他們與其他句子的距離
    2. 針對每個input的句子,拉近原本句子向量與噪音增強後的向量之間的距離,拉遠他們與K近鄰負樣本之間的距離

Experiment

Dataset

  • Semantic textual similarity (STS) related tasks
    • 用於評估自然語言處理任務中語意相似度的數據集
    • 該數據集由一系列句對組成,每個句對包含兩個文本片段,並提供它們之間的相似度評分或相似度等級。
    • 句子表示對的餘弦相似度與地面真值相似度得分之間的 Spearman 等級相關性
  • short text clustering
    • 大部分的資料集都是從網路中搜尋來的,例如推特、stackoverflow…等
    • 任務都是做句子分類
  • Explicit Data Augmentation
    • 意圖分類旨在辨識每個句子背後的意圖,這是面向目標的對話系統的重要組成部分。獲得高意圖分類準確性是解決許多下游任務的重要一步,例如對話狀態跟踪和對話管理
    • 每個意圖獲取足夠的話語樣本的成本很高。因此,few-shot learning在這種場景下備受關注,也是我們的主要關注點。
    • 他們的資料來源是,人類設計幾個問題,讓AI去回答
    • 例如,SNIPS資料集所收集的七個不同意圖
      • 搜索創意作品
      • 獲得天氣資訊
      • 預定餐廳…

實驗結果

  • Semantic textual similarity (STS) related tasks(語意相似度)

    /3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%206.png

    • 最左邊的是這個實驗使用的模型,有三個,分別是RoBERTa、SimCSE和這篇論文提出的VaSCL
    • 最上面的實驗結果是使用蒸餾後的模型,蒸餾是把模型做壓縮,因此效能上會比壓縮前低一點
    • SimCSE比RoBERTa多了dropout增強資料,因此效能上有較大的提升
    • VaSCL是基於SimCSE的無監督學習,再加上困難樣本來提升模型效能,因此在大多數任務上比SimCSE的結果要更好
  • Short text clustering(做句子分類的任務)

    /3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%207.png

  • Explicit Data Augmentation

    /3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%208.png

    • 紅色框框(不使用資料增強)
      • 0%是指完全不使用顯示資料增強,也就是都使用原本的方法來實驗。
      • RoBERTa是原始的模型,SimCSE是把資料做簡單的dropout,從圖上可以看到效果顯著的提升,而這篇論文提出的VaSCL,比SimCSE進步了3%~7%
    • 10-shot : 因為在現實中,意圖分類任務的
    • 把文本拿來做顯式增強(隨機字刪除、同義詞替代、上下文同義詞替代),與虛擬增強的方式做比較
    • 綠色框框(被顯示增強後)
      • 比較VaSCL(框線)和SimCSE(實體棒),可以發現大多數的任務中,VaSCL的效能優於SimCSE
      • 資料被顯示增強後,可以發現只有意圖分類任務的效果有些微提升,其餘的任務性能與沒有經過顯示增強的模型相比,全部下降。
    • 藍色框框(20%增強)
      • 但是在顯示增強的強度到20%時,SimCSE會超越VaSCL,這裡作者猜測可能是因為顯示增強的做法,不利於VaSCL去建構K近鄰的鄰域,因為建構鄰域的想法是找到相似度高的句子當作困難負樣本,但是被顯示增強後的句子有可能已經失去原本的語意或破壞句子結構,導致VaSCL不能產生有效的虛擬增強

Conclusion

  • 這篇論文提出了一個用於無監督句子表示學習的面向虛擬增強的對比學習框架
  • 透過建構每個句子的鄰域,利用這些鄰域並引入擾動,來生成有效的資料增強。
  • 在實驗中,VaSCL對於語意相似度任務、短文本聚類等下游任務,都有顯著的性能提升。

補充

  • 對抗訓練

    對抗訓練(Adversarial Training)是一種機器學習中的訓練方法,旨在提高模型的魯棒性。它通常用於解決對抗樣本攻擊等問題。在對抗訓練中,模型會被同時訓練來處理正常的數據和對抗性的數據。對抗性數據是通過向正常數據添加一些微小的扰動而生成的,這些扰動可以使模型產生錯誤預測或降低其準確度。在訓練過程中,模型會嘗試最小化正常數據和對抗性數據之間的差異,從而提高其魯棒性和泛化能力。在VaSCL論文中,作者使用了對抗訓練方式來生成虛擬增強,以提高其效果。

  • 實例

    在自然語言處理中,實例通常指的是一個文本或一個句子。在模型訓練過程中,這些文本或句子被用作模型的輸入,並且模型會學習將它們映射到一個向量空間中的特定位置。這樣做的目的是使得相似的文本或句子在向量空間中更加接近,而不相似的文本或句子則更遠離。這樣可以方便後續的相似度計算、聚類等任務。因此,在自然語言處理中,實例通常是指需要進行處理和分析的文本或句子。

Spearman rank correlation

斯皮爾曼等級相關係數基於數據的排名而不是實際值。它評估兩個變量之間的值的相對順序是否一致。斯皮爾曼等級相關係數的正值表示直接或遞增的單調關係,其中一個變量的較高值往往對應著另一個變量的較高值。相反,負值表示反向或遞減的單調關係。值為零表示變量之間沒有單調關係。

/3_virtual-augmentation-supported-contrastive-learning-of-sentence-representations/Untitled%209.png

Ref