日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

万字详解:腾讯如何自研大规模知识图谱 Topbase

發(fā)布時(shí)間:2024/2/28 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 万字详解:腾讯如何自研大规模知识图谱 Topbase 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:鄭孫聰,騰訊 TEG 應(yīng)用研究員

Topbase 是由 TEG-AI 平臺(tái)部構(gòu)建并維護(hù)的一個(gè)專注于通用領(lǐng)域知識(shí)圖譜,其涉及 226 種概念類型,共計(jì) 1 億多實(shí)體,三元組數(shù)量達(dá) 22 億。在技術(shù)上,Topbase 支持圖譜的自動(dòng)構(gòu)建和數(shù)據(jù)的及時(shí)更新入庫。此外,Topbase 還連續(xù)兩次獲得過知識(shí)圖譜領(lǐng)域頂級(jí)賽事 KBP 的大獎(jiǎng)。目前,Topbase 主要應(yīng)用在微信搜一搜,信息流推薦以及智能問答產(chǎn)品。本文主要梳理 Topbase 構(gòu)建過程中的技術(shù)經(jīng)驗(yàn),從 0 到 1 的介紹了構(gòu)建過程中的重難點(diǎn)問題以及相應(yīng)的解決方案,希望對(duì)圖譜建設(shè)者有一定的借鑒意義。

一、簡介

知識(shí)圖譜( Knowledge Graph)以結(jié)構(gòu)化的形式描述客觀世界中概念、實(shí)體及其關(guān)系,便于計(jì)算機(jī)更好的管理、計(jì)算和理解互聯(lián)網(wǎng)海量信息。通常結(jié)構(gòu)化的知識(shí)是以圖形式進(jìn)行表示,圖的節(jié)點(diǎn)表示語義符號(hào)(實(shí)體,概念),圖的邊表示符號(hào)之間的語義關(guān)系(如圖 1 所示),此外每個(gè)實(shí)體還有一些非實(shí)體級(jí)別的邊(通常稱之為屬性),如:人物的出生日期,主要成就等。

圖1 知識(shí)圖譜的示列

TEG-AI 平臺(tái)部的 Topbase 是專注于通用領(lǐng)域知識(shí)。數(shù)據(jù)層面,TopBase 覆蓋 51 個(gè)領(lǐng)域的知識(shí),涉及 226 種概念類型,共計(jì) 1 億多個(gè)實(shí)體,三元組數(shù)量達(dá) 22 億多。技術(shù)層面,Topbase 已完成圖譜自動(dòng)構(gòu)建和更新的整套流程,支持重點(diǎn)網(wǎng)站的監(jiān)控,數(shù)據(jù)的及時(shí)更新入庫,同時(shí)具備非結(jié)構(gòu)化數(shù)據(jù)的抽取能力。此外,Topbase 還連續(xù)兩次獲得過知識(shí)圖譜領(lǐng)域頂級(jí)賽事 KBP 的大獎(jiǎng),分別是 2017 年 KBP 實(shí)體鏈接的雙項(xiàng)冠軍,以及 2019 年 KBP 大賽第二名。在應(yīng)用層面,Topbase 主要服務(wù)于微信搜一搜,信息流推薦以及智能問答產(chǎn)品。本文主要梳理 Topbase 構(gòu)建過程中的重要技術(shù)點(diǎn),介紹如何從 0 到 1 構(gòu)建一個(gè)知識(shí)圖譜,內(nèi)容較長,建議先收藏。

二、知識(shí)圖譜技術(shù)架構(gòu)

TopBase 的技術(shù)框架如圖 2 所示,主要包括知識(shí)圖譜體系構(gòu)建,數(shù)據(jù)生產(chǎn)流程,運(yùn)維監(jiān)控系統(tǒng)以及存儲(chǔ)查詢系統(tǒng)。其中知識(shí)圖譜體系是知識(shí)圖譜的骨架,決定了我們采用什么樣的方式來組織和表達(dá)知識(shí),數(shù)據(jù)生產(chǎn)流程是知識(shí)圖譜構(gòu)建的核心內(nèi)容,主要包括下載平臺(tái),抽取平臺(tái),知識(shí)規(guī)整模塊,知識(shí)融合模塊,知識(shí)推理模塊,實(shí)體重要度計(jì)算模塊等。Topbase 應(yīng)用層涉及知識(shí)問答(基于 topbase 的 KB-QA 準(zhǔn)確率超 90%),實(shí)體鏈接(2017 圖譜頂級(jí)賽事 KBP 雙料冠軍),相關(guān)實(shí)體推薦等。

圖2 知識(shí)圖譜Topbase的技術(shù)框架
  • 下載平臺(tái)-知識(shí)更新:下載平臺(tái)是知識(shí)圖譜獲取源數(shù)據(jù)平臺(tái),其主要任務(wù)包括新實(shí)體的發(fā)現(xiàn)和新實(shí)體信息的下載。

  • 抽取平臺(tái)-知識(shí)抽取:下載平臺(tái)只負(fù)責(zé)爬取到網(wǎng)頁的源代碼內(nèi)容,抽取平臺(tái)需要從這些源碼內(nèi)容中生成結(jié)構(gòu)化的知識(shí),供后續(xù)流程進(jìn)一步處理。

  • 知識(shí)規(guī)整:通過抽取平臺(tái)以及合作伙伴提供的數(shù)據(jù)我們可以得到大量的多源異構(gòu)數(shù)據(jù)。為了方便對(duì)多源數(shù)據(jù)進(jìn)行融合,知識(shí)規(guī)整環(huán)節(jié)需要對(duì)數(shù)據(jù)進(jìn)行規(guī)整處理,將各路數(shù)據(jù)映射到我們的知識(shí)體系中。

  • 知識(shí)融合:知識(shí)融合是對(duì)不同來源,不同結(jié)構(gòu)的數(shù)據(jù)進(jìn)行融合,其主要包括實(shí)體對(duì)齊和屬性融合。

  • 知識(shí)推理:由于處理數(shù)據(jù)的不完備性,上述流程構(gòu)建的知識(shí)圖譜會(huì)存在知識(shí)缺失現(xiàn)象(實(shí)體缺失,屬性缺失)。知識(shí)推理目的是利用已有的知識(shí)圖譜數(shù)據(jù)去推理缺失的知識(shí),從而將這些知識(shí)補(bǔ)全。此外,由于已獲取的數(shù)據(jù)中可能存在噪聲,所以知識(shí)推理還可以用于已有知識(shí)的噪聲檢測,凈化圖譜數(shù)據(jù)。

  • 實(shí)體知名度計(jì)算:最后,我們需要對(duì)每一個(gè)實(shí)體計(jì)算一個(gè)重要性分?jǐn)?shù),這樣有助于更好的使用圖譜數(shù)據(jù)。比如:名字叫李娜的人物有網(wǎng)球運(yùn)動(dòng)員,歌手,作家等,如果用戶想通過圖譜查詢“李娜是誰”那么圖譜應(yīng)該返回最知名的李娜(網(wǎng)球運(yùn)動(dòng)員)。

  • 三、知識(shí)體系構(gòu)建

    知識(shí)體系的構(gòu)建是指采用什么樣的方式來組織和表達(dá)知識(shí),核心是構(gòu)建一個(gè)本體(或 schema)對(duì)目標(biāo)知識(shí)進(jìn)行描述。在這個(gè)本體中需要定義:1)知識(shí)的類別體系(如:圖 1 中的人物類,娛樂人物,歌手等);2)各類別體系下實(shí)體間所具有的關(guān)系和實(shí)體自身所具有的屬性;3)不同關(guān)系或者屬性的定義域,值域等約束信息(如:出生日期的屬性值是 Date 類型,身高屬性值應(yīng)該是 Float 類型,簡介應(yīng)該是 String 類型等)。我們構(gòu)建 Topbase 知識(shí)體系主要是以人工構(gòu)建和自動(dòng)挖掘的方式相結(jié)合,同時(shí)我們還大量借鑒現(xiàn)有的第三方知識(shí)體系或與之相關(guān)的資源,如:Schema.org、Dbpedia、大詞林、百科(搜狗)等。知識(shí)體系構(gòu)建的具體做法:

  • 首先是定義概念類別體系:概念類別體系如圖 1 的概念層所示,我們將知識(shí)圖譜要表達(dá)的知識(shí)按照層級(jí)結(jié)構(gòu)的概念進(jìn)行組織。在構(gòu)建概念類別體系時(shí),必須保證上層類別所表示的概念完全包含下層類別表示的概念,如娛樂人物是人物類的下層類別,那么所有的娛樂人物都是人物。在設(shè)計(jì)概念類別體系時(shí),我們主要是參考 schema.org、DBpedia 等已有知識(shí)資源人工確定頂層的概念體系。同時(shí),我們要保證概念類別體系的魯棒性,便于維護(hù)和擴(kuò)展,適應(yīng)新的需求。除了人工精心維護(hù)設(shè)計(jì)的頂層概念類別體系,我們還設(shè)計(jì)了一套上下位關(guān)系挖掘系統(tǒng),用于自動(dòng)化構(gòu)建大量的細(xì)粒度概念(或稱之為上位詞),如:《不能說的秘密》還具有細(xì)粒度的概念:“青春校園愛情電影”,“穿越電影”。

  • 其次是定義關(guān)系和屬性:定義了概念類別體系之后我們還需要為每一個(gè)類別定義關(guān)系和屬性。關(guān)系用于描述不同實(shí)體間的聯(lián)系,如:夫妻關(guān)系(連接兩個(gè)人物實(shí)體),作品關(guān)系(連接人物和作品實(shí)體)等;屬性用于描述實(shí)體的內(nèi)在特征,如人物類實(shí)體的出生日期,職業(yè)等。關(guān)系和屬性的定義需要受概念類別體系的約束,下層需要繼承上層的關(guān)系屬性,例如所有歌手類實(shí)體應(yīng)該都具有人物類的關(guān)系和屬性。我們采用半自動(dòng)的方式生成每個(gè)概念類別體系下的關(guān)系屬性。我們通過獲取百科 Infobox 信息,然后將實(shí)體分類到概念類別體系下,再針對(duì)各類別下的實(shí)體關(guān)系屬性進(jìn)行統(tǒng)計(jì)分析并人工審核之后確定該概念類別的關(guān)系屬性。關(guān)系屬性的定義也是一個(gè)不斷完善積累的過程。

  • 定義約束:定義關(guān)系屬性的約束信息可以保證數(shù)據(jù)的一致性,避免出現(xiàn)異常值,比如:年齡必須是 Int 類型且唯一(單值),演員作品的值是 String 類型且是多值。

  • 四、下載平臺(tái)-知識(shí)更新

    知識(shí)更新主要包括兩方面內(nèi)容,一個(gè)是新出現(xiàn)的熱門實(shí)體,需要被及時(shí)發(fā)現(xiàn)和下載其信息,另一個(gè)是關(guān)系屬性變化的情況需要對(duì)其值進(jìn)行替換或者補(bǔ)充,如明星的婚姻戀愛關(guān)系等。知識(shí)更新的具體流程如下圖所示:

    圖3 Topbase知識(shí)更新流程圖
  • 針對(duì)熱門實(shí)體信息的更新策略主要有:

    • 從各大站點(diǎn)主頁更新,定時(shí)遍歷重點(diǎn)網(wǎng)站種子頁,采用廣搜的方式層層下載實(shí)體頁面信息;

    • 從新聞?wù)Z料中更新,基于新聞?wù)奈谋局型诰蛐聦?shí)體,然后拼接實(shí)體名稱生成百科 URL 下載;

    • 從搜索 query log 中更新,通過挖掘 querylog 中的實(shí)體,然后拼接實(shí)體生成百科 URL 下載?;?querylog 的實(shí)體挖掘算法主要是基于實(shí)體模板庫和我們的 QQSEG-NER 工具;

    • 從知識(shí)圖譜已有數(shù)據(jù)中更新,知識(shí)圖譜已有的重要度高的實(shí)體定期重新下載;

    • 從人工運(yùn)營中更新,將人工(業(yè)務(wù))獲得的 URL 送入下載平臺(tái)獲取實(shí)體信息;

    • 從相關(guān)實(shí)體中更新,如果某個(gè)熱門實(shí)體信息變更,則其相關(guān)實(shí)體信息也有可能變更,所以需要獲得熱門實(shí)體的相關(guān)實(shí)體,進(jìn)行相應(yīng)更新。

    表 1? 最近 7 日下載數(shù)據(jù)統(tǒng)計(jì)情況

    2.針對(duì)其他關(guān)系屬性易變的情況,我們針對(duì)某些重要關(guān)系屬性進(jìn)行專項(xiàng)更新。如明星等知名人物的婚姻感情關(guān)系我們主要通過事件挖掘的方式及時(shí)更新,如:離婚事件會(huì)觸發(fā)已有關(guān)系“妻子”“丈夫”變化為“前妻”“前夫”,戀愛事件會(huì)觸發(fā)“男友”“女友”關(guān)系等。此外,基于非結(jié)構(gòu)化抽取平臺(tái)獲得的三元組信息也有助于更新實(shí)體的關(guān)系屬性。

    五、抽取平臺(tái) - 知識(shí)抽取

    Topbase 的抽取平臺(tái)主要包括結(jié)構(gòu)化抽取,非結(jié)構(gòu)化抽取和專項(xiàng)抽取。其中結(jié)構(gòu)化抽取主要負(fù)責(zé)抽取網(wǎng)頁編輯者整理好的規(guī)則化知識(shí),其準(zhǔn)確率高,可以直接入庫。由于結(jié)構(gòu)化知識(shí)的局限性,大量的知識(shí)信息蘊(yùn)含在純文本內(nèi)容中,因此非結(jié)構(gòu)化抽取主要是從純文本數(shù)據(jù)中挖掘知識(shí)彌補(bǔ)結(jié)構(gòu)化抽取信息的不足。此外,某些重要的知識(shí)信息需要額外的設(shè)計(jì)專項(xiàng)策略進(jìn)行抽取,比如:事件信息,上位詞信息(概念),描述信息,別名信息等。這些重要的知識(shí)抽取我們統(tǒng)稱專項(xiàng)抽取,針對(duì)不同專項(xiàng)的特點(diǎn)設(shè)計(jì)不同的抽取模塊。

    1.? 結(jié)構(gòu)化抽取平臺(tái)

    許多網(wǎng)站提供了大量的結(jié)構(gòu)化數(shù)據(jù),如(圖 4 左)所示的百科 Infobox 信息。這種結(jié)構(gòu)化知識(shí)很容易轉(zhuǎn)化為三元組,如:“<姚明,妻子,葉莉>”。針對(duì)結(jié)構(gòu)化數(shù)據(jù)的抽取,我們?cè)O(shè)計(jì)了基于 Xpath 解析的抽取平臺(tái),如(圖 4 右)所示,我們只需要定義好抽取網(wǎng)頁的種子頁面如:baike.com,然后從網(wǎng)頁源碼中拷貝 Infobox 中屬性的 xpath 路徑即可實(shí)現(xiàn)結(jié)構(gòu)化知識(shí)的自動(dòng)抽取,入庫。通過結(jié)構(gòu)化抽取平臺(tái)生成的數(shù)據(jù)準(zhǔn)確率高,因此無需人工參與審核即可直接入庫,它是知識(shí)圖譜的重要數(shù)據(jù)來源。

    圖4 Topbase結(jié)構(gòu)化抽取平臺(tái)的xpath配置界面
  • 非結(jié)構(gòu)化抽取平臺(tái)

  • 由于大量的知識(shí)是蘊(yùn)含在純文本中,為了彌補(bǔ)結(jié)構(gòu)化抽取信息的不足,我們?cè)O(shè)計(jì)了非結(jié)構(gòu)化抽取平臺(tái)。非結(jié)構(gòu)化抽取流程如圖 5 所示:

    圖5 Topbase非結(jié)構(gòu)化抽取平臺(tái)的技術(shù)框架

    首先我們獲取知識(shí)圖譜中重要度高的實(shí)體名構(gòu)建 Tri 樹,然后回標(biāo)新聞數(shù)據(jù)和百科正文數(shù)據(jù),并將包含實(shí)體的句子作為候選抽取語料(新聞和百科數(shù)據(jù)需要區(qū)別對(duì)待,新聞數(shù)據(jù)往往包含最及時(shí)和最豐富的三元組信息,百科數(shù)據(jù)質(zhì)量高,包含準(zhǔn)確的知識(shí),且百科摘要或正文描述相對(duì)簡單,抽取結(jié)果的準(zhǔn)確率高)。

    然后,我們利用 Topbase 的實(shí)體鏈接服務(wù),將匹配上的實(shí)體鏈接到知識(shí)庫的已有實(shí)體中,避免了后期的數(shù)據(jù)融合。比如:實(shí)體“李娜”匹配到一句話是“歌手李娜最終歸一了佛門”,那么這句話中的李娜會(huì)對(duì)應(yīng)到知識(shí)庫中的歌手李娜,而不是網(wǎng)球李娜,從這句話中抽取的結(jié)果只會(huì)影響歌手李娜的。實(shí)體鏈接之后,我們將候選語料送入我們的抽取服務(wù),得到實(shí)體的三元組信息。

    最后,三元組結(jié)果會(huì)和知識(shí)庫中已有的三元組數(shù)據(jù)進(jìn)行匹配并給每一個(gè)抽取得到的三元組結(jié)果進(jìn)行置信度打分,如果知識(shí)庫已經(jīng)存在該三元組信息則過濾,如果知識(shí)庫中三元組和抽取得到的三元組發(fā)生沖突則進(jìn)入眾包標(biāo)注平臺(tái),如果三元組是新增的知識(shí)則根據(jù)他們的分值決定是否可以直接入庫或者送入標(biāo)注平臺(tái)。此外,標(biāo)注平臺(tái)的結(jié)果數(shù)據(jù)會(huì)加入到抽取服務(wù)中 Fine-tune 模型,不斷提升抽取模型的能力。

    上述流程中的核心是抽取服務(wù)模塊,它是非結(jié)構(gòu)化抽取策略的集合。抽取服務(wù)構(gòu)建流程如圖 6 所示,其主要包括離線模型構(gòu)建部分以及在線服務(wù)部分。離線模型構(gòu)建的重點(diǎn)主要在于如何利用遠(yuǎn)監(jiān)督的方式構(gòu)建抽取模型的訓(xùn)練數(shù)據(jù)以及訓(xùn)練抽取模型。在線流程重點(diǎn)是如何針對(duì)輸入的文本進(jìn)行預(yù)處理,走不同的抽取策略,以及抽取結(jié)果的后處理。針對(duì)不同屬性信息的特點(diǎn),抽取策略主要可以簡單歸納為三大類方法:

    • 基于規(guī)則的抽取模塊:有些屬性具有很強(qiáng)的模板(規(guī)則)性質(zhì),所以可以通過人工簡單的配置一些模板規(guī)則就可以獲得高準(zhǔn)確率的三元組結(jié)果。一般百科摘要文本內(nèi)容描述規(guī)范,適合于規(guī)則抽取的輸入數(shù)據(jù)源。此外,適用于規(guī)則抽取的屬性主要有上位詞,別名,地理位置,人物描述 tag 等。當(dāng)然,規(guī)則模塊召回有限往往還得搭配模型抽取模塊,但是規(guī)則模塊結(jié)果適合直接入庫,無需標(biāo)注人員審核。

    • 基于 mention 識(shí)別+關(guān)系分類模塊:基本思想是先用 NER 或者詞典匹配等方式識(shí)別出句子中的 mention,然后利用已有的實(shí)體信息以及識(shí)別出來的 mention 進(jìn)行屬性分類。舉例:給定識(shí)別出 mention 的句子“<org>騰訊</org>公司是由<per>馬化騰</per>創(chuàng)立的?!?用 schema 對(duì)輸入進(jìn)行調(diào)整,一種情況是 org 作為頭實(shí)體,per 作為尾實(shí)體,那么該樣本的分類結(jié)果是關(guān)系“創(chuàng)始人”,另一種情況是 per 作為頭實(shí)體,org 作為尾實(shí)體,那么該樣本的分類結(jié)果是“所屬公司”,所以最終可以得到三元組<騰訊,創(chuàng)始人,馬化騰>和<馬化騰,所屬公司,騰訊>。一般人物,地點(diǎn),機(jī)構(gòu),影視劇,時(shí)間等實(shí)體可以利用 qqseg-ner 識(shí)別。詞典性質(zhì)的實(shí)體如:職業(yè),名族,國籍,性別等適合于詞典匹配的方式識(shí)別。

    • 基于序列標(biāo)注模塊:此外,還有許多屬性值是無法進(jìn)行 mention 識(shí)別,因此針對(duì)這類屬性,我們采用一種序列標(biāo)注的聯(lián)合抽取方式來同時(shí)識(shí)別實(shí)體的屬性值以及屬性。這類屬性主要有人物的“主要成就”信息,人物的描述 tag 信息,以及一些數(shù)值型屬性信息。

    圖6 Topbase的非結(jié)構(gòu)化抽取服務(wù)

    3. 專項(xiàng)抽取

    專項(xiàng)抽取模塊主要是針對(duì)一些重要知識(shí)的抽取。目前知識(shí)圖譜設(shè)計(jì)的專項(xiàng)抽取內(nèi)容主要有:上位詞抽取(概念),實(shí)體描述抽取,事件抽取,別名抽取等。

    1 ) 上位詞抽取: 上位詞可以理解為實(shí)體細(xì)粒度的概念,有助于更好的理解實(shí)體含義。圖 7 是構(gòu)建上位詞圖譜的一個(gè)簡要流程圖,其中主要從三路數(shù)據(jù)源中抽取上位詞數(shù)據(jù),主要包括:知識(shí)圖譜的屬性數(shù)據(jù),百科人工標(biāo)注 Tag,純文本語料。由于抽取得到的上位詞表述多樣性問題,所以需要在抽取后進(jìn)行同義上位詞合并。此外,抽取生成的上位詞圖譜也會(huì)存在著知識(shí)補(bǔ)全的問題,所以需要進(jìn)一步的進(jìn)行圖譜的連接預(yù)測,進(jìn)行上位詞圖譜的補(bǔ)全。

    圖7 上位詞抽取流程

    2) 實(shí)體描述 tag 抽取: 實(shí)體描述 tag 是指能夠描述實(shí)體某個(gè)標(biāo)簽的短句,圖 7 是從新聞文本數(shù)據(jù)中挖掘到的實(shí)體“李子柒”的部分描述 tag。描述 tag 目前主要用于相關(guān)實(shí)體推薦理由生成,以及搜索場景中實(shí)體信息展示。描述 tag 抽取的核心模塊以 QA-bert 為主的序列標(biāo)注模型,query 是給定的實(shí)體信息,答案是句子中的描述片段。此外,還包括一系列的預(yù)處理過濾模塊和后處理規(guī)整過濾模塊。

    圖8 ?描述tag的示列說明

    3)事件抽取:? 事件抽取的目的是合并同一事件的新聞數(shù)據(jù)并從中識(shí)別出事件的關(guān)鍵信息生成事件的描述。事件抽取的基本流程如圖 8 所示。

    圖9 ?Topbase的事件抽取流程框圖
    • 預(yù)處理階段主要是對(duì)新聞流數(shù)據(jù)按照實(shí)體進(jìn)行分堆處理。

    • 事件聚類階段主要是對(duì)每一堆的新聞數(shù)據(jù)進(jìn)行關(guān)鍵詞的提取等操作,將堆內(nèi)的新聞進(jìn)一步的聚類。

    • 事件融合主要包括同批次事件融合和增量事件融合。事件抽取流程是分批次對(duì)輸入數(shù)據(jù)進(jìn)行處理。同批次事件融合主要解決不同實(shí)體屬于同一事件的情況,將前一步得到的類簇進(jìn)行合并處理。增量事件融合是將新增的新聞數(shù)據(jù)和歷史 Base 的事件庫進(jìn)行增量融合。

    • 最后,我們需要識(shí)別每一個(gè)事件類簇中的事件元素,過濾無效事件,生成事件的描述。

    六、知識(shí)規(guī)整 - 實(shí)體分類

    知識(shí)規(guī)整目的是將實(shí)體數(shù)據(jù)映射到知識(shí)體系,并對(duì)其關(guān)系屬性等信息進(jìn)行去噪,歸一化等預(yù)處理。如圖 9 所示,左側(cè)是從百科頁面獲取的武則天人物信息,右側(cè)是從電影相關(guān)網(wǎng)站中獲得的武則天信息,那么左側(cè)的“武則天”應(yīng)該被視為“人物類--歷史人物--帝王”,右側(cè)“武則天”應(yīng)該被視為“作品--影視作品--電影”。左側(cè)人物的“民族”屬性的原始名稱為“民族族群”,所以需要將其規(guī)整為 schema 定義的“民族”,這稱之為屬性歸一。此外,由于不同來源的數(shù)據(jù)對(duì)實(shí)體名稱會(huì)有不同的注釋,如豆瓣的“武則天”這部電影后面加了一個(gè)年份備注,所以我們還需要對(duì)實(shí)體名進(jìn)行還原處理等各種清洗處理。知識(shí)規(guī)整的核心模塊是如何將實(shí)體映射到知識(shí)體系,即實(shí)體分類。

    圖10 數(shù)據(jù)規(guī)整的示列說明

    1. 實(shí)體分類的挑戰(zhàn)

    • 概念類別多(200+類),具有層次性,細(xì)分類別差異小(電影,電視劇);

    • 實(shí)體屬性存在歧義:

    圖11 實(shí)體分類中屬性歧義問題
    • 實(shí)體名稱或者實(shí)體簡介信息具有迷惑性:例如實(shí)體"菅直人"是一個(gè)政治家,其名稱容易和民族類別混淆,電影“寄生蟲”簡介如下圖所示,其內(nèi)容和人物概念極其相似。

    圖12 實(shí)體分類中簡介迷惑性問題

    2.實(shí)體分類方法:實(shí)體分類本質(zhì)是一個(gè)多分類問題。針對(duì)知識(shí)庫的特點(diǎn)以及上述挑戰(zhàn),我們分別從訓(xùn)練樣本構(gòu)建,特征選擇以及模型設(shè)計(jì)三方面實(shí)現(xiàn)實(shí)體分類模塊。

    1 )實(shí)體分類的訓(xùn)練樣本構(gòu)建

    圖13 實(shí)體分類訓(xùn)練數(shù)據(jù)構(gòu)建流程
    • 屬性規(guī)則模塊:每個(gè)實(shí)體頁面包含了實(shí)體結(jié)構(gòu)化屬性信息,利用這些屬性字段可以對(duì)實(shí)體進(jìn)行一個(gè)規(guī)則的分類。如:人物類別的實(shí)體大多包含民族,出生日期,職業(yè)等字段,歌手類實(shí)體的職業(yè)字段中可能有“歌手”的屬性值。通過構(gòu)建正則式規(guī)則,可以批量對(duì)實(shí)體頁面進(jìn)行分類?;谝?guī)則模塊得到的類別信息準(zhǔn)確率高,但是泛化能力弱,它的結(jié)果既可以作為后續(xù)分類模型的訓(xùn)練數(shù)據(jù) 1 也可以作為實(shí)體分類的一路重要分類結(jié)果。

    圖14 Topbase中用于實(shí)體分類的屬性規(guī)則配置頁面
    • 簡介分類模塊:簡介分類模塊以規(guī)則模塊的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),可以得到一個(gè)以簡介為實(shí)體分類依據(jù)的分類模型,然后基于該模型預(yù)測屬性規(guī)則模塊無法識(shí)別的實(shí)體,選擇高置信度的結(jié)果作為訓(xùn)練數(shù)據(jù) 2。

    • 自動(dòng)構(gòu)建的訓(xùn)練數(shù)據(jù)去噪模塊:基于規(guī)則和簡介分類模塊可以得到部分分類樣本,但是這些訓(xùn)練樣本不可避免的會(huì)引入噪聲,所以我們引入 N-折交叉訓(xùn)練預(yù)測自清洗數(shù)據(jù),進(jìn)一步保留高置信的訓(xùn)練樣本,清洗思路如下圖所示。

    圖15 實(shí)體分類訓(xùn)練數(shù)據(jù)自清洗流程
    • 運(yùn)營模塊:運(yùn)營模塊主要包括日常 badcase 收集以及標(biāo)注人員審核的預(yù)測置信度不高的樣本。運(yùn)營數(shù)據(jù)會(huì)結(jié)合自動(dòng)構(gòu)建數(shù)據(jù),聯(lián)合訓(xùn)練最終的實(shí)體分類模型。

    2) 實(shí)體分類的特征選擇

    • 屬性名稱:除了通用類的屬性名稱,如:中文名,別名,正文,簡介等,其他屬性名稱都作為特征;

    • 屬性值:不是所有的屬性值都是有助于實(shí)體分類,如性別的屬性值“男”或者“女”對(duì)區(qū)分該實(shí)體是“商業(yè)人物”和“娛樂人物”沒有幫助,但是職業(yè)的屬性值如“歌手”“CEO”等對(duì)于實(shí)體的細(xì)類別則有很強(qiáng)的指示作用,這些屬性值可以作為實(shí)體細(xì)分類的重要特征。一個(gè)屬性值是否需要加入他的屬性值信息,我們基于第一部分得到的訓(xùn)練數(shù)據(jù),利用特征選擇指標(biāo)如卡方檢驗(yàn)值,信息增益等進(jìn)行篩選。

    • 簡介:由于簡介內(nèi)容相對(duì)較長且信息冗余,并非用得越多越好。針對(duì)簡介的利用我們主要采用百科簡介中頭部幾句話中的主語是該實(shí)體的句子。

    3) 實(shí)體分類模型

    • 模型架構(gòu):基于 bert 預(yù)訓(xùn)練語言模型的多 Label 分類模型

    圖16 實(shí)體分類基礎(chǔ)模型
    • 模型輸入:我們針對(duì)上述特征進(jìn)行拼接作為 bert 的輸入,利用[sep]隔開實(shí)體的兩類信息,每一類信息用逗號(hào)隔開不同部分。第一類信息是實(shí)體名稱和實(shí)體簡介,刻畫了實(shí)體的一個(gè)基本描述內(nèi)容,第二類信息是實(shí)體的各種屬性,刻畫了實(shí)體的屬性信息。例如,劉德華的輸入形式如下:

      圖17 ?實(shí)體分類模型的輸入形式
    • 模型 loss:基于層次 loss 方式,實(shí)體 Label 是子類:父類 Label 要轉(zhuǎn)換為正例計(jì)算 loss;實(shí)體 Label 是父類:所有子類 label 以一定概率 mask 不產(chǎn)生負(fù)例 loss,避免訓(xùn)練數(shù)據(jù)存在的細(xì)類別漏召回問題。

    七、知識(shí)融合 - 實(shí)體對(duì)齊

    知識(shí)融合的目的是將不同來源的數(shù)據(jù)進(jìn)行合并處理。如從搜狗百科,體育頁面以及 QQ 音樂都獲取到了"姚明"信息,首先需要判斷這些來源的"姚明"是否指同一實(shí)體,如果是同一個(gè)實(shí)體(圖 18 中的搜狗和虎撲的姚明頁面)則可以將他們的信息進(jìn)行融合,如果不是(QQ 音樂的姚明頁面)則不應(yīng)該將其融合。知識(shí)融合的核心是實(shí)體對(duì)齊,即如何將不同來源的同一個(gè)實(shí)體進(jìn)行合并。

    圖18 ?知識(shí)融合示列說明

    1.?實(shí)體對(duì)齊挑戰(zhàn)

    • 不同來源實(shí)體的屬性信息重疊少,導(dǎo)致相似度特征稀疏,容易欠融合;

    圖19 ?來自于百科和旅游網(wǎng)站的武夷山頁面信息
    • 同系列作品(電影,電視劇)相似度高,容易過融合,如兩部還珠格格電視劇


    圖20 ?兩部還珠格格的信息內(nèi)容
    • 多路來源的實(shí)體信息量很大(億級(jí)別頁面),如果每次進(jìn)行全局融合計(jì)算復(fù)雜度高,而且會(huì)產(chǎn)生融合實(shí)體的 ID 漂移問題。

    2.?實(shí)體對(duì)齊的解決思路

    實(shí)體對(duì)齊的整體流程如圖所示,其主要環(huán)節(jié)包括數(shù)據(jù)分桶,桶內(nèi)實(shí)體相似度計(jì)算,桶內(nèi)實(shí)體的聚類融合。

    圖21 ?Topbase實(shí)體對(duì)齊流程圖

    1)數(shù)據(jù)分桶:數(shù)據(jù)分桶的目的是對(duì)所有的多源實(shí)體數(shù)據(jù)進(jìn)行一個(gè)粗聚類,粗聚類的方法基于簡單的規(guī)則對(duì)數(shù)據(jù)進(jìn)行分桶,具體規(guī)則主要是同名(原名或者別名相同)實(shí)體分在一個(gè)桶內(nèi),除了基于名稱匹配,我們還采用一些專有的屬性值進(jìn)行分桶,如出生年月和出生地一致的人物分在一個(gè)桶。

    2)實(shí)體相似度計(jì)算:實(shí)體相似度直接決定了兩個(gè)實(shí)體是否可以合并,它是實(shí)體對(duì)齊任務(wù)中的核心。為了解決相似屬性稀疏導(dǎo)致的欠融合問題,我們引入異構(gòu)網(wǎng)絡(luò)向量化表示的特征,為了解決同系列作品極其相似的過融合問題,我們引入了互斥特征。

    • 異構(gòu)網(wǎng)絡(luò)向量化表示特征:每個(gè)來源的數(shù)據(jù)可以構(gòu)建一個(gè)同源實(shí)體關(guān)聯(lián)網(wǎng)絡(luò),邊是兩個(gè)實(shí)體頁面之間的超鏈接,如下圖所示,百科空間可以構(gòu)建一個(gè)百科實(shí)體關(guān)聯(lián)網(wǎng)絡(luò),影視劇網(wǎng)站可以構(gòu)建一個(gè)影視劇網(wǎng)站的實(shí)體關(guān)聯(lián)網(wǎng)絡(luò)。不同空間的兩個(gè)實(shí)體,如果存在高重合度信息,容易判別二者相似度的兩個(gè)實(shí)體,可以建立映射關(guān)系(如影視劇網(wǎng)站的梁朝偉頁面和百科的梁朝偉頁面信息基本一致,則可以認(rèn)為二者是同一個(gè)實(shí)體,建立鏈接關(guān)系),這樣可以將多源異構(gòu)網(wǎng)絡(luò)進(jìn)行合并,梁朝偉和劉德華屬于連接節(jié)點(diǎn),兩個(gè)無間道重合信息少,則作為兩個(gè)獨(dú)立的節(jié)點(diǎn)。然后基于 deepwalk 方式得到多源異構(gòu)網(wǎng)絡(luò)的節(jié)點(diǎn)向量化表示特征。

    圖22 多源異構(gòu)網(wǎng)絡(luò)關(guān)聯(lián)圖
    • 文本相似特征:主要是針對(duì)存在簡介信息的實(shí)體,利用 bert 編碼得到向量,如果兩個(gè)實(shí)體都存在簡介信息,則將兩個(gè)簡介向量進(jìn)行點(diǎn)乘得到他們的文本相似度特征;

    • 基本特征:其他屬性的相似度特征,每一維表示屬性,每一維的值表示該屬性值的一個(gè) Jaccard 相似度;

    • 互斥特征:主要解決同系列作品及其相似的問題,人工設(shè)定的重要區(qū)分度特征,如電視劇的集數(shù),系列名,上映時(shí)間。

    • 最后,按照下圖結(jié)構(gòu)將上述相似度特征進(jìn)行融合預(yù)測兩兩實(shí)體是否是同一實(shí)體;

    圖23 實(shí)體對(duì)相似度打分模塊

    3) 相似實(shí)體的聚類合并:

    • Base 融合:在上述步驟的基礎(chǔ)上,我們采用層次聚類算法,對(duì)每一個(gè)桶的實(shí)體進(jìn)行對(duì)齊合并,得到 base 版的融合數(shù)據(jù),然后賦予每一個(gè)融合后的實(shí)體一個(gè)固定的 ID 值,這就得到了一個(gè) Base 的融合庫;

    • 增量融合:對(duì)于每日新增的實(shí)體頁面信息,我們不再重新進(jìn)行聚類處理,而是采用“貼”的模式,將每一個(gè)新增實(shí)體頁面和已有的融合實(shí)體進(jìn)行相似度計(jì)算,判斷該實(shí)體頁面應(yīng)該歸到哪一個(gè)融合實(shí)體中,如果相似度都低于設(shè)置的閾值,則該新增實(shí)體獨(dú)立成一堆,并設(shè)置一個(gè)新的融合實(shí)體 ID。增量融合的策略可以避免每次重復(fù)計(jì)算全量實(shí)體頁面的融合過程,方便數(shù)據(jù)及時(shí)更新,同時(shí)保證各個(gè)融合實(shí)體的穩(wěn)定性,不會(huì)輕易發(fā)生融合實(shí)體 ID 的漂移問題;

    • 融合拆解:由于 Base 融合可能存在噪聲,所以我們?cè)黾恿艘粋€(gè)融合的修復(fù)模塊,針對(duì)發(fā)現(xiàn)的 badcase,對(duì)以融合成堆的實(shí)體進(jìn)行拆解重新融合,這樣可以局部修復(fù)融合錯(cuò)誤,方便運(yùn)營以及批量處理 badcase。

    八、知識(shí)關(guān)聯(lián)和推理

    知識(shí)關(guān)聯(lián)(鏈接預(yù)測)是將實(shí)體的屬性值鏈接到知識(shí)庫的實(shí)體中,構(gòu)建一條關(guān)系邊,如圖 24 所示“三國演義”的作者屬性值是“羅貫中”字符串,知識(shí)關(guān)聯(lián)需要將該屬性值鏈接到知識(shí)庫中的實(shí)體“羅貫中”,這樣實(shí)體“三國演義”和“羅貫中”之間存在一條“作者”的關(guān)系邊。

    圖24 ?基于超鏈接關(guān)聯(lián)的示列說明

    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)頁中存在的超鏈接對(duì)知識(shí)圖譜中的實(shí)體進(jìn)行關(guān)聯(lián),如百科“三國演義”頁面中,其“作者”屬性鏈接到“羅貫中”的百科頁面(如圖 24 所示),基于這種超鏈接的跳轉(zhuǎn)關(guān)系,可以在 Topbase 的實(shí)體之間建立起一條邊關(guān)系,如該示列會(huì)在實(shí)體“三國演義”與“羅貫中”之間生成一條“作者”關(guān)系,而“曹操”并沒有該超鏈接,所以三國演義的主要人物屬性中的字符串“曹操”不會(huì)關(guān)聯(lián)到具體的實(shí)體頁面中。在進(jìn)行超鏈接關(guān)聯(lián)之前,Topbase 中的實(shí)體是一個(gè)個(gè)孤立的個(gè)體,超鏈接關(guān)聯(lián)為知識(shí)圖譜補(bǔ)充了第一批邊關(guān)系,但是超鏈接關(guān)聯(lián)無法保證鏈接的覆蓋率。

    基于此,Topbase 提出基于 embedding 的文本關(guān)聯(lián)?;?embedding 的文本關(guān)聯(lián)是在已知頭實(shí)體、關(guān)系的基礎(chǔ)上,在候選集中對(duì)尾實(shí)體進(jìn)行篩選,尾實(shí)體的候選集是通過別名匹配召回。如上述百科示列中的“主要人物”屬性,我們利用其屬性值字符串”曹操“去 Topbase 庫里匹配,召回所有和”曹操”同名稱的實(shí)體作為建立鏈接關(guān)系的候選。然后利用知識(shí)庫 embedding 的方法從候選實(shí)體中選擇最相似的實(shí)體作為他的鏈接實(shí)體?;谖谋久Q的匹配召回候選可以大大提高知識(shí)庫 embeding 方法的鏈接預(yù)測效果?;?embedding 的鏈接關(guān)系預(yù)測是通過模型將實(shí)體和關(guān)系的屬性信息、結(jié)構(gòu)信息嵌入到一個(gè)低維向量中去,利用低維向量去對(duì)缺失的尾實(shí)體進(jìn)行預(yù)測。

    當(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ù)測,對(duì)孤立實(shí)體或鏈接邊較少的實(shí)體預(yù)測效果較差。為了引入文本信息,解決模型對(duì)孤立實(shí)體預(yù)測的難題,模型使用 TextEnhanced 對(duì)文本信息進(jìn)行嵌入。TextEnhanced 通過 NN 模型對(duì)文本信息嵌入后,利用 Attention 機(jī)制將文本信息嵌入到 Trans 系列的實(shí)體向量中,進(jìn)而對(duì)尾實(shí)體進(jìn)行預(yù)測。

    圖25 ?TextEnhanced+TransE結(jié)構(gòu)圖

    由于知識(shí)關(guān)聯(lián)是在已知屬性值的前提下,通過名稱匹配的方式得到關(guān)聯(lián)實(shí)體的候選集,所以知識(shí)關(guān)聯(lián)無法補(bǔ)充缺失屬性值的鏈接關(guān)系。如上圖中“三國演義”的信息中并沒有“關(guān)羽”,知識(shí)推理目的是希望能夠挖掘“三國演義”和“關(guān)羽”的潛在關(guān)系。為了保證圖譜數(shù)據(jù)的準(zhǔn)確率,Topbase 的知識(shí)推理主要以規(guī)則推理為主,具體的規(guī)則方法可以歸納為以下幾類:

    • 伴隨推理是在已經(jīng)被鏈接的兩個(gè)實(shí)體之間,根據(jù)兩個(gè)實(shí)體的屬性信息,發(fā)現(xiàn)兩者間蘊(yùn)含的其它關(guān)系。例如實(shí)體 A 已經(jīng)通過“配偶”關(guān)系與實(shí)體 B 相連,實(shí)體 A 的性別為“男”,實(shí)體 B 的性別為“女”,則伴隨推理會(huì)生成一條“妻子”關(guān)系邊,將實(shí)體 A 與實(shí)體 B 鏈接在一起,代表 B 為 A 的妻子。伴隨推理的規(guī)則可以通過統(tǒng)計(jì)同時(shí)關(guān)聯(lián)起兩個(gè)實(shí)體的屬性共現(xiàn)比例得到。

    圖26 ?伴隨推理的示列說明表2 Topbase的伴隨推理規(guī)則庫示列
    • 反向推理是依據(jù)邊之間的互反關(guān)系,為已經(jīng)鏈接的兩個(gè)實(shí)體再添加一條邊。比如實(shí)體 A 通過“作者”邊與實(shí)體 B 相連,代表實(shí)體 B 是實(shí)體 A 的作者,則可以直接生成一條從實(shí)體 B 指向?qū)嶓w A 的“作品”邊,代表實(shí)體 A 是實(shí)體 B 的作品,因?yàn)椤白髌贰迸c“作者”是一條互反關(guān)系。反向推理與伴隨推理類似,都是在已經(jīng)存在邊關(guān)系的實(shí)體之間,挖掘新的邊關(guān)系,不同的是,伴隨推理在生成邊關(guān)系時(shí)需要滿足一定的屬性條件,如上例中的“性別”限制,而反向推理直接通過已有的邊關(guān)系,無需參考其它屬性值,直接生成一條互反邊關(guān)系。反向推理規(guī)則可以通過統(tǒng)計(jì) A-B,B-A 的屬性共現(xiàn)數(shù)量篩選。

    圖27 ?反向推理的示列說明表3 Topbase的反向關(guān)聯(lián)規(guī)則庫示列
    • 多實(shí)體推理是在多個(gè)實(shí)體之間挖掘蘊(yùn)含的邊關(guān)系,是一種更復(fù)雜的關(guān)聯(lián)規(guī)則,如第一種形式:A 的父親是 B,B 的母親是 C,則 A 的奶奶是 C,該形式通過統(tǒng)計(jì) A+PATH = C,A+R0=C,情況得到規(guī)則 ?[PATH(R1R2)=R0];第二種形式是 A 的母親是 B,A 的兒子 C,則 B 的孫子是 C,該形式通過統(tǒng)計(jì):A+R1 = B,A+R2=C,B+R0=C 的情況,得到規(guī)則[R1 &R2 = R0]。


    圖28 多實(shí)體推理的兩種形式示列說明

    九、實(shí)體知名度計(jì)算

    實(shí)體的知名度(Popularity)指標(biāo)可以用于量化不同實(shí)體的重要性程度,方便我們更好的使用圖譜數(shù)據(jù)。Topbase 知識(shí)庫的 popularity 計(jì)算以基于實(shí)體鏈接關(guān)系的 pagerank 算法為核心,以對(duì)新熱實(shí)體的 popularity 調(diào)整為輔,并配以直接的人工干預(yù)來快速解決 badcase。具體地,首先抽取實(shí)體頁面之間的超鏈接關(guān)系,以此為基礎(chǔ)通過修改后的 pagerank 算法來計(jì)算所有實(shí)體的 popularity;對(duì)于難以通過 pagerank 算法計(jì)算的新熱實(shí)體的 popularity,再進(jìn)行規(guī)則干預(yù)。最后對(duì)于仍然難以解決的 case,則直接對(duì)其 popularity 值進(jìn)行人工賦值。Popularity 計(jì)算模塊的整體流程如下圖所示:

    圖29 ?Topbase實(shí)體知名度計(jì)算流程
    • 多類型邊關(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)生的,只是簡單的表示它們之間有某種關(guān)系。比如歌手與專輯、音樂之間的各種關(guān)系。一個(gè)專業(yè)的音樂網(wǎng)站會(huì)收錄歌手、專輯、音樂之間的完整從屬關(guān)系,這會(huì)導(dǎo)致同一個(gè)歌手或同一張專輯之內(nèi)的熱門歌曲與其它歌曲之間沒有任何區(qū)分性。并且由于這幾類實(shí)體之間高密度的鏈接關(guān)系,會(huì)導(dǎo)致它們的計(jì)算結(jié)果比其它類別的實(shí)體的都高出很多。

      因此有必要對(duì)實(shí)體之間不同的鏈接關(guān)系進(jìn)行區(qū)別對(duì)待。與最基礎(chǔ)的 pagerank 算法的不同在于:實(shí)體之間可以有多條邊,且有多種類型的邊。在進(jìn)行迭代計(jì)算的過程中,不同類型的邊對(duì)流經(jīng)它的概率分布會(huì)有不同程度的擬制作用。之所以進(jìn)行這樣的修改,是因?yàn)橹R(shí)庫中實(shí)體的信息有多種不同的來源。有的實(shí)體來源于通用領(lǐng)域百科,有的實(shí)體來源于垂類領(lǐng)域網(wǎng)站等。甚至同一個(gè)實(shí)體內(nèi)部,不同的屬性信息也會(huì)有不同的來源。由此,實(shí)體之間的鏈接關(guān)系也會(huì)屬于不同的來源。比如“劉德華”與“朱麗倩”之間的“夫妻”關(guān)系可能抽取自百科,而與“無間道”之間的“參演”關(guān)系可能來自于電影網(wǎng)站。不同來源的信息有著不同的可信度,有的經(jīng)過人工的審核編輯,可信度很高;而有的則屬于算法自動(dòng)生成,會(huì)有不同程度的錯(cuò)誤。

      因此鏈接關(guān)系之間也有可信度的差別,無法做到將它們一視同仁地看待。其次,有的鏈接關(guān)系即使在可靠性方面完全正確,但它們對(duì)于 popularity 的正確計(jì)算不僅沒有太大幫助,反而會(huì)導(dǎo)致 popularity 的計(jì)算結(jié)果與預(yù)期不符。修改后的 pagerank 算法的計(jì)算過程與基礎(chǔ) pagerank 算法基本一致,只是在進(jìn)行分布概率的流轉(zhuǎn)時(shí)有所區(qū)別。下面進(jìn)行舉例說明:

    圖30 ?多類型邊的PageRank算法說明

    實(shí)體 A 指向?qū)嶓w B、C、D。其與 B 之間的鏈接類型為 X,與 C 之間的鏈接類型為 Y,與 D 之間的為 Z。通過先驗(yàn)知識(shí)或?qū)嶒?yàn)總結(jié),我們認(rèn)為鏈接類型 Y 可信性不高,相比于 X,對(duì) rank 值的流轉(zhuǎn)有擬制作用,因此對(duì)其賦予一個(gè)系數(shù) 0.8,Z 的可信度很準(zhǔn)確,但其性質(zhì)與上述的音樂網(wǎng)站的關(guān)系類似,因此對(duì)于其賦予一個(gè)系數(shù) 0.2,而 X 類型的完全可行,其系數(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。

    因此迭代過后,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)的熱門實(shí)體。這類實(shí)體需要較高的 popularity 值。但由于是新近出現(xiàn)的實(shí)體,其與其它實(shí)體的鏈接關(guān)系非常匱乏,因此無法通過基于實(shí)體鏈接關(guān)系的這類方法來計(jì)算。對(duì)此我們采取的方案側(cè)重于對(duì)新熱實(shí)體的發(fā)現(xiàn),然后對(duì)發(fā)現(xiàn)的新熱實(shí)體的 popularity 進(jìn)行調(diào)整,使其 popularity 值在同名實(shí)體中處于最高的位置。新熱實(shí)體的發(fā)現(xiàn)目前基于兩類方法:一類方法發(fā)現(xiàn)的熱門實(shí)體可以直接對(duì)應(yīng)到知識(shí)庫中的某個(gè)實(shí)體,另一個(gè)方法只能發(fā)現(xiàn)熱門的實(shí)體名,需要通過一些對(duì)齊方法與知識(shí)庫中的某個(gè)實(shí)體關(guān)聯(lián)起來。

      第一種方法從 Topbase 監(jiān)控的重點(diǎn)網(wǎng)站頁面中直接獲取最近熱門的實(shí)體。這種方法獲取的實(shí)體可以直接通過 url 與知識(shí)庫中的某個(gè)實(shí)體準(zhǔn)確無誤地關(guān)聯(lián)起來。第二類方法首先發(fā)現(xiàn)一些熱門的實(shí)體名,包括:一、從微博熱搜榜中爬取熱門話題,通過命名實(shí)體識(shí)別方法識(shí)別其中的人名和機(jī)構(gòu)名,將其作為熱門實(shí)體名;二、將新聞中每天曝光的高頻次標(biāo)簽作為實(shí)體名。以上兩種方法發(fā)現(xiàn)的實(shí)體名帶有一定的附加信息,通過實(shí)體鏈接可以將其對(duì)齊到知識(shí)庫中的某個(gè)實(shí)體。

    十、知識(shí)庫的存儲(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ù)說明

    Topbase 知識(shí)圖譜的存儲(chǔ)是基于分布式圖數(shù)據(jù)庫 JanusGraph,選擇 JanusGraph 的主要理由有:1)JanusGraph 完全開源,像 Neo4j 并非完全開源;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ù)寫入圖數(shù)據(jù)庫存儲(chǔ)服務(wù)中,以及相關(guān)索引建立。

    • 圖數(shù)據(jù)庫存儲(chǔ)服務(wù):JanusGraph數(shù)據(jù)存儲(chǔ)服務(wù)可以選用 ScyllaDb、HBase 等作為底層存儲(chǔ),topbase 選用的是 ScyllaDb。Graph_loader 會(huì)每天定時(shí)的將數(shù)據(jù)更新到圖數(shù)據(jù)庫存儲(chǔ)服務(wù)。

    • 圖數(shù)據(jù)庫索引:由于 JanusGraph 圖數(shù)據(jù)庫存儲(chǔ)服務(wù)只支持一些簡單查詢,如:“劉德華的歌曲”,但是無法支持復(fù)雜查詢,如多條件查詢:“劉德華的 1999 年發(fā)表的粵語歌曲”。所以我們利用 Es 構(gòu)建復(fù)雜查詢的數(shù)據(jù)索引,graph_loader 除了批量寫入數(shù)據(jù)到底層存儲(chǔ)之外,還會(huì)建立基于復(fù)雜查詢的索引。

    • 圖數(shù)據(jù)庫主服務(wù):主服務(wù)通過 Gremlin 語句對(duì)圖數(shù)據(jù)庫的相關(guān)內(nèi)容進(jìn)行查詢或者改寫等操作。

    十一、總結(jié)

    由于知識(shí)圖譜的構(gòu)建是一項(xiàng)龐大的數(shù)據(jù)工程,其中各環(huán)節(jié)涉及的技術(shù)細(xì)節(jié)無法在一篇文檔中面面俱到。本文主要梳理 Topbase 構(gòu)建過程中的技術(shù)經(jīng)驗(yàn),從 0 到 1 的介紹了圖譜構(gòu)建流程,希望對(duì)圖譜建設(shè)者有一定的借鑒意義。

    總結(jié)

    以上是生活随笔為你收集整理的万字详解:腾讯如何自研大规模知识图谱 Topbase的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。