0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淘金記:如何尋找未開墾的Bert應(yīng)用領(lǐng)域

WpOh_rgznai100 ? 來(lái)源:YXQ ? 2019-06-11 10:36 ? 次閱讀

Bert 給人們帶來(lái)了大驚喜,不過(guò)轉(zhuǎn)眼過(guò)去大約半年時(shí)間了,這半年來(lái),陸續(xù)出現(xiàn)了與Bert相關(guān)的不少新工作。

最近幾個(gè)月,在主業(yè)做推薦算法之外的時(shí)間,我其實(shí)一直比較好奇下面兩個(gè)問(wèn)題:

問(wèn)題一:Bert原始的論文證明了:在GLUE這種綜合的NLP數(shù)據(jù)集合下,Bert預(yù)訓(xùn)練對(duì)幾乎所有類型的NLP任務(wù)(生成模型除外)都有明顯促進(jìn)作用。但是,畢竟GLUE的各種任務(wù)有一定比例的數(shù)據(jù)集合規(guī)模偏小,領(lǐng)域也還是相對(duì)有限,在更多領(lǐng)域、更大規(guī)模的數(shù)據(jù)情況下,是否真的像Bert原始論文里的實(shí)驗(yàn)展示的那樣,預(yù)訓(xùn)練技術(shù)對(duì)于很多應(yīng)用領(lǐng)域有了很大的促進(jìn)作用?如果有,作用有多大?這種作用的大小與領(lǐng)域相關(guān)嗎?這是我關(guān)心的第一個(gè)問(wèn)題。

問(wèn)題二:Bert作為一項(xiàng)新技術(shù),肯定還有很多不成熟或者需要改進(jìn)的地方,那么,Bert目前面臨的問(wèn)題是什么?后面有哪些值得改進(jìn)的方向?這是我關(guān)心的第二個(gè)問(wèn)題。

陸陸續(xù)續(xù)地,我收集到了截止到19年5月底為止發(fā)表的,大約70-80篇與Bert相關(guān)的工作,剛開始我是準(zhǔn)備把關(guān)于這兩個(gè)問(wèn)題的答案寫在一篇文章里的,寫著寫著發(fā)現(xiàn)太長(zhǎng),而兩個(gè)主題確實(shí)也可以獨(dú)立分開,所以就改成了兩篇。這一篇是回答第一個(gè)問(wèn)題的,主題集中在各個(gè)NLP領(lǐng)域的Bert應(yīng)用,一般這種應(yīng)用不涉及對(duì)Bert本身能力的改進(jìn),就是單純的應(yīng)用并發(fā)揮Bert預(yù)訓(xùn)練模型的能力,相對(duì)比較簡(jiǎn)單;至于對(duì)Bert本身能力的增強(qiáng)或者改進(jìn),技術(shù)性會(huì)更強(qiáng)些,我歸納了大約10個(gè)Bert的未來(lái)改進(jìn)方向,放在第二篇文章里,過(guò)陣子會(huì)把第二篇再改改發(fā)出來(lái),在那篇內(nèi)容里,會(huì)歸納梳理Bert未來(lái)可能的發(fā)展方向。

這兩篇文章對(duì)讀者的知識(shí)結(jié)構(gòu)有一定要求,建議在看之前,先熟悉下Bert的工作機(jī)制,可以參考之前介紹Bert的文章:從Word Embedding到Bert模型—自然語(yǔ)言處理中的預(yù)訓(xùn)練技術(shù)發(fā)展史

百花齊放:Bert在NLP各領(lǐng)域的應(yīng)用進(jìn)展

本篇文章主要回答第一個(gè)問(wèn)題,除此外,從應(yīng)用的角度看,Bert比較擅長(zhǎng)處理具備什么特性的任務(wù)?不擅長(zhǎng)處理哪些類型的應(yīng)用?哪些NLP應(yīng)用領(lǐng)域是Bert擅長(zhǎng)但是還未開墾的處女地?Bert的出現(xiàn)對(duì)NLP各個(gè)領(lǐng)域的傳統(tǒng)技術(shù)會(huì)造成怎樣的沖擊?未來(lái)會(huì)形成統(tǒng)一的技術(shù)方案嗎?包括Bert時(shí)代我們應(yīng)該如何創(chuàng)新?……。。這些問(wèn)題也會(huì)有所涉及,并給出我個(gè)人的看法。

在回答這些問(wèn)題之前,我先講講我對(duì)Bert的一些務(wù)虛的看法,原先的內(nèi)容本來(lái)在本文的這個(gè)位置,因?yàn)樘L(zhǎng),之前已經(jīng)摘出單獨(dú)發(fā)了,如果感興趣的話,可以參考這篇文章:Bert時(shí)代的創(chuàng)新:Bert應(yīng)用模式比較及其它 | 技術(shù)頭條

萬(wàn)象歸宗:事實(shí),其實(shí)和你想的也許不一樣

自從Bert誕生,到目前轉(zhuǎn)眼半年過(guò)去了,如果歸納一下,目前出現(xiàn)了大量使用Bert來(lái)在NLP各個(gè)領(lǐng)域進(jìn)行直接應(yīng)用的工作,方法都很簡(jiǎn)單直接,效果總體而言比較好,當(dāng)然也需要分具體的領(lǐng)域,不同領(lǐng)域受益于Bert的程度不太相同。

本節(jié)對(duì)這些工作分領(lǐng)域介紹及做一些帶我個(gè)人主觀色彩的判斷和分析。

應(yīng)用領(lǐng)域:Question Answer(QA,問(wèn)答系統(tǒng))與閱讀理解

QA中文一般叫做問(wèn)答系統(tǒng),是NLP的一個(gè)重要應(yīng)用領(lǐng)域,也是個(gè)具有很長(zhǎng)歷史的子領(lǐng)域了,我記得我讀書的時(shí)候,差一點(diǎn)就選了這個(gè)方向做博士開題方向……好險(xiǎn)……當(dāng)時(shí)的技術(shù)發(fā)展水準(zhǔn),我記得是各種trick齊飛, 靠譜共不靠譜技術(shù)一色…。。當(dāng)然,其實(shí)我最終還是選擇了一個(gè)更糟糕的博士開題方向 ……。這應(yīng)該是墨菲定律的一個(gè)具體例子?“選擇大于努力”,這個(gè)金句,一直被證明,從未被顛覆。在讀博士們請(qǐng)留心下這句肺腑之言,一定選好開題方向。當(dāng)然,有時(shí)候能夠選什么方向也由不得你,上面是說(shuō)在你有選擇自由的時(shí)候需要注意的地方。

QA的核心問(wèn)題是:給定用戶的自然語(yǔ)言查詢問(wèn)句Q,比如問(wèn)“美國(guó)歷史上最像2B鉛筆的總統(tǒng)是誰(shuí)?”,希望系統(tǒng)從大量候選文檔里面找到一個(gè)語(yǔ)言片段,這個(gè)語(yǔ)言片段能夠正確回答用戶提出的問(wèn)題,最好是能夠直接把答案A返回給用戶,比如上面問(wèn)題的正確答案:“特·不靠譜·間歇腦抽風(fēng)·朗普”。

很明顯,這是個(gè)很有實(shí)用價(jià)值的方向,其實(shí)搜索引擎的未來(lái),很可能就是QA+閱讀理解,機(jī)器學(xué)會(huì)閱讀理解,理解了每篇文章,然后對(duì)于用戶的問(wèn)題,直接返回答案。

QA領(lǐng)域是目前Bert應(yīng)用效果最好的領(lǐng)域之一,甚至有可能把“之一”都能拿掉。我個(gè)人認(rèn)為,可能的原因是QA問(wèn)題比較純粹。所謂的“純粹”,是說(shuō)這是個(gè)比較純粹的自然語(yǔ)言或者語(yǔ)義問(wèn)題,所需要的答案就在文本內(nèi)容里,頂多還需要一些知識(shí)圖譜,所以只要NLP技術(shù)有提升,這種領(lǐng)域就會(huì)直接受益。當(dāng)然,可能也跟QA問(wèn)題的表現(xiàn)形式正好比較吻合Bert的優(yōu)勢(shì)有關(guān)。那么Bert特別適合解決怎樣的問(wèn)題?在本文后面專門會(huì)分析這個(gè)事情。

目前不同的QA領(lǐng)域利用Bert的技術(shù)方案大同小異,一般遵循如下流程:

應(yīng)用Bert,從流程角度,一般分為兩個(gè)階段:檢索+QA問(wèn)答判斷。首先往往會(huì)把比較長(zhǎng)的文檔切割成段落或者句子n-gram構(gòu)成的語(yǔ)言片段,這些片段俗稱Passage,然后利用搜索里的倒排索引建立快速查詢機(jī)制。第一個(gè)階段是檢索階段,這個(gè)和常規(guī)的搜索過(guò)程相同,一般是使用BM25模型(或者BM25+RM3等技術(shù))根據(jù)問(wèn)句查詢可能的答案所在候選段落或者句子;第二個(gè)階段是問(wèn)答判斷。在訓(xùn)練模型的時(shí)候,一般使用SQuAD等比較大的問(wèn)答數(shù)據(jù)集合,或者手上的任務(wù)數(shù)據(jù),對(duì)Bert模型進(jìn)行 Fine-tuning;在應(yīng)用階段,對(duì)于第一階段返回的得分靠前的Top K候選Passage,將用戶問(wèn)句和候選passage作為Bert的輸入,Bert做個(gè)分類,指出當(dāng)前的Passage是否包括問(wèn)句的正確答案,或者輸出答案的起始終止位置。這是一個(gè)比較通用的利用Bert優(yōu)化QA問(wèn)題的解決思路,不同方案大同小異,可能不同點(diǎn)僅僅在于Fine-tuning使用的數(shù)據(jù)集合不同。

QA和閱讀理解,在應(yīng)用Bert的時(shí)候,在某種程度上是基本類似的任務(wù),如果你簡(jiǎn)化理解的話,其實(shí)可以把上述QA流程的第一階段扔掉,只保留第二階段,就是閱讀理解任務(wù)應(yīng)用Bert的過(guò)程。當(dāng)然,上面是簡(jiǎn)化地理解,就任務(wù)本身來(lái)說(shuō),其實(shí)兩者有很大的共性,但是也有些細(xì)微的區(qū)別;一般普通QA問(wèn)題在找答案的時(shí)候,依賴的上下文更短小,參考的信息更局部一些,答案更表面化一些;而閱讀理解任務(wù),要正確定位答案,所參考的上下文范圍可能會(huì)更長(zhǎng)一些,部分高難度的閱讀理解問(wèn)題可能需要機(jī)器進(jìn)行適當(dāng)程度的推理??傮w感覺是閱讀理解像是平常QA任務(wù)的難度加大版本任務(wù)。但是從Bert應(yīng)用角度,兩者流程近似,所以我直接把這兩個(gè)任務(wù)并在一起了。我知道,上面的話估計(jì)會(huì)有爭(zhēng)議,不過(guò)這個(gè)純屬個(gè)人看法,謹(jǐn)慎參考。

前面提過(guò),QA領(lǐng)域可能是應(yīng)用Bert最成功的一個(gè)應(yīng)用領(lǐng)域,很多研究都證明了:應(yīng)用Bert的預(yù)訓(xùn)練模型后,往往任務(wù)都有大幅度的提升。下面列出一些具體實(shí)例。

而閱讀理解任務(wù),應(yīng)用Bert后,對(duì)原先的各種紛繁復(fù)雜的技術(shù)也有巨大的沖擊作用,前幾年,我個(gè)人覺得盡管閱讀理解領(lǐng)域提出了很多新技術(shù),但是方法過(guò)于復(fù)雜了,而且有越來(lái)越復(fù)雜化的趨向,這絕對(duì)不是一個(gè)正常的或者說(shuō)好的技術(shù)發(fā)展路線,我覺得路子有可能走歪了,而且我個(gè)人一直對(duì)過(guò)于復(fù)雜的技術(shù)有心理排斥感,也許是我智商有限理解不了復(fù)雜技術(shù)背后的深?yuàn)W玄機(jī)?不論什么原因,反正就沒再跟進(jìn)這個(gè)方向,當(dāng)然,方向是個(gè)好方向。而Bert的出現(xiàn),相信會(huì)讓這個(gè)領(lǐng)域的技術(shù)回歸本質(zhì),模型簡(jiǎn)化這一點(diǎn)會(huì)做得更徹底,也許現(xiàn)在還沒有,但是我相信將來(lái)一定會(huì),閱讀理解的技術(shù)方案應(yīng)該是個(gè)簡(jiǎn)潔統(tǒng)一的模式。至于在閱讀理解里面應(yīng)用Bert的效果,你去看SQuAD競(jìng)賽排行榜,排在前列的都是Bert模型,基本閱讀理解領(lǐng)域已經(jīng)被Bert屠榜了,由這個(gè)也可以看出Bert在閱讀理解領(lǐng)域的巨大影響力。

應(yīng)用領(lǐng)域:搜索與信息檢索(IR)

對(duì)于應(yīng)用Bert,搜索或IR的問(wèn)題模式及解決方案流程和QA任務(wù)是非常相近的,但是因?yàn)槿蝿?wù)不同,所以還是有些區(qū)別。

搜索任務(wù)和QA任務(wù)的區(qū)別,我綜合各方面信息,列一下,主要有三點(diǎn):

首先,盡管兩個(gè)任務(wù)都是在做Query和Document的匹配,但是匹配時(shí)側(cè)重于哪些因素,這兩個(gè)任務(wù)是不同的。兩個(gè)文本的“相關(guān)性”和“語(yǔ)義相似性”代表的內(nèi)涵是有差異的;所謂“相關(guān)性”,更強(qiáng)調(diào)字面內(nèi)容的精確匹配,而“語(yǔ)義相似性”則多涵蓋了另外一個(gè)意思:就是盡管字面不匹配,但是深層語(yǔ)義方面的相近。QA任務(wù)對(duì)于這兩者都是重視的,可能偏向語(yǔ)義相似性更多一些,而搜索任務(wù)更偏重文本匹配的相關(guān)性方面。這是兩個(gè)任務(wù)的第一個(gè)不同。

其次,文檔長(zhǎng)度的差異。QA任務(wù)往往是要查找問(wèn)題Q的答案,而答案很可能只是一小段語(yǔ)言片段,在Passage這個(gè)較短的范圍內(nèi),一般會(huì)包含正確答案,所以QA任務(wù)的答案一般比較短,或者說(shuō)搜索對(duì)象比較短就可以覆蓋正確答案,即QA任務(wù)的處理對(duì)象傾向于短文本;而對(duì)搜索任務(wù)來(lái)說(shuō),文檔普遍比較長(zhǎng)。盡管在判斷文檔是否與查詢相關(guān)時(shí),也許只依賴長(zhǎng)文檔中的幾個(gè)關(guān)鍵Passage或者幾個(gè)關(guān)鍵句子,但是關(guān)鍵片段有可能散落在文檔的不同地方。在應(yīng)用Bert的時(shí)候,因?yàn)锽ert對(duì)于輸入長(zhǎng)度有限制,最長(zhǎng)輸入允許512個(gè)單位。于是,如何處理長(zhǎng)文檔,對(duì)于搜索來(lái)說(shuō)比較重要;

再次,對(duì)于QA這種任務(wù)來(lái)說(shuō),可能文本內(nèi)包含的信息足夠作出判斷,所以不需要額外的特征信息;而對(duì)于搜索這種任務(wù),尤其是現(xiàn)實(shí)生活中的實(shí)用化的搜索,而非性質(zhì)比較單純的評(píng)測(cè)中的Ad hoc檢索任務(wù)。在很多時(shí)候,僅僅靠文本可能無(wú)法特別有效地判斷查詢和文檔的相關(guān)性,其它很多因素也嚴(yán)重影響搜索質(zhì)量,比如鏈接分析,網(wǎng)頁(yè)質(zhì)量,用戶行為數(shù)據(jù)等各種其它特征也對(duì)于最終的判斷也起到重要作用。而對(duì)于非文本類的信息,Bert貌似不能很好地融合并體現(xiàn)這些信息。推薦領(lǐng)域其實(shí)也跟搜索一樣,面臨類似的問(wèn)題。

盡管講了這么多領(lǐng)域間的區(qū)別,但是其實(shí)也沒什么用,如果你看目前見到的用Bert改進(jìn)檢索領(lǐng)域的工作,尤其是Passage級(jí)別的信息檢索問(wèn)題,可能你無(wú)法分辨現(xiàn)在在做的是搜索問(wèn)題還是QA問(wèn)題。當(dāng)然,對(duì)于長(zhǎng)文搜索,搜索還是有單獨(dú)的問(wèn)題需要處理。為何會(huì)出現(xiàn)這種無(wú)法分辨QA及搜索任務(wù)的現(xiàn)象呢?這是因?yàn)槟壳俺霈F(xiàn)的利用Bert改進(jìn)檢索的工作,一方面比較集中在Passage級(jí)別;另外一方面通常任務(wù)是Ad Hoc檢索,以內(nèi)容匹配為主,與真實(shí)搜索引擎利用的主要特征差異比較明顯。主要應(yīng)該是這兩個(gè)原因造成的。

我們?cè)贇w納下在Ad Hoc檢索任務(wù)中一般如何應(yīng)用Bert:一般也是分成兩個(gè)階段,首先利用BM25等經(jīng)典文本匹配模型或者其它簡(jiǎn)單快速的模型對(duì)文檔進(jìn)行初步排序,取得分前列Top K文檔,然后用復(fù)雜的機(jī)器學(xué)習(xí)模型來(lái)對(duì)Top K返回結(jié)果進(jìn)行重排序。應(yīng)用Bert的地方明顯在搜索重排序階段,應(yīng)用模式與QA也是類似的,就是把Query和Document輸入Bert,利用Bert的深層語(yǔ)言處理能力,作出兩者是否相關(guān)的判斷。如果是Passage級(jí)別的短文檔檢索,其實(shí)流程基本和QA是一樣的;而如果是長(zhǎng)文檔檢索,則需要增加一個(gè)如何處理長(zhǎng)文檔的技術(shù)方案,然后再走Bert去做相關(guān)性判斷。

所以,對(duì)于如何在信息檢索領(lǐng)域應(yīng)用Bert,我們從兩個(gè)不同的角度來(lái)說(shuō):短文檔檢索和長(zhǎng)文檔檢索。

對(duì)于短文檔檢索而言,你把它看成QA任務(wù),其實(shí)問(wèn)題也不大。所以這里不細(xì)說(shuō)了,直接上結(jié)果。幾個(gè)工作在Passage級(jí)別文檔檢索任務(wù)中的效果,可以參考這個(gè)PPT所列內(nèi)容:

從上面各種實(shí)驗(yàn)數(shù)據(jù)可以看出:對(duì)于短文檔檢索來(lái)說(shuō),使用Bert后,性能一般都有大幅度的提升。

對(duì)于長(zhǎng)文檔檢索任務(wù),因?yàn)锽ert在輸入端無(wú)法接受太長(zhǎng)的輸入,則面臨一個(gè)如何將長(zhǎng)文檔縮短的問(wèn)題。其它過(guò)程和短文檔檢索基本雷同。那么怎么解決搜索中的長(zhǎng)文檔問(wèn)題呢?可以參考下列論文的思路。

論文《Simple Applications of BERT for Ad Hoc Document Retrieval》

這篇論文首次在信息檢索領(lǐng)域應(yīng)用Bert,并且證明了Bert對(duì)于搜索應(yīng)用能有效提升效果。它同時(shí)做了短文檔和長(zhǎng)文檔的實(shí)驗(yàn)。短文檔利用TREC 2014的微博數(shù)據(jù)。引入Bert后,在微博搜索任務(wù)上,相對(duì)目前最好的檢索模型,在不同的微博搜索任務(wù)中有5%到18%的效果提升,相對(duì)基準(zhǔn)方法(BM25+RM3,這是一個(gè)強(qiáng)基準(zhǔn),超過(guò)大多數(shù)其它改進(jìn)方法)有20%到30%的效果提升。

第二個(gè)數(shù)據(jù)集是TREC長(zhǎng)文檔檢索任務(wù),這里就體現(xiàn)出搜索和QA任務(wù)的不同了。因?yàn)橐阉鞯奈臋n比較長(zhǎng),在重排序階段,很難把整個(gè)文檔輸入到Bert中,所以這個(gè)工作采取了一個(gè)簡(jiǎn)單的方法:把文檔分割成句子,利用Bert判斷每個(gè)句子和查詢Q的相關(guān)性,然后累加得分最高的Top N句子(結(jié)論是取得分最高的3個(gè)句子就夠了,再多性能會(huì)下降),獲得文檔和查詢Q的相關(guān)性得分,這樣就將長(zhǎng)文檔問(wèn)題轉(zhuǎn)化成了文檔部分句子的得分累加的模式。實(shí)驗(yàn)表明相對(duì)強(qiáng)基準(zhǔn)BM25+RM3,使用Bert會(huì)有大約10%的效果提升。

一種搜索領(lǐng)域長(zhǎng)文檔的解決思路

從上面這篇文章對(duì)搜索長(zhǎng)文檔的處理過(guò)程,我們可以進(jìn)一步對(duì)此問(wèn)題進(jìn)行深入思考??紤]到搜索任務(wù)的特殊性:文檔和用戶查詢的相關(guān)性,并不體現(xiàn)在文章中的所有句子中,而是集中體現(xiàn)在文檔中的部分句子中。如果這個(gè)事實(shí)成立,那么一種直觀地解決搜索任務(wù)中長(zhǎng)文檔問(wèn)題的通用思路可以如下:先通過(guò)一定方法,根據(jù)查詢和文檔中的句子,判斷兩者的相關(guān)性,即產(chǎn)生判斷函數(shù)Score=F(Q,S),根據(jù)Score得分篩選出一個(gè)較小的句子子集合Sub_Set(Sentences),由這些句子來(lái)代表文檔內(nèi)容。這樣即可將長(zhǎng)文有針對(duì)性地縮短。從和查詢相關(guān)性的角度來(lái)說(shuō),這樣做也不會(huì)損失太多信息。關(guān)鍵是這個(gè)F(Q,S)函數(shù)如何定義,不同的定義方法可能產(chǎn)生表現(xiàn)不同的效果。這個(gè)F函數(shù),可以被稱為搜索領(lǐng)域文檔的句子選擇函數(shù),這個(gè)函數(shù)同樣可以使用不同的DNN模型來(lái)實(shí)現(xiàn)。這里是有很多文章可做的,有心的同學(xué)可以關(guān)注一下。

如果歸納一下的話:在搜索領(lǐng)域應(yīng)用Bert,如果是Passage這種短文檔搜索,往往效果有非常巨大的提升;而目前長(zhǎng)文檔的搜索,使用Bert也能有一定幅度的提升,但是效果不如短文檔那么明顯,很可能原因在于搜索的長(zhǎng)文檔處理方式有它自己的特點(diǎn),還需要繼續(xù)摸索更合理的更能體現(xiàn)搜索中長(zhǎng)文檔特性的方法,以進(jìn)一步發(fā)揮Bert的效果。

應(yīng)用領(lǐng)域:對(duì)話系統(tǒng)/聊天機(jī)器人Dialog System or Chatbot)

聊天機(jī)器人或者對(duì)話系統(tǒng)最近幾年也非?;钴S,這與市面上出現(xiàn)大量的聊天機(jī)器人產(chǎn)品有關(guān)系。個(gè)人私見,這個(gè)方向是符合未來(lái)發(fā)展趨勢(shì)的方向,但是目前的技術(shù)不夠成熟,難以支撐一個(gè)能夠滿足人們心目中期望的好用產(chǎn)品,所以我個(gè)人不是太看好這個(gè)方向近期內(nèi)的產(chǎn)品形態(tài),主要還是目前技術(shù)發(fā)展階段所限,支撐不起一個(gè)好的用戶體驗(yàn)。這是題外話。

聊天機(jī)器人從任務(wù)類型劃分的話,常見的有日常聊天以及任務(wù)解決型。日常聊天好理解,就是漫無(wú)目的地閑聊,幫你打發(fā)時(shí)間,當(dāng)然前提是你得有空閑時(shí)間需要被它打發(fā)掉。我發(fā)現(xiàn)低齡兒童很可能是這個(gè)任務(wù)類型的目標(biāo)受眾,兩年前我家閨女能興致勃勃地跟Siri聊半個(gè)小時(shí),聊到Siri都嫌她煩了。當(dāng)然,Siri收到的最后一句話往往是這樣的:“Siri,你太笨了!”

任務(wù)解決就是幫著用戶解決一些日常事務(wù),解決日常碰到的實(shí)際問(wèn)題。比如,99%的直男,一年中會(huì)因?yàn)橥浺恍┕?jié)假日被女友或者老婆噴得患上節(jié)假日恐懼癥,有了聊天機(jī)器人,你就再也不用怕了。你可以跟聊天機(jī)器人說(shuō):“以后但凡是節(jié)假日,你記得提醒我,幫我給XX訂束花?!庇谑?,你在一年的365天里,有364天會(huì)收到聊天機(jī)器人的500多個(gè)提醒,這樣你再也不用怕被噴了,生活會(huì)變得越來(lái)越美好。而且假如萬(wàn)一你中年失業(yè),因?yàn)閷?duì)送花這個(gè)事情特別熟悉,所以估計(jì)去開個(gè)連鎖花店,說(shuō)不定過(guò)幾年就上市了,也許比瑞幸咖啡上市速度還快……這就是任務(wù)解決型聊天機(jī)器人帶給你的切實(shí)的好處,不湊巧還能推著你意外地走向人生巔峰。

上面開個(gè)玩笑,如果從技術(shù)角度看的話,聊天機(jī)器人主要面臨兩種技術(shù)挑戰(zhàn)。

其一:對(duì)于單輪對(duì)話來(lái)說(shuō),就是一問(wèn)一答場(chǎng)景,任務(wù)解決型聊天需要從用戶的話語(yǔ)中解析出用戶的意圖。比如到底用戶是想要訂餐還是點(diǎn)歌,一般這是個(gè)分類問(wèn)題,叫用戶意圖分類,就是把用戶的意圖分到各種服務(wù)類型里面;另外如果用戶意圖敲定,那么根據(jù)意圖要抽取出一些關(guān)鍵元素,比如訂機(jī)票,需要抽取出出發(fā)地、目的地、出發(fā)時(shí)間、返程時(shí)間等信息。目前一般采用槽填充(Slot Filling)的技術(shù)來(lái)做,一個(gè)關(guān)鍵元素就是一個(gè)槽位(Slot),從用戶交互中抽取出的這個(gè)槽位對(duì)應(yīng)的取值,就是Filling過(guò)程。比如點(diǎn)歌場(chǎng)景下,有一個(gè)槽位就是“歌手”,而如果用戶說(shuō)“播放TFBoys的歌”,那么經(jīng)過(guò)槽位填充,會(huì)得到“歌手”槽位對(duì)應(yīng)的取值“歌手=TFBoys”,這就是典型的槽位填充過(guò)程。

論文“BERT for Joint Intent Classification and Slot Filling”即是利用Bert解決單輪會(huì)話的會(huì)話意圖分類以及槽位填充任務(wù)的。解決方法也很直觀,輸入一個(gè)會(huì)話句子,Transformer的[CLS]輸入位置對(duì)應(yīng)高層Transformer位置輸出句子的意圖分類,這是一個(gè)典型地應(yīng)用Bert進(jìn)行文本分類的方法;另外一方面,對(duì)于會(huì)話句中的每個(gè)單詞,都當(dāng)作一個(gè)序列標(biāo)注問(wèn)題,每個(gè)單詞在Transformer最高層對(duì)應(yīng)位置,分類輸出結(jié)果,將單詞標(biāo)注為是哪類槽的槽值的IOE標(biāo)記即可。這是典型的用Bert解決序列標(biāo)注的思路。而這個(gè)方法則通過(guò)Bert同時(shí)做了這兩件事情,這點(diǎn)還是挺好的。通過(guò)采用Bert預(yù)訓(xùn)練過(guò)程,在兩個(gè)數(shù)據(jù)集合上,在意圖分類任務(wù)上效果提升不太明顯,可能是基準(zhǔn)方法本身已經(jīng)把指標(biāo)做得比較高了;槽值填充方面,與RNN+Attention等基準(zhǔn)方法相比,兩個(gè)數(shù)據(jù)集合表現(xiàn)不一,一個(gè)數(shù)據(jù)集合效果提升2%,另外一個(gè)提升12%左右??傮w而言,表現(xiàn)還行,但是不突出。

其二:對(duì)于多輪會(huì)話來(lái)說(shuō),就是說(shuō)用戶和聊天機(jī)器人交互問(wèn)答好幾個(gè)回合的場(chǎng)景下,如何改進(jìn)模型,讓聊天機(jī)器人記住歷史的用戶交互信息,并在后面的應(yīng)答中正確地使用歷史信息,就是個(gè)比較重要的問(wèn)題,這也很大程度上影響用戶對(duì)于聊天機(jī)器人到底有多智能的體驗(yàn)。所以,如何有效融入更多的歷史信息,并在上下文中正確地場(chǎng)合正確地使用歷史信息,就是模型改進(jìn)的關(guān)鍵。

那么如果把Bert應(yīng)用在多輪會(huì)話問(wèn)題上,會(huì)是什么效果呢?論文Comparison of Transfer-Learning Approaches for Response Selection in Multi-Turn Conversations給出了實(shí)驗(yàn)結(jié)果。它利用GPT及Bert等預(yù)訓(xùn)練模型改進(jìn)多輪對(duì)話中如何融入歷史信息,來(lái)對(duì)下一句選擇的問(wèn)題。效果提升明顯,Bert效果優(yōu)于GPT,GPT效果明顯優(yōu)于基準(zhǔn)方法。Bert相對(duì)基準(zhǔn)方法,在不同數(shù)據(jù)集合下,效果提升幅度在11%到 41%之間。

總之,Bert應(yīng)用在聊天機(jī)器人領(lǐng)域,潛力應(yīng)該還是比較大的。單輪會(huì)話的問(wèn)題相對(duì)比較簡(jiǎn)單;多輪會(huì)話中,如何融入上下文這個(gè)問(wèn)題,還是比較復(fù)雜,我相信Bert在這里能夠發(fā)揮較大的作用。

應(yīng)用領(lǐng)域:文本摘要

文本摘要有兩種類型,一種是生成式的(Abstractive Summarization),輸入是較長(zhǎng)的原始文檔,輸出的內(nèi)容不局限于在原文出現(xiàn)的句子,而是自主生成能夠體現(xiàn)文章主要思想的較短的摘要;另外一種是抽取式的(Extractive Summarization),意思是從原始文檔中選擇部分能夠體現(xiàn)主題思想的句子,摘要是由文中抽出的幾個(gè)原始句子構(gòu)成的。

下面分述兩種不同類型的摘要任務(wù),在應(yīng)用Bert時(shí)的要點(diǎn)。

生成式文本摘要

很明顯,生成式摘要任務(wù),從技術(shù)體系來(lái)說(shuō),符合典型的Encoder-Decoder技術(shù)框架:原始文章從Encoder輸入,Decoder生成語(yǔ)句作為摘要結(jié)果。既然是這樣,要想利用Bert的預(yù)訓(xùn)練成果,無(wú)非體現(xiàn)在兩個(gè)地方,一個(gè)地方是Encoder端,這個(gè)好解決,只需要用預(yù)訓(xùn)練好的Bert模型初始化Encoder端Transformer參數(shù)即可,簡(jiǎn)單直觀無(wú)疑義;另外一個(gè)地方是在Decoder端,這個(gè)地方要應(yīng)用Bert就比較麻煩,主要的問(wèn)題在于:盡管也可以用Bert的預(yù)訓(xùn)練參數(shù)初始化Decoder對(duì)應(yīng)的Transformer參數(shù),但是目前各種實(shí)驗(yàn)證明這么做效果不好,主要是因?yàn)椋築ert在預(yù)訓(xùn)練的時(shí)候,采用的是雙向語(yǔ)言模型的模式。而一般的NLP任務(wù)在Decoder階段的生成過(guò)程,是從左到右一個(gè)單詞一個(gè)單詞逐步生成的。所以,這與Bert的雙向語(yǔ)言模型訓(xùn)練模式不同,無(wú)法有效利用Bert在預(yù)訓(xùn)練階段學(xué)習(xí)好的下文的信息提示作用。于是,造成了Bert的預(yù)訓(xùn)練模型無(wú)法在Decoder端充分發(fā)揮作用。

所以,如果采取Encoder-Decoder框架做生成式的文本摘要,要想發(fā)揮出Bert的威力,并不容易。因?yàn)樗媾R與Bert做NLP生成類任務(wù)完全相同的問(wèn)題,而Bert目前在生成模型方面是個(gè)難題,盡管最近出了幾個(gè)方案,但是實(shí)際上,這個(gè)問(wèn)題貌似仍然并沒有被很好地解決,所以它是嚴(yán)重依賴Bert生成模型的技術(shù)進(jìn)展的。

至于如何在生成類任務(wù)中發(fā)揮Bert的潛力,這是Bert模型改進(jìn)的一個(gè)重要方向,關(guān)于目前的解決方案及效果評(píng)價(jià),我會(huì)放在下一篇“模型篇”里分析,所以這里暫時(shí)略過(guò)不表。

抽取式文本摘要

抽取式文本摘要?jiǎng)t是個(gè)典型的句子分類問(wèn)題。意思是模型輸入文章整體的文本內(nèi)容,給定文中某個(gè)指定的句子,模型需要做個(gè)二分類任務(wù),來(lái)判斷這個(gè)句子是不是應(yīng)該作為本文的摘要。所以,抽取式文本摘要本質(zhì)上是個(gè)句子分類任務(wù),但是與常規(guī)文本分類任務(wù)相比,它有自己獨(dú)特的特點(diǎn),這個(gè)特點(diǎn)是:輸入端需要輸入整個(gè)文章內(nèi)容,而分類的判斷對(duì)象僅僅是當(dāng)前要做判斷的某個(gè)句子,整個(gè)文章只是對(duì)當(dāng)前句子進(jìn)行判斷的一個(gè)上下文,但是又必須輸入。而一般的文本或者句子分類,輸入的整體就是判斷對(duì)象,不存在多出來(lái)的這個(gè)上下文的問(wèn)題。這是它和普通的文本分類任務(wù)的最主要區(qū)別。

所以說(shuō),對(duì)于抽取式文本摘要任務(wù),盡管可以把它看成個(gè)句子分類任務(wù),但是它的輸入內(nèi)容和輸出對(duì)象不太匹配,這個(gè)是關(guān)鍵差異。于是,在模型輸入部分如何表達(dá)這種句子和文章的隸屬關(guān)系方面,需要花些心思。

如果要用Bert做抽取式摘要,也就是用Transformer作為特征抽取器,并用Bert的預(yù)訓(xùn)練模型初始化Transformer參數(shù),以這種方式構(gòu)建一個(gè)句子的二分類任務(wù)。從模型角度,Bert肯定是可以支持做這個(gè)事情的,只需要用Bert的預(yù)訓(xùn)練模型初始化Transformer參數(shù)即可。問(wèn)題的關(guān)鍵是:如何設(shè)計(jì)并構(gòu)建Transformer的輸入部分?要求是:輸入部分同時(shí)要輸入文章整體的內(nèi)容,并指出當(dāng)前要判斷的句子是哪個(gè)句子。所以,這里的關(guān)鍵是Transformer模型的輸入和輸出如何構(gòu)造的問(wèn)題,而模型本身應(yīng)用Bert成果則沒什么問(wèn)題,算是一種常規(guī)的Bert應(yīng)用。

現(xiàn)在可以套用一下這個(gè)方法,也就是在沒看到別人怎么做之前,自己想想你會(huì)怎么做。所以,在沒有看到用Bert做抽取式摘要的論文前,我自己拍腦袋想了想,發(fā)現(xiàn)比較容易想到的有下面兩種方法:

方法一:把Transformer的輸入分為兩個(gè)部分,第一個(gè)部分是文章原文。當(dāng)然,目前Bert支持的最大輸入長(zhǎng)度512,所以原文也不能太長(zhǎng);第二個(gè)部分是當(dāng)前要判斷的句子。兩者之間加個(gè)分隔符《SEP》;輸出部分則要求最開始的[CLS]輸入位置對(duì)應(yīng)的Transformer最高層輸出0/1兩種分類結(jié)果,如果結(jié)果是1,則意味著這個(gè)句子可以作為摘要句,0則意味著此句不會(huì)作為摘要句。只要依次對(duì)文中每個(gè)句子都如此判斷一下,把分類為1的句子按照句中順序拼接,就可以得到文本摘要。這是一種可能的方法;目前我尚未看到如此做的模型,當(dāng)然,我自己也覺得這個(gè)方式繁瑣了些。

方法二:Transformer的輸入部分只有一個(gè)部分,就是文章本身的完整的內(nèi)容,由多個(gè)句子構(gòu)成。如果是這種輸入,那么帶來(lái)的新的問(wèn)題是:我們?cè)趺粗喇?dāng)前要判斷哪個(gè)句子是否適合作為摘要句呢?可以這么做:在Transformer的輸入部分,在每個(gè)句子頭加入一個(gè)句子起始標(biāo)記《BOS》,或者把這個(gè)分隔符號(hào)理解為是句子之間的分隔符也可以;或者也可以在句子的對(duì)應(yīng)Embedding里加入句子編號(hào),用來(lái)區(qū)分不同句子的界限應(yīng)該也可以(Bert的輸入部分除了常規(guī)的單詞embedding,對(duì)于多句子類型任務(wù),還有句子的embedding,屬于相同句子的單詞共享相同的句子embedding)。盡管可以有不同的具體做法,但是核心思想是相近的:就是在輸入端明確加入一些標(biāo)記符號(hào),用來(lái)區(qū)分不同的句子。

輸入部分的問(wèn)題解決了,于是,剩下的問(wèn)題就是Transformer的輸出部分怎么設(shè)計(jì)了。同樣的,這里可能有幾種不同的做法。拍下腦袋,比如可以模仿閱讀理解的輸出,要求Transformer的輸出部分輸出若干個(gè)句子的《起始Position,終止Position》,這是一種可能做法;比如也可以在最開始的輸入[CLS]符號(hào)對(duì)應(yīng)的Transformer最高層Embedding上面上面綁定K個(gè)輸出頭,每個(gè)輸出頭輸出被選為摘要的句子編號(hào),指定最多輸出K個(gè)摘要句子,這是另外一種可能做法;除此外,還有其它的可能做法,比如也可以在Transformer的最高層各個(gè)單詞的embedding序列里,找出輸入側(cè)對(duì)應(yīng)的句子頭位置《BOS》的相應(yīng)位置的高層Embedding信息,每個(gè)《BOS》對(duì)應(yīng)的輸入位置對(duì)應(yīng)高層embedding作為這個(gè)句子的信息集成,在這個(gè)句子信息Embeddding基礎(chǔ)上設(shè)計(jì)分類層,這樣等于給每個(gè)句子進(jìn)行分類。

還有其它做法嗎?應(yīng)該還有。比如還可以把摘要看成一個(gè)類似分詞或者POS的單字/單詞分類問(wèn)題,每個(gè)輸入單詞對(duì)應(yīng)的Transformer高層節(jié)點(diǎn),要求對(duì)每個(gè)單詞進(jìn)行分類,而輸出的類別可以設(shè)計(jì)為[BOS(摘要句子起始單詞標(biāo)記),MOS(摘要句子句中單詞標(biāo)記),EOS(摘要句子結(jié)束單詞標(biāo)記),OOS(非摘要句單詞標(biāo)記)],這也是一種可能的做法,這是把摘要看成序列標(biāo)注問(wèn)題來(lái)做的。當(dāng)然,你也可以拍拍腦袋,估計(jì)還有很多其它做法。

目前有個(gè)論文(Fine-tune BERT for Extractive Summarization)是做抽取式文本摘要的。它的具體做法基本遵循上面講的方法二的框架,在輸入部分用特殊分隔符分隔開不同的句子,每個(gè)句子加入句子頭標(biāo)記《CLS》,在輸出部分則要求在輸入為《CLS》位置對(duì)應(yīng)的Transformer最高層embedding之上,構(gòu)建輸出層,用來(lái)判斷這個(gè)句子是否會(huì)被選為摘要句子。和上面的敘述方法不同的地方是:它在《CLS》輸出層和真正的分類層之間又多加入了一個(gè)網(wǎng)絡(luò)層,用來(lái)集成文章中不同句子之間的關(guān)系,比如用線性分類/transformer/RNN等模型來(lái)集成句子間的信息,然后在此基礎(chǔ)上,再輸出真正的句子分類結(jié)果。不過(guò),從試驗(yàn)結(jié)果看,其實(shí)這個(gè)新加入的中間網(wǎng)絡(luò)層,使用不同模型效果差不太多,這說(shuō)明在這里加入新的網(wǎng)絡(luò)層并沒有捕獲新的信息,我個(gè)人覺得這塊是可以拿掉簡(jiǎn)化一下模型的。至于用上述思路引入Bert預(yù)訓(xùn)練模型的摘要系統(tǒng),從效果上看,雖然優(yōu)于目前的SOTA模型,但是并沒有超過(guò)太多。而這說(shuō)明了什么呢?這是值得思考的一個(gè)問(wèn)題。

應(yīng)用領(lǐng)域:NLP中的數(shù)據(jù)增強(qiáng)

我們知道,在CV領(lǐng)域中,圖像數(shù)據(jù)增強(qiáng)對(duì)于效果有非常重要的作用,比如圖像旋轉(zhuǎn)或者摳出一部分圖片作為新增的圖像訓(xùn)練實(shí)例。其實(shí),NLP任務(wù)也面臨類似的需求,之所以會(huì)有這種需求,是因?yàn)椋喝绻?xùn)練數(shù)據(jù)越充分,能夠覆蓋更多的情形,那么模型效果越好,這個(gè)道理好理解。問(wèn)題是怎么才能低成本地拓展任務(wù)地新訓(xùn)練數(shù)據(jù)。

當(dāng)然,你可以選擇人工標(biāo)注更多的訓(xùn)練數(shù)據(jù),但無(wú)奈人工標(biāo)注訓(xùn)練數(shù)據(jù)成本太高,能否借助一些模型來(lái)輔助作出新的訓(xùn)練數(shù)據(jù)實(shí)例,以此來(lái)增強(qiáng)模型性能呢?NLP數(shù)據(jù)增強(qiáng)就是干這個(gè)事情的。

回到我們的主題上來(lái):能否利用Bert模型來(lái)擴(kuò)充人工標(biāo)注好的訓(xùn)練數(shù)據(jù)?這是在數(shù)據(jù)增強(qiáng)領(lǐng)域應(yīng)用Bert的核心目標(biāo)。目標(biāo)很明確,剩下的問(wèn)題是具體的方法而已。這個(gè)領(lǐng)域算是比較有新意的Bert應(yīng)用領(lǐng)域。

論文《Conditional BERT Contextual Augmentation》

這是個(gè)比較有趣的應(yīng)用,來(lái)自中科院信工所。它的目的是通過(guò)改造Bert預(yù)訓(xùn)練模型,來(lái)產(chǎn)生新增的訓(xùn)練數(shù)據(jù),以此來(lái)增強(qiáng)任務(wù)分類效果。就是說(shuō)對(duì)于某個(gè)任務(wù),輸入訓(xùn)練數(shù)據(jù)a,通過(guò)Bert,產(chǎn)生訓(xùn)練數(shù)據(jù)b,利用b來(lái)增強(qiáng)分類器性能。

它的改造方法如下:將Bert的雙向語(yǔ)言模型,改造成條件語(yǔ)言模型。所謂“條件”,意思是對(duì)于訓(xùn)練數(shù)據(jù)a,Mask掉其中的某些單詞,要求Bert預(yù)測(cè)這些被Mask掉的單詞,但是與通常的Bert預(yù)訓(xùn)練不同的是:它在預(yù)測(cè)被Mask掉的單詞的時(shí)候,在輸入端附加了一個(gè)條件,就是這個(gè)訓(xùn)練數(shù)據(jù)a的類標(biāo)號(hào),假設(shè)訓(xùn)練數(shù)據(jù)的類標(biāo)號(hào)已知,要求根據(jù)訓(xùn)練數(shù)據(jù)a的類標(biāo)號(hào)以及上下文,通過(guò)Bert去預(yù)測(cè)某些單詞。之所以這樣,是為了能夠產(chǎn)生更有意義的訓(xùn)練數(shù)據(jù)。比如對(duì)于情感計(jì)算任務(wù)來(lái)說(shuō),某個(gè)具備正向情感的訓(xùn)練實(shí)例S,mask掉S中的情感詞“good”,要求Bert生成新的訓(xùn)練實(shí)例N,如果不做條件約束,那么Bert可能產(chǎn)生預(yù)測(cè)單詞“bad”,這也是合理的,但是作為情感計(jì)算來(lái)說(shuō),類別的含義就完全反轉(zhuǎn)了,而這不是我們想要的。我們想要的是:新產(chǎn)生的訓(xùn)練例子N,也是表達(dá)正向情感的,比如可以是“funny”,而如果加上類標(biāo)號(hào)的約束,就可以做到這一點(diǎn)。具體增加約束的方式,則是將原先Bert中輸入部分的Sentence embedding部分,替換成輸入句子的對(duì)應(yīng)類標(biāo)號(hào)的embedding,這樣就可以用來(lái)生成滿足類條件約束的新的訓(xùn)練數(shù)據(jù)。這個(gè)做法還是很有意思的。

如果將通過(guò)Bert產(chǎn)生的新訓(xùn)練數(shù)據(jù)增加到原有的訓(xùn)練數(shù)據(jù)中,論文證明了能夠給CNN和RNN分類器帶來(lái)穩(wěn)定的性能提升。

論文《Data Augmentation for BERT Fine-Tuning in Open-Domain Question Answering》

這篇論文也涉及到了NLP中的數(shù)據(jù)增強(qiáng),不過(guò)這個(gè)數(shù)據(jù)增強(qiáng)不像上面的文章一樣,訓(xùn)練數(shù)據(jù)通過(guò)Bert產(chǎn)生,貌似是在QA問(wèn)題里面采用規(guī)則的方式擴(kuò)充正例和負(fù)例,做例子本身沒什么特別的技術(shù)含量,跟Bert也沒啥關(guān)系。它探討的主要是在Bert模型下的QA任務(wù)中,如何使用這些增強(qiáng)的訓(xùn)練數(shù)據(jù)。有價(jià)值的結(jié)論是:如果同時(shí)增加通過(guò)增強(qiáng)產(chǎn)生的正例和負(fù)例,有助于增加Bert的應(yīng)用效果;而且Stage-wise方式增加增強(qiáng)數(shù)據(jù)(就是原始訓(xùn)練數(shù)據(jù)和增強(qiáng)訓(xùn)練數(shù)據(jù)分多個(gè)階段依次進(jìn)行訓(xùn)練,而且距原始訓(xùn)練數(shù)據(jù)越遠(yuǎn)的應(yīng)該越先進(jìn)行Fine-tuning),效果好于把增強(qiáng)數(shù)據(jù)和原始數(shù)據(jù)混合起來(lái)單階段訓(xùn)練的模式。

所以,上面兩個(gè)文章結(jié)合著看,算是用Bert產(chǎn)生新的訓(xùn)練實(shí)例以及如何應(yīng)用這種增強(qiáng)實(shí)例的完整過(guò)程。

應(yīng)用領(lǐng)域:文本分類

文本分類是個(gè)NLP中歷史悠久,源遠(yuǎn)流長(zhǎng)…。。總之比較成熟的應(yīng)用領(lǐng)域。它的意思是給定一個(gè)文檔,模型告訴這是哪個(gè)類別,是講的“體育”還是“娛樂”,總之就是這個(gè)意思。

那么,Bert應(yīng)用在這個(gè)領(lǐng)域效果如何呢?目前也有工作。

論文《DocBERT: BERT for Document Classification》

在四個(gè)常用的標(biāo)準(zhǔn)文本分類數(shù)據(jù)集合上,利用Bert的預(yù)訓(xùn)練模型進(jìn)行了效果測(cè)試,應(yīng)該說(shuō)效果能夠達(dá)到以及超過(guò)之前的各種方法,但是總體而言,相對(duì)之前的常用方法比如LSTM或者CNN模型,提升幅度不算太大,基本提升幅度在3%到6%之間。

對(duì)于文本分類,Bert并未能夠獲得非常大的效果提升,這個(gè)結(jié)果其實(shí)是可以理解的。因?yàn)榘岩粋€(gè)還比較長(zhǎng)的文檔分到一個(gè)類別里,這種任務(wù)偏語(yǔ)言淺層特征的利用,而且指示性的單詞也比較多,應(yīng)該算是一種比較好解決的任務(wù),任務(wù)難度偏簡(jiǎn)單,Bert的潛力感覺不太容易發(fā)揮出來(lái)。

應(yīng)用領(lǐng)域:序列標(biāo)注

嚴(yán)格地說(shuō),序列標(biāo)注并非一個(gè)具體地應(yīng)用領(lǐng)域,而是NLP中一種問(wèn)題解決模式。很多NLP任務(wù)都可以映射為序列標(biāo)注問(wèn)題,比如分詞,詞性標(biāo)注,語(yǔ)義角色標(biāo)注等等,非常多。它的一個(gè)特點(diǎn)是:對(duì)于句子中任意一個(gè)單詞,都會(huì)有一個(gè)對(duì)應(yīng)的分類輸出結(jié)果。在原始的Bert論文里面也給出了序列標(biāo)注任務(wù)如何使用Bert的預(yù)訓(xùn)練過(guò)程,實(shí)際應(yīng)用的時(shí)候,應(yīng)用模式就是那種模式。

如果不考慮具體應(yīng)用場(chǎng)景,把不同應(yīng)用場(chǎng)景映射到序列標(biāo)注這種問(wèn)題解決模式的話,目前也有一些工作使用Bert來(lái)增強(qiáng)應(yīng)用效果。

論文《Toward Fast and Accurate Neural Chinese Word Segmentation with Multi-Criteria Learning》

這個(gè)工作使用Bert作為多標(biāo)準(zhǔn)分詞的特征抽取器。所謂多標(biāo)準(zhǔn),是指的同一個(gè)語(yǔ)言片段,在不同場(chǎng)景下可能有不同粒度的分詞結(jié)果。它使用Bert預(yù)訓(xùn)練的Transformer作為主要特征抽取器,針對(duì)不同數(shù)據(jù)集合可能分詞標(biāo)準(zhǔn)不同,所以在Transformer之上,為每個(gè)分詞數(shù)據(jù)集合構(gòu)建一個(gè)獨(dú)有的參數(shù)頭,用來(lái)學(xué)習(xí)各自的標(biāo)準(zhǔn)。同時(shí)增加一個(gè)共享的參數(shù)頭,用來(lái)捕捉共性的信息。在此之上,再用CRF來(lái)做全局最優(yōu)規(guī)劃。這個(gè)模型在多個(gè)分詞數(shù)據(jù)集合上取得了最高的分詞效果。不過(guò)總體而言,效果提升不太明顯。這也可能與之前的技術(shù)方法已經(jīng)把分詞解決的還比較好,所以基準(zhǔn)比較高有關(guān)系。

論文《BERT Post-Training for Review Reading Comprehension and Aspect-based Sentiment Analysis》

這個(gè)工作做了兩個(gè)事情,一個(gè)是閱讀理解,另外一個(gè)是情感計(jì)算。其中情感計(jì)算的Aspect Extract任務(wù)是采用序列標(biāo)注的方式做的,利用Bert的預(yù)訓(xùn)練過(guò)程后,與之前的最好方法比,效果提升不明顯。

論文《Multi-Head Multi-Layer Attention to Deep Language Representations for Grammatical Error Detection》

這個(gè)工作主要解決的應(yīng)用問(wèn)題是句法錯(cuò)誤檢測(cè)。把這個(gè)問(wèn)題映射成了序列標(biāo)注問(wèn)題,使用Bert預(yù)訓(xùn)練后,效果提升明顯,與基準(zhǔn)方法比,性能有大幅度地提高;

上文在談對(duì)話系統(tǒng)應(yīng)用領(lǐng)域時(shí),還提到過(guò)一個(gè)單輪對(duì)話系統(tǒng)利用Bert進(jìn)行槽位填充的工作,也是映射成序列標(biāo)注問(wèn)題來(lái)解決的,那個(gè)工作結(jié)論是兩個(gè)數(shù)據(jù)集合,一個(gè)提升2%,一個(gè)提升12%。

綜合看,大部分序列標(biāo)注任務(wù)在利用了Bert后,盡管把任務(wù)效果都能做到當(dāng)前最好,但是效果提升幅度,與很多其它領(lǐng)域比,不算大。這可能跟具體的應(yīng)用領(lǐng)域有關(guān)系。

應(yīng)用領(lǐng)域:其它

除了上面我進(jìn)行了歸類的Bert應(yīng)用外,還有零星一些其它領(lǐng)域的Bert應(yīng)用工作,這里簡(jiǎn)單提幾句。

論文《Assessing BERT’s Syntactic Abilities》

這個(gè)工作對(duì)Bert的句法分析能力做了測(cè)試,使用主語(yǔ)-謂語(yǔ)一致性任務(wù)做為測(cè)試任務(wù)。與傳統(tǒng)表現(xiàn)較好的LSTM模型做了對(duì)比,測(cè)試數(shù)據(jù)表現(xiàn)Bert效果大幅超過(guò)LSTM的效果,當(dāng)然作者強(qiáng)調(diào)因?yàn)橐恍┰蜻@個(gè)數(shù)據(jù)不可直接對(duì)比。不過(guò)至少說(shuō)明Bert在句法方面是不弱于或者強(qiáng)于LSTM的。

另外,還有兩篇做NLP to SQL的工作(Achieving 90% accuracy in WikiSQL/ Table2answer: Read the database and answer without SQL),意思是不用你寫SQL語(yǔ)句,而是用自然語(yǔ)言發(fā)出命令,系統(tǒng)自動(dòng)轉(zhuǎn)化成可執(zhí)行的SQL語(yǔ)句,使用Bert后,也取得了一定幅度的性能提升。我理解這種任務(wù)因?yàn)槭穷I(lǐng)域受限的,所以相對(duì)容易些,我個(gè)人對(duì)這個(gè)方向也沒啥興趣,所以這里不展開了,感興趣的可以找論文看。

除此外,還有兩篇做信息抽取的工作,使用Bert后,效果也比較一般,這個(gè)領(lǐng)域其實(shí)是值得深入關(guān)注的。

目前已經(jīng)發(fā)表的Bert應(yīng)用,絕大部分基本都已經(jīng)被我歸類到上面各個(gè)領(lǐng)域里了。這里明確提到的論文,都是我認(rèn)為有一定參考價(jià)值的一部分,并不是全部,我篩掉了一批我認(rèn)為質(zhì)量不是太高,或者參考價(jià)值不大,或者我認(rèn)為方法過(guò)于復(fù)雜的工作,這點(diǎn)還請(qǐng)注意。當(dāng)然,一定也有一部分有價(jià)值的工作,因?yàn)闆]有進(jìn)入我狹窄的視野,所以沒有被列入,這也是有可能的。

看我72變:對(duì)應(yīng)用問(wèn)題的重構(gòu)

上面介紹了不少NLP領(lǐng)域如何應(yīng)用Bert提升效果,方法眾多,效果各異,容易讓人看起來(lái)眼花繚亂,不太能摸著頭腦。也許你在沒看這些內(nèi)容之前,腦子里就一個(gè)印象:Bert大法好,對(duì)NLP各種應(yīng)用都能有很大性能提升作用。事實(shí)是這樣嗎?其實(shí)并不是。在你看完上面的內(nèi)容后,看到了五彩繽紛絢爛多彩的各種方法,可能更容易犯暈,感覺沒啥結(jié)論可下,此刻眼里正閃耀著迷茫的光芒……。

其實(shí),這都是表面現(xiàn)象。我在這里總結(jié)一下。純個(gè)人分析,不保證正確性,猜對(duì)算碰巧,猜錯(cuò)也正常。

盡管看上去有各種各樣不同的NLP任務(wù),其實(shí)如何應(yīng)用Bert,一切答案在原始的Bert論文里,大部分都講到了。其利用Bert的過(guò)程是基本一樣的,核心過(guò)程都是用Transformer作為特征抽取器,用Bert預(yù)訓(xùn)練模型初始化Transformer的參數(shù),然后再用當(dāng)前任務(wù)Fine-tuning一下,僅此而已。

如果我們?cè)偌?xì)致一些,分任務(wù)類型來(lái)看的話,歸納下,結(jié)論很可能會(huì)是這樣的:

如果應(yīng)用問(wèn)題能夠轉(zhuǎn)化成標(biāo)準(zhǔn)的序列標(biāo)注問(wèn)題(分詞/詞性標(biāo)注/語(yǔ)義角色標(biāo)注/對(duì)話槽位填充/信息抽取等,很多NLP任務(wù)可以轉(zhuǎn)化為序列標(biāo)注的問(wèn)題解決形式),或者單句或文檔分類問(wèn)題(文本分類/抽取式文本摘要可以看成一種帶上下文的單句分類問(wèn)題),那么可以直接利用Bert的預(yù)訓(xùn)練過(guò)程,任務(wù)無(wú)需特殊改造;目前已有實(shí)驗(yàn)結(jié)果,貌似說(shuō)明在這兩類任務(wù)中,使用Bert應(yīng)該能夠達(dá)到最好的效果,但是與之前未采納Bert的最好模型比,多數(shù)任務(wù)性能提升似乎相對(duì)有限。這其中有什么深層的原因嗎?我有個(gè)判斷,后面會(huì)說(shuō);

如果是短文檔的雙句關(guān)系判斷任務(wù),比如典型的就是QA/閱讀理解/短文檔搜索/對(duì)話等任務(wù),一般利用Bert的方式也是直觀的,就是Bert原始論文中提出的兩個(gè)句子間加分隔符輸入的方式,不需要特殊改造。目前看,這類任務(wù),利用Bert后往往性能有大幅度的提升。

但是,為什么你在看上文的時(shí)候,會(huì)覺得看上去有很多不同的各異的模型呢?主要是因?yàn)橛行㎞LP領(lǐng)域,盡管利用Bert的過(guò)程其實(shí)就是上面的過(guò)程,但是需要單獨(dú)解決自己任務(wù)的一些特點(diǎn)問(wèn)題,比如搜索領(lǐng)域的長(zhǎng)文檔輸入問(wèn)題怎么解決,搜索領(lǐng)域的粗排序需要有其它方法;對(duì)于抽取式摘要來(lái)說(shuō),輸入輸出如何設(shè)計(jì)是個(gè)問(wèn)題,因?yàn)樗推胀ǖ奈谋痉诸惒惶粯?;比如多輪?duì)話系統(tǒng)的歷史信息如何利用,需要有個(gè)歷史信息融合或者選擇的方法存在……諸如此類。其實(shí)關(guān)鍵的應(yīng)用Bert的部分,并無(wú)特殊之處。這一切冥冥中,早已經(jīng)在原始的Bert論文里講過(guò)了。“被酒莫驚春睡重,賭書消得潑茶香,當(dāng)時(shí)只道是尋常?!焙芏嗍拢贿^(guò)如此。

經(jīng)過(guò)我此番任性的解釋,此刻,您眼中迷茫的光芒,熄滅了嗎?還是更熾熱了?

貍貓換太子:Fine-tuning 階段的 In Domain 和 Out Domain 問(wèn)題

如果上面的判斷正確的話,你應(yīng)該問(wèn)自己一個(gè)問(wèn)題:“既然看上去貌似Bert更適合處理句子對(duì)關(guān)系判斷問(wèn)題。而對(duì)于單句分類,或者序列標(biāo)注問(wèn)題,盡管有效,但是貌似效果沒那么好。于是,能不能利用下Bert的這一點(diǎn),怎么利用呢?比如說(shuō)能不能把單句分類問(wèn)題,或者序列標(biāo)注問(wèn)題,轉(zhuǎn)化下問(wèn)題的表達(dá)形式,讓它以雙句關(guān)系判斷的表現(xiàn)形態(tài)出現(xiàn)呢?”

如果你真能問(wèn)出這個(gè)問(wèn)題,這意味著,你真是挺適合搞前沿研究的。

事實(shí)上,已經(jīng)有些工作是這么做了,而且事實(shí)證明,如果能夠?qū)?yīng)用問(wèn)題進(jìn)行重構(gòu)的話,其它事情都不用做,就能直接提升這些任務(wù)的效果,有些任務(wù)效果提升還非常明顯。怎么重構(gòu)呢?對(duì)于某些具備一定特性的NLP任務(wù),如果它看上去是單句分類問(wèn)題,那么可以通過(guò)問(wèn)題重構(gòu),比如引入虛擬句,把單句輸入問(wèn)題改造成句間關(guān)系判斷問(wèn)題,這樣就能充分發(fā)揮Bert的這個(gè)特性,直接提升效果。就是這么重構(gòu)。

論文《 BERT for Aspect-Based Sentiment Analysis via Constructing Auxiliary Sentence》

這個(gè)工作來(lái)自復(fù)旦大學(xué)。它利用Bert來(lái)優(yōu)化細(xì)粒度的情感分類任務(wù)。所謂細(xì)粒度的情感分類任務(wù),指的是不僅僅對(duì)某個(gè)句子或者某個(gè)實(shí)體的整體情感傾向做個(gè)整體判斷,而是對(duì)實(shí)體的不同方面作出不同的判斷,比如例子“LOCATION1 is often considered the coolest area of London.”,就是說(shuō)某個(gè)實(shí)體(這里的例子是某個(gè)地點(diǎn)LOCATION 1)的A方面(比如價(jià)格price)是怎樣的情感傾向,B方面(比如安全性safety)是怎樣的情感傾向等,細(xì)粒度到某個(gè)實(shí)體的某個(gè)方面的情感傾向。

這個(gè)工作做得非常聰明,它把本來(lái)情感計(jì)算的常規(guī)的單句分類問(wèn)題,通過(guò)加入輔助句子,改造成了句子對(duì)匹配任務(wù)(比如上面的例子,可以增加輔助句:“what do you think of the safety of LOCATION 1”)。我們前面說(shuō)過(guò),很多實(shí)驗(yàn)證明了:Bert是特別適合做句子對(duì)匹配類的工作的,所以這種轉(zhuǎn)換無(wú)疑能更充分地發(fā)揮Bert的應(yīng)用優(yōu)勢(shì)。而實(shí)驗(yàn)也證明,經(jīng)過(guò)這種問(wèn)題轉(zhuǎn)換,性能有大幅度地提升。

Salesforce也有個(gè)類似想法的工作(Unifying Question Answering and Text Classification via Span Extraction),它的部分實(shí)驗(yàn)結(jié)果也表明,單句分類任務(wù),通過(guò)加入輔助句,轉(zhuǎn)化成雙句關(guān)系判斷任務(wù),也能提升任務(wù)效果。

為什么對(duì)于Bert應(yīng)用來(lái)說(shuō),同樣的數(shù)據(jù),同樣的任務(wù),只需要把單句任務(wù)轉(zhuǎn)成句子對(duì)匹配任務(wù),效果就突然變好了呢?這個(gè)問(wèn)題其實(shí)是個(gè)好問(wèn)題,在后面我會(huì)給兩個(gè)可能的解釋。

這個(gè)方向是值得進(jìn)一步深入拓展的,目前工作還不多,我預(yù)感這里還有很大的潛力可以挖掘,無(wú)論是探索還是應(yīng)用角度,應(yīng)該都是這樣的。

競(jìng)爭(zhēng)優(yōu)勢(shì):Bert擅長(zhǎng)做什么?

我們知道,在應(yīng)用Bert的時(shí)候,真正使用某個(gè)應(yīng)用的數(shù)據(jù),是在第二階段Fine-tuning階段,通過(guò)用手頭任務(wù)的訓(xùn)練數(shù)據(jù)對(duì)Transformer進(jìn)行訓(xùn)練,調(diào)整參數(shù),將Transformer的參數(shù)針對(duì)手頭任務(wù)進(jìn)行Fine-tune,之后一般會(huì)獲得明顯的應(yīng)用提升。

這里所謂的In-Domain和Out-Domain問(wèn)題,指的是:Out-Domain意思是你手頭任務(wù)有個(gè)數(shù)據(jù)集合A,但是在Bert的Fine-tuning階段,用的是其它數(shù)據(jù)集合B。知道了Out-Domain,也就知道In-Domain的意思了,就是說(shuō)用手頭任務(wù)數(shù)據(jù)集合A去Fine-tune參數(shù),不引入其它數(shù)據(jù)。

那么問(wèn)題是:為什么手頭任務(wù)是A,要引入數(shù)據(jù)集合B呢?這個(gè)在做具體應(yīng)用的時(shí)候,其實(shí)還是比較常見的。如果你手頭任務(wù)A的訓(xùn)練數(shù)據(jù)足夠大,其實(shí)完全可以走In-Domain的路線就夠了。但是如果你手上的任務(wù)A訓(xùn)練數(shù)據(jù)太小,一般而言,盡管也可以用它去做Bert的Fine-tuning,但是無(wú)疑,效果可能有限,因?yàn)閷?duì)于參數(shù)規(guī)模這么大的Bert來(lái)講,太少的Fine-tuning數(shù)據(jù),可能無(wú)法充分體現(xiàn)任務(wù)特點(diǎn)。于是,我們就期待通過(guò)引入和手頭任務(wù)A有一定相近性的數(shù)據(jù)集合B,用B或者A+B去Fine-tune Bert的參數(shù),期待能夠從數(shù)據(jù)集合B Transfer些共性知識(shí)給當(dāng)前的任務(wù)A,以提高任務(wù)A的效果。某種角度上,這有點(diǎn)像Multi-Task任務(wù)的目標(biāo)。

那么新的問(wèn)題是:既然我們期待數(shù)據(jù)集合B能夠遷移些知識(shí)給當(dāng)前任務(wù)A,那么這兩個(gè)任務(wù)或者訓(xùn)練數(shù)據(jù)之間必然應(yīng)該有些共性存在。于是,哪些因素決定了不同性質(zhì)的數(shù)據(jù)集合B對(duì)當(dāng)前任務(wù)A的影響呢?這個(gè)其實(shí)是個(gè)很實(shí)用也很有意思的問(wèn)題。

目前針對(duì)這些問(wèn)題,也有一些工作和初步的結(jié)論。

論文《This Is Competition at SemEval-2019 Task 9: BERT is unstable for out-of-domain samples》

研究了Out-Domain對(duì)Target 任務(wù)的影響,使用了不同領(lǐng)域的數(shù)據(jù),在Fine-tuning階段使用了大約數(shù)量為9千左右的電子領(lǐng)域的訓(xùn)練數(shù)據(jù),而Target任務(wù)是Hotel領(lǐng)域的??梢钥闯鰜?lái),這兩個(gè)領(lǐng)域差異還是很大。通過(guò)實(shí)驗(yàn)對(duì)比,結(jié)論是:如果是Out-Domain這種情況,Target任務(wù)表現(xiàn)非常不穩(wěn)定,10輪測(cè)試中,Hotel任務(wù)的性能最低是0,最高71,方差31??梢钥闯鰜?lái),這效果簡(jiǎn)直是在蹦極和坐火箭之間頻繁切換。為什么會(huì)這樣?目前還沒有解釋。這里是值得深入探討一下的。

從這個(gè)工作反向推導(dǎo),我們可以認(rèn)為,即使數(shù)據(jù)B相對(duì)手頭任務(wù)A來(lái)說(shuō)是Out-Domain的,如果它在領(lǐng)域相似性與手頭任務(wù)A越接近,效果理應(yīng)越好,這個(gè)貌似比較直觀好理解,但是這是我的反向推論,并沒看到一些具體研究對(duì)此進(jìn)行對(duì)比,這個(gè)事情是值得做一下的。

另一個(gè)工作是《Simple Applications of BERT for Ad Hoc Document Retrieval》

盡管它是研究信息檢索的,但是也設(shè)計(jì)了一些跟Out-domain有關(guān)的實(shí)驗(yàn)。它驗(yàn)證了Bert的Fine-tuning階段使用數(shù)據(jù)的一些特性:在Fine-tuning階段的訓(xùn)練數(shù)據(jù)B,與下游任務(wù)的數(shù)據(jù)集合A相比,兩者的任務(wù)相關(guān)性,相比兩者的文本的外在表現(xiàn)形式的相似性來(lái)說(shuō),對(duì)于下游任務(wù)更重要。實(shí)驗(yàn)結(jié)論是:對(duì)于微博這種下游短文本檢索任務(wù)(手頭任務(wù)A),盡管它在表現(xiàn)形式上和Trec檢索(Out-Domain數(shù)據(jù)B)這種新聞文本形式上差異較大,但是因?yàn)槎际菣z索任務(wù),所以相對(duì)用QA任務(wù)(另外一個(gè)Out-Domain數(shù)據(jù)B)來(lái)Finetune Bert來(lái)說(shuō),效果好,而且好得很明顯。這說(shuō)明了,對(duì)于Out-Domain情況來(lái)說(shuō),F(xiàn)ine-tuning任務(wù)B和下游任務(wù)A的任務(wù)相似性對(duì)于效果影響巨大,我們盡可能找相同或者相近任務(wù)的數(shù)據(jù)來(lái)做Fine-tuning,哪怕形式上看上去有差異。

還有一個(gè)工作《Data Augmentation for BERT Fine-Tuning in Open-Domain Question Answering》。

它本身是做數(shù)據(jù)增強(qiáng)的,不過(guò)實(shí)驗(yàn)部分的結(jié)果,我相信結(jié)論也應(yīng)該能夠遷移到Out-Domain情形,它的結(jié)論是:假設(shè)有幾個(gè)新增的訓(xùn)練集合,比如B,C,D三個(gè)新數(shù)據(jù)集合,每個(gè)和Target任務(wù)A的數(shù)據(jù)差異遠(yuǎn)近不同,假設(shè)B最遠(yuǎn),C次之,D和A最像。那么如果是這樣的數(shù)據(jù),一種做法是把A+B+C+D放到一起去Fine-tune 模型,另外一種是由遠(yuǎn)及近地分幾個(gè)階段Fine-tune模型,比如先用最遠(yuǎn)的B,然后用C,再然后用最近的D,再然后用A,這種叫Stage-wise的方式。結(jié)論是Stage-wise模式是明顯效果好于前一種方式的。

另外一點(diǎn),我相信對(duì)于Out-Domain情況來(lái)說(shuō),如果Fine-tuning任務(wù)和下游任務(wù)在有相關(guān)性的基礎(chǔ)上,無(wú)疑應(yīng)該是數(shù)據(jù)量越大,對(duì)下游任務(wù)的正面影響越大。

所以,如果歸納一下目前的研究結(jié)論,以及我自己在現(xiàn)有數(shù)據(jù)基礎(chǔ)上隨意推理的結(jié)論,那么結(jié)論很可能是這樣子的:對(duì)于Out-Domain情況,首選和手頭任務(wù)A相同或者相近的任務(wù)B來(lái)做Fine-tuning,而至于這兩個(gè)數(shù)據(jù)的領(lǐng)域相似性,當(dāng)然越高越好,而數(shù)據(jù)規(guī)模,也應(yīng)該是越多越好。如果有多個(gè)不同的數(shù)據(jù)可以用,那么根據(jù)它們和手頭任務(wù)的相似性,由遠(yuǎn)及近地分Stage去Fine-tune模型比較好。當(dāng)然,這里面有些因素是我個(gè)人無(wú)依據(jù)的推論,實(shí)際情況需要實(shí)驗(yàn)證明,所以還請(qǐng)謹(jǐn)慎參考。

這個(gè)方向其實(shí)是非常有價(jià)值的方向,感覺目前的相關(guān)工作還是太少,有些問(wèn)題也沒說(shuō)清,這里是值得深入摸索找到好的經(jīng)驗(yàn)的,因?yàn)槲覀兤匠=?jīng)常會(huì)遇到任務(wù)數(shù)據(jù)不夠的問(wèn)題,那么想利用好Bert就比較困難,而如果把這個(gè)問(wèn)題研究透徹,對(duì)于很多實(shí)際應(yīng)用會(huì)有巨大的參考價(jià)值。

淘金記:如何尋找未開墾的Bert應(yīng)用領(lǐng)域

在看完目前幾乎所有已發(fā)表的Bert應(yīng)用工作后,事實(shí)表明,盡管Bert在很多應(yīng)用領(lǐng)域取得了進(jìn)展,但是在不同方向上,看上去Bert的引入對(duì)于應(yīng)用效果促進(jìn)作用是不同的,有些表現(xiàn)突出的領(lǐng)域會(huì)有甚至100%的效果提升,有些領(lǐng)域的提升就表現(xiàn)相對(duì)平平。于是,我問(wèn)了自己一個(gè)新的問(wèn)題:為什么會(huì)出現(xiàn)這個(gè)現(xiàn)象呢?這說(shuō)明了Bert還是有比較適合它的應(yīng)用場(chǎng)景的,如果找到特別適合Bert發(fā)揮的場(chǎng)景,則性能往往會(huì)有極大地提升,但是如果應(yīng)用場(chǎng)景不能充分發(fā)揮Bert的優(yōu)勢(shì),則雖然也會(huì)有些改進(jìn),但是改進(jìn)效果不會(huì)特別明顯。

于是,新的問(wèn)題就產(chǎn)生了:Bert擅長(zhǎng)解決具備什么樣特性的NLP任務(wù)呢?什么樣的場(chǎng)景更適合Bert去解決?

為了回答這個(gè)問(wèn)題,我對(duì)目前的各種工作做了任務(wù)對(duì)比,并試圖歸納和推理一些結(jié)論,目的是希望找出:具備哪些特性的任務(wù)是能夠發(fā)揮Bert模型的優(yōu)勢(shì)的。分析結(jié)果如下,純屬個(gè)人判斷,錯(cuò)誤難免,還請(qǐng)批判性地謹(jǐn)慎參考,以免對(duì)您造成誤導(dǎo)。

第一,如果NLP任務(wù)偏向在語(yǔ)言本身中就包含答案,而不特別依賴文本外的其它特征,往往應(yīng)用Bert能夠極大提升應(yīng)用效果。典型的任務(wù)比如QA和閱讀理解,正確答案更偏向?qū)φZ(yǔ)言的理解程度,理解能力越強(qiáng),解決得越好,不太依賴語(yǔ)言之外的一些判斷因素,所以效果提升就特別明顯。反過(guò)來(lái)說(shuō),對(duì)于某些任務(wù),除了文本類特征外,其它特征也很關(guān)鍵,比如搜索的用戶行為/鏈接分析/內(nèi)容質(zhì)量等也非常重要,所以Bert的優(yōu)勢(shì)可能就不太容易發(fā)揮出來(lái)。再比如,推薦系統(tǒng)也是類似的道理,Bert可能只能對(duì)于文本內(nèi)容編碼有幫助,其它的用戶行為類特征,不太容易融入Bert中。

第二,Bert特別適合解決句子或者段落的匹配類任務(wù)。就是說(shuō),Bert特別適合用來(lái)解決判斷句子關(guān)系類問(wèn)題,這是相對(duì)單文本分類任務(wù)和序列標(biāo)注等其它典型NLP任務(wù)來(lái)說(shuō)的,很多實(shí)驗(yàn)結(jié)果表明了這一點(diǎn)。而其中的原因,我覺得很可能主要有兩個(gè),一個(gè)原因是:很可能是因?yàn)锽ert在預(yù)訓(xùn)練階段增加了Next Sentence Prediction任務(wù),所以能夠在預(yù)訓(xùn)練階段學(xué)會(huì)一些句間關(guān)系的知識(shí),而如果下游任務(wù)正好涉及到句間關(guān)系判斷,就特別吻合Bert本身的長(zhǎng)處,于是效果就特別明顯。第二個(gè)可能的原因是:因?yàn)镾elf Attention機(jī)制自帶句子A中單詞和句子B中任意單詞的Attention效果,而這種細(xì)粒度的匹配對(duì)于句子匹配類的任務(wù)尤其重要,所以Transformer的本質(zhì)特性也決定了它特別適合解決這類任務(wù)。

從上面這個(gè)Bert的擅長(zhǎng)處理句間關(guān)系類任務(wù)的特性,我們可以繼續(xù)推理出以下觀點(diǎn):

既然預(yù)訓(xùn)練階段增加了Next Sentence Prediction任務(wù),就能對(duì)下游類似性質(zhì)任務(wù)有較好促進(jìn)作用,那么是否可以繼續(xù)在預(yù)訓(xùn)練階段加入其它的新的輔助任務(wù)?而這個(gè)輔助任務(wù)如果具備一定通用性,可能會(huì)對(duì)一類的下游任務(wù)效果有直接促進(jìn)作用。這也是一個(gè)很有意思的探索方向,當(dāng)然,這種方向因?yàn)橐獎(jiǎng)覤ert的第一個(gè)預(yù)訓(xùn)練階段,所以屬于NLP屆土豪們的工作范疇,窮人們還是散退、旁觀、鼓掌、叫好為妙。

第三,Bert的適用場(chǎng)景,與NLP任務(wù)對(duì)深層語(yǔ)義特征的需求程度有關(guān)。感覺越是需要深層語(yǔ)義特征的任務(wù),越適合利用Bert來(lái)解決;而對(duì)有些NLP任務(wù)來(lái)說(shuō),淺層的特征即可解決問(wèn)題,典型的淺層特征性任務(wù)比如分詞,POS詞性標(biāo)注,NER,文本分類等任務(wù),這種類型的任務(wù),只需要較短的上下文,以及淺層的非語(yǔ)義的特征,貌似就可以較好地解決問(wèn)題,所以Bert能夠發(fā)揮作用的余地就不太大,有點(diǎn)殺雞用牛刀,有力使不出來(lái)的感覺。

這很可能是因?yàn)門ransformer層深比較深,所以可以逐層捕獲不同層級(jí)不同深度的特征。于是,對(duì)于需要語(yǔ)義特征的問(wèn)題和任務(wù),Bert這種深度捕獲各種特征的能力越容易發(fā)揮出來(lái),而淺層的任務(wù),比如分詞/文本分類這種任務(wù),也許傳統(tǒng)方法就能解決得比較好,因?yàn)槿蝿?wù)特性決定了,要解決好它,不太需要深層特征。

第四,Bert比較適合解決輸入長(zhǎng)度不太長(zhǎng)的NLP任務(wù),而輸入比較長(zhǎng)的任務(wù),典型的比如文檔級(jí)別的任務(wù),Bert解決起來(lái)可能就不太好。主要原因在于:Transformer的self attention機(jī)制因?yàn)橐獙?duì)任意兩個(gè)單詞做attention計(jì)算,所以時(shí)間復(fù)雜度是n平方,n是輸入的長(zhǎng)度。如果輸入長(zhǎng)度比較長(zhǎng),Transformer的訓(xùn)練和推理速度掉得比較厲害,于是,這點(diǎn)約束了Bert的輸入長(zhǎng)度不能太長(zhǎng)。所以對(duì)于輸入長(zhǎng)一些的文檔級(jí)別的任務(wù),Bert就不容易解決好。結(jié)論是:Bert更適合解決句子級(jí)別或者段落級(jí)別的NLP任務(wù)。

也許還有其它因素,不過(guò)貌似不如上面四條表現(xiàn)得這么明顯,所以,我先歸納這四項(xiàng)基本原則吧。

新趨勢(shì):Bert能一統(tǒng)NLP的天下嗎

既然我們歸納出Bert擅長(zhǎng)做的事情的特點(diǎn),那么下一步,我們可以按圖索驥,尋找一些目前還沒有人做,但是又特別適合Bert來(lái)做的應(yīng)用領(lǐng)域,然后你可以大施拳腳,拳打腳踢,拳腳相向地去施展自己的才智…。

怎么找這些領(lǐng)域呢?你可以去找找看,哪些應(yīng)用領(lǐng)域同時(shí)符合下面幾個(gè)條件中的一個(gè)或者幾個(gè),同時(shí)符合的條件越多,理論上越適合用Bert去做:

1. 輸入不太長(zhǎng),最好是句子或者段落,避免Bert長(zhǎng)文檔的問(wèn)題;

2.語(yǔ)言本身就能夠很好的解決問(wèn)題,不依賴其它類型的特征;

3.非生成類任務(wù),避開目前Bert做生成類任務(wù)效果不夠好的雷點(diǎn);

4. 最好是能夠涉及到多句子關(guān)系判斷類任務(wù),充分利用Bert 善于做句子匹配任務(wù)的特點(diǎn);

5.最好是能夠牽扯到語(yǔ)義層級(jí)的任務(wù),充分利用Bert能夠編碼深層語(yǔ)言知識(shí)的優(yōu)點(diǎn);

6.如果是單輸入問(wèn)題,你想想能不能加入輔助句,把它改造成句子匹配型雙輸入任務(wù);

看到這,您可能開始假裝冒充有好奇心地問(wèn)我了:那到底哪些應(yīng)用領(lǐng)域符合這些特點(diǎn)呢?……。。嗯,兄弟,你這不是個(gè)好奇心問(wèn)題,實(shí)際是個(gè)懶漢問(wèn)題。我請(qǐng)您吃飯,醋都給你準(zhǔn)備好了,現(xiàn)在就差餃子了,就看你的了,麻煩您有問(wèn)這種問(wèn)題的時(shí)間,還是自己去整餃子吧…。。臨淵羨魚不如退而包餃子……。

結(jié)語(yǔ)

在Bert出現(xiàn)之前,NLP中不同的應(yīng)用領(lǐng)域,往往各自使用這個(gè)領(lǐng)域有特色的不同的模型,看上去五花八門,差別還是比較大的。例如閱讀理解就是各種花樣的Attention漫天在飛;搜索領(lǐng)域雖然也進(jìn)入DNN時(shí)代了,但是依托的很多還是Learning to rank的框架;文本分類就是典型的LSTM的主戰(zhàn)場(chǎng)……。。

但是隨著Bert的出現(xiàn),我相信以后這種不同應(yīng)用領(lǐng)域中,技術(shù)手段軍閥混戰(zhàn),群雄割據(jù)的局面不會(huì)太持久了,Bert攜預(yù)訓(xùn)練模型之天子令而號(hào)諸侯,應(yīng)該會(huì)逐步用一個(gè)相對(duì)統(tǒng)一的解決方案,統(tǒng)一掉各個(gè)NLP應(yīng)用領(lǐng)域割據(jù)的局面,收拾舊山河,朝天闕。這很可能意味著一種NLP新時(shí)代的開始,因?yàn)闅v史上貌似還沒有這么大一統(tǒng)的一個(gè)NLP模型存在過(guò)。

為什么這么說(shuō)呢?其實(shí)在本文第一個(gè)小節(jié)的內(nèi)容你已經(jīng)應(yīng)該可以看出這種端倪了,上面涉及了NLP的很多應(yīng)用領(lǐng)域,雖然說(shuō)Bert在不同應(yīng)用領(lǐng)域的促進(jìn)效果不同,有的大,有的小些,但是幾乎沒有例外的是,都已經(jīng)比之前各個(gè)領(lǐng)域的SOTA方法效果好了,問(wèn)題無(wú)非是好多少而已,而不是好不好的問(wèn)題。而之前不同領(lǐng)域的SOTA方法,差異是非常大的,尤其是跨領(lǐng)域的時(shí)候,你會(huì)看到五花八門的技術(shù)方案。而這意味著什么呢?意味著起碼在上述領(lǐng)域里,完全可以用Bert的架構(gòu)和模型,替代掉那個(gè)領(lǐng)域的其它所有SOTA方法。而這又意味著什么?意味著“分久必合,合久必分”的歷史規(guī)律中,分久必合的時(shí)代到了,而引領(lǐng)這個(gè)潮流的,就是Bert。這對(duì)你來(lái)說(shuō)又意味著什么呢?這意味著你要學(xué)的東西比之前少太多了,學(xué)習(xí)NLP的投入產(chǎn)出性價(jià)比急劇提高。你自己拍著胸脯說(shuō),這是不是好事?哎,沒讓你拍別人胸脯啊,兄弟……。。

而隨著逐漸對(duì)Bert本身能力的各種增強(qiáng),很可能這種統(tǒng)一的步伐會(huì)越來(lái)越快。我估計(jì)這個(gè)時(shí)間應(yīng)該在未來(lái)1年到2年,很可能大多數(shù)NLP子領(lǐng)域都會(huì)被統(tǒng)一到Bert兩階段+Transformer特征抽取器的方案框架上來(lái)。而我認(rèn)為這是非常好的事情,因?yàn)榇蠹铱梢园丫ν度氲皆鰪?qiáng)基礎(chǔ)模型的能力,只要基礎(chǔ)模型能力有提升,意味著大多數(shù)應(yīng)用領(lǐng)域的應(yīng)用效果會(huì)直接獲得提升,而不用一個(gè)領(lǐng)域一個(gè)領(lǐng)域個(gè)性化地想方案去啃,那樣效率有點(diǎn)低。

是否真的會(huì)發(fā)生這一幕?NLP覆蓋這么廣泛子方向的科研范圍,它允許這么牛X模型的存在嗎?讓我們拭目以待。

當(dāng)然,對(duì)此我個(gè)人持樂觀態(tài)度。

這次先這樣吧,連我自己都覺得太長(zhǎng)了,看到最后一句的同學(xué),我為你的好學(xué)和耐心點(diǎn)個(gè)贊……。不過(guò)請(qǐng)你換位思考一下,你用看完這篇文章的時(shí)間估算一下,我寫這篇文章要花多少時(shí)間?……另外,其實(shí)最近一陣子我心情并不是太好,不過(guò),還是得想法設(shè)法編些段子來(lái)逗您笑……。寫完這些AI的文章,我技術(shù)水平?jīng)]見提高,不過(guò)轉(zhuǎn)型段子手的可能性確實(shí)大多了 ……。李誕,你給我等著……。

說(shuō)起來(lái)都是淚,其實(shí)也無(wú)所謂。很多事,不過(guò)如此。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    489

    瀏覽量

    22049

原文標(biāo)題:Bert時(shí)代的創(chuàng)新:Bert在NLP各領(lǐng)域的應(yīng)用進(jìn)展 | 技術(shù)頭條

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    無(wú)線壓力傳感器的應(yīng)用領(lǐng)域有哪些?

    無(wú)線壓力傳感器的應(yīng)用領(lǐng)域有哪些?
    的頭像 發(fā)表于 11-28 10:13 ?262次閱讀

    柔性測(cè)試技術(shù)的應(yīng)用領(lǐng)域

    柔性測(cè)試技術(shù)是以多種相關(guān)技術(shù)為基礎(chǔ),可滿足復(fù)雜、多樣化的測(cè)試測(cè)量需求的系統(tǒng)化技術(shù)。它的應(yīng)用領(lǐng)域廣泛,涵蓋了多個(gè)重要行業(yè),以下是關(guān)于柔性測(cè)試技術(shù)應(yīng)用領(lǐng)域的介紹: 一、航空航天領(lǐng)域 在航空航天領(lǐng)域
    的頭像 發(fā)表于 10-08 18:03 ?532次閱讀

    光耦的應(yīng)用領(lǐng)域

    光耦的應(yīng)用領(lǐng)域 光耦是一種特殊的電子組件,具有很多特性。它可以用來(lái)取代傳統(tǒng)的電阻器,如電池、電感器和電容器等。在半導(dǎo)體工業(yè)中,使用光耦能夠減少工藝步驟,提高生產(chǎn)效率。 一.光耦的特性 1.隔離性好
    發(fā)表于 08-26 16:59

    LLM模型的應(yīng)用領(lǐng)域

    在本文中,我們將深入探討LLM(Large Language Model,大型語(yǔ)言模型)的應(yīng)用領(lǐng)域。LLM是一種基于深度學(xué)習(xí)的人工智能技術(shù),它能夠理解和生成自然語(yǔ)言文本。近年來(lái),隨著計(jì)算能力的提高
    的頭像 發(fā)表于 07-09 09:52 ?613次閱讀

    虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用領(lǐng)域有哪些

    已經(jīng)廣泛應(yīng)用于各個(gè)領(lǐng)域。以下是對(duì)虛擬現(xiàn)實(shí)技術(shù)應(yīng)用領(lǐng)域的介紹: 娛樂產(chǎn)業(yè) 虛擬現(xiàn)實(shí)技術(shù)在娛樂產(chǎn)業(yè)中的應(yīng)用最為廣泛,主要包括以下幾個(gè)方面: 1.1 游戲 虛擬現(xiàn)實(shí)游戲是虛擬現(xiàn)實(shí)技術(shù)最早的應(yīng)用領(lǐng)域之一。通過(guò)虛擬現(xiàn)實(shí)頭盔和手柄等設(shè)備,用
    的頭像 發(fā)表于 07-04 14:14 ?2274次閱讀

    超級(jí)電容器應(yīng)用領(lǐng)域有哪些?

    超級(jí)電容器應(yīng)用領(lǐng)域有哪些?超級(jí)電容器作為新型的儲(chǔ)能設(shè)備,具有比傳統(tǒng)電池更加進(jìn)步的優(yōu)點(diǎn),因此也被廣泛應(yīng)用于各個(gè)領(lǐng)域之中。那么大家知道超級(jí)電容器都有哪些應(yīng)用領(lǐng)域嗎?1、汽車領(lǐng)域在汽車
    的頭像 發(fā)表于 06-28 11:29 ?1317次閱讀
    超級(jí)電容器<b class='flag-5'>應(yīng)用領(lǐng)域</b>有哪些?

    變頻電機(jī)的控制原理和應(yīng)用領(lǐng)域

    變頻電機(jī),作為現(xiàn)代工業(yè)自動(dòng)化領(lǐng)域中不可或缺的動(dòng)力設(shè)備,其通過(guò)變頻器改變電源頻率從而控制電機(jī)轉(zhuǎn)速的特點(diǎn),使其在多個(gè)行業(yè)領(lǐng)域中展現(xiàn)出廣泛的應(yīng)用價(jià)值。本文將詳細(xì)闡述變頻電機(jī)的控制原理,并深入探討其主要應(yīng)用領(lǐng)域,以期為讀者提供全面而深入
    的頭像 發(fā)表于 05-31 14:59 ?661次閱讀

    深圳比創(chuàng)達(dá)電子|EMI濾波器的原理、應(yīng)用領(lǐng)域與選型指南.

    深圳比創(chuàng)達(dá)電子|EMI濾波器的原理、應(yīng)用領(lǐng)域與選型指南在現(xiàn)代電子設(shè)備日益普及的今天,電磁干擾(EMI)已成為一個(gè)不容忽視的問(wèn)題。EMI濾波器作為一種有效的電磁干擾抑制手段,在電子設(shè)備的設(shè)計(jì)和制造中發(fā)
    發(fā)表于 04-08 11:07

    EMI濾波器的原理、應(yīng)用領(lǐng)域與選型指南

    深圳比創(chuàng)達(dá)電子|EMI濾波器的原理、應(yīng)用領(lǐng)域與選型指南
    的頭像 發(fā)表于 04-08 11:01 ?1005次閱讀
    EMI濾波器的原理、<b class='flag-5'>應(yīng)用領(lǐng)域</b>與選型指南

    光子集成芯片的應(yīng)用領(lǐng)域

    光子集成芯片的應(yīng)用領(lǐng)域相當(dāng)廣泛,其基于光子學(xué)的特性使得它在多個(gè)領(lǐng)域都能發(fā)揮重要作用。
    的頭像 發(fā)表于 03-20 16:24 ?1223次閱讀

    濾波器:工作原理和分類及應(yīng)用領(lǐng)域?|深圳比創(chuàng)達(dá)電子EMC a

    濾波器:工作原理和分類及應(yīng)用領(lǐng)域?|深圳比創(chuàng)達(dá)電子EMC濾波器在電子領(lǐng)域中扮演著重要的角色,用于處理信號(hào)、抑制噪聲以及濾除干擾。本文將詳細(xì)介紹濾波器的工作原理、分類以及在各個(gè)應(yīng)用領(lǐng)域中的具體
    發(fā)表于 03-08 09:59

    濾波器:工作原理和分類及應(yīng)用領(lǐng)域?

    濾波器:工作原理和分類及應(yīng)用領(lǐng)域?|深圳比創(chuàng)達(dá)電子EMC
    的頭像 發(fā)表于 03-08 09:56 ?1875次閱讀
    濾波器:工作原理和分類及<b class='flag-5'>應(yīng)用領(lǐng)域</b>?

    薄膜開關(guān)有哪些應(yīng)用領(lǐng)域?

    薄膜開關(guān)有哪些應(yīng)用領(lǐng)域
    的頭像 發(fā)表于 03-06 15:01 ?957次閱讀

    不同級(jí)別晶振的特點(diǎn)和應(yīng)用領(lǐng)域

    不同級(jí)別晶振的特點(diǎn)和應(yīng)用領(lǐng)域? 晶振是一種常見的電子元器件,廣泛應(yīng)用于電子領(lǐng)域。不同級(jí)別的晶振有不同的特點(diǎn)和應(yīng)用領(lǐng)域。本文將詳細(xì)介紹幾種常見的晶振級(jí)別及其特點(diǎn)與應(yīng)用領(lǐng)域。 1. 32.
    的頭像 發(fā)表于 01-26 17:14 ?2171次閱讀

    詳解FPGA六大應(yīng)用領(lǐng)域

    芯片。 這樣極大的方便我們 IC 設(shè)計(jì)人員去驗(yàn)證自己的 IC 設(shè)計(jì)。 其他,比如電力行業(yè)的高速數(shù)據(jù)采集,醫(yī)療行業(yè)的高速、大數(shù)據(jù)量的模擬量采集傳輸,軍工行業(yè)的雷達(dá)、衛(wèi)星、制導(dǎo)系統(tǒng)等等都是FPGA的應(yīng)用領(lǐng)域。
    發(fā)表于 01-17 17:03