Paper Reading 《SimCSE》
Paper Reading: SimCSE
SimCSE: Simple Contrastive Learning of Sentence Embeddings
尚未發表。Github. Paper.
1. 什么是對比學習及度量標準
1.1 概念
無監督學習兩種思路:1. 生成式學習。i.e. GAN, VAE 2. 對比式學習
核心是構建正負樣本集合,學習同正樣本之間的共同特征(拉進二者距離),區分負樣本(拉遠距離)。
舉個栗子:
Loss的負對數和里面是正樣本對的softmax值,min Loss ?\Leftrightarrow? max positive pairs similarity。similarity可以用cos sim。
1.2 度量標準
如何衡量對比學習的性能好壞?對比學習的優化目標:
- 拉進正樣本對表示之間的距離
- 隨機樣例表示分布在超球面上
Wang & Isola(ICML2020)從此出發提出了兩個指標:alignment和uniformity
-
alignment計算正例對之間的向量距離的期望:
?align??E(x,x+)~ppos?∥f(x)?f(x+)∥2\ell_{\text {align }} \triangleq \underset{\left(x, x^{+}\right) \sim p_{\text {pos }}}{\mathbb{E}}\left\|f(x)-f\left(x^{+}\right)\right\|^{2}?align???(x,x+)~ppos??E?∥f(x)?f(x+)∥2
越相似的樣例之間的alignment程度越高。因為alignment使用距離來衡量,所以距離越小表示alignment的程度越高。
-
uniformity評估所有數據的向量均勻分布的程度,越均勻,保留的信息越多。
?uniform??log?Ex,y~i.i.d.pdata?e?2∥f(x)?f(y)∥2\ell_{\text {uniform }} \triangleq \log \underset{\quad}{\mathbb{E} \atop x, y \stackrel{i . i . d .}{\sim} p_{\text {data }}} e^{-2\|f(x)-f(y)\|^{2}}?uniform???logx,y~i.i.d.pdata??E??e?2∥f(x)?f(y)∥2
從表示空間中采樣兩個數據x和y, 希望他們的距離比較遠。他們的距離越遠,證明空間分布越均勻,uniform值也是越低越好。
SimCSE也采用這兩個指標來衡量生成的句子向量,并證明了文本的語義空間也滿足:alignment值越低且uniformity值越低,向量表示的質量越高,在STS任務上的Spearman相關系數越高。
2 Intuition
3 無監督SimCSE
3.1 算法
Unsup SimCSE 引入dropout給輸入加噪聲視為***”數據增廣“***,假設加噪后的輸入仍與原始輸入在語義空間距離相近。其正負例的構造方式如下:
- 正例:給定輸入xix_ixi?,用PTM的Encoder函數fθ()f_\theta()fθ?()編碼xix_ixi?兩次得到兩個正向量hizih_i^{z_i}hizi??,hizi′h_i^{z_i^\prime}hizi′??作為正例對。
- 負例:in-batch neg instance. 在一個batch中隨機采用另一個xjx_jxj?作為負例,hizih_i^{z_i}hizi??,hj′h_j^\primehj′?為負例對。
Loss選取為:
?i=?log?esim?(hizi,hizi′)/τ∑j=1Nesim?(hizi,hj′)/τ\ell_{i}=-\log \frac{e^{\operatorname{sim}\left(\mathbf{h}_{i}^{z_{i}}, \mathbf{h}_{i}^{z_{i}^{\prime}}\right) / \tau}}{ \left.\sum_{j=1}^{N} e^{\operatorname{sim}\left(\mathbf{h}_{i}^{z_{i}}, \mathbf{h}_{j}^{\prime}\right.}\right) / \tau} ?i?=?log∑j=1N?esim(hizi??,hj′?)/τesim(hizi??,hizi′??)/τ?
如何實現兩次不同的dropout?——Do Nothing.
https://github.com/princeton-nlp/SimCSE/issues/5
“Your understanding is correct. No extra change is needed over original BERT implementation. Simply forwarding the same sentence two times will give you two embeddings with different (internal) dropout masks.”
——By Tianyu Gao.
確實Simple.
3.2 原理圖
以#batch=3為例。
3.3 實驗效果
3.3.1從向量表示效果來看
其中crop k%表示隨機減掉k%長度的span,word deletion表示隨機刪除k%的詞,delete one word只刪除一個詞,MLM 15%表示用隨機替換掉15%的詞。上表中所有dropout的方法的dropout的比例都是0.1。(因為文中對比了不同比例的dropout,p=0.1效果最好。)
3.3.2 從對比學習來看
Fixed0.1的意思是固定了dropout的格式,即兩次masking神經元的節點概率完全相同,可以理解為單純的數據復制的“增廣“。
只有Unsup SimCSE是在一致性和均勻性這兩點上都變好的。
4 有監督SimCSE
作者在歷經嘗試了問答系統、CV、和機器翻譯的數據后,最后發現用自然語言理解的數據集效果提升最明顯。利用NLI的數據集進行帶標簽的訓練。
文本蘊含任務,句子對數據的三種label: entailment,contradiction,neutral。
4.1 算法設計
假設如果兩個句子存在蘊含關系,那么它們之間的句子向量距離應該較近;如果兩個句子存在矛盾關系,那么它們的距離應該較遠。
- 正例:NLI中entailment關系樣例對。
- 負例:1) in-batch negatives 2) NLI中為contradiction的樣例對(不使用neural pairs,contradiction也只用了一個,理論上可以抽很多)。
4.2 原理圖
Loss選取為:
?log?esim?(hi,hi+)/τ∑j=1N(esim?(hi,hj+)/τ+esim?(hi,hj?)/τ)-\log \frac{e^{\operatorname{sim}\left(\mathbf{h}_{i}, \mathbf{h}_{i}^{+}\right) / \tau}}{\sum_{j=1}^{N}\left(e^{\operatorname{sim}\left(\mathbf{h}_{i}, \mathbf{h}_{j}^{+}\right) / \tau}+e^{\operatorname{sim}\left(\mathbf{h}_{i}, \mathbf{h}_{j}^{-}\right) / \tau}\right)} ?log∑j=1N?(esim(hi?,hj+?)/τ+esim(hi?,hj??)/τ)esim(hi?,hi+?)/τ?
4.3 實驗效果
4.3.1 不同有監督數據集的提升
4.3.2 總體實驗結果
5 各向異性問題
5.1 理論證明
文本表示的嵌入是文本空間中一狹窄的錐,存在著各向異性的問題,引起奇異值退化(→0\rightarrow0→0)導致了梯度消失。
常用的做法有:后處理;映射為各向同性分布;加正則項。
而作者證明對比目標可以內在地“平滑”句子嵌入矩陣的奇異值分布。
Proof:
假設f(x)f(x)f(x)已經歸一化過,且當負例樣本對趨向于無窮大,則對比學習的漸進性優化目標可寫為:
?1τE(x,x+)~ppos?[f(x)?f(x+)]+Ex~pdata?[log?Ex?~pdata?[ef(x)?f(x?)/τ]]\begin{array}{l} -\frac{1}{\tau} \underset{\left(x, x^{+}\right) \sim p_{\text {pos }}}{\mathbb{E}}\left[f(x)^{\top} f\left(x^{+}\right)\right] +\underset{x \sim p_{\text {data }}}{\mathbb{E}}\left[\log \underset{x^{-} \sim p_{\text {data }}}{\mathbb{E}}\left[e^{f(x)^{\top} f\left(x^{-}\right) / \tau}\right]\right] \end{array} ?τ1?(x,x+)~ppos??E?[f(x)?f(x+)]+x~pdata??E?[logx?~pdata??E?[ef(x)?f(x?)/τ]]?
經過Encoder編碼之后假設hi=f(xi)h_i=f(x_i)hi?=f(xi?),且根據指數函數的凸性可由詹森不等式,優化目標的后半部分可為:
Ex~pdata?[log?Ex?~pdata?[ef(x)?f(x?)/τ]]=1m∑i=1mlog?(1m∑j=1mehi?hj/τ)≥1m∑i=1mlog?(1τm∑j=1mehi?hj)=1τm2∑i=1m∑j=1mhi?hj.\begin{aligned} & \underset{x \sim p_{\text {data }}}{\mathbb{E}}\left[\log \underset{x^{-} \sim p_{\text {data }}}{\mathbb{E}}\left[e^{f(x)^{\top} f\left(x^{-}\right) / \tau}\right]\right] \\ =& \frac{1}{m} \sum_{i=1}^{m} \log \left(\frac{1}{m} \sum_{j=1}^{m} e^{\mathbf{h}_{i}^{\top} \mathbf{h}_{j} / \tau}\right) \\ \geq & \frac{1}{m} \sum_{i=1}^{m} \log \left(\frac{1}{\tau m} \sum_{j=1}^{m} e^{\mathbf{h}_{i}^{\top} \mathbf{h}_{j}}\right) \\ = & \frac{1}{\tau m^{2}} \sum_{i=1}^{m} \sum_{j=1}^{m} \mathbf{h}_{i}^{\top} \mathbf{h}_{j} . \end{aligned} =≥=?x~pdata??E?[logx?~pdata??E?[ef(x)?f(x?)/τ]]m1?i=1∑m?log(m1?j=1∑m?ehi??hj?/τ)m1?i=1∑m?log(τm1?j=1∑m?ehi??hj?)τm21?i=1∑m?j=1∑m?hi??hj?.?
設W為句子表示矩陣。WWW的第iii行即為hih_ihi?,所以上式向量內積ΣΣhihj\Sigma\Sigma h_ih_jΣΣhi?hj?也即為矩陣WWTWW^TWWT的元素和。又因為我們對hih_ihi?做過標準化,則Σdiag(WWT)=1\Sigma diag(WW^T)=1Σdiag(WWT)=1且tr(WWT)tr(WW^T)tr(WWT)是個常數。若其所有元素都是整數,則可證sum(WWT)=supλmax(WWT)sum(WW^T) = sup \lambda_{max}(WW^T)sum(WWT)=supλmax?(WWT), 即其元素和為其最大特征值的upper bound.
綜上,對比學習的優化目標,可以同時平滑句子表示矩陣的協方差的特征值。
與JL Su等人的后處理方法相比,僅關注公式4各向同性表征,對比學習也通過公式4中的第一項優化對齊正對,這是SimCSE成功的關鍵。
5.2 數據分布
此外,我們觀察到SimCSE的分布通常比BERT或SBERT更分散,但與白化分布相比,在語義相似的句子對上保持了較低的方差
5.3 其他值得注意的點
將訓練好的句子向量遷移到其他7個任務上:
在embedding的基礎上只接一個邏輯回歸的線性分類器。(SentEval中提供了17種任務來進行句子向量表示模型的評測。)
遷移學習上的SimCSE并沒有展現出明顯的優勢。作者的解釋是句子級別的訓練目標并不能直接有利于遷移學習。為了讓遷移學習效果更好,文中還是嘗試將MLM損失和對比學習損失一起訓練,取得了少量的提升(上表中標有w/MLM的行)。
6. PTM
預訓練模型已發布并集成到HuggingFace。
from transformers import AutoModel, AutoTokenizertokenizer = AutoTokenizer.from_pretrained("princeton-nlp/sup-simcse-bert-base-uncased") model = AutoModel.from_pretrained("princeton-nlp/sup-simcse-bert-base-uncased")7. 參考資料
對比學習(Contrastive Learning)綜述
Understanding Contrastive Learning
Wang, T. & Isola, P. Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere. in International Conference on Machine Learning 9929–9939 (PMLR, 2020).
中文任務還是SOTA嗎?我們對SimCSE做了一些補充實驗(JL Su, 04/26)
總結
以上是生活随笔為你收集整理的Paper Reading 《SimCSE》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迪威视讯打造全国网格化管理样板 龙华“织
- 下一篇: VS中怎么将一个页面设置为起始页的解决方