風頭正勁的對比學習和項目實踐NLP從入門到放棄關(guān)注共 6615字,需瀏覽 14分鐘 ·2021-07-01 12:26 知乎專欄:數(shù)據(jù)拾光者公眾號:數(shù)據(jù)拾光者摘要:本篇從理論到實踐介紹了當前很火的對比學習模型。首先介紹了背景,主要是對比學習大火的原因以及如何應用到我們的實際業(yè)務中;然后從理論方面重點介紹了對比學習,包括對比學習的由來和目標、對比學習的指導原則以及構(gòu)建模型的三個關(guān)鍵問題、對比學習分類,其中重點介紹了基于負例的對比學習方法中的SimCLR模型;最后介紹了微博將對比學習應用到自然語言處理場景和多模態(tài)場景項目實踐。對于希望將對比學習應用到實際項目中的小伙伴可能有所幫助。 下面主要按照如下思維導圖進行學習分享: 01背景介紹1.1 當前風頭正勁的對比學習最近一段時間對比學習(Contrastive Learning)風頭正勁,不管是一線大神還是一線大廠,大家似乎都在討論對比學習,最直觀的現(xiàn)象就是關(guān)注的很多機器學習相關(guān)的公眾號都有發(fā)表對比學習相關(guān)的文章。緊跟技術(shù)前沿,我調(diào)研了很多對比學習相關(guān)的文章以及大廠關(guān)于對比學習的項目實踐整理成這篇文章,希望不僅可以了解對比學習的原理,而且可以將對比學習落地到我們的項目實踐并產(chǎn)出價值,讓技術(shù)為業(yè)務賦能。也希望機器學習相關(guān)的小伙伴能注重這種技術(shù)賦能業(yè)務的思維,技術(shù)尤其是機器學習相關(guān)的技術(shù)如果不能落地產(chǎn)生實際業(yè)務價值,那么這項技術(shù)的價值本身就會大打折扣。 1.2 對比學習大火的原因對比學習突然在工業(yè)界和學術(shù)界大火主要原因在于:對比學習作為一種無監(jiān)督訓練模型,在很多場景中效果已經(jīng)超過有監(jiān)督訓練模型。在此之前先提一句有監(jiān)督學習模型和無監(jiān)督學習模型。有監(jiān)督學習模型需要一定的標注數(shù)據(jù),比如識別貓狗圖片的任務,需要提前標注一批貓和狗的圖片提供給模型訓練。而無監(jiān)督學習模型則不需要標注數(shù)據(jù)。通常情況下有監(jiān)督學習模型的效果要優(yōu)于無監(jiān)督學習模型,因為可以通過標注數(shù)據(jù)學習到有價值的信息。而有監(jiān)督學習模型的缺點在于模型的普適性效較差。而無監(jiān)督學習模型因為不需要標注數(shù)據(jù),所以模型的普適性較好,但是效果稍微差點。然后這時候作為無監(jiān)督學習模型的對比學習竟然在多個任務中模型效果要優(yōu)于有監(jiān)督學習模型,這種有點“反?!钡牟僮髯匀痪拖褚活w炸彈引爆了機器學習圈。這就是對比學習大火的主要原因。 1.3 在我們業(yè)務中應用對比學習對比學習最早是應用在圖像領(lǐng)域,后來又快速擴展到自然語言處理領(lǐng)域。對于我們實際項目中,可以利用對比學習更好的理解文本、圖片、視頻等item數(shù)據(jù)源,從而更好的為數(shù)據(jù)源打標(item-tag任務),召回相似搜索(item-相似item任務),獲取更有價值的embedding向量用于下游擴量任務等等。 02詳解對比學習2.1 對比學習的由來和目標說起對比學習,還必須先講講自然語言處理領(lǐng)域具有里程碑意義的BERT模型。BERT模型是典型的預訓練和微調(diào)兩階段模型,因為效果好和應用范圍廣而大火,其中最重要的原因就是預訓練階段通過海量的文本數(shù)據(jù)進行無監(jiān)督訓練學習語言學知識,然后通過遷移學習將預訓練學到的知識應用到下游任務中。所以通過無監(jiān)督學習利用海量的無標簽數(shù)據(jù)非常重要。而圖像領(lǐng)域中的預訓練主要是有監(jiān)督的預訓練方式,一般是用有標簽的數(shù)據(jù)集用ImageNet來進行預訓練。這里有監(jiān)督的預訓練和無監(jiān)督的預訓練最大的區(qū)別就在于數(shù)據(jù)集是否有標簽,而這也是最重要的。深度學習之所以能取得如此傲人的戰(zhàn)績,在于可以使用更多的數(shù)據(jù)集。從BERT、GPT、RoBERTa到T5再到GPT2、GPT3等模型不斷的刷新很多任務的SOTA,一次次的說明使用更多的數(shù)據(jù)集可以有效提升模型的效果。對于無監(jiān)督學習模型來說使用更多的數(shù)據(jù)集根本不是問題,而對于有監(jiān)督學習模型來說簡直就是噩夢,因為標注成本是昂貴的,基本就限制了模型可用的數(shù)據(jù)規(guī)模。圖像領(lǐng)域的研究者們?yōu)榱讼馚ERT一樣構(gòu)建基于無監(jiān)督學習的預訓練模型提出了對比學習,這就是對比學習的由來。 說完了對比學習的由來,那對比學習的目標也就清楚了:和BERT模型類似,通過無監(jiān)督學習的方式利用海量的數(shù)據(jù)構(gòu)建預訓練模型,從而獲取圖像的先驗知識。然后通過遷移學習將獲取的圖像知識應用到下游任務中。 2.2 圖像領(lǐng)域中的無監(jiān)督學習前面也說過無監(jiān)督學習就是使用無標簽的數(shù)據(jù)集來學習知識。圖像領(lǐng)域中的無監(jiān)督學習主要分成兩種:生成式無監(jiān)督學習和判別式無監(jiān)督學習。生成式無監(jiān)督學習主要包括變分自編碼器VAE和生成對抗網(wǎng)絡GAN,在圖像領(lǐng)域聽的比較多,他們的一個重要特征是要求模型重建圖像或者圖像的一部分。這類任務難度很高,需要像素級的重構(gòu),中間的圖像編碼需要包含很多細節(jié)信息。相比于生成式無監(jiān)督學習來說,判別式無監(jiān)督學習則簡單很多,對比學習就屬于判別式無監(jiān)督學習。2.3 對比學習的指導原則以及構(gòu)建模型的三個關(guān)鍵問題上面說過,對比學習屬于判別式無監(jiān)督學習,對比學習核心的指導原則是:通過構(gòu)造相似實例和不相似實例獲得一個表示學習模型,通過這個模型可以讓相似的實例在投影的向量空間中盡可能的接近,而不相似的實例盡可能的遠離。 明確了對比學習的指導原則,要構(gòu)建對比學習模型就需要解決三個關(guān)鍵問題:第一個問題是如何構(gòu)造相似實例和不相似實例;第二個問題是如何構(gòu)造滿足對比學習指導原則的表示學習模型;第三個問題是如何防止模型坍塌(Modal Collapse)。至于這個防止模型坍塌就是要讓相似的實例在投影的空間中盡可能接近,不相似的盡可能遠離。如果模型坍塌了,那么可能所有的實例都映射到了一個點,也就是一個常數(shù)。 2.4 對比學習分類為了構(gòu)建滿足對比學習指導原則的模型,從防止模型坍塌的角度來說可以把現(xiàn)有的對比學習方法分成以下幾類:基于負例的對比學習方法基于對比聚類的對比學習方法基于不對稱網(wǎng)絡結(jié)構(gòu)的對比學習方法基于冗余消除損失函數(shù)的對比學習方法 2.5 基于負例的對比學習中的SimCLR整體來看對比學習目前百花齊放,我們選一種最容易理解并且效果還不錯的SimCLR模型進行講解。SimCLR模型是Hinton在論文《A Simple Framework for Contrastive Learning of Visual Representations》中提出來的,屬于基于負例的對比學習方法。SimCLR模型容易理解主要是因為模型采用對稱結(jié)構(gòu),整體簡單清晰,奠定了對比學習模型的標準結(jié)構(gòu)。不僅如此,SimCLR模型效果還非常不錯。后續(xù)很多的對比學習模型也是基于SimCLR進行改造的。要講清楚SimCLR模型,最重要的是看它如何解決構(gòu)建對比學習的三個關(guān)鍵問題。2.5.1 SimCLR構(gòu)造正例和負例圖1 SimCLR構(gòu)造正例和負例 對于圖像領(lǐng)域來說,構(gòu)造正例和負例的方法是對一張圖片t進行圖像增強,這里圖像增強可以是旋轉(zhuǎn)、亮度、灰度等操作,然后從增強之后的圖像數(shù)據(jù)集里面選擇兩張圖片t1和t2,訓練的時候?qū)?shù)據(jù)對<t1,t2>作為正例,將batch里面其他的圖片s和t1(或者t2)構(gòu)建負例對<t1,s>。因為對比學習的指導原則是希望得到一個表示學習模型,讓圖片映射到向量空間,使正例距離拉近,負例距離拉遠。通過這種構(gòu)建正負例的方式可以讓模型學習到圖片內(nèi)在一致結(jié)構(gòu)信息,也就是某些類型的不變性,比如旋轉(zhuǎn)不變性、亮度不變性等等。同時SimCLR模型證明了使用更加復雜的圖像增強技術(shù)或者融合多種圖像增強技術(shù)可以提升對比學習任務的難度,從而有效提升模型的效果。 2.5.2 SimCLR構(gòu)造表示學習模型上面已經(jīng)構(gòu)造好正負例,下面就是根據(jù)對比學習的指導原則來構(gòu)建表示學習模型,這個模型可以樣本映射到向量空間,并且使得相似的樣本距離盡可能近,不相似的樣本距離盡可能的遠。下面是SimCLR模型結(jié)構(gòu):圖2 SimCLR模型結(jié)構(gòu) SimCLR模型結(jié)構(gòu)基本上就是標準的雙塔結(jié)構(gòu)DSSM,關(guān)于雙塔結(jié)構(gòu)之前寫過一篇文章,感興趣的小伙伴可以去看看《廣告行業(yè)中那些趣事系列10:推薦系統(tǒng)中不得不說的DSSM雙塔模型》。從無標簽訓練集中隨機獲取N個數(shù)據(jù)集作為一個batch,對于batch里的任意圖片進行圖像增強,根據(jù)上述方法構(gòu)造正負例,并形成兩個增強視圖Aug1和Aug2,增強視圖Aug1和Aug2分別包含N個增強的數(shù)據(jù)。因為上下兩個塔是標準對稱的,所以只需要說明塔1就可以了。圖像數(shù)據(jù)會經(jīng)過一個編碼器encoder,一般情況是ResNet模型,經(jīng)過CNN操作之后會得到隱層向量hi;然后經(jīng)過另一個非線性變換結(jié)構(gòu)projector得到向量zi,其中projector結(jié)構(gòu)是由[FC->BN->ReLU->FC]兩層MLP構(gòu)成。也就是經(jīng)過兩次非線性變換先將圖片樣本轉(zhuǎn)換成hi,再轉(zhuǎn)換成zi,就將圖片映射到了表示空間。 2.5.3 SimCLR防止模型坍塌將圖片映射到向量空間之后,下一步就是讓正例的距離盡量拉近,負例的距離盡量拉遠,也就是SimCLR模型如何防止模型坍塌,這里需要通過定義損失函數(shù)來實現(xiàn)。SimCLR使用InfoNCE loss作為損失函數(shù),對于單個實例i來說InfoNCE loss計算公式如下:圖3 InfoNCE損失函數(shù)計算公式 通過InfoNCE損失函數(shù)公式可以看出,分子正例樣本對<zi,zi+>的距離越近loss越小,對應的分母負例樣本對<zi,zj>距離越大loss越小。通過這種方式可以滿足對比學習拉近正例疏遠負例的指導原則。具體計算向量之間的距離主要是對表示向量進行L2正則化后進行點擊相乘,下面是計算兩個向量之間距離的公式:圖4 計算兩個向量之間的距離 通過上述介紹我們了解了對比學習實現(xiàn)了通過無監(jiān)督學習的方式利用海量的數(shù)據(jù)用于模型預訓練流程,并且學習得到的向量可以滿足對比學習讓正例距離盡量相近,負例距離盡量拉遠的指導原則。 2.5.4 SimCLR最大的貢獻說到SimCLR最大的貢獻,要先提下SimCLR的模型結(jié)構(gòu)。SimCLR將圖片樣本經(jīng)過特征編碼器encoder得到隱層向量hi,然后再經(jīng)過一次非線性變化projector將hi向量轉(zhuǎn)化成向量zi,相當于做了兩次非線性變換。但是了解BERT的小伙伴都知道,我們將BERT作為編碼器進行編碼之后會直接接入下游任務相關(guān)的網(wǎng)絡層。關(guān)于SimCLR模型為什么要加入projector,SimCLR論文中對encoder和projecter的編碼差異化進行了實驗,結(jié)論是encoder之后的特征向量中包含很多圖像增強信息。經(jīng)過projector之后可以將一部分圖像增強的信息過濾掉。相當于為了構(gòu)建無監(jiān)督學習模型,SimCLR需要通過圖像增強來構(gòu)建正負例,而這種方法引入了額外的圖像增強相關(guān)的信息。為了過濾掉這些信息,會在encoder之后添加projector,從而將這些額外增加的信息過濾掉。最后的實驗結(jié)果也證明添加projector結(jié)構(gòu)可以提升模型的效果。 介紹projector結(jié)構(gòu)的原因是SimCLR模型最大的貢獻之一就是添加了projector結(jié)構(gòu),除此之外還證明了復合圖像增強可以有效提升模型的效果。 小結(jié)下,本節(jié)首先介紹了對比學習的由來和目標,然后介紹了圖像領(lǐng)域中兩種無監(jiān)督學習方式,分別是生成式無監(jiān)督學習和判別式無監(jiān)督學習;接著介紹了對比學習的指導原則以及構(gòu)建模型的三個關(guān)鍵問題,分別是如何構(gòu)造相似實例和不相似實例、如何構(gòu)造表示學習模型以及如何防止模型坍塌;最后介紹了對比學習分類,并詳細介紹了其中最經(jīng)典的基于負例的對比學習中的SimCLR模型。 03大廠關(guān)于對比學習實踐上一節(jié)重點介紹了對比學習相關(guān)的理論知識,下面從實踐的角度講下一線大廠關(guān)于對比學習的實踐。微博將對比學習落地到自然語言處理領(lǐng)域和多模態(tài)領(lǐng)域,并產(chǎn)生了不錯的線上效果。3.1 自然語言處理場景微博在自然語言處理場景中利用對比學習構(gòu)建了CD-TOM模型(Contrastive Document-Topic Model)。將同一微博中的<文檔,話題>數(shù)據(jù)對作為訓練數(shù)據(jù)通過對比學習構(gòu)建表示學習模型,將微博正文和話題映射到同一表示空間中,從而使得語義相近的正文和話題距離拉近,語義不相近的距離拉遠。通過這種方式可以獲得微博正文和話題的高質(zhì)量embedding用于下游任務中。CD-TOM模型結(jié)構(gòu)如下圖所示:圖5 CD-TOM模型結(jié)構(gòu) 可以看出CD-TOM模型結(jié)構(gòu)和SimCLR相似,采用了典型的batch內(nèi)負例的對比學習方法。使用BERT作為encoder,之后會對句中每個單詞對應Embedding累加后求均值(TAP, Token Average Pooling)操作。因為微博的算法工程師認為在文本表示時BERT的[CLS]向量表征文本內(nèi)容的效果不佳,使用TAP操作或者將第一層Transformer和最后最一層Transformer得到的字向量累加之后再進行TAP操作效果可能更好(這里原因猜測是第一層Transformer之后的embedding向量包含更多的詞向量信息,最后一層Transformer之后的embedding向量包含更多語句向量信息,將兩者累加之后可以最大程度上保留詞和語句的向量信息)。這個有一定的借鑒意義,之前在文本分類場景汽車分類器的優(yōu)化實驗中其實有對比過[CLS]向量和最后一層Transformer之后得到的向量進行Average、Sum等Pooling操作對文本分類效果的影響,當時的實驗結(jié)論是影響不大,可能因為當時訓練數(shù)據(jù)集規(guī)模不大,后面可以進行更加深入的嘗試。 和SimCLR模型不同的是CD-TOM并沒有使用projector結(jié)構(gòu),根據(jù)微博算法工程師的解釋說添加projector結(jié)構(gòu)對模型導致負向效果。這里是否需要使用projector結(jié)構(gòu)應該和實際項目相關(guān),通過實驗的方式來決定會更加合理,并不一定需要完全照搬SimCLR模型。 3.2 多模態(tài)場景微博在多模態(tài)場景中構(gòu)建了多模態(tài)模型W-CLIP(Weibo-CLIP),模型結(jié)構(gòu)基本和CD-TOM保持一致,只不過是用于構(gòu)建微博正文和圖片的對比表示學習模型。W-CLIP模型結(jié)構(gòu)如下圖所示:圖6 W-CLIP模型結(jié)構(gòu) 從上圖中可以看出W-CLIP模型結(jié)構(gòu)涉及兩種模態(tài)數(shù)據(jù):微博正文和圖片。微博正文塔還是使用BERT作為編碼器encoder,圖片塔則使用ResNet作為encoder,其他基本不變。通過W-CLIP模型可以將微博正文和圖片映射到同一表示空間,得到微博正文和圖片的高質(zhì)量embedding向量用于下游任務。 關(guān)于對比學習的實踐主要是介紹了微博的項目,后續(xù)我們也會將對比學習應用到實際業(yè)務場景中,比如item數(shù)據(jù)源打標、相似item召回以及應用到下游擴量模型的實踐等。 04總結(jié)和反思本篇從理論到實踐介紹了當前很火的對比學習模型。首先介紹了背景,主要是對比學習大火的原因以及如何應用到我們的實際業(yè)務中;然后從理論方面重點介紹了對比學習,包括對比學習的由來和目標、對比學習的指導原則以及構(gòu)建模型的三個關(guān)鍵問題、對比學習分類,其中重點介紹了基于負例的對比學習方法中的SimCLR模型;最后介紹了微博將對比學習應用到自然語言處理場景和多模態(tài)場景項目實踐。對于希望將對比學習應用到實際項目中的小伙伴可能有所幫助。 05參考文獻[1] A Simple Framework for ContrastiveLearning of Visual Representations[2] 對比學習(ContrastiveLearning):研究進展精要[3] 如何利用噪聲數(shù)據(jù):對比學習在微博場景的應用碼字不易,歡迎小伙伴們點贊和分享。 瀏覽 188點贊 評論 收藏 分享 手機掃一掃分享分享 舉報 評論圖片表情視頻評價全部評論推薦 數(shù)字經(jīng)濟風頭正勁,F(xiàn)ilecoin勇攀高峰!IPFS西麟0信息系統(tǒng)項目管理師和PMP?對比信息系統(tǒng)項目管理師和PMP?對比,通過幾個角度進行分析和對比。下面由科科過小編整理。有很多小伙伴問是先考信息系統(tǒng)項目管理師還是先考PMP??或說信息系統(tǒng)項目管理師和PMP?哪個含金量高,針對這一問題,做一下分析。首先要做的是自己想清楚自己考證是為了入戶、公司需要,還是自己充電,拓展視野用。需求不同,當然證書對每個人的價值也有所不同。通過幾個方面介紹,希望能更清楚的認識信息系統(tǒng)項目管理師和PMP?證書。 一、證書介紹: “信息系統(tǒng)項目管理師”是由國家人力資源和社會保障部、工業(yè)和信息化部共同組織的國家級考試,這種考試既是職業(yè)資格考試,又是職稱資格考試。考試合格者將頒發(fā)由中華人民共和國人力資源和社會保障部、工業(yè)和信息化部用印的計算機技術(shù)與大健康產(chǎn)業(yè)風頭正勁,下一個黃金賽道在哪里?物聯(lián)網(wǎng)智庫0項目管理工具對比目前在進行敏捷管理項目實施的時候,對比了一下市面上主流的項目協(xié)作管理的軟件&開源工具。 對比對象包括Teambition, OrangeScrum, Tuleap Open ALM, Taiga.io, 飛書,企業(yè)微信, Slack, Trello, Asana, Mattermost, Wrike, Teamwork, Proofhub. 功能對比結(jié)果圖 在其中挑選出六個功能比較完備的軟件和開源軟件進行優(yōu)劣勢以及價格的對比: 分別為:Teambition, Taiga, OrangeScrum, Tuleap, 飛書, 企業(yè)微信。 其中飛書目前不支持燃盡圖,任務管理也比較粗糙,但是目前中小企業(yè)申請可以三年免費,而且支持聊qiankun 項目實踐和優(yōu)化(React+Vue)SegmentFault0Prometheus和Zabbix的對比程序員面試吧0正勁飲料山東正勁飲料有限公司位于五岳之首的泰山腳下——山東省泰安市寧陽經(jīng)濟開發(fā)區(qū),主要從事蛋白飲料、果汁飲料疾風正勁電影以《疾風正勁》命名,正是取自《舊唐書·蕭瑀傳》中“疾風知勁草,板蕩識忠臣”的典故,作為一部熱血獻禮片,故事背景設置在1937年的上海,正值國事凋敝、外憂內(nèi)患的艱難時刻,這部電影將聚焦于1937年國正勁飲料山東正勁飲料有限公司位于五岳之首的泰山腳下——山東省泰安市寧陽經(jīng)濟開發(fā)區(qū),主要從事蛋白飲料、果汁飲料、粗糧復配谷物飲料、植物飲料、八寶粥、飲用水等系列產(chǎn)品的自主研發(fā)、生產(chǎn)銷售以及技術(shù)咨詢,是泰安市農(nóng)業(yè)回顧6年深度學習的算法實踐和演進極市平臺0點贊 評論 收藏 分享 手機掃一掃分享分享 舉報