來自:NLPCAB
句子表示在很多任務(wù)中都是重要的一環(huán)。尤其是在大數(shù)據(jù)量的場(chǎng)景下,很多場(chǎng)景都需要召回+排序兩個(gè)步驟,如果第一個(gè)環(huán)節(jié)沒有召回候選結(jié)果,那最后的排序模型再怎么優(yōu)秀也沒法給出正確答案。
今天就給大家介紹一個(gè)微軟在EMNLP2020上發(fā)表的最新工作,利用transformer生成更高質(zhì)量的句子編碼。
雖然BERT式模型的出現(xiàn)解決了很多判別問題,但直接用無監(jiān)督語料訓(xùn)練出的BERT做句子表示并不理想:
如果只取CLS,這個(gè)表示是針對(duì)NSP進(jìn)行優(yōu)化的,表示的信息有限
如果取平均或最大池化,可能會(huì)把無用信息計(jì)算進(jìn)來,增加噪聲
所以作者的改進(jìn)目的是設(shè)計(jì)一個(gè)下游任務(wù),直接優(yōu)化得到的句子embedding。
那怎么設(shè)計(jì)目標(biāo)才能充分利用無監(jiān)督數(shù)據(jù)呢?
作者給出了一個(gè)巧妙的方法,就是用周邊其他句子的表示預(yù)測(cè)當(dāng)前句子的token。
具體的做法是:先利用Transformer抽取句子表示,再對(duì)句子表示進(jìn)行attention,選取相關(guān)的句子預(yù)測(cè)當(dāng)前token。有點(diǎn)Hierarchical Attention的意思。
比如在預(yù)測(cè)上圖中最后一句的黃藍(lán)兩個(gè)token時(shí),明顯第一句的信息就夠用了,那目標(biāo)函數(shù)的設(shè)置會(huì)讓第一句的權(quán)重變大,也會(huì)讓抽取出的句子表示去包含這些信息。
接下來詳細(xì)介紹一下預(yù)訓(xùn)練和精調(diào)的步驟,以及作者加入的其他tricks。
Cross-Thought模型
預(yù)訓(xùn)練
下圖是預(yù)訓(xùn)練的模型結(jié)構(gòu),計(jì)算的步驟是:
將段落按順序拆成獨(dú)立短句,通過12層Transformer(藍(lán)色半透明的矩形)分別進(jìn)行編碼。在實(shí)際的預(yù)訓(xùn)練中,每個(gè)sample包含500個(gè)長(zhǎng)度為64的短句,batch size是128(16張V100)
取出
把每列句子表示作為一個(gè)序列輸入到cross-sequence transformer(藍(lán)色弧線,每一列的cross-sequence transformer參數(shù)都不同),輸出attention分?jǐn)?shù)加權(quán)后的新表示
將新的句子表示與第一步的token表示進(jìn)行拼接,經(jīng)過一層transformer,預(yù)測(cè)被mask的15%個(gè)token(每個(gè)句子都這么處理,圖中只畫了第一個(gè)句子的)
整體流程理解起來比較簡(jiǎn)單,作者還用了一些額外的tricks提升效果:
為了抽取更多的信息,在句子開頭加入了多個(gè)占位token(之前BERT只有一個(gè)[CLS]),在實(shí)驗(yàn)結(jié)論中發(fā)現(xiàn)5個(gè)占位的表現(xiàn)較好(但占位token的增加會(huì)加大計(jì)算量)
占位token的位置表示是固定的,而真實(shí)token是隨機(jī)從0-564中抽取連續(xù)的64個(gè),這樣可以訓(xùn)練更多的位置表示,方便之后對(duì)更長(zhǎng)的序列進(jìn)行編碼
精調(diào)
精調(diào)主要是考慮和下游任務(wù)的銜接。作者選擇了問答和句子對(duì)分類來驗(yàn)證模型的表現(xiàn)。
對(duì)于問答任務(wù),假設(shè)答案句子的表示都已經(jīng)編碼好了:
輸入問題,經(jīng)過12層Transformer得到問題表示
利用cross-sequence transformers,對(duì)問題表示與答案表示進(jìn)行計(jì)算,得到各個(gè)答案的權(quán)重 (每列都會(huì)得到一個(gè),作者對(duì)所有列取了平均)
根據(jù)gold answer的index m,計(jì)算Ranking loss(代表第0個(gè)答案的權(quán)重)
對(duì)于句子對(duì)分類任務(wù)比較簡(jiǎn)潔,輸入兩個(gè)句子A和B:
分別對(duì)A和B進(jìn)行編碼,取出句子表示,輸入cross-sequence transformers得到融合后的句子表示
將兩個(gè)句子的所有表示拼接起來,得到2Nxd的矩陣(N是占位token的個(gè)數(shù),d是表示的維度)
把第二步得到的表示flatten,得到一個(gè)長(zhǎng)度 2Nd 的一維向量,輸入到分類層
實(shí)驗(yàn)效果
作者在不少數(shù)據(jù)集上都驗(yàn)證了效果,單純從輸出句子表示的效果來看,不僅是句間關(guān)系還是問答的候選召回上都有不小的提升,尤其是召回:
除了指標(biāo)對(duì)比外,作者還展示了兩個(gè)無監(jiān)督預(yù)訓(xùn)練模型的打分結(jié)果:
總結(jié)
近兩年句子表示的研究越來越少了,因?yàn)榫渥颖硎窘?jīng)常用于句間關(guān)系判斷的任務(wù),而交互式的判別顯然比雙塔效果要好。所以研究者們要不在研究更輕量的句間匹配模型(比如RE2、Deformer),要不就是繼續(xù)用BERT類模型做出更好的效果。但對(duì)于業(yè)界來說,句子表示在召回上的速度還是最快的,效果也比單純的字面匹配要好。
為了充分利用無監(jiān)督數(shù)據(jù)、得到更高質(zhì)量的句子表示,Cross-Thought提供了一個(gè)新的預(yù)訓(xùn)練思路:用句子表示預(yù)測(cè)token。同時(shí)也給我們展現(xiàn)出了它在候選召回上的巨大潛力,添加的額外cross-sequence transformer對(duì)速度的影響也不會(huì)太大。另外,作者只使用了wiki語料進(jìn)行預(yù)訓(xùn)練,如果有更多語料相信效果會(huì)更好。
目前源碼還未放出,希望開源社區(qū)的富有大佬們?cè)缛沼?xùn)一個(gè)中文的Cross-Thought~
原文標(biāo)題:【EMNLP2020】超越MLM,微軟打造全新預(yù)訓(xùn)練任務(wù)
文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
微軟
+關(guān)注
關(guān)注
4文章
6685瀏覽量
105753 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4381瀏覽量
64865
原文標(biāo)題:【EMNLP2020】超越MLM,微軟打造全新預(yù)訓(xùn)練任務(wù)
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
EtherCAT轉(zhuǎn)CANopen網(wǎng)關(guān)與伺服器在匯川組態(tài)軟件上的配置步驟

微軟科技重磅發(fā)布兩款企業(yè)級(jí)AI應(yīng)用
晶科能源受邀擔(dān)任B20南非工業(yè)轉(zhuǎn)型與創(chuàng)新工作組聯(lián)席主席
無人機(jī)消防巡檢的新工作日志
龍芯中科榮獲2024年度信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)卓越貢獻(xiàn)成員單位
RT-Thread睿賽德出席中國工博會(huì)科技論壇,共話開源硬件與新工業(yè)革命

評(píng)論