萬(wàn)字詳解:騰訊如何自研大規(guī)模知識(shí)圖譜 Topbase
八、知識(shí)關(guān)聯(lián)和推理
知識(shí)關(guān)聯(lián)(鏈接預(yù)測(cè))是將實(shí)體的屬性值鏈接到知識(shí)庫(kù)的實(shí)體中,構(gòu)建一條關(guān)系邊,如圖 24 所示“三國(guó)演義”的作者屬性值是“羅貫中”字符串,知識(shí)關(guān)聯(lián)需要將該屬性值鏈接到知識(shí)庫(kù)中的實(shí)體“羅貫中”,這樣實(shí)體“三國(guó)演義”和“羅貫中”之間存在一條“作者”的關(guān)系邊。
圖24 基于超鏈接關(guān)聯(lián)的示列說(shuō)明
Topbase 的知識(shí)關(guān)聯(lián)方案分為基于超鏈接的關(guān)聯(lián)和基于 embedding 的文本關(guān)聯(lián)兩種方式。
超鏈接關(guān)聯(lián)是 Topbase 進(jìn)行關(guān)聯(lián)和推理的第一步,它是利用網(wǎng)頁(yè)中存在的超鏈接對(duì)知識(shí)圖譜中的實(shí)體進(jìn)行關(guān)聯(lián),如百科“三國(guó)演義”頁(yè)面中,其“作者”屬性鏈接到“羅貫中”的百科頁(yè)面(如圖 24 所示),基于這種超鏈接的跳轉(zhuǎn)關(guān)系,可以在 Topbase 的實(shí)體之間建立起一條邊關(guān)系,如該示列會(huì)在實(shí)體“三國(guó)演義”與“羅貫中”之間生成一條“作者”關(guān)系,而“曹操”并沒(méi)有該超鏈接,所以三國(guó)演義的主要人物屬性中的字符串“曹操”不會(huì)關(guān)聯(lián)到具體的實(shí)體頁(yè)面中。在進(jìn)行超鏈接關(guān)聯(lián)之前,Topbase 中的實(shí)體是一個(gè)個(gè)孤立的個(gè)體,超鏈接關(guān)聯(lián)為知識(shí)圖譜補(bǔ)充了第一批邊關(guān)系,但是超鏈接關(guān)聯(lián)無(wú)法保證鏈接的覆蓋率。
基于此,Topbase 提出基于 embedding 的文本關(guān)聯(lián)。基于 embedding 的文本關(guān)聯(lián)是在已知頭實(shí)體、關(guān)系的基礎(chǔ)上,在候選集中對(duì)尾實(shí)體進(jìn)行篩選,尾實(shí)體的候選集是通過(guò)別名匹配召回。如上述百科示列中的“主要人物”屬性,我們利用其屬性值字符串”曹操“去 Topbase 庫(kù)里匹配,召回所有和”曹操”同名稱的實(shí)體作為建立鏈接關(guān)系的候選。然后利用知識(shí)庫(kù) embedding 的方法從候選實(shí)體中選擇最相似的實(shí)體作為他的鏈接實(shí)體;谖谋久Q的匹配召回候選可以大大提高知識(shí)庫(kù) embeding 方法的鏈接預(yù)測(cè)效果。基于 embedding 的鏈接關(guān)系預(yù)測(cè)是通過(guò)模型將實(shí)體和關(guān)系的屬性信息、結(jié)構(gòu)信息嵌入到一個(gè)低維向量中去,利用低維向量去對(duì)缺失的尾實(shí)體進(jìn)行預(yù)測(cè)。
當(dāng)前采用的嵌入模型是 TextEnhanced+TransE,模型結(jié)構(gòu)如圖 25 所示。
TransE 是將實(shí)體與關(guān)系映射到同一向量空間下,它是依據(jù)已有的邊關(guān)系結(jié)構(gòu)對(duì)實(shí)體之間的邊關(guān)系進(jìn)行預(yù)測(cè),對(duì)孤立實(shí)體或鏈接邊較少的實(shí)體預(yù)測(cè)效果較差。為了引入文本信息,解決模型對(duì)孤立實(shí)體預(yù)測(cè)的難題,模型使用 TextEnhanced 對(duì)文本信息進(jìn)行嵌入。TextEnhanced 通過(guò) NN 模型對(duì)文本信息嵌入后,利用 Attention 機(jī)制將文本信息嵌入到 Trans 系列的實(shí)體向量中,進(jìn)而對(duì)尾實(shí)體進(jìn)行預(yù)測(cè)。
圖25 TextEnhanced+TransE結(jié)構(gòu)圖
由于知識(shí)關(guān)聯(lián)是在已知屬性值的前提下,通過(guò)名稱匹配的方式得到關(guān)聯(lián)實(shí)體的候選集,所以知識(shí)關(guān)聯(lián)無(wú)法補(bǔ)充缺失屬性值的鏈接關(guān)系。如上圖中“三國(guó)演義”的信息中并沒(méi)有“關(guān)羽”,知識(shí)推理目的是希望能夠挖掘“三國(guó)演義”和“關(guān)羽”的潛在關(guān)系。為了保證圖譜數(shù)據(jù)的準(zhǔn)確率,Topbase 的知識(shí)推理主要以規(guī)則推理為主,具體的規(guī)則方法可以歸納為以下幾類(lèi):
伴隨推理是在已經(jīng)被鏈接的兩個(gè)實(shí)體之間,根據(jù)兩個(gè)實(shí)體的屬性信息,發(fā)現(xiàn)兩者間蘊(yùn)含的其它關(guān)系。例如實(shí)體 A 已經(jīng)通過(guò)“配偶”關(guān)系與實(shí)體 B 相連,實(shí)體 A 的性別為“男”,實(shí)體 B 的性別為“女”,則伴隨推理會(huì)生成一條“妻子”關(guān)系邊,將實(shí)體 A 與實(shí)體 B 鏈接在一起,代表 B 為 A 的妻子。伴隨推理的規(guī)則可以通過(guò)統(tǒng)計(jì)同時(shí)關(guān)聯(lián)起兩個(gè)實(shí)體的屬性共現(xiàn)比例得到。
圖26 伴隨推理的示列說(shuō)明
表2 Topbase的伴隨推理規(guī)則庫(kù)示列
反向推理是依據(jù)邊之間的互反關(guān)系,為已經(jīng)鏈接的兩個(gè)實(shí)體再添加一條邊。比如實(shí)體 A 通過(guò)“作者”邊與實(shí)體 B 相連,代表實(shí)體 B 是實(shí)體 A 的作者,則可以直接生成一條從實(shí)體 B 指向?qū)嶓w A 的“作品”邊,代表實(shí)體 A 是實(shí)體 B 的作品,因?yàn)椤白髌贰迸c“作者”是一條互反關(guān)系。反向推理與伴隨推理類(lèi)似,都是在已經(jīng)存在邊關(guān)系的實(shí)體之間,挖掘新的邊關(guān)系,不同的是,伴隨推理在生成邊關(guān)系時(shí)需要滿足一定的屬性條件,如上例中的“性別”限制,而反向推理直接通過(guò)已有的邊關(guān)系,無(wú)需參考其它屬性值,直接生成一條互反邊關(guān)系。反向推理規(guī)則可以通過(guò)統(tǒng)計(jì) A-B,B-A 的屬性共現(xiàn)數(shù)量篩選。
圖27 反向推理的示列說(shuō)明
表3 Topbase的反向關(guān)聯(lián)規(guī)則庫(kù)示列
多實(shí)體推理是在多個(gè)實(shí)體之間挖掘蘊(yùn)含的邊關(guān)系,是一種更復(fù)雜的關(guān)聯(lián)規(guī)則,如第一種形式:A 的父親是 B,B 的母親是 C,則 A 的奶奶是 C,該形式通過(guò)統(tǒng)計(jì) A+PATH = C,A+R0=C,情況得到規(guī)則 [PATH(R1R2)=R0];第二種形式是 A 的母親是 B,A 的兒子 C,則 B 的孫子是 C,該形式通過(guò)統(tǒng)計(jì):A+R1 = B,A+R2=C,B+R0=C 的情況,得到規(guī)則[R1 &R2 = R0]。
圖28 多實(shí)體推理的兩種形式示列說(shuō)明
九、實(shí)體知名度計(jì)算
實(shí)體的知名度(Popularity)指標(biāo)可以用于量化不同實(shí)體的重要性程度,方便我們更好的使用圖譜數(shù)據(jù)。Topbase 知識(shí)庫(kù)的 popularity 計(jì)算以基于實(shí)體鏈接關(guān)系的 pagerank 算法為核心,以對(duì)新熱實(shí)體的 popularity 調(diào)整為輔,并配以直接的人工干預(yù)來(lái)快速解決 badcase。具體地,首先抽取實(shí)體頁(yè)面之間的超鏈接關(guān)系,以此為基礎(chǔ)通過(guò)修改后的 pagerank 算法來(lái)計(jì)算所有實(shí)體的 popularity;對(duì)于難以通過(guò) pagerank 算法計(jì)算的新熱實(shí)體的 popularity,再進(jìn)行規(guī)則干預(yù)。最后對(duì)于仍然難以解決的 case,則直接對(duì)其 popularity 值進(jìn)行人工賦值。Popularity 計(jì)算模塊的整體流程如下圖所示:
圖29 Topbase實(shí)體知名度計(jì)算流程
多類(lèi)型邊關(guān)系的 pagerank 算法:
基于鏈接關(guān)系的 popularity 計(jì)算方法的出發(fā)點(diǎn)在于:一個(gè)實(shí)體 A 對(duì)另一個(gè)實(shí)體 B 的引用(鏈接),表示實(shí)體 A 對(duì)于實(shí)體 B 的認(rèn)可,鏈接到 B 的實(shí)體越多,表示 B 受到的認(rèn)可越多,由此推斷它的知名度也就越高。但實(shí)際上有很多的鏈接關(guān)系并不是出于“認(rèn)可”而產(chǎn)生的,只是簡(jiǎn)單的表示它們之間有某種關(guān)系。比如歌手與專輯、音樂(lè)之間的各種關(guān)系。一個(gè)專業(yè)的音樂(lè)網(wǎng)站會(huì)收錄歌手、專輯、音樂(lè)之間的完整從屬關(guān)系,這會(huì)導(dǎo)致同一個(gè)歌手或同一張專輯之內(nèi)的熱門(mén)歌曲與其它歌曲之間沒(méi)有任何區(qū)分性。并且由于這幾類(lèi)實(shí)體之間高密度的鏈接關(guān)系,會(huì)導(dǎo)致它們的計(jì)算結(jié)果比其它類(lèi)別的實(shí)體的都高出很多。
因此有必要對(duì)實(shí)體之間不同的鏈接關(guān)系進(jìn)行區(qū)別對(duì)待。與最基礎(chǔ)的 pagerank 算法的不同在于:實(shí)體之間可以有多條邊,且有多種類(lèi)型的邊。在進(jìn)行迭代計(jì)算的過(guò)程中,不同類(lèi)型的邊對(duì)流經(jīng)它的概率分布會(huì)有不同程度的擬制作用。之所以進(jìn)行這樣的修改,是因?yàn)橹R(shí)庫(kù)中實(shí)體的信息有多種不同的來(lái)源。有的實(shí)體來(lái)源于通用領(lǐng)域百科,有的實(shí)體來(lái)源于垂類(lèi)領(lǐng)域網(wǎng)站等。甚至同一個(gè)實(shí)體內(nèi)部,不同的屬性信息也會(huì)有不同的來(lái)源。由此,實(shí)體之間的鏈接關(guān)系也會(huì)屬于不同的來(lái)源。比如“劉德華”與“朱麗倩”之間的“夫妻”關(guān)系可能抽取自百科,而與“無(wú)間道”之間的“參演”關(guān)系可能來(lái)自于電影網(wǎng)站。不同來(lái)源的信息有著不同的可信度,有的經(jīng)過(guò)人工的審核編輯,可信度很高;而有的則屬于算法自動(dòng)生成,會(huì)有不同程度的錯(cuò)誤。
因此鏈接關(guān)系之間也有可信度的差別,無(wú)法做到將它們一視同仁地看待。其次,有的鏈接關(guān)系即使在可靠性方面完全正確,但它們對(duì)于 popularity 的正確計(jì)算不僅沒(méi)有太大幫助,反而會(huì)導(dǎo)致 popularity 的計(jì)算結(jié)果與預(yù)期不符。修改后的 pagerank 算法的計(jì)算過(guò)程與基礎(chǔ) pagerank 算法基本一致,只是在進(jìn)行分布概率的流轉(zhuǎn)時(shí)有所區(qū)別。
下面進(jìn)行舉例說(shuō)明:
圖30 多類(lèi)型邊的PageRank算法說(shuō)明
實(shí)體 A 指向?qū)嶓w B、C、D。其與 B 之間的鏈接類(lèi)型為 X,與 C 之間的鏈接類(lèi)型為 Y,與 D 之間的為 Z。通過(guò)先驗(yàn)知識(shí)或?qū)嶒?yàn)總結(jié),我們認(rèn)為鏈接類(lèi)型 Y 可信性不高,相比于 X,對(duì) rank 值的流轉(zhuǎn)有擬制作用,因此對(duì)其賦予一個(gè)系數(shù) 0.8,Z 的可信度很準(zhǔn)確,但其性質(zhì)與上述的音樂(lè)網(wǎng)站的關(guān)系類(lèi)似,因此對(duì)于其賦予一個(gè)系數(shù) 0.2,而 X 類(lèi)型的完全可行,其系數(shù)則為 1.0。在某一迭代階段,實(shí)體 A 的 rank 值為 3,B、C、D 的 rank 值分別為 4、2、3。由于 A 有 3 條出邊,因此到 B、C、D 的初始流出值均為 3/ 3 = 1。加上系數(shù)的影響,實(shí)際到 C、D 的流出值分別為 0.8 和 0.2,未流出的剩余值為(1 -0.8) + (1 - 0.2) = 1.0。
因此迭代過(guò)后,B、C、D 的 rank 值分別為 4 + 1.0 = 5,2 + 0.8= 2.8,3 + 0.2 =3.2,而 A 的 rank 值需要在所有指向它的實(shí)體流入到它的值之和的基礎(chǔ)上,再加上未流出的 1.0。
新熱實(shí)體的 Popularity 調(diào)整:
新熱實(shí)體的含義為最新出現(xiàn)的熱門(mén)實(shí)體。這類(lèi)實(shí)體需要較高的 popularity 值。但由于是新近出現(xiàn)的實(shí)體,其與其它實(shí)體的鏈接關(guān)系非常匱乏,因此無(wú)法通過(guò)基于實(shí)體鏈接關(guān)系的這類(lèi)方法來(lái)計(jì)算。對(duì)此我們采取的方案?jìng)?cè)重于對(duì)新熱實(shí)體的發(fā)現(xiàn),然后對(duì)發(fā)現(xiàn)的新熱實(shí)體的 popularity 進(jìn)行調(diào)整,使其 popularity 值在同名實(shí)體中處于最高的位置。新熱實(shí)體的發(fā)現(xiàn)目前基于兩類(lèi)方法:一類(lèi)方法發(fā)現(xiàn)的熱門(mén)實(shí)體可以直接對(duì)應(yīng)到知識(shí)庫(kù)中的某個(gè)實(shí)體,另一個(gè)方法只能發(fā)現(xiàn)熱門(mén)的實(shí)體名,需要通過(guò)一些對(duì)齊方法與知識(shí)庫(kù)中的某個(gè)實(shí)體關(guān)聯(lián)起來(lái)。
第一種方法從 Topbase 監(jiān)控的重點(diǎn)網(wǎng)站頁(yè)面中直接獲取最近熱門(mén)的實(shí)體。這種方法獲取的實(shí)體可以直接通過(guò) url 與知識(shí)庫(kù)中的某個(gè)實(shí)體準(zhǔn)確無(wú)誤地關(guān)聯(lián)起來(lái)。第二類(lèi)方法首先發(fā)現(xiàn)一些熱門(mén)的實(shí)體名,包括:一、從微博熱搜榜中爬取熱門(mén)話題,通過(guò)命名實(shí)體識(shí)別方法識(shí)別其中的人名和機(jī)構(gòu)名,將其作為熱門(mén)實(shí)體名;二、將新聞中每天曝光的高頻次標(biāo)簽作為實(shí)體名。以上兩種方法發(fā)現(xiàn)的實(shí)體名帶有一定的附加信息,通過(guò)實(shí)體鏈接可以將其對(duì)齊到知識(shí)庫(kù)中的某個(gè)實(shí)體。
十、知識(shí)庫(kù)的存儲(chǔ)和查詢
知識(shí)圖譜是一種典型的圖結(jié)構(gòu)數(shù)據(jù)集合,實(shí)體是圖中的節(jié)點(diǎn),關(guān)系(屬性)是帶有標(biāo)簽的邊。因此,基于圖結(jié)構(gòu)的存儲(chǔ)方式能夠直接正確地反映知識(shí)圖譜的內(nèi)部結(jié)構(gòu),有利于知識(shí)的查詢。如下圖所示,紅色圈代表實(shí)體,實(shí)線是邊(妻子),表示實(shí)體間的關(guān)系,如“劉德華的妻子是朱麗倩”,虛線是屬性(出生日期),表示實(shí)體具有的屬性,如“劉德華的出生日期是 1961 年 9 月 27 日”。
圖31 圖數(shù)據(jù)說(shuō)明
Topbase 知識(shí)圖譜的存儲(chǔ)是基于分布式圖數(shù)據(jù)庫(kù) JanusGraph,選擇 JanusGraph 的主要理由有:1)JanusGraph 完全開(kāi)源,像 Neo4j 并非完全開(kāi)源;2)JanusGraph 支持超大圖,圖規(guī)?梢愿鶕(jù)集群大小調(diào)整;3)JanusGraph 支持超大規(guī)模并發(fā)事務(wù)和可操作圖運(yùn)算,能夠毫秒級(jí)的響應(yīng)在海量圖數(shù)據(jù)上的復(fù)雜的遍歷查詢操作等。
Topbase基于JanusGraph存儲(chǔ)查詢架構(gòu)如下:
圖32 基于JanusGraph的存儲(chǔ)查詢系統(tǒng)
Graph_Loader 模塊主要是將上述數(shù)據(jù)生產(chǎn)流程得到的圖譜數(shù)據(jù)轉(zhuǎn)換為 JanusGraph 存儲(chǔ)要求的格式,批量的將圖譜數(shù)據(jù)寫(xiě)入圖數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)中,以及相關(guān)索引建立。
圖數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù):JanusGraph數(shù)據(jù)存儲(chǔ)服務(wù)可以選用 ScyllaDb、HBase 等作為底層存儲(chǔ),topbase 選用的是 ScyllaDb。Graph_loader 會(huì)每天定時(shí)的將數(shù)據(jù)更新到圖數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)。
圖數(shù)據(jù)庫(kù)索引:由于 JanusGraph 圖數(shù)據(jù)庫(kù)存儲(chǔ)服務(wù)只支持一些簡(jiǎn)單查詢,如:“劉德華的歌曲”,但是無(wú)法支持復(fù)雜查詢,如多條件查詢:“劉德華的 1999 年發(fā)表的粵語(yǔ)歌曲”。所以我們利用 Es 構(gòu)建復(fù)雜查詢的數(shù)據(jù)索引,graph_loader 除了批量寫(xiě)入數(shù)據(jù)到底層存儲(chǔ)之外,還會(huì)建立基于復(fù)雜查詢的索引。
圖數(shù)據(jù)庫(kù)主服務(wù):主服務(wù)通過(guò) Gremlin 語(yǔ)句對(duì)圖數(shù)據(jù)庫(kù)的相關(guān)內(nèi)容進(jìn)行查詢或者改寫(xiě)等操作。
十一、總結(jié)
由于知識(shí)圖譜的構(gòu)建是一項(xiàng)龐大的數(shù)據(jù)工程,其中各環(huán)節(jié)涉及的技術(shù)細(xì)節(jié)無(wú)法在一篇文檔中面面俱到。本文主要梳理 Topbase 構(gòu)建過(guò)程中的技術(shù)經(jīng)驗(yàn),從 0 到 1 的介紹了圖譜構(gòu)建流程,希望對(duì)圖譜建設(shè)者有一定的借鑒意義。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車(chē)】汽車(chē)E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書(shū)】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類(lèi)新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?