基于微軟大規(guī)模真實(shí)場(chǎng)景數(shù)據(jù)的閱讀理解數(shù)據(jù)集MS MARCO,美團(tuán)搜索與NLP中心提出了一種針對(duì)該文本檢索任務(wù)的BERT算法方案DR-BERT,該方案是第一個(gè)在官方評(píng)測(cè)指標(biāo)MRR@10上突破0.4的模型。
本文系DR-BERT算法在文本檢索任務(wù)中的實(shí)踐分享,希望對(duì)從事檢索、排序相關(guān)研究的同學(xué)能夠有所啟發(fā)和幫助。
背景提高機(jī)器閱讀理解(MRC)能力以及開(kāi)放領(lǐng)域問(wèn)答(QA)能力是自然語(yǔ)言處理(NLP)領(lǐng)域的一大重要目標(biāo)。在人工智能領(lǐng)域,很多突破性的進(jìn)展都基于一些大型公開(kāi)的數(shù)據(jù)集。比如在計(jì)算機(jī)視覺(jué)領(lǐng)域,基于對(duì)ImageNet數(shù)據(jù)集研發(fā)的物體分類模型已經(jīng)超越了人類的表現(xiàn)。類似的,在語(yǔ)音識(shí)別領(lǐng)域,一些大型的語(yǔ)音數(shù)據(jù)庫(kù),同樣使得了深度學(xué)習(xí)模型大幅提高了語(yǔ)音識(shí)別的能力。 近年來(lái),為了提高模型的自然語(yǔ)言理解能力,越來(lái)越多的MRC和QA數(shù)據(jù)集開(kāi)始涌現(xiàn)。但是,這些數(shù)據(jù)集或多或少存在一些缺陷,比如數(shù)據(jù)量不夠、依賴人工構(gòu)造Query等。針對(duì)這些問(wèn)題,微軟提出了一個(gè)基于大規(guī)模真實(shí)場(chǎng)景數(shù)據(jù)的閱讀理解數(shù)據(jù)集MS MARCO (Microsoft Machine Reading Comprehension)[1]。該數(shù)據(jù)集基于Bing搜索引擎和Cortana智能助手中的真實(shí)搜索查詢產(chǎn)生,包含100萬(wàn)查詢,800萬(wàn)文檔和18萬(wàn)人工編輯的答案。 基于MS MARCO數(shù)據(jù)集,微軟提出了兩種不同的任務(wù):一種是給定問(wèn)題,檢索所有數(shù)據(jù)集中的文檔并進(jìn)行排序,屬于文檔檢索和排序任務(wù);另一種是根據(jù)問(wèn)題和給定的相關(guān)文檔生成答案,屬于QA任務(wù)。在美團(tuán)業(yè)務(wù)中,文檔檢索和排序算法在搜索、廣告、推薦等場(chǎng)景中都有著廣泛的應(yīng)用。此外,直接在所有候選文檔上進(jìn)行QA任務(wù)的時(shí)間消耗是無(wú)法接受的,QA任務(wù)必須依靠排序任務(wù)篩選出排名靠前的文檔,而排序算法的性能直接影響到QA任務(wù)的表現(xiàn)?;谏鲜鲈?,我們主要將精力放在基于MS MARCO的文檔檢索和排序任務(wù)上。 自2018年10月MACRO文檔排序任務(wù)發(fā)布后,迄今吸引了包括阿里巴巴達(dá)摩院、Facebook、微軟、卡內(nèi)基梅隆大學(xué)、清華等多家企業(yè)和高校的參與。在美團(tuán)的預(yù)訓(xùn)練MT-BERT平臺(tái)[14]上,我們提出了一種針對(duì)該文本檢索任務(wù)的BERT算法方案,稱之為DR-BERT(Enhancing BERT-based Document Ranking Model with Task-adaptive Training and OOV Matching Method)。DR-BERT是第一個(gè)在官方評(píng)測(cè)指標(biāo)MRR@10上突破0.4的模型,且在2020年5月21日(模型提交日)-8月12日期間位居榜首,主辦方也單獨(dú)發(fā)表推文表示了祝賀,如下圖1所示。DR-BERT模型的核心創(chuàng)新主要包括領(lǐng)域自適應(yīng)的預(yù)訓(xùn)練、兩階段模型精調(diào)及兩種OOV(Out of Vocabulary)匹配方法。
圖1 官方祝賀推文及MARCO 排行榜相關(guān)介紹Learning to Rank在信息檢索領(lǐng)域,早期就已經(jīng)存在很多機(jī)器學(xué)習(xí)排序模型(Learning to Rank)用來(lái)解決文檔排序問(wèn)題,包括LambdaRank[2]、AdaRank[3]等,這些模型依賴很多手工構(gòu)造的特征。而隨著深度學(xué)習(xí)技術(shù)在機(jī)器學(xué)習(xí)領(lǐng)域的流行,研究人員提出了很多神經(jīng)排序模型,比如DSSM[4]、KNRM[5]等。這些模型將問(wèn)題和文檔的表示映射到連續(xù)的向量空間中,然后通過(guò)神經(jīng)網(wǎng)絡(luò)來(lái)計(jì)算它們的相似度,從而避免了繁瑣的手工特征構(gòu)建。

圖2 Pointwise、Pairwise、Listwise訓(xùn)練的目標(biāo) 根據(jù)學(xué)習(xí)目標(biāo)的不同,排序模型大體可以分為Pointwise、Pairwise和Listwise。這三種方法的示意圖如上圖2所示。其中,Pointwise方法直接預(yù)測(cè)每個(gè)文檔和問(wèn)題的相關(guān)分?jǐn)?shù),盡管這種方法很容易實(shí)現(xiàn),然而對(duì)于排序來(lái)說(shuō),更重要的是學(xué)到不同文檔之間的排序關(guān)系?;谶@種思想,Pairwise方法將排序問(wèn)題轉(zhuǎn)換為對(duì)兩兩文檔的比較。具體來(lái)講,給定一個(gè)問(wèn)題,每個(gè)文檔都會(huì)和其他的文檔兩兩比較,判斷該文檔是否優(yōu)于其他文檔。這樣的話,模型就學(xué)習(xí)到了不同文檔之間的相對(duì)關(guān)系。 然而,Pairwise的排序任務(wù)存在兩個(gè)問(wèn)題:第一,這種方法優(yōu)化兩兩文檔的比較而非更多文檔的排序,跟文檔排序的目標(biāo)不同;第二,隨機(jī)從文檔中抽取Pair容易造成訓(xùn)練數(shù)據(jù)偏置的問(wèn)題。為了彌補(bǔ)這些問(wèn)題,Listwise方法將Pairwsie的思路加以延伸,直接學(xué)習(xí)排序之間的相互關(guān)系。根據(jù)使用的損失函數(shù)形式,研究人員提出了多種不同的Listwise模型。比如,ListNet[6]直接使用每個(gè)文檔的top-1概率分布作為排序列表,并使用交叉熵?fù)p失來(lái)優(yōu)化。ListMLE[7]使用最大似然來(lái)優(yōu)化。SoftRank[8]直接使用NDCG這種排序的度量指標(biāo)來(lái)進(jìn)行優(yōu)化。大多數(shù)研究表明,相比于Pointwise和Pairwise方法,Listwise的學(xué)習(xí)方式能夠產(chǎn)生更好的排序結(jié)果。BERT自2018年谷歌的BERT[9]的提出以來(lái),預(yù)訓(xùn)練語(yǔ)言模型在自然語(yǔ)言處理領(lǐng)域取得了很大的成功,在多種NLP任務(wù)上取得了SOTA效果。BERT本質(zhì)上是一個(gè)基于Transformer架構(gòu)的編碼器,其取得成功的關(guān)鍵因素是利用多層Transoformer中的自注意力機(jī)制(Self-Attention)提取不同層次的語(yǔ)義特征,具有很強(qiáng)的語(yǔ)義表征能力。如圖3所示,BERT的訓(xùn)練分為兩部分,一部分是基于大規(guī)模語(yǔ)料上的預(yù)訓(xùn)練(Pre-training),一部分是在特定任務(wù)上的微調(diào)(Fine-tuning)。

圖3 BERT的結(jié)構(gòu)和訓(xùn)練模式 在信息檢索領(lǐng)域,很多研究人員也開(kāi)始使用BERT來(lái)完成排序任務(wù)。比如,[10][11]就使用BERT在MS MARCO上進(jìn)行實(shí)驗(yàn),得到的結(jié)果大幅超越了當(dāng)時(shí)最好的神經(jīng)網(wǎng)絡(luò)排序模型。[10]使用了Pointwise學(xué)習(xí)方式,而[11]使用了Pairwise學(xué)習(xí)方式。這些工作雖然取得了不錯(cuò)的效果,但是未利用到排序本身的比較信息?;诖?,我們結(jié)合BERT本身的語(yǔ)義表征能力和Listwise排序,取得了很大的進(jìn)步。模型介紹任務(wù)描述

基于DeepCT候選初篩由于MS MARCO中的數(shù)據(jù)量很大,直接使用深度神經(jīng)網(wǎng)絡(luò)模型做Query和所有文檔的相關(guān)性計(jì)算會(huì)消耗大量的時(shí)間。因此,大部分的排序模型都會(huì)使用兩階段的排序方法。第一階段初步篩選出top-k的候選文檔,然后第二階段使用深度神經(jīng)網(wǎng)絡(luò)對(duì)候選文檔進(jìn)行精排。這里我們使用BM25算法來(lái)進(jìn)行第一步的檢索,BM25常用的文檔表示方法包括TF-IDF等。 但是TF-IDF不能考慮每個(gè)詞的上下文語(yǔ)義。DeepCT[12]為了改進(jìn)這種問(wèn)題,首先使用BERT對(duì)文檔單獨(dú)進(jìn)行編碼,然后輸出每個(gè)單詞的重要性程度分?jǐn)?shù)。通過(guò)BERT強(qiáng)大的語(yǔ)義表征能力,可以很好衡量單詞在文檔中的重要性。如下圖4所示,顏色越深的單詞,其重要性越高。其中的“stomach”在第一個(gè)文檔中的重要性更高。

圖4 DeepCT估單詞的重要性,同一個(gè)詞在不同文檔中的重要性不同
DeepCT的訓(xùn)練目標(biāo)如下所示:

其中QTR(t,d)表示文檔d中單詞t的重要性分?jǐn)?shù),Qd表示和文檔d相關(guān)的問(wèn)題,Q{d,t}表示文檔d對(duì)應(yīng)的問(wèn)題中包含單詞t的子集。輸出的分?jǐn)?shù)可以當(dāng)做詞頻(TF)使用,相當(dāng)于對(duì)文檔的詞的重要性進(jìn)行了重新估計(jì),因此可以直接使用BM25算法進(jìn)行檢索。我們使用DeepCT作為第一階段的檢索模型,得到top-k個(gè)文檔作為文檔候選集合D={D1,D2,...,Dk}。領(lǐng)域自適應(yīng)預(yù)訓(xùn)練由于我們的模型是基于BERT的,而B(niǎo)ERT本身的預(yù)訓(xùn)練使用的語(yǔ)料和當(dāng)前的任務(wù)使用的語(yǔ)料并不是同一個(gè)領(lǐng)域。我們得出這個(gè)結(jié)論是基于對(duì)兩部分語(yǔ)料中top-10000高頻詞的分析,我們發(fā)現(xiàn)MARCO的top-10000高頻詞和BERT基線使用的語(yǔ)料有超過(guò)40%的差異。因此,我們有必要使用當(dāng)前領(lǐng)域的語(yǔ)料對(duì)BERT進(jìn)行預(yù)訓(xùn)練。由于MS MARCO屬于大規(guī)模語(yǔ)料,我們可以直接使用該數(shù)據(jù)集中的文檔內(nèi)容對(duì)BERT進(jìn)行預(yù)訓(xùn)練。我們?cè)诘谝浑A段使用MLM和NSP預(yù)訓(xùn)練目標(biāo)函數(shù)在MS MARCO上進(jìn)行預(yù)訓(xùn)練。兩階段精調(diào)

圖5 模型結(jié)構(gòu) 下面介紹我們提出的精調(diào)模型,上圖5展示了我們提出的模型的結(jié)構(gòu)。精調(diào)分為兩個(gè)階段:Pointwise精調(diào)和Listwise精調(diào)。Pointwise問(wèn)題類型感知的精調(diào)
第一階段的精調(diào),我們的目標(biāo)是通過(guò)Pointwise的訓(xùn)練方式建立問(wèn)題和文檔的關(guān)系。我們將Query-Document作為輸入,使用BERT對(duì)其編碼,匹配問(wèn)題和文檔??紤]到問(wèn)題和文檔的匹配模式和問(wèn)題的類型有很大的關(guān)系,我們認(rèn)為在該階段還需要考慮問(wèn)題的類型。因此,我們使用問(wèn)題,問(wèn)題類型和文檔一起通過(guò)BERT進(jìn)行編碼,得到一個(gè)深層交互的語(yǔ)義表示。具體的,我們將問(wèn)題類型T、問(wèn)題Q和第i個(gè)文檔Di拼接成一個(gè)序列輸入,如下式所示:

其中

經(jīng)過(guò)BERT編碼后,我們?nèi)∽詈笠粚又?CLS>位置的表示hi為Query-Document的關(guān)系表示。然后通過(guò)Softmax計(jì)算他們的得分,得到:

該分?jǐn)?shù)Ti通過(guò)交叉熵?fù)p失函數(shù)進(jìn)行優(yōu)化。通過(guò)以上的預(yù)訓(xùn)練,模型對(duì)不同的問(wèn)題學(xué)到了不同的匹配模式。該階段的預(yù)訓(xùn)練可以稱為類型自適應(yīng)(Type-Adaptive)模型精調(diào)。Listwise 精調(diào)為了使得模型直接學(xué)習(xí)不同排序的比較關(guān)系,我們通過(guò)Listwise的方式對(duì)模型進(jìn)行精調(diào)。具體的,在訓(xùn)練過(guò)程中,對(duì)于每個(gè)問(wèn)題,我們采樣n+個(gè)正例以及n-個(gè)負(fù)例作為輸入,這些文檔是從候選文檔集合D中隨機(jī)產(chǎn)生。注意,由于硬件的限制,我們不能將所有的候選文檔都輸入到當(dāng)前模型中。因此我們選擇了隨機(jī)采樣的方式來(lái)進(jìn)行訓(xùn)練。
和預(yù)訓(xùn)練中使用BERT的方式類似,我們得到正例和負(fù)例中每個(gè)文檔的表示,hi+和hi-。然后通過(guò)一個(gè)單層感知機(jī)將上面得到的表示降維并轉(zhuǎn)換成一個(gè)分?jǐn)?shù),即:

其中W和b是模型中可學(xué)習(xí)的參數(shù)。接下來(lái)對(duì)于每個(gè)文檔的分?jǐn)?shù),我們通過(guò)一個(gè)文檔級(jí)別的比較和歸一化得到:

這一步,我們將文檔中的正例的分?jǐn)?shù)和負(fù)例的分?jǐn)?shù)進(jìn)行比較,得到Listwise的排名分?jǐn)?shù)。我通過(guò)這一步,我們得到了一個(gè)文檔排序列表,我們可以將文檔排序的優(yōu)化轉(zhuǎn)化為最大化正例的分?jǐn)?shù)。因此,模型可以通過(guò)負(fù)對(duì)數(shù)似然損失優(yōu)化,如下式所示:

至于為什么使用兩個(gè)階段的精調(diào)模型,主要出于如下兩點(diǎn)考慮:
1. 我們發(fā)現(xiàn)首先學(xué)習(xí)問(wèn)題和文檔的相關(guān)性特征然后學(xué)習(xí)排序的特征相比,直接學(xué)習(xí)排序特征效果好。
2. MARCO是標(biāo)注不充分的數(shù)據(jù)集合。換句話說(shuō),許多和問(wèn)題相關(guān)的文檔未被標(biāo)注為1,這些噪聲容易造成模型過(guò)擬合。第一階段的模型可以用來(lái)過(guò)濾訓(xùn)練數(shù)據(jù)中的噪聲,從而可以有更好的數(shù)據(jù)監(jiān)督第二階段的精調(diào)模型。解決OOV的錯(cuò)誤匹配問(wèn)題在BERT中,為了減少詞表的規(guī)模以及解決Out-of-vocabulary(OOV)的問(wèn)題,使用了WordPiece方法來(lái)分詞。WordPiece會(huì)把不在詞表里的詞,即OOV詞拆分成片段,如圖6所示,原始的問(wèn)題中包含詞“bogue”,而文檔中包含詞“bogus”。在WordPiece方法下,將“bogue”切分成”bog”和“##ue”,并且將“bogus”切分成”bog”和“##us”。我們發(fā)現(xiàn),“bogus”和“bogue”是不相關(guān)的兩個(gè)詞,但是由于WordPiece切分出了匹配的片段“bog”,導(dǎo)致兩者的相關(guān)性計(jì)算分?jǐn)?shù)比較高。

圖6 BERT WordPiece處理前/后的文本 為了解決這個(gè)問(wèn)題,我們提出了一種是對(duì)原始詞(WordPiece切詞之前)做精準(zhǔn)匹配的特征。所謂“精確匹配”,指的是某個(gè)詞在文檔和問(wèn)題中同時(shí)出現(xiàn)。精準(zhǔn)匹配是信息檢索和機(jī)器閱讀理解中非常重要的一個(gè)技術(shù)。根據(jù)以往的研究,很多閱讀理解模型加入該特征之后都可以有一定的效果提升。具體的,在Fine-tuning階段,我們對(duì)于每個(gè)詞構(gòu)造了一個(gè)精準(zhǔn)匹配特征,該特征表示該單詞是否出現(xiàn)在問(wèn)題以及文檔中。在編碼階段之前,我們就將這個(gè)特征映射到一個(gè)向量,和原本的Embedding進(jìn)行組合:


圖7 詞還原機(jī)制的工作原理 除此之外,我們還提出了一種詞還原機(jī)制如圖7所示,詞還原機(jī)制能夠?qū)ordPiece切分的Subtoken的表示合并,從而能更好地解決OOV錯(cuò)誤匹配的問(wèn)題。具體來(lái)說(shuō),我們使用Average Pooling對(duì)Subtoken的表示合并作為隱層的輸入。除此之外,如上圖7所示,我們使用了MASK處理Subtoken對(duì)應(yīng)的非首位的隱層位置。值得注意的是,詞還原機(jī)制也能很好地避免模型的過(guò)擬合問(wèn)題。這是因?yàn)镸ARCO的集合標(biāo)注是比較稀疏的,換句話說(shuō),有很多正例未被標(biāo)注為1,因此容易導(dǎo)致模型過(guò)擬合這些負(fù)樣本。詞還原機(jī)制一定程度上起到了Dropout的作用??偨Y(jié)與展望以上內(nèi)容就對(duì)我們提出的DR-BERT模型進(jìn)行了詳細(xì)的介紹。我們提出的DR-BERT模型主要采用了任務(wù)自適應(yīng)預(yù)訓(xùn)練以及兩階段模型精調(diào)訓(xùn)練。除此之外,還提出了詞還原機(jī)制和精確匹配特征提高OOV詞的匹配效果。通過(guò)在大規(guī)模數(shù)據(jù)集MS MARCO的實(shí)驗(yàn),充分驗(yàn)證了該模型的優(yōu)越性,希望這些能對(duì)大家有所幫助或者啟發(fā)。
-
微軟
+關(guān)注
關(guān)注
4文章
6741瀏覽量
107838 -
算法
+關(guān)注
關(guān)注
23文章
4784瀏覽量
98029 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1236瀏覽量
26187
原文標(biāo)題:MT-BERT在文本檢索任務(wù)中的實(shí)踐
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
算法工程師需要具備哪些技能?
RAG(檢索增強(qiáng)生成)原理與實(shí)踐
一文說(shuō)透了如何實(shí)現(xiàn)單片機(jī)的多任務(wù)并發(fā)!
探索 RTKA210030DR0000BU 演示板:高效電源解決方案
基于安路DR1M90 FPSoC的Linux系統(tǒng)全流程開(kāi)發(fā)指南(4)
基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開(kāi)發(fā)指南(1)
思必馳任務(wù)型對(duì)話算法通過(guò)國(guó)家備案
復(fù)雜的軟件算法硬件IP核的實(shí)現(xiàn)
針對(duì)AES算法的安全防護(hù)設(shè)計(jì)
比特誤碼率測(cè)試儀接收端受限眼圖自動(dòng)校準(zhǔn)最佳實(shí)踐
格靈深瞳突破文本人物檢索技術(shù)難題
基于 NXP NCJ29D5D UWB 定位算法方案
安路科技DR1FPSoC多路以太網(wǎng)擴(kuò)展方案
NW1-24D15DR3 NW1-24D15DR3
?VLM(視覺(jué)語(yǔ)言模型)?詳細(xì)解析
一種針對(duì)該文本檢索任務(wù)的BERT算法方案DR-BERT
評(píng)論