對(duì)比學(xué)習(xí)(Contrastive Learning)在CV與NLP領(lǐng)域中的研究進(jìn)展
對(duì)比學(xué)習(xí)方法(CV)
對(duì)比學(xué)習(xí)要做什么?
有監(jiān)督訓(xùn)練的典型問題,就是標(biāo)注數(shù)據(jù)是有限的。
目前NLP領(lǐng)域的經(jīng)驗(yàn),自監(jiān)督預(yù)訓(xùn)練使用的數(shù)據(jù)量越大,模型越復(fù)雜,那么模型能夠吸收的知識(shí)越多,對(duì)下游任務(wù)效果來說越好。這可能是自從Bert出現(xiàn)以來,一再被反復(fù)證明。
所以對(duì)比學(xué)習(xí)的出現(xiàn),是圖像領(lǐng)域?yàn)榱私鉀Q“在沒有更大標(biāo)注數(shù)據(jù)集的情況下,如何采用自監(jiān)督預(yù)訓(xùn)練模式,來從中吸取圖像本身的先驗(yàn)知識(shí)分布,得到一個(gè)預(yù)訓(xùn)練的模型”。
對(duì)比學(xué)習(xí)是自監(jiān)督學(xué)習(xí)的一種,也就是說,不依賴標(biāo)注數(shù)據(jù),要從無標(biāo)注圖像中自己學(xué)習(xí)知識(shí)。
目前,對(duì)比學(xué)習(xí)貌似處于“無明確定義、有指導(dǎo)原則”的狀態(tài),它的指導(dǎo)原則是:通過自動(dòng)構(gòu)造相似實(shí)例和不相似實(shí)例,要求習(xí)得一個(gè)表示學(xué)習(xí)模型,通過這個(gè)模型,使得相似的實(shí)例在投影空間中比較接近,而不相似的實(shí)例在投影空間中距離比較遠(yuǎn)。
對(duì)比學(xué)習(xí)Paper都會(huì)涉及到的一些關(guān)鍵點(diǎn):
- 如何構(gòu)造相似實(shí)例,以及不相似實(shí)例;
- 如何構(gòu)造能夠遵循上述指導(dǎo)原則的表示學(xué)習(xí)模型結(jié)構(gòu);
- 以及如何防止模型坍塌(Model Collapse);
SimCLR:一個(gè)典型的負(fù)例對(duì)比學(xué)習(xí)方法
SimCLR它是圖像領(lǐng)域2020年ICML會(huì)議提出的,是一個(gè)比較“標(biāo)準(zhǔn)”的對(duì)比學(xué)習(xí)模型。
第一,它相對(duì)于之前的模型效果有明顯的提升;第二,它采取對(duì)稱結(jié)構(gòu),整體相對(duì)簡(jiǎn)潔清晰;第三,它奠定的結(jié)構(gòu),已成為其它對(duì)比學(xué)習(xí)模型的標(biāo)準(zhǔn)構(gòu)成部分。
如何構(gòu)造正負(fù)例
正例構(gòu)造方法如上圖所示。對(duì)于某張圖片,我們從可能的增強(qiáng)操作集合T中,隨機(jī)抽取兩種:t1~T及t2~T,分別作用在原始圖像上,形成兩張經(jīng)過增強(qiáng)的新圖像,兩者互為正例。訓(xùn)練時(shí),Batch內(nèi)任意其它圖像,都可做為x1或x2的負(fù)例。
對(duì)比學(xué)習(xí)希望習(xí)得某個(gè)表示模型,它能夠?qū)D片映射到某個(gè)投影空間,并在這個(gè)空間內(nèi)拉近正例的距離,推遠(yuǎn)負(fù)例距離。也就是說,迫使表示模型能夠忽略表面因素,學(xué)習(xí)圖像的內(nèi)在一致結(jié)構(gòu)信息,即學(xué)會(huì)某些類型的不變性,比如遮擋不變性、旋轉(zhuǎn)不變性、顏色不變性等。SimCLR證明了,如果能夠同時(shí)融合多種圖像增強(qiáng)操作,增加對(duì)比學(xué)習(xí)模型任務(wù)難度,對(duì)于對(duì)比學(xué)習(xí)效果有明顯提升作用。
構(gòu)造表示學(xué)習(xí)系統(tǒng)
指導(dǎo)原則:通過這個(gè)系統(tǒng),將訓(xùn)練數(shù)據(jù)投影到某個(gè)表示空間內(nèi),并采取一定的方法,使得正例距離比較近,負(fù)例距離比較遠(yuǎn)。
上圖展示了SimCLR模型的整體結(jié)構(gòu)。是的,它是一個(gè)雙塔模型,不過圖像領(lǐng)域一般叫Branch(上下兩個(gè)分支)。
我們隨機(jī)從無標(biāo)訓(xùn)練數(shù)據(jù)中取N個(gè)構(gòu)成一個(gè)Batch,對(duì)于Batch里的任意圖像,根據(jù)上述方法構(gòu)造正例,形成兩個(gè)圖像增強(qiáng)視圖:Aug1和Aug2。Aug1 和Aug2各自包含N個(gè)增強(qiáng)數(shù)據(jù),并分別經(jīng)過上下兩個(gè)分支,對(duì)增強(qiáng)圖像做非線性變換,這兩個(gè)分支就是SimCLR設(shè)計(jì)出的表示學(xué)習(xí)所需的投影函數(shù),負(fù)責(zé)將圖像數(shù)據(jù)投影到某個(gè)表示空間。
以上分支為例。Aug1首先經(jīng)過特征編碼器Encoder(一般采用ResNet做為模型結(jié)構(gòu),這里以函數(shù) fθ代表),經(jīng)CNN轉(zhuǎn)換成對(duì)應(yīng)的特征表示 。之后,是另外一個(gè)非線性變換結(jié)構(gòu)Projector(由[FC->BN->ReLU->FC]兩層MLP構(gòu)成,這里以函數(shù) gθ代表),進(jìn)一步將特征表示hi映射成另外一個(gè)空間里的向量zi。這樣,增強(qiáng)圖像經(jīng)過 gθ(fθ(x)) 兩次非線性變換,就將增強(qiáng)圖像投影到了表示空間,下分枝的Aug2過程類似。(問題:為什么這種投影操作,要做兩次:經(jīng)驗(yàn)結(jié)果)。
對(duì)于Batch內(nèi)某張圖像x來說,在Aug1和Aug2里的對(duì)應(yīng)的增強(qiáng)后圖像分別是xi和xj,他們互為正例,而xi和Aug1及Aug2里除xj之外的其它任意2N-2個(gè)圖像都互為負(fù)例。在經(jīng)過變換后,增強(qiáng)圖像被投影到表示空間。通過定義合適的損失函數(shù),來實(shí)現(xiàn)“正例距離較近,負(fù)例距離較遠(yuǎn)”的目標(biāo)。
距離度量函數(shù)
首先需要一個(gè)度量函數(shù),以判斷兩個(gè)向量在投影空間里的距離遠(yuǎn)近,一般采用相似性函數(shù)來作為距離度量標(biāo)準(zhǔn)。
具體而言,相似性計(jì)算函數(shù)采取對(duì)表示向量L2正則后的點(diǎn)積或者表示向量間的Cosine相似性:
損失函數(shù)
損失函數(shù)很關(guān)鍵,SimCLR的損失函數(shù)采用InfoNCE Loss,某個(gè)例子對(duì)應(yīng)的InfoNCE損失為:
其中代表兩個(gè)正例相應(yīng)的Embedding。
InfoNCE函數(shù),分子部分鼓勵(lì)正例相似度越高越好,也就是在表示空間內(nèi)距離越近越好;而分母部分,則鼓勵(lì)任意負(fù)例之間的向量相似度越低越好,也就是距離越遠(yuǎn)越好。
上面介紹了SimCLR的關(guān)鍵做法,本身這個(gè)過程,其實(shí)是標(biāo)準(zhǔn)的預(yù)訓(xùn)練模式;利用海量的無標(biāo)注圖像數(shù)據(jù),根據(jù)對(duì)比學(xué)習(xí)指導(dǎo)原則,學(xué)習(xí)出好的Encoder模型以及它對(duì)應(yīng)產(chǎn)生的特征表示。所謂好的Encoder,就是說輸入圖像,它能學(xué)會(huì)并抽取出關(guān)鍵特征,這個(gè)過程跟Bert模型通過MLM自監(jiān)督預(yù)訓(xùn)練其實(shí)目的相同,只是做法有差異。學(xué)好Encoder后,可以在解決下游具體任務(wù)的時(shí)候,用學(xué)到的參數(shù)初始化Encoder中的ResNet模型,用下游任務(wù)標(biāo)注數(shù)據(jù)來Fine-tuning模型參數(shù),期待預(yù)訓(xùn)練階段學(xué)到的知識(shí)對(duì)下游任務(wù)有遷移作用。由此可見,SimCLR看著有很多構(gòu)件,比如Encoder、Projector、圖像增強(qiáng)、InfoNCE損失函數(shù),其實(shí)我們最后要的,只是Encoder,而其它所有構(gòu)件以及損失函數(shù),只是用于訓(xùn)練出高質(zhì)量Encoder的輔助結(jié)構(gòu)。目前所有對(duì)比學(xué)習(xí)模型都是如此,這點(diǎn)還請(qǐng)注意。
SimCLR的貢獻(xiàn),一個(gè)是證明了復(fù)合圖像增強(qiáng)很重要;另外一個(gè)就是這個(gè)Projector結(jié)構(gòu)。這兩者結(jié)合,給對(duì)比學(xué)習(xí)系統(tǒng)帶來很大的性能提升,將對(duì)比學(xué)習(xí)性能提升到或者超過了有監(jiān)督模型,在此之后的對(duì)比學(xué)習(xí)模型,基本都采取了Encoder+Projector的兩次映射結(jié)構(gòu),以及復(fù)合圖像增強(qiáng)方法。
評(píng)判對(duì)比學(xué)習(xí)系統(tǒng)的標(biāo)準(zhǔn)
對(duì)比學(xué)習(xí)在做特征表示相似性計(jì)算時(shí),要先對(duì)表示向量做L2正則,之后再做點(diǎn)積計(jì)算,或者直接采用Cosine相似性,為什么要這么做呢?
很多研究表明,把特征表示映射到單位超球面上,有很多好處。這里有兩個(gè)關(guān)鍵,一個(gè)是單位長(zhǎng)度,一個(gè)是超球面。首先,相比帶有向量長(zhǎng)度信息的點(diǎn)積,在去掉長(zhǎng)度信息后的單位長(zhǎng)度向量操作,能增加深度學(xué)習(xí)模型的訓(xùn)練穩(wěn)定性。另外,當(dāng)表示向量被映射到超球面上,如果模型的表示能力足夠好,能夠把相似的例子在超球面上聚集到較近區(qū)域,那么很容易使用線性分類器把某類和其它類區(qū)分開(參考上圖)。在對(duì)比學(xué)習(xí)模型里,對(duì)學(xué)習(xí)到的表示向量進(jìn)行L2正則,或者采用Cosine相似性,就等價(jià)于將表示向量投影到了單位超球面上進(jìn)行相互比較。
很多對(duì)比學(xué)習(xí)模型相關(guān)實(shí)驗(yàn)也證明了:對(duì)表示向量進(jìn)行L2正則能提升模型效果。
Alignment和Uniformity
論文 《Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere》,對(duì)好的對(duì)比學(xué)習(xí)系統(tǒng)進(jìn)行了探討。它提出好的對(duì)比學(xué)習(xí)系統(tǒng)應(yīng)該具備兩個(gè)屬性。
Alignment:指的是相似的例子,也就是正例,映射到單位超球面后,應(yīng)該有接近的特征,也即是說,在超球面上距離比較近
Uniformity:指的是系統(tǒng)應(yīng)該傾向在特征里保留盡可能多的信息,這等價(jià)于使得映射到單位超球面的特征,盡可能均勻地分布在球面上,分布得越均勻,意味著保留的信息越充分。分布均勻意味著兩兩有差異,也意味著各自保有獨(dú)有信息,這代表信息保留充分。
模型坍塌(Collapse)
Uniformity特性的極端反例,是所有數(shù)據(jù)映射到單位超球面同一個(gè)點(diǎn)上,這極度違背了Uniformity原則,因?yàn)檫@代表所有數(shù)據(jù)的信息都被丟掉了,體現(xiàn)為數(shù)據(jù)極度不均勻得分布到了超球面同一個(gè)點(diǎn)上。也就是說,所有數(shù)據(jù)經(jīng)過特征表示映射過程后,都收斂到了同一個(gè)常數(shù)解,一般將這種異常情況稱為模型坍塌(Collapse)(參考上圖)。
重新審視類似SimCLR結(jié)構(gòu)的對(duì)比學(xué)習(xí)模型
可以看到,對(duì)比學(xué)習(xí)模型結(jié)構(gòu)里的上下兩個(gè)分枝,首先會(huì)將正例對(duì),或者負(fù)例對(duì),通過兩次非線性映射,將訓(xùn)練數(shù)據(jù)投影到單位超球面上。然后通過體現(xiàn)優(yōu)化目標(biāo)的InfoNCE損失函數(shù),來調(diào)整這些映射到單位超球面上的點(diǎn)之間的拓?fù)浣Y(jié)構(gòu)關(guān)系,希望能將正例在超球面上距離拉近,負(fù)例在超球面上推遠(yuǎn)。那么損失函數(shù)InfoNCE又是怎么達(dá)成這一點(diǎn)的呢?
分子部分體現(xiàn)出“Alignment”屬性,它鼓勵(lì)正例在單位超球面的距離越近越好;而分母里負(fù)例,則體現(xiàn)了“Uniformity”屬性,它鼓勵(lì)任意兩對(duì)負(fù)例,在單位超球面上,兩兩距離越遠(yuǎn)越好。
溫度超參 τ 有什么作用呢?目前很多實(shí)驗(yàn)表明,對(duì)比學(xué)習(xí)模型要想效果比較好,溫度超參 τ 要設(shè)置一個(gè)比較小的數(shù)值,一般設(shè)置為0.1或者0.2。問題是:將這個(gè)超參設(shè)大或設(shè)小,它是如何影響模型優(yōu)化過程的呢?目前的研究結(jié)果表明,InfoNCE是個(gè)能夠感知負(fù)例難度的損失函數(shù),而之所以能做到這點(diǎn),主要依賴超參。
對(duì)比學(xué)習(xí)方法分類(圖像)
如果從防止模型坍塌的不同方法角度,我們可大致把現(xiàn)有方法劃分為四種:基于負(fù)例的對(duì)比學(xué)習(xí)方法、基于對(duì)比聚類的方法、基于不對(duì)稱網(wǎng)絡(luò)結(jié)構(gòu)的方法,以及基于冗余消除損失函數(shù)的方法。
對(duì)比學(xué)習(xí)方法歸類
基于負(fù)例的對(duì)比學(xué)習(xí)方法
所有在損失函數(shù)中采用負(fù)例的對(duì)比學(xué)習(xí)方法,都是靠負(fù)例的Uniformity特性,來防止模型坍塌的,這包括SimCLR系列及Moco系列等很多典型對(duì)比學(xué)習(xí)模型
基于對(duì)比聚類的方法
代表模型SwAV。
對(duì)于Batch內(nèi)某張圖像x來說,假設(shè)其經(jīng)過圖像增強(qiáng)Aug1和Aug2后,獲得增強(qiáng)圖像x1,x2,x1與x2則互為正例。x1走上分枝,x2走下分枝,SwAV對(duì)Aug1和Aug2中的表示向量,根據(jù)Sinkhorn-Knopp算法,在線對(duì)Batch內(nèi)數(shù)據(jù)進(jìn)行聚類。SwAV要求表示學(xué)習(xí)模型根據(jù)x1預(yù)測(cè)x2所在的類,同樣的,也要求x2預(yù)測(cè)x1所在的類。
該方法要求某個(gè)投影點(diǎn)在超球面上,向另外一個(gè)投影點(diǎn)所屬的聚類中心靠近,體現(xiàn)了Alignment原則;和其它聚類中心越遠(yuǎn)越好,這體現(xiàn)了Uniformity屬性。
SwAV面臨模型坍塌問題,具體表現(xiàn)形式為:Batch內(nèi)所有實(shí)例都聚類到同一個(gè)類里。所以為了防止模型坍塌,SwAV對(duì)聚類增加了約束條件,要求Batch內(nèi)實(shí)例比較均勻地聚類到不同的類別中。本質(zhì)上,它與直接采用負(fù)例的對(duì)比學(xué)習(xí)模型,在防止模型坍塌方面作用機(jī)制是類似的,是一種隱形的負(fù)例。
基于不對(duì)稱網(wǎng)絡(luò)結(jié)構(gòu)的方法
代表模型BYOL:只用正例來訓(xùn)練對(duì)比學(xué)習(xí)模型,靠上下分枝的結(jié)構(gòu)不對(duì)稱,防止模型坍塌。
基于冗余消除損失函數(shù)的方法
代表模型 Barlow Twins。
既沒有使用負(fù)例,也沒有使用不對(duì)稱結(jié)構(gòu),主要靠替換了一個(gè)新的損失函數(shù),可稱之為“冗余消除損失函數(shù)”,來防止模型坍塌。
實(shí)驗(yàn)結(jié)果
目前絕大多數(shù)對(duì)比學(xué)習(xí)模型在做模型訓(xùn)練的時(shí)候,采用的是ImageNet數(shù)據(jù)集,在評(píng)測(cè)的時(shí)候,主要實(shí)驗(yàn)也是在ImageNet上做的,那么問題是:對(duì)比學(xué)習(xí)本質(zhì)上是種自監(jiān)督預(yù)訓(xùn)練模型,希望能夠從ImageNet數(shù)據(jù)集上自監(jiān)督地學(xué)到一些圖像先驗(yàn)知識(shí)與結(jié)構(gòu)。那么,這種從ImageNet數(shù)據(jù)集學(xué)到的知識(shí),能否很好地遷移到其它數(shù)據(jù)集呢?
論文“How Well Do Self-Supervised Models Transfer?”對(duì)13個(gè)知名自監(jiān)督模型,在40多種數(shù)據(jù)集上進(jìn)行相對(duì)公平地對(duì)比測(cè)試,得出了一些很有價(jià)值的結(jié)論。
對(duì)比學(xué)習(xí)方法(NLP)
CV領(lǐng)域的對(duì)比學(xué)習(xí)研究在近兩年風(fēng)生水起,也逐漸影響到NLP領(lǐng)域,從2020年起,NLP領(lǐng)域逐漸有一些利用對(duì)比學(xué)習(xí)思想,自監(jiān)督訓(xùn)練sentence-embedding的idea。
我自己的調(diào)研中,通過如何運(yùn)用Contrastive Learning思想,分成兩類:
- 損失聯(lián)合方式自監(jiān)督:將CL的loss和其他loss混合,通過聯(lián)合優(yōu)化,使CL起到效果:CLEAR,DeCLUTER,SCCL。
- 非聯(lián)合方法自監(jiān)督:構(gòu)造增強(qiáng)樣本,fine-tune模型:Bert-CT,ConSERT,SimCSE。
下面分別從背景、方案、數(shù)據(jù)增強(qiáng)方法和實(shí)驗(yàn)效果介紹幾個(gè)典型模型。
損失聯(lián)合方式自監(jiān)督
1.CLEAR
鏈接:
https://arxiv.org/pdf/2012.15466.pdf
背景:作者認(rèn)為,當(dāng)前的預(yù)訓(xùn)練模型都是基于word-level的,沒有基于sentence-level的目標(biāo),對(duì)sentence的效果不好。
方案:word-level和sentence-level的loss聯(lián)合。
對(duì)比損失函數(shù):
數(shù)據(jù)增強(qiáng)方法:token層
實(shí)驗(yàn)效果:
GLUE:
SentEval:
2.DeCLUTR
鏈接:https://arxiv.org/abs/2006.03659
方案:是一個(gè)不用訓(xùn)練數(shù)據(jù)的自監(jiān)督的方法,是對(duì)pretrain過程的優(yōu)化。
數(shù)據(jù)增強(qiáng)方法:
方案:選N個(gè)document組成一個(gè)batch,每個(gè)document取A個(gè)anchor,就有AN個(gè),anchor取一個(gè)positive,也有AN個(gè),共2AN個(gè)點(diǎn)。對(duì)于每一個(gè)點(diǎn),除了和它組成正例的一對(duì)的2個(gè),其他2AN-2都是負(fù)例
宗旨:認(rèn)為距離anchor span越近的文本越相似,因此anchor span和它周邊的span作為正例
用不同的Beta分布去限制anchor和positive span的長(zhǎng)度,一般anchor比positive要長(zhǎng),而且anchor最長(zhǎng)可以到512。
作者認(rèn)為:
1. 長(zhǎng)anchor可以讓embedding達(dá)到同時(shí)表征sentence級(jí)別和paragraph級(jí)別的作用
2. 這樣配置下游任務(wù)效果好 a)學(xué)到了global-to-local的信息 b)生成多個(gè)positive后可以獲得diversity的信息
3. 因?yàn)橐粋€(gè)batch里有多個(gè)文檔,不同文檔的span組成的負(fù)例是easy負(fù)例,同文檔的span組成的負(fù)例是hard負(fù)例。
實(shí)驗(yàn)效果:對(duì)比學(xué)習(xí)過程中的ENCODER和MLM部分的Pretrained model是RoBerta和DistillRoBerta,pooling用的mean pooling。
擴(kuò)展知識(shí):Bert vs RoBerta vs AlBert
評(píng)測(cè)數(shù)據(jù)集是SentEval,SentEval是一個(gè)用于評(píng)估句子表征的工具包,包含 17 個(gè)下游任務(wù),其輸入是句子表示,輸出是預(yù)測(cè)結(jié)果。
可以看到本文方案往往不是最優(yōu)的那個(gè),但是作者對(duì)比了 沒用對(duì)比學(xué)習(xí)方法和用了對(duì)比學(xué)習(xí)方法(最后的Transformer-* VS DeCLUTER-*)的結(jié)果,說明了自己方案有效。
3.Supporting Clustering with Contrastive Learning
鏈接:https://arxiv.org/abs/2103.12953(NAACL 2021)
背景:在學(xué)習(xí)過程的開始階段,不同的類別常常在表征空間中相互重疊,對(duì)如何實(shí)現(xiàn)不同類別之間的良好分離,帶來了巨大的挑戰(zhàn)。
方案:利用對(duì)比學(xué)習(xí),去做更好的分離。通過聯(lián)合優(yōu)化top-down聚類損失和bottom-up 實(shí)體級(jí)別的對(duì)比loss,來達(dá)到同時(shí)優(yōu)化intra-cluster和inter-cluster的目的。
分Instance-CL部分和Clustering部分兩個(gè)部分。
Instance-CL:
- 隨機(jī)選M個(gè)樣本組成一個(gè)batch,數(shù)據(jù)增強(qiáng)方法生成2M個(gè)樣本,依然是從一個(gè)樣本中生成的2個(gè)為一對(duì)正樣本,和其他2M-2組成負(fù)樣本
- 數(shù)據(jù)增強(qiáng)方法:
- 每個(gè)樣本用InfoCNE去算loss, Instance-CL loss 為2M樣本的平均值。
數(shù)據(jù)增強(qiáng)方法:
- WordNet Augmenter:用wordNet中的同義詞進(jìn)行替換;
- Contextual Augmenter:用pretrained model去找最合適的詞去進(jìn)行插入或替換;
- Paraphrase via back translation:翻譯成一種語言再翻譯回來;
實(shí)驗(yàn)效果:
非聯(lián)合方式自監(jiān)督
1.BERT-CT (ICLR2021)
背景:從各種預(yù)訓(xùn)練模型的某層中取出的embedding,并不能很好表征句子,而且越接近目標(biāo)的層,效果越不好。作者認(rèn)為訓(xùn)練目標(biāo)極為重要。
方案:用兩個(gè)超參不一樣的模型來取sentence embedding,盡可能讓正例對(duì)的點(diǎn)積更大,負(fù)例對(duì)的點(diǎn)積更小。
數(shù)據(jù)增強(qiáng)方法:
正例:同句子的不同embedding;
負(fù)例:隨機(jī)選7個(gè)不同的句子;
實(shí)驗(yàn)效果:
2.SimCSE
鏈接:https://arxiv.org/abs/2104.08821
背景:直接用BERT句向量做無監(jiān)督語義相似度計(jì)算效果會(huì)很差,任意兩個(gè)句子的BERT句向量的相似度都相當(dāng)高,其中一個(gè)原因是向量分布的非線性和奇異性,正好,對(duì)比學(xué)習(xí)的目標(biāo)之一就是學(xué)習(xí)到分布均勻的向量表示,因此我們可以借助對(duì)比學(xué)習(xí)間接達(dá)到規(guī)整表示空間的效果,這又回到了正樣本構(gòu)建的問題上來,而本文的創(chuàng)新點(diǎn)之一正是無監(jiān)督條件下的正樣本構(gòu)建。
方案&數(shù)據(jù)增強(qiáng)方法:本文作者提出可以通過隨機(jī)采樣dropout mask來生成xi+,回想一下,在標(biāo)準(zhǔn)的Transformer中,dropout mask被放置在全連接層和注意力求和操作上,其中z是隨機(jī)生成的dropout mask,由于dropout mask是隨機(jī)生成的,所以在訓(xùn)練階段,將同一個(gè)樣本分兩次輸入到同一個(gè)編碼器中,我們會(huì)得到兩個(gè)不同的表示向量z,z',將z'作為正樣本,則模型的訓(xùn)練目標(biāo)為:
這種通過改變dropout mask生成正樣本的方法可以看作是數(shù)據(jù)增強(qiáng)的最小形式,因?yàn)樵瓨颖竞蜕傻恼龢颖镜恼Z義是完全一致的(注意語義一致和語義相關(guān)的區(qū)別),只是生成的embedding不同而已。
實(shí)驗(yàn)效果:
作者介紹
對(duì)白,碩士畢業(yè)于清華,現(xiàn)大廠算法工程師,拿過八家大廠的SSP offer。本科時(shí)獨(dú)立創(chuàng)業(yè)五年,成立兩家公司,并拿過總計(jì)三百多萬元融資(已到賬),項(xiàng)目入選南京321高層次創(chuàng)業(yè)人才引進(jìn)計(jì)劃。創(chuàng)業(yè)做過無人機(jī)、機(jī)器人和互聯(lián)網(wǎng)教育,保研后選擇退出。