领域应用 | 小米在知识表示学习的探索与实践
轉(zhuǎn)載公眾號 | DataFunTalk
導(dǎo)讀:知識表示是知識獲取與應(yīng)用的基礎(chǔ),貫穿了小米知識圖譜的構(gòu)建與應(yīng)用。本文將結(jié)合小米知識圖譜的構(gòu)建及小愛問答場景,介紹融合文本和知識圖譜的知識表示學(xué)習(xí)方法,以及知識表示在知識圖譜補(bǔ)全、實(shí)體鏈接、實(shí)體推薦等任務(wù)的落地。主要圍繞以下3點(diǎn)展開:
業(yè)務(wù)介紹,小米知識圖譜的架構(gòu)和業(yè)務(wù);
算法介紹,融合文本和知識圖譜的表示學(xué)習(xí)方法;
算法應(yīng)用,知識表示學(xué)習(xí)在實(shí)體鏈接、實(shí)體推薦、知識補(bǔ)全的應(yīng)用;
01
業(yè)務(wù)介紹
1. 小米知識圖譜團(tuán)隊(duì)
小米知識圖譜團(tuán)隊(duì),旨在硏究知識圖譜在開放領(lǐng)域和行業(yè)領(lǐng)域的構(gòu)建和應(yīng)用技術(shù),把知識圖譜推廣到相關(guān)的業(yè)務(wù)場景上。目前團(tuán)隊(duì)已經(jīng)構(gòu)建了大規(guī)模、高質(zhì)量的知識圖譜,提供了實(shí)體檢索、實(shí)體鏈接、概念圖譜等服務(wù),并且服務(wù)于小愛同學(xué)、小米網(wǎng)、小米信息流等業(yè)務(wù)方。
2. 知識圖譜為小愛賦能
這是一個(gè)知識圖譜為小愛賦能的例子。當(dāng)用戶詢問鞏俐籍貫的時(shí)候,我們從庫中給出相應(yīng)的答案,與鞏俐相關(guān)的實(shí)體信息。下面簡單介紹一下處理流程。
當(dāng)用戶詢問一個(gè)問題(query)時(shí),比如說問題是“武漢大學(xué)周邊有什么好吃的?”,它的解答流程就是:
① 首先語言識別出這句話的文本內(nèi)容;
② 然后通過分析發(fā)現(xiàn)用戶的意圖是想詢問“美食”相關(guān)的事物;
③ 接著通過實(shí)體匹配去進(jìn)行核心實(shí)體的識別,實(shí)體的歧義性消除以及屬性的歸一等處理,確定用戶詢問的是全國重點(diǎn)大學(xué)“武漢大學(xué)”這個(gè)實(shí)體的“周邊美食”這個(gè)屬性;
④ 據(jù)此從庫中查詢相應(yīng)的結(jié)果,并且作為輸出;
⑤ 另外我們還會針對該實(shí)體做實(shí)體的推薦,以此實(shí)現(xiàn)相似問題的推薦;
02
算法介紹
知識表示學(xué)習(xí)是指基于分布式的表示思想,將實(shí)體或者是關(guān)系的語義信息映射到低維、稠密、實(shí)值的向量空間中,使得語義相似的兩個(gè)對象之間的距離也很相近。
最常見的表示學(xué)習(xí)方法是融合事實(shí)信息的方法,比如基于翻譯、張量分解、神經(jīng)網(wǎng)絡(luò)和圖神經(jīng)網(wǎng)絡(luò)的各種模型。但是這些模型并不善于處理大規(guī)模知識圖譜中存在實(shí)體與關(guān)系長尾分布的問題。在圖譜中,長尾分布體現(xiàn)為很多實(shí)體數(shù)量極少甚至沒有關(guān)系事實(shí),這就導(dǎo)致數(shù)據(jù)存在很嚴(yán)重的稀疏性。
對于這些長尾的實(shí)體和關(guān)系,在沒有或者很少關(guān)系的情況下,僅基于傳統(tǒng)的事實(shí)三元組(頭部,關(guān)系,尾部)進(jìn)行學(xué)習(xí),是沒有辦法得到的。對此大佬們嘗試了各種五花八門的解決辦法,最簡單直接的就是:
① 利用知識庫中其他的信息,比如說文本描述信息、信息實(shí)體類型、關(guān)鍵路徑、邏輯規(guī)則等,還包括實(shí)體的屬性、時(shí)序信息、圖結(jié)構(gòu)等;
② 利用知識庫外的海量信息,比如說互聯(lián)網(wǎng)等,包含大量知識庫實(shí)體和關(guān)系的有關(guān)的信息。
1. 融合文本描述的優(yōu)勢
融合文本描述的優(yōu)勢有哪些?
發(fā)掘?qū)嶓w之間的語義相關(guān)性,精確的語義表述能夠提升三元組的可區(qū)分性。在上面的例子中我們可以看到{撒貝寧,配偶,李白},而李白的描述文本中就存在“撒貝寧妻子”這樣的關(guān)鍵信息。該情境下,融合文本描述的語義信息能夠幫助發(fā)掘更多的語義之間的相關(guān)性;
當(dāng)一些實(shí)體對于現(xiàn)有的知識圖譜來說是新的,并且僅僅帶有描述性信息的時(shí)候,傳統(tǒng)的知識圖譜表示學(xué)習(xí)方法不能夠表示這些新的實(shí)體,但是融入了文本描述的模型,就能夠通過描述信息建立這些實(shí)體的表達(dá)。
文本描述如何構(gòu)成呢?我們的處理方式是將實(shí)體的類型、文本描述和重要的三元組按照一定的規(guī)則進(jìn)行拼接,構(gòu)成一段文本,作為實(shí)體的描述文本,這段文本比簡單的文本描述包含更多的信息。
2. 文本與知識圖譜對齊
下面將會介紹兩種經(jīng)典的融合文本和知識圖譜的知識表示學(xué)習(xí)方法,這兩種方法都可以將實(shí)體向量、關(guān)系向量和詞向量放到同一個(gè)語義空間下。為什么要把文本以及詞向量放到一個(gè)空間中?因?yàn)槿绻覀冇龅搅诵枰瑫r(shí)處理文本和實(shí)體的任務(wù),實(shí)體和文本中的詞做內(nèi)積等向量運(yùn)算才會有意義,依靠這些運(yùn)算方法我們就能比較實(shí)體和文本之間的詞的關(guān)系。
這一篇文章描述了比較經(jīng)典的文本與知識圖譜對齊的模型Jointly(聯(lián)合模型),作者先后發(fā)表了兩篇論文來優(yōu)化該方法。文章研究的內(nèi)容是融合文本信息到知識圖譜中,實(shí)現(xiàn)知識圖譜中的實(shí)體和實(shí)體描述文本聯(lián)合嵌入表示。對齊模型的關(guān)鍵在于將實(shí)體向量、關(guān)系向量和詞向量表示在同一個(gè)語義空間下。要求實(shí)體的表示向量不僅滿足知識圖譜的結(jié)構(gòu)化約束,同時(shí)也要被文本描述中的詞向量進(jìn)行約束。模型一共分為三個(gè)部分:
文本嵌入:采用skip-gram模型,利用歐式距離衡量兩個(gè)單詞之間的相似性,訓(xùn)練詞與詞之間的約束;
知識嵌入:采用Trans-E模型,訓(xùn)練實(shí)體與實(shí)體之間的約束;
對齊模型:利用文本描述對齊,訓(xùn)練實(shí)體和文本之間的約束,確保關(guān)系能夠和文本的單詞在同一個(gè)語義空間中。
第二篇論文也根據(jù)類似的原理,將基于平移的嵌入方法從特定的三元組嵌入擴(kuò)展到了文本感知模型,提出了名為DKRL的模型。該模型的特點(diǎn)是:
對于事實(shí)元組論文采用了典型的Trans-E模型,通過最大似然值獲得實(shí)體和關(guān)系的嵌入;
對于描述文本,論文使用了連續(xù)詞袋模型和深度卷積模型對文本進(jìn)行嵌入。連續(xù)詞袋模型忽略了文本的詞序,而卷積模型會考慮詞序;
對每一個(gè)實(shí)體,DKRL都會學(xué)習(xí)語義的嵌入和結(jié)構(gòu)的嵌入,再通過右側(cè)的一系列公式進(jìn)行擬合。
3. 需求和實(shí)現(xiàn)
后續(xù)任務(wù)需要通過預(yù)訓(xùn)練得到詞向量,實(shí)體向量,并且保證兩者之間需要能夠計(jì)算相似度,同時(shí)也要保證實(shí)體向量和實(shí)體向量之間可以計(jì)算相似度。上文介紹的兩個(gè)模型均可以滿足該需求。右上的表格展示了幾個(gè)不同的模型在鏈接預(yù)測任務(wù)上的效果,聯(lián)合模型,即第一篇論文中的模型展現(xiàn)了較好的效果,于是我們基于該模型對實(shí)體和詞進(jìn)行了訓(xùn)練,得到了詞向量、關(guān)系向量以及實(shí)體向量。該模型的效果具體體現(xiàn)在:
由圖一(左上)可以看到“王者榮耀”這個(gè)詞和“李白”的候選實(shí)體之間的相似度評分,該分?jǐn)?shù)表明模型學(xué)習(xí)到了詞和實(shí)體之間的關(guān)聯(lián);
由圖二(右上)可以看到雖然“唐代詩人李白”的文本描述中不存在“將進(jìn)酒”一詞,但是模型也學(xué)到了其關(guān)聯(lián);
圖三圖四(左下和右下)顯示,模型也學(xué)習(xí)到了實(shí)體向量與實(shí)體向量之間的關(guān)系,比如植物“小米”實(shí)體向量和水果“蘋果”實(shí)體向量比較靠近,而“小米公司”的實(shí)體向量和“蘋果公司”的實(shí)體向量比較靠近。
這些特性對完成后續(xù)的任務(wù)有很大的幫助。
03
算法應(yīng)用
1. 實(shí)體鏈接
實(shí)體鏈接任務(wù)目標(biāo)是把文本中的實(shí)體指稱項(xiàng),即實(shí)體名稱,鏈接到知識庫中對應(yīng)的實(shí)體上。
舉一個(gè)例子來幫助大家理解實(shí)體鏈接,比如問題“王者榮耀中的李白有哪些臺詞?”,為了解答這個(gè)問題我們需要:
① 識別句子中的核心實(shí)體“李白”;
② 從庫中檢索“李白”所有的候選實(shí)體;
③ 實(shí)體鏈接,從眾多的候選實(shí)體中找到正確的實(shí)體,與句子中的“李白”進(jìn)行關(guān)聯(lián);
實(shí)體鏈接的難點(diǎn)主要有兩個(gè)方面:
實(shí)體會有不同的表達(dá)方式(mention),比如“青蓮居士、李太白”,也對應(yīng)了李白這個(gè)實(shí)體;
同一個(gè)表達(dá)方式也會對應(yīng)不同的實(shí)體,比如說“王者榮耀中李白的技能是什么?”,“李白和杜甫并稱為什么?”,這兩句中實(shí)體的表達(dá)方式都是“李白”,但是對應(yīng)了不同的實(shí)體。
左側(cè)圖中展示了實(shí)體鏈接的處理流程,這里詳細(xì)介紹一下實(shí)體消歧部分。
實(shí)體消歧包括兩個(gè)模塊,第一個(gè)部分是粗排,第二個(gè)部分是精排。
關(guān)于粗排
為什么要做粗排處理?
在做候選實(shí)體生成時(shí),我們希望從庫中獲取盡可能多的相關(guān)實(shí)體,確保沒有遺漏正確實(shí)體。但這樣做會導(dǎo)致消歧這一步驟被引入了太多的噪聲,造成消歧效率的下降。所以需要粗排模型來降低候選實(shí)體的個(gè)數(shù)。經(jīng)過實(shí)驗(yàn),粗排后,消歧準(zhǔn)確率提升了3%,預(yù)測的速度提升了50%,而召回率僅僅下降了0.4%。
舉個(gè)例子,比如“王者榮耀中的李白有哪些臺詞?”這個(gè)問題,在我們的庫中“王者榮耀”的候選實(shí)體有71個(gè),“李白”的候選實(shí)體有59個(gè)。在粗排時(shí),我們會為每一個(gè)候選實(shí)體進(jìn)行打分,按照相關(guān)度從大到小進(jìn)行排列,選擇每一個(gè)mention所對應(yīng)的最相似的n個(gè)實(shí)體(Top n),作為精排的輸入。
如何實(shí)現(xiàn)粗排?
粗排模型,要求高召回、高性能。我們采用了上一節(jié)中融合多元信息知識表示學(xué)習(xí)方法所訓(xùn)練得到的實(shí)體向量和詞向量,因?yàn)樗麄兲幵谕粋€(gè)向量空間中,我們可以對其進(jìn)行向量計(jì)算。定義了三個(gè)特征,分別是Context和Coherence以及LinkCount:
Context 表示mention的上下文特征,它通過候選實(shí)體向量和問題中的每一個(gè)詞向量進(jìn)行乘積運(yùn)算得到,用于發(fā)現(xiàn)問題中哪些詞和候選實(shí)體相關(guān);
Coherence 表示實(shí)體的一致性,通過計(jì)算候選實(shí)體和問題中其他mention的候選實(shí)體相關(guān)性來實(shí)現(xiàn);
LinkCount 表示實(shí)體的先驗(yàn)知識,通過標(biāo)注數(shù)據(jù)而來。
利用一個(gè)多層感知機(jī)對這三個(gè)特征進(jìn)行融合,最終得到每一個(gè)候選實(shí)體的粗排分?jǐn)?shù)。排列并選擇每一個(gè)mention所對應(yīng)的最相似的Top n個(gè)實(shí)體,作為精排的輸入。
關(guān)于精排
在粗排之后,每一個(gè)mention的候選實(shí)體個(gè)數(shù)被大大降低,此時(shí)我們會對這些實(shí)體進(jìn)行精排處理。精排模型中,我們利用Bert構(gòu)建一個(gè)句子對二分類模型,用來判斷候選實(shí)體和問題中的mention相關(guān)度。具體流程如下:
① 該模型的輸入是一個(gè)句子對,text_a是標(biāo)記了mention位置的文本,text_b是候選實(shí)體的描述文本。句子對經(jīng)過Bert編碼之后取[CLS]向量,再經(jīng)過全連接層,得到上下文特征;
② 合并粗排的三個(gè)特征進(jìn)行全連接的融合訓(xùn)練;
③ 對候選實(shí)體進(jìn)行二次排序;
④ 判斷是否為未知實(shí)體;
⑤ 選擇Top 1的實(shí)體作為mention鏈接的實(shí)體;
在模型訓(xùn)練時(shí),我們對訓(xùn)練方法進(jìn)行了一些優(yōu)化。利用知識圖譜中的關(guān)系三元組構(gòu)建消歧的樣本,關(guān)系三元組包括頭實(shí)體、關(guān)系和尾實(shí)體,頭實(shí)體和尾實(shí)體有多種表達(dá)方式(mention),利用這些不同的表達(dá)方式,我們可以去構(gòu)建大量的正負(fù)樣本,來幫助我們?nèi)W(xué)習(xí)mention和實(shí)體之間的語義特征關(guān)系。經(jīng)過第一次的預(yù)訓(xùn)練,只需要再訓(xùn)練少量經(jīng)過標(biāo)注的線上數(shù)據(jù),模型就可以達(dá)到較好的消歧效果。
2. 實(shí)體推薦
實(shí)體推薦任務(wù)的目標(biāo)是根據(jù)給定的實(shí)體推薦一系列相關(guān)的實(shí)體,這兩張圖展示了我們的實(shí)體推薦的應(yīng)用場景。我們對實(shí)體推薦的工作暫時(shí)還處于起步的階段,并沒有考慮復(fù)雜的個(gè)性化推薦,目前只關(guān)注實(shí)體之間的相似度。
左圖展示了實(shí)體鏈接如何應(yīng)用于智能問答問題推薦,問題通過SLU處理之后會得到其意圖和主實(shí)體,然后借助實(shí)體推薦得到相關(guān)的實(shí)體,相關(guān)實(shí)體被用來構(gòu)建相關(guān)的問題,比如說”武漢大學(xué)周邊好吃的?“,識別到其主實(shí)體為”武漢大學(xué)“、核心意圖為”美食“,以此推薦實(shí)體相關(guān)的問題,比如說”華中科技大學(xué)周邊有什么好吃的?“,”清華大學(xué)周邊有什么好吃的?“,”武漢科技大學(xué)周邊有什么好吃的?“。同時(shí)實(shí)現(xiàn)了推薦意圖相關(guān)的問題,比如說”武漢大學(xué)周邊有什么好玩的?“,”武漢大學(xué)周邊有什么景點(diǎn)?“,”武漢大學(xué)周邊有什么酒店?“等等。
右圖展示了實(shí)體推薦在圖譜自動化構(gòu)建平臺上的應(yīng)用,當(dāng)用戶搜索一個(gè)實(shí)體的時(shí)候,平臺會為其推薦相關(guān)的實(shí)體。
實(shí)體推薦的難點(diǎn)在于“冷啟動問題”,即如何去尋找實(shí)體的相關(guān)實(shí)體。
我們發(fā)現(xiàn)百科頁面關(guān)系三元組以及新聞中的共現(xiàn)實(shí)體,都可以作為相關(guān)實(shí)體進(jìn)行推薦。于是我們對百科頁面知識圖譜中的關(guān)系三元組和經(jīng)過實(shí)體鏈接處理的新聞中的實(shí)體進(jìn)行抽取,以類別為標(biāo)準(zhǔn)進(jìn)行篩分,作為實(shí)體推薦模型的正樣本。而負(fù)樣本可以從庫中的其他實(shí)體中抽取。
實(shí)體推薦模型分為兩個(gè)部分,表示模型和匹配模型:
表示模型利用第二節(jié)中的DKRL模型進(jìn)行知識表示學(xué)習(xí)。學(xué)習(xí)關(guān)系三元組中的結(jié)構(gòu)化信息,編碼部分使用Bert進(jìn)行替換;
匹配模型利用DSSM模型,復(fù)用了表示模型中學(xué)習(xí)到的參數(shù),將兩個(gè)實(shí)體編碼成向量,通過計(jì)算余弦相似度來去衡量兩個(gè)實(shí)體之間的相關(guān)度。
3. 知識補(bǔ)全
在構(gòu)建知識圖譜時(shí),需要從半結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù)中抽取三元組,但這些三元組難免會存在信息缺失情況,比如左圖中,小米代表人物中林斌、王翔等人,都缺失了超鏈接,撒貝寧配偶、父母、妹妹也都缺失了超鏈接,這就導(dǎo)致在構(gòu)建知識圖譜時(shí),不能獲取完整的關(guān)系三元組。
實(shí)體補(bǔ)全任務(wù)可以概括為:針對已知的頭實(shí)體、關(guān)系和尾實(shí)體mention的情況下,關(guān)聯(lián)庫中的實(shí)體以補(bǔ)全三元組。我們的設(shè)計(jì)方案如下:
① 利用Schema去確定尾實(shí)體的類別;
② 通過尾實(shí)體的mention篩選得到尾實(shí)體的候選實(shí)體,構(gòu)造三元組;
③ 通過三元組分類模型判斷構(gòu)造的三元組是否正確;
④ 經(jīng)過對這些三元組的分?jǐn)?shù)進(jìn)行排序之后,選擇Top 1且預(yù)測正確的三元組。
三元組的構(gòu)建也考慮了描述實(shí)體的文本,我們再次利用了神通廣大的BERT完成模型的構(gòu)建,參考了KG-BERT這篇論文。
將已知的關(guān)系三元組如上圖所示進(jìn)行構(gòu)造,text_a是頭實(shí)體的描述文本,text_b是關(guān)系的文本名稱,text_c是尾實(shí)體的描述文本,這些輸入經(jīng)過BERT的編碼之后,再經(jīng)過一個(gè)全連接層,計(jì)算得到語義特征,并和另外一個(gè)結(jié)構(gòu)化的特征進(jìn)行融合,最終得到一個(gè)分?jǐn)?shù)。這里的“結(jié)構(gòu)化特征”由藍(lán)色框中的方程進(jìn)行表示,整個(gè)模型的loss,可以用紅色框中的方程表示。
舉個(gè)例子,比如判斷三元組{撒貝寧,配偶,李白}是否正確,“李白”的第一個(gè)候選實(shí)體是正確的,可以作為正樣本,其他實(shí)體都是負(fù)樣本,然后對模型進(jìn)行訓(xùn)練,預(yù)測每一對自動構(gòu)建的三元組的分?jǐn)?shù),按照從大到小的順序進(jìn)行排序,選擇分?jǐn)?shù)大于0.5且Top 1的三元組作為正確的三元組,補(bǔ)充到知識圖譜當(dāng)中。
04
總結(jié)與展望
本文簡單介紹了知識表示學(xué)習(xí)在實(shí)體鏈接、實(shí)體推薦和知識補(bǔ)全中的應(yīng)用;和word2vec一樣,通過知識表示學(xué)習(xí)得到的實(shí)體向量可以應(yīng)用到很多場景中;工業(yè)界實(shí)用最重要,很多場景下,對模型的復(fù)雜性很敏感,選擇模型需要綜合考量。知識表示學(xué)習(xí)的探索之路還有很長,同志們加油!!!
參考文獻(xiàn)
1. Wang Z, Zhang J, Feng J, et al. Knowledge graph and text jointly embedding[C] //Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014: 1591-1601.
2. Zhong H, Zhang J, Wang Z, et al. Aligning knowledge and text embeddings by entity descriptions[C]//Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing. 2015: 267-272.
3. Xie R, Liu Z, Jia J, et al. Representation learning of knowledge graphs with entity descriptions[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2016, 30(1).
4. Xiao H, Huang M, Meng L, et al. SSP: semantic space projection for knowledge graph embedding with text descriptions[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2017, 31(1).
5. Reimers N, Gurevych I. Sentence-bert: Sentence embeddings using siamese bert-networks[J]. arXiv preprint arXiv:1908.10084, 2019.
6. Yao L, Mao C, Luo Y. KG-BERT: BERT for knowledge graph completion[J]. arXiv preprint arXiv:1909.03193, 2019.
7. 劉知遠(yuǎn), 孫茂松, 林衍凱, 等. 知識表示學(xué)習(xí)研究進(jìn)展[J]. 計(jì)算機(jī)研究與發(fā)展, 2016, 53(2): 247.
今天的分享就到這里,謝謝大家。
分享嘉賓:
峰會推薦:
7月10日,DataFun將舉辦自然語言處理峰會,屆時(shí)將邀請包括來自小米等公司的多位重量級嘉賓,就NLP的基礎(chǔ)技術(shù)、語義表示與計(jì)算、多模理解與生成、信息抽取與檢索、人機(jī)對話與交互、產(chǎn)業(yè)創(chuàng)新與實(shí)踐、機(jī)器翻譯與同傳等話題進(jìn)行深度分享,歡迎小伙伴們識別二維碼,了解詳情,并報(bào)名參與,本次峰會將全程直播!
?
OpenKG
OpenKG(中文開放知識圖譜)旨在推動以中文為核心的知識圖譜數(shù)據(jù)的開放、互聯(lián)及眾包,并促進(jìn)知識圖譜算法、工具及平臺的開源開放。
點(diǎn)擊閱讀原文,進(jìn)入 OpenKG 網(wǎng)站。
總結(jié)
以上是生活随笔為你收集整理的领域应用 | 小米在知识表示学习的探索与实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文浅尝 - ACL2020 | Seg
- 下一篇: 领域应用 | 机器知道哪吒是部电影吗?解