亚马逊提出无监督虚拟增强句子表征学习框架,效果超越SimCSE
?作者 | 林億
單位 | 科大訊飛AI研究院
研究方向 | 對話系統
前言?
半年前 SimCSE 兩次 dropout 的操作刷爆朋友圈,對比學習相關論文也席卷各大頂會頂刊;上次也總結了 ACL 2021 的一些對比學習文章。最近組內論文分享有同事分享了一篇亞馬遜的工作,覺得還蠻有意思,效果也甚好。
論文標題:
Virtual Augmentation Supported Contrastive Learning of Sentence Representations
論文鏈接:
https://arxiv.org/abs/2110.08552
進入正題
首先思考一下,SimCSE 雖然操作簡單,這其實意味著它還有很多的可操作空間,比如——如何進一步加大對困難樣本信息的挖掘,從而進一步提升網絡的性能。
這個道理就像考試,簡單的題目大家都會,所以所有大家隨便考考都可以考到 90 分,但是 90-100 分這個區間,就要考驗大家對困難題目的理解了;如果我們平時學習一直反復寫簡單題目,忽略了難題的練習,那肯定是沒辦法在 90 分的基礎上再多考幾分的。
想讓模型多見一些困難樣本,有兩種方式:
第一種方式就是充分挖掘現在的數據集,找出現在數據集內的困難樣本,然后通過加大這些樣本的權重或者出現的比例,強迫模型多關注這些難題,比如 SimCSE 內利用溫度 τ 來控制對困難樣本的關注度:
1. 分子是原始 case 兩次 dropout 輸出,其相似度一定較大,無太大隨機性,即熵值較為固定;
2. 分母中包含一堆負樣本,包括簡單樣本,困難樣本等,不確定性高,熵值大;
3. 分母中困難樣本定義為:其明明是負樣本,其和原始 case 相似度卻很大;那么分母一定是更關注困難樣本,因為簡單樣本 loss 低;
4. 所以當 τ>1,相當于降低對困難樣本的關注度,當 τ<1,則進一步擴大困難樣本比重,更加關注困難樣本。
比如簡單負樣本和原句相似度 0.1,困難樣本和原句相似度 0.6,除以 τ=0.2 后,差距進一步擴大,模型會更關注困難樣本;
或者利用方差等方式手動挑出來比較困難的樣本,反復多加入幾次迭代過程,具體在這里就不贅述了。
另一種方式就是創造更多的困難樣本,常見的方式一般是人為分析數據后進行手工添加,可以配合一些仿射變換,如同義詞替換、回譯等;那么能不能像第一種方式那樣,在訓練過程中,讓網絡自己想辦法去創建一些困難樣本呢?
好了,本文的主角終于來了—— VaSCL,其會在網絡訓練的過程中自動創造一些虛擬的困難樣本,為什么說是虛擬的,自然也是和 SimCSE 那樣直接 dropout 出來的一堆“數據分布”一樣,毫無章法且不講道理但... 有效!
VaSCL 是怎么做的?
首先還是和 SimCSE 一樣,一個 case 兩次 dropout,然后最小化自身兩次 dropout 的距離,并推遠與其它樣本的距離;即,SimCSE 原 loss 全部保留。
剩下就是怎么找出來困難樣本。
1. 假設 batch 為 32,我們需要找出第一句話的困難樣本,因為是無監督模型,除了第一句話自身,其余所有 case 都是負樣本,那么模型輸出特征向量和第一句話越相似的,其就越可能是第一句話的困難樣本是吧?我們首先定義一個 k,在每個 batch 中找到每句話輸出特征向量最近的 k 句話,后文稱為這句話的 k 領域,后面就用這 k 句話創建第一句話的虛擬困難樣本。
2. 假設第一句話經過模型輸出的特征向量是 e,隨便搞一個高斯白噪聲 α,加上去,得到一個新的特征向量 e+α,理論上來說,這個新的特征向量和第一句話的意思應該還是相近的,因為是高斯白噪聲,其不會對原始向量數據分布產生太大影響,這個過程大概可以模擬成這樣:
e?=?e?+?np.random.standard_normal(y.shape)?*?0.01如果是給一張圖片加上高斯白噪聲,基本是看不出什么變化的。仔細看一下這個高斯白噪聲的代碼,好好想想,理論上按照這個公式,高斯白噪聲一定不應該對原句的語義產生太大影響。
當然,實際上我們不是隨便亂加一個高斯白噪聲,我們期待我們有很多的高斯白噪聲,然后再其中選取一個最優的高斯白噪聲,可以使得第一句話加上這個噪聲以后,即 e+α 和原來的特征向量 e,最遠,但是第一句話 k 領域內的所有負樣本加上這個噪聲 α 后都和原句 e 更靠近了,這樣的一個高斯白噪聲可謂是壞事干盡了,迷惑性賊大!
所以當原句 e 加上這個最優的噪聲 α,就得到了一個很強的困難樣本!
這里有個問題,這個候選高斯白噪聲集合哪里來,文章沒有交代,理論上我們隨機生成若干個作為備選,或者預設一個數值,每次訓練過程中隨機生成這么多個,再或者直接把這個噪聲當成可訓練參數或許也可以(但是按照原文的意思,似乎沒有把這個 α 當成可訓練參數);不過都是小問題,個人比較傾向在訓練前指定數值 n。
3. 訓練過程中 batch 中每句話的 loss:
首先保持 SimCSE 的損失:
每句話的兩次 dropout 靠近
每句話和別的句子 dropout 拉遠
然后是虛擬困難樣本損失:按 2 的規則在高斯白噪聲集里面找到一個最優的噪聲 α,每句話加上其最優噪聲得到這句話的虛擬困難樣本,這句話的 k 領域內負樣本也加上這句話的最優噪聲,得到這句話 k 領域的虛擬困難負樣本;
原句和其虛擬困難樣本拉近
原句/原句虛擬困難強樣本分別與 k 領域內負樣本 /k 領域虛擬困難負樣本拉遠
作者沒有開源,但是其實按照 SimCSE 實際實現起來應該差不多,難度不大。
效果
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的亚马逊提出无监督虚拟增强句子表征学习框架,效果超越SimCSE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何正确处理家庭家居电器问题?
- 下一篇: 朋友共同買房房產證可以減名嗎