您的位置 首页 kreess

百度黃正傑:知識增強圖語義理解技術

導讀:本文的題目為知識增強圖語義理解技術,主要介紹:語義理解與圖:預訓練模型與外部知識ERNIESage:百度語義圖理解技術知識增強預訓練:隱式與顯式知識表示工業落地應用:

導讀:本文的題目為知識增強圖語義理解技術,主要介紹:

  • 語義理解與圖:預訓練模型與外部知識
  • ERNIESage:百度語義圖理解技術
  • 知識增強預訓練:隱式與顯式知識表示
  • 工業落地應用:案例介紹

01語義理解與圖

第1節主要介紹:文本匹配的兩種視角、ERNIE預訓練模型、GraphSAGE模型。

1. 文本匹配的兩種視角

顧名思義,圖語義理解=圖+語義理解。圖神經網絡是近年來火熱的新興技術,主要作用是建模一些不規則的非結構化數據。語義理解+圖網絡是希望用圖的方法引入外部非結構化的知識數據來提升語義理解的能力,產生語義理解的新技術。

文本語義匹配問題是較常見的語義理解任務,也是在工業界比較常見的一個場景,如搜索,推薦,排序任務上都會涉及相關的技術。文本匹配有多種視角。第一種視角是語義理解視角,從純文本的角度去理解。常用的方法如用語義匹配的雙塔模型直接對一個文本進行建模,然後去評估兩個文本的相似度;第二種視角是圖學習視角。與學術場景不同的是,工業界搜索引擎和推薦系統具有豐富的知識,如在推薦系統中的點擊序列,搜索的點擊與文章標題的關系,文章百科類知識等都有豐富的非結構化信息。常見的文本可以通過圖的方式來連接起來。如果所有的文本都可以通過某種方式來組織成一張文本圖網絡的話,文本匹配在圖視角來看就變成鏈接的預測問題。

百度在語義理解視角方面做瞭很多嘗試,如在BERT基礎上進行瞭拓展和升級,研發出瞭預訓練模型ERNIE,通常ERNIE模型建模時隻會關心文本的單一序列。以圖的視角進行圖上的節點建模以GrahSage舉例,隻會關註圖結構上的一些信息。

2. ERNIE預訓練模型

簡單介紹一下ERNIE預訓練模型。ERNIE1.0的核心思想是改進BERT的masklanguage model模塊,用實體mask方法去取代隨機mask token,讓預訓練模型一定強度的捕捉一些額外知識。

ERNIE2.0的升級主要是通過構建多個自監督學習任務,在多個數據上進行持續學習,進一步提升預訓練模型的效果。

因為在預訓練模型上的突破使得ERNIE模型在多個語義理解任務上取得較大受益,ERNIE模型為GLUE榜單上的第一名,斬獲SemEval2020五項世界冠軍。

更多模型可訪問百度文心平臺:

https://ai.baidu.com/easydl/nlp

3. GraphSAGE模型

簡單介紹下圖結構方面的建模, GraphSAGE是比較常見的圖神經網絡。簡單闡述下圖網絡思想,圖神經網絡可以簡單類比在圖象上的卷積操作。例如在圖像上做3*3的卷積,相當於對一個像素周圍的像素點,通過不同的權重疊加,然後以聚合後的小圖片代表小范圍的圖片表示。圖的卷積上,數據沒那麼規整,因為每個節點的鄰居數量是不同的。我們可以用類似的概念,隻是不像圖像每個方向的權重是不同的,而是對所有的鄰居一視同仁。對鄰居通過加權的方法疊加,用周圍的鄰居代表自身。

GraphSAGE全稱Graph SAmple and aggreGatE(圖采樣與聚合),在圖網絡上特別是工業界的場景,當節點很多時去建模一個單一節點會涉及多階段鄰居,鄰居的數量也會隨著階數指數暴漲。一般會通過采樣的方式選取不同的鄰居來聚合作為中間節點的特征。

已有的辦法無法同時滿足結構建模和語義理解,如GraphSAGE模型對於鏈接關系和文本的建模會過於簡單;像ERNIE這種純語義模型,缺乏對外部知識的建模。

ERNIESage技術結合瞭結構建模和語義理解技術,技術開源地址:

https://github.com/PaddlePaddle/PGL/tree/main/legacy/examples/erniesage

02ERNIESage詳細介紹

ERNIESage主要通過PGL圖神經網絡框架和語義表示兩個模塊組成。圖結構的建模會按照ERNIE模型作用在文本圖上不同位置來命名。模型有很多的組件包括定制化訓練池,因為要大規模的預測所以有大規模的推理引擎來整體支持一些應用的落地。

想在文本上使用一些外部的知識以及圖信息,首先需要解決來源問題。

① 如果有大量的業務數據時,可以通過業務邏輯來抽取相關的領域知識。例如,在推薦系統上,可以根據文本的點擊序列構造文本之間的關系。

② 在業務數據較少時,利用一些領域相關的知識,在做搜索問題相關的任務上可以使用query title之間的關系作為補充。

③ 無法獲取領域相關的知識時,可以通過像百科類的通用知識進行知識的補充。所有的業務知識,領域知識,通用知識會以圖的方式綁定要想要表示的文本上。

例如在業務上有title之間的關系,在領域知識上有title-query之間的關系,在通用知識上通過召回的辦法獲得一些spo三元組的關系。這些知識都通過圖的方式綁定title 上。知識越貼近業務效果會越好。有圖後需要對圖進行建模。

ERNIESage-Node是一種最簡單直接瞭當的方法。在GraphSAGE的最底層接入ERNIE模型,通過圖聚合的方法獲取節點表示。ERNIE模型會跟隨著下遊任務進行finetune。

ERNIESage-Edge模型與ERNIRSage-Node模型不同,因為單純的節點模型建模缺乏瞭節點與外部知識之間token級別的交互。因此在Edge模型上,把ERNIE模型挪到圖的邊上去,做token級別的交互獲取節點的表示。

主要思想是借鑒語義任務上的雙塔模型與單塔模型。在學術上,雙塔模型叫Bi-Encoder,單塔模型叫Cross-Encoder。大多數場景下,基本會有一個共同的結論:單塔模型由於有更細粒度的token間的交互會優於雙塔模型。因此在Edge模型上引入單塔模型來增強模型的建模能力。

ERNIESage-1 Neighbor進一步擴大單塔的覆蓋范圍,把一些鄰居通過采樣的方式拉回來一部分,利用互不相接的Attention Mask以及獨立的Position Embedding來保持神經網絡聚合函數不變性的要求,將單塔ERNIE模型用在圖神經網絡的聚合函數上。

前面三種策略都是作用於一階鄰居。結合node和edge的方案,將token-level的交互擴展到通用多層聚合。首先用ERNIE模型獲得context表示,在每一層鄰居聚合時,將中心節點的context和鄰居進行拼接,通過多頭transformer進行中心表示抽取,最終通過聚合的方式,獲得中心表示的匯總。每一層重復這樣的步驟,就可以做到每一層都有token級別的特征交互。

以上4種模型是按照ERNIR在整個圖上的作用區域進行劃分的。Node作用於初始節點上,Edge作用於初始邊上,1 Neighbor是作用在局部的鄰居上,N Neighbor是作用在整個文本圖的每一個環節,計算復雜度遞增。

已經在多個場景下驗證瞭ERNIESagede效果,例如在搜索場景上,ERNIESage本身更註重語義,ERNIE模型會優於GraphSage模型。在推薦場景下會更註重結構的信息,所以ERNIE模型效果會略差於GraphSage模型。因此可以通過ERNIESage的方法同時建模結構信息和文本信息,充分保持兩種建模的特性,在多個場景上效果挺好。

舉一個極端的語義理解失敗的Case,如碰到一串神秘的數字,在沒有額外知識的輔助下,通過ERNIE在下遊任務上finetune,做一個語義召回,得到的也是一些神秘序列。當引入額外知識如搜索的點擊關系,或者推薦系統的推薦關系。再用ERNIESage在文本圖上建模,就會獲得額外的知識。純語義理解的ERNIE在通用場景下更像學習模型的先驗知識。當有後驗知識後,在做模型的匹配上會更加精確。

在處理文本圖方面,把ERNIESage應用到瞭TextGraph的多步推理的比賽中。2020年比賽舉辦到第14屆,TextGraph的任務是給出一個問題和答案,需要找出和答案相關的解釋,解釋是固定的一個庫。

舉辦方會給出問題,答案,解釋的少量標註數據。百度對給出的問題、答案、解釋,通過關鍵詞、實體詞建瞭一張龐大的圖。任務涉及的提問,回答覆蓋的范圍很廣,如包括化學變化,日照/季節變化等科學常識。

百度將ERNIESage應用到TextGraph比賽中,做問題答案解釋的打分,最終取得第一名,領先第二名2%。

03知識增強預訓練

ERNIESage模型將知識作為文本外掛的鄰居關系,通過顯式的方法作用到節點表示上。顯式引入知識就是在文本理解上通過外部知識庫做知識召回,再通過更復雜的語義模型對文本進行建模獲得文本表示。所以上線時,首先涉及額外知識庫的引入,上線邏輯更復雜;其次知識建模模塊更復雜,計算效率變慢。

業務方提出希望能擴增知識收益同時又不想有線上資源的額外消耗,折中辦法就是隱式引入知識。首先通過預訓練的方式“盡量”捕捉額外知識,將知識設計成任務灌輸到模型的參數中,同樣對文本做詞庫的召回。相比於顯示引入知識,隱式引入知識會用預訓練的任務即通過參數學習的方法把知識隱式加入模型中。下遊應用時就可以單獨把知識召回模塊剝離開來,隻使用文本模型。

介紹一下隱式知識引入預訓練辦法。首先會在文本知識庫中拉回對應的知識,使用Mask策略Mask掉文本一些Token詞 。

文本照常過預訓練模型,獲得一個CLS和Context的表示,再拿出CLS通過Transformer模塊建模文本和知識之間的交互,參考瞭Transformer-xh的結構。通過Transformer交互過的CLS又會篩回到文本表示本身去。再通過Transformer根據聚合過的CLS去補充缺失的Context的信息,做語言模型的還原。

中間像八爪魚的模塊主要負責知識的聚合,主要任務是捕捉知識之間的關系,幫助在缺失的Context上從別的信息源尋找額外的信息。

通過知識交互後的CLS會更好的輔助Context信息,因為Context在低層被Mask過有信息的缺乏。通過知識增強過的CLS還原被Mask的Tokens。

在下遊任務的應用中,有很多應用的方式。當保留頂層Transformer的知識聚合模塊, 相當於得到瞭經受過Pretrained的ERNIESage模型。當把聚合模塊去除,隻選取低層ERNIE來做CLS和文本的表示時會得到一個隱式模型。在計算速度和模型大小上不會有太大變化。

通過知識增強Post-Pretrained的ERNIE模型,經測試盡管拆除一個聚合模塊,相較於用ERNIE模型直接finetune效果有較大提升。同時相較於直接使用顯示的知識,效果略差。通過post-Pretrained的ERNIESage模型,由於聚合模塊本身經過Pretrained,效果會比單純用ERNIESage略好。

04工業應用落地

本節介紹一下工業落地的兩個具體案例。

① 首先來介紹關鍵詞觸發,它是根據query的搜索序列,來構造query之間的關系;也會通過query買詞構造query買詞二步圖。在這樣的異構關系上進行ERNIESage的訓練建模,最終得到query買詞的表示。再通過ANN的召回來做query的觸發。

相對於GraphSage基線,ERNIESage引入瞭一些語義模型,會帶來更強的語義相關性。

② 第二個案例是地圖興趣點檢索,主要場景是搜索地圖時對搜索到的地理位置做相關性排序。由於query側在線預測時間較高,會使用淺層的ERNIE-Tiny模型進行建模。對於POI來說由於地理位置信息相對穩定,會使用較復雜的模型進行建模,以及離線灌庫。對於POI的表示就是通過構造POI的關系,使用ERNIESage來建模POI之間的表示。在線時通過查表的形式,拿到embedding和query進行在線匹配打分。

總結:首先將知識以圖的形式加到語義理解模塊中,利用ERNIESage進行語義圖的建模,最後是設計瞭一些預訓練技術,例如在顯示的掛載知識時,上線會碰到的一些困難,可以通過預訓練的方法解決。有兩個產物,第一個產物是顯示訓練模型效果的提升,第二個產物是隱式模型通過預訓練獲得知識,在線應用時落地效果好。

05精彩問答

Q:ERNIE大多處理的是文本性內容,如果想加入些視頻,圖片類的數據源。怎麼設計embedding環節?

A:一般用多模處理,像圖像的visual-transformer,先用resnet把一個圖片抽取成很多小patch,再塞到ERNIE模型中。多模數據可以考慮ERNIE-Vil模型,ERNIE-Vil是文本+視覺的模型。

Q:task的token為什麼要先用mask再用tranfomer進行學習?

A:如果token不mask直接通過transfomer上去,context信息本身沒有缺失。做預測時最上面的language model 會集中用自己本身的信息decode回自己的token。如果在底層上對文本進行mask的話,信息會缺失,會通過CLS和transfomer以及其他外部知識獲得知識的補充。上層的CLS和context(局部知識)做信息的還原。因此能夠在一定程度上,讓transformer做到知識的交互。(詳情見“知識增強預訓練”頁PPT)

Q:圖譜的節點多在建模相鄰節點時,主要的節點都會encoding。有沒有其他的篩選方式?召回過程中有無自回歸的情況?

A:多個模塊組合,遵從召回排序的方法。即來瞭一個節點會卡一個閾值,把相關性高的留下來。拿瞭知識後進行預訓練,預訓練完成後在下遊任務上會有一個finetune。最終的任務不是預訓練任務,而是會拿CLS做下遊任務,自回歸隻是前面預訓練階段。

Q:ERNIESage相關的開源論文或其他資源可用嗎?

A:Github上有具體技術的介紹,相關的論文可以搜textgraph比賽,ERNIESage在文本圖推理TextGraph-14 Coling協辦比賽中有小的論文介紹。(可參考“ERNIESage在文本圖推理TextGraph-14 Coling協辦比賽中的應用”頁PPT)

Q:如何獲得與text強相關的知識,如何保證這些知識一定能夠還原成為mask token?

A:盡量做這樣的事情。知識從重要性排序上來講,業務知識會更貼近。當沒有業務知識時用通用知識也會相應提升,越往通用上去,提升會越少。領域知識和業務知識對模型的效果提升會很大。盡量去做,越貼近下遊任務本身,效果會越好。(詳情見“文本圖的來源:知識引入”,“顯式Explicit/隱式Implicit引入知識”頁PPT)

Q:對Query的長度有限制嗎,對長度有什麼處理方式嗎?

答:不會用太長的長文,Query太長效率會低,這是長文建設方面的問題。

Q:目前ERNIE和ERNIESage在百度有什麼應用的領域或者已經應用的場景和產品嗎?

A:在百度的搜索推薦,商業廣告,地圖排序這種有較多文本圖關系的場景都會用到這個模型的。

今天的分享就到這裡,謝謝大傢。


在文末分享、點贊、在看,給個3連擊唄~


分享嘉賓:

分享嘉賓:黃正傑 百度 資深研發工程師

編輯整理:楊洪珍 華東政法大學

出品平臺:DataFunTalk

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部