自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面向推薦的汽車知識(shí)圖譜構(gòu)建

原創(chuàng) 精選
人工智能 知識(shí)圖譜
目前,隨著人工智能技術(shù)的高速發(fā)展,知識(shí)圖譜已廣泛應(yīng)用于搜索、推薦、廣告、風(fēng)控、智能調(diào)度、語音識(shí)別、機(jī)器人等多個(gè)領(lǐng)域。我們主要圍繞推薦,介紹了圖譜構(gòu)建詳細(xì)流程,對其中的困難和挑戰(zhàn)做出了分析。同時(shí)也綜述了很多重要的工作,以及給出了具體的解決方案,思路以及建議。

背景

1、引言

知識(shí)圖譜的概念,最早由 Google 在2012 年提出, 旨在實(shí)現(xiàn)更智能的搜索引擎,并在2013年之后開始在學(xué)術(shù)界和工業(yè)級(jí)普及。目前,隨著人工智能技術(shù)的高速發(fā)展,知識(shí)圖譜已廣泛應(yīng)用于搜索、推薦、廣告、風(fēng)控、智能調(diào)度、語音識(shí)別、機(jī)器人等多個(gè)領(lǐng)域。

2、發(fā)展現(xiàn)狀

知識(shí)圖譜作為人工智能的核心技術(shù)驅(qū)動(dòng)力,能緩解深度學(xué)習(xí)依賴海量訓(xùn)練數(shù)據(jù)、大規(guī)模算力的問題,它能夠廣泛適配不同的下游任務(wù),且具有良好的解釋性,因此,全球大型互聯(lián)網(wǎng)公司都在積極部署本企業(yè)的知識(shí)圖譜。

例如2013年Facebook發(fā)布Open Graph,應(yīng)用于社交網(wǎng)絡(luò)智能搜索;2014年百度推出的知識(shí)圖譜,主要應(yīng)用于搜索、助理、及toB商業(yè)場景;2015年阿里推出的商品知識(shí)圖譜,在前端導(dǎo)購、平臺(tái)治理和智能問答等業(yè)務(wù)上起到關(guān)鍵作用;騰訊于2017年推出的騰訊云知識(shí)圖譜,有效助力于金融搜索、實(shí)體風(fēng)險(xiǎn)預(yù)測等場景;美團(tuán)于2018年推出的美團(tuán)大腦知識(shí)圖譜,已經(jīng)在智能搜索推薦、智能商戶運(yùn)營等多個(gè)業(yè)務(wù)中落地。

3、目標(biāo)及收益

目前,領(lǐng)域圖譜主要集中在電商、醫(yī)療、金融等商業(yè)領(lǐng)域,而關(guān)于汽車知識(shí)的語義網(wǎng)絡(luò)及知識(shí)圖譜構(gòu)建缺少系統(tǒng)性的指導(dǎo)方法。本文以汽車領(lǐng)域知識(shí)為例,圍繞車系、車型、經(jīng)銷商、廠商、品牌等實(shí)體及相互關(guān)系,提供一種從零搭建領(lǐng)域圖譜的思路,并對搭建知識(shí)圖譜中的步驟及方法進(jìn)行了詳細(xì)說明,以及介紹了基于本圖譜的幾個(gè)典型落地應(yīng)用。

其中,數(shù)據(jù)源采用汽車之家網(wǎng)站,汽車之家是由導(dǎo)購、資訊、評(píng)測、口碑等多個(gè)板塊組成的汽車服務(wù)類平臺(tái),在看、買、用等維度積累了大量的汽車數(shù)據(jù),通過構(gòu)建知識(shí)圖譜把以汽車為核心的內(nèi)容進(jìn)行組織和挖掘,提供豐富的知識(shí)信息,結(jié)構(gòu)化精準(zhǔn)刻畫興趣,支持推薦用戶冷啟、召回、排序、展示等多個(gè)維度,給業(yè)務(wù)提升帶來效果。

 二、圖譜構(gòu)建

1、構(gòu)建的挑戰(zhàn)

       知識(shí)圖譜是真實(shí)世界的語義表示,,其基本組成單位是【實(shí)體-關(guān)系-實(shí)體】,【實(shí)體-屬性-屬性值】的三元組(Triplet),實(shí)體之間通過關(guān)系相互聯(lián)結(jié),從而構(gòu)成語義網(wǎng)絡(luò)。圖譜構(gòu)建中會(huì)面臨較大的挑戰(zhàn),但構(gòu)建之后,可在數(shù)據(jù)分析、推薦計(jì)算、可解釋性等多個(gè)場景展現(xiàn)出豐富的應(yīng)用價(jià)值。

構(gòu)建挑戰(zhàn):

  • schema難定義:目前尚無統(tǒng)一成熟的本體構(gòu)建流程,且特定領(lǐng)域本體定義通常需專家參與;
  • 數(shù)據(jù)類型異構(gòu):通常情況下,一個(gè)知識(shí)圖譜構(gòu)建中面對的數(shù)據(jù)源不會(huì)是單一類型,包含結(jié)構(gòu)化、半結(jié)構(gòu)化,及非結(jié)構(gòu)化數(shù)據(jù),面對結(jié)構(gòu)各異的數(shù)據(jù),知識(shí)轉(zhuǎn)模及挖掘的難度較高;
  • 依賴專業(yè)知識(shí):領(lǐng)域知識(shí)圖譜通常依賴較強(qiáng)的專業(yè)知識(shí),例如車型對應(yīng)的維修方法,涉及機(jī)械、電工、材料、力學(xué)等多個(gè)領(lǐng)域知識(shí),且此類關(guān)系對于準(zhǔn)確度的要求較高,需要保證知識(shí)足夠正確,因此也需要較好的專家和算法相結(jié)合的方式來進(jìn)行高效的圖譜構(gòu)建;
  • 數(shù)據(jù)質(zhì)量無保證:挖掘或抽取信息需要知識(shí)融合或人工校驗(yàn),才能作為知識(shí)助力下游應(yīng)用。

收益:

  • 知識(shí)圖譜統(tǒng)一知識(shí)表示:通過整合多源異構(gòu)數(shù)據(jù),形成統(tǒng)一視圖;
  • 語義信息豐富:通過關(guān)系推理可以發(fā)現(xiàn)新關(guān)系邊,獲得更豐富的語義信息;
  • 可解釋性強(qiáng):顯式的推理路徑對比深度學(xué)習(xí)結(jié)果具有更強(qiáng)的解釋性;
  • 高質(zhì)量且能不斷積累:根據(jù)業(yè)務(wù)場景設(shè)計(jì)合理的知識(shí)存儲(chǔ)方案,實(shí)現(xiàn)知識(shí)更新和累積。

2、圖譜架構(gòu)設(shè)計(jì)

技術(shù)架構(gòu)主要分為構(gòu)建層、存儲(chǔ)層及應(yīng)用層三大層,架構(gòu)圖如下:

  • 構(gòu)建層:包括schema定義,結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)模,非結(jié)構(gòu)化數(shù)據(jù)挖掘,以及知識(shí)融合;
  • 存儲(chǔ)層:包括知識(shí)的存儲(chǔ)和索引,知識(shí)更新,元數(shù)據(jù)管理,以及支持基本的知識(shí)查詢;
  • 服務(wù)層:包括智能推理、結(jié)構(gòu)化查詢等業(yè)務(wù)相關(guān)的下游應(yīng)用層。

3、具體構(gòu)建步驟及流程

依據(jù)架構(gòu)圖,具體構(gòu)建流程可分為四步:本體設(shè)計(jì)、知識(shí)獲取、知識(shí)入庫,以及應(yīng)用服務(wù)設(shè)計(jì)及使用。

3.1 本體構(gòu)建

本體(Ontology)是公認(rèn)的概念集合,本體的構(gòu)建是指依據(jù)本體的定義,構(gòu)建出知識(shí)圖譜的本體結(jié)構(gòu)和知識(shí)框架。

基于本體構(gòu)建圖譜的原因主要有以下幾點(diǎn):

  • 明確專業(yè)術(shù)語、關(guān)系及其領(lǐng)域公理,當(dāng)一條數(shù)據(jù)必須滿足Schema預(yù)先定義好的實(shí)體對象和類型后,才允許被更新到知識(shí)圖譜中。
  • 將領(lǐng)域知識(shí)與操作性知識(shí)分離,通過Schema可以宏觀了解圖譜架構(gòu)及相關(guān)定義,無須再從三元組中歸納整理。
  • 實(shí)現(xiàn)一定程度的領(lǐng)域知識(shí)復(fù)用。在構(gòu)建本體之前,可以先調(diào)研是否有相關(guān)本體已經(jīng)被構(gòu)建出來了,這樣可以基于已有本體進(jìn)行改進(jìn)和擴(kuò)展,達(dá)到事半功倍的效果。
  • 基于本體的定義,可以避免圖譜與應(yīng)用脫節(jié),或者修改圖譜schema比重新構(gòu)建成本還要高的情況。例如將“寶馬x3”、“2022款寶馬x3”都作為汽車類實(shí)體來儲(chǔ)存,在應(yīng)用時(shí)都可能造成實(shí)例關(guān)系混亂、可用性差的問題,這種情況可以在設(shè)本體計(jì)階段,通過將“汽車類實(shí)體”進(jìn)行“車系”、“車型”子類細(xì)分的方法來避免。

按照知識(shí)的覆蓋面來看,知識(shí)圖譜可以劃分為通用知識(shí)圖譜和領(lǐng)域知識(shí)圖譜,目前通用知識(shí)圖譜已有較多案例,例如Google的Knowledge Graph、微軟的Satori和Probase等,領(lǐng)域圖譜則為金融、電商等具體行業(yè)圖譜。通用圖譜更注重廣度,強(qiáng)調(diào)融合更多的實(shí)體數(shù)量,但對精確度的要求不高,很難借助本體庫對公理、規(guī)則及約束條件進(jìn)行推理和使用;而領(lǐng)域圖譜的知識(shí)覆蓋范圍較小,但知識(shí)深度更深,往往是在某一專業(yè)領(lǐng)域上的構(gòu)建。

考慮對準(zhǔn)確率的要求,領(lǐng)域本體構(gòu)建多傾向于手工構(gòu)建的方式,例如代表性的七步法、IDEF5方法等[1],該類方法的核心思想是,基于已有結(jié)構(gòu)化數(shù)據(jù),進(jìn)行本體分析,將符合應(yīng)用目的和范圍的本體進(jìn)行歸納及構(gòu)建,再對本體進(jìn)行優(yōu)化和驗(yàn)證,從而獲取初版本體定義。若想獲取更大范疇的領(lǐng)域本體,則可以從非結(jié)構(gòu)化語料中補(bǔ)充,考慮手工構(gòu)建過程較大,本文以汽車領(lǐng)域?yàn)槔峁┮环N半自動(dòng)本體構(gòu)建的方式,詳細(xì)步驟如下:

  • 首先收集大量汽車非結(jié)構(gòu)化語料(例如車系咨詢、新車導(dǎo)購文章等),作為初始個(gè)體概念集,利用統(tǒng)計(jì)方法或無監(jiān)督模型(TF-IDF、BERT等)獲取字特征和詞特征;
  • 其次利用BIRCH聚類算法對概念間層次劃分,初步構(gòu)建起概念間層級(jí)關(guān)系,并對聚類結(jié)果進(jìn)行人工概念校驗(yàn)和歸納,獲取本體的等價(jià)、上下位概念;
  • 最后使用卷積神經(jīng)網(wǎng)絡(luò)結(jié)合遠(yuǎn)程監(jiān)督的方法,抽取本體屬性的實(shí)體關(guān)系,并輔以人工識(shí)別本體中的類及屬性的概念,構(gòu)建起汽車領(lǐng)域本體。

上述方法可有效利用BERT等深度學(xué)習(xí)的技術(shù),更好地捕捉語料間的內(nèi)部關(guān)系,使用聚類分層次對本體各模塊進(jìn)行構(gòu)建,輔以人工干預(yù),能夠快速、準(zhǔn)確的完成初步本體構(gòu)建。下圖為半自動(dòng)化本體構(gòu)建示意圖:

利用Protégé本體構(gòu)建工具[2],可以進(jìn)行本體概念類、關(guān)系、屬性和實(shí)例的構(gòu)建,下圖為本體構(gòu)建可視化示例圖:

本文將汽車領(lǐng)域的頂層本體概念劃分為三類,實(shí)體、事件及標(biāo)簽體系:

1)實(shí)體類代表特定意義的概念類實(shí)體,包括詞匯實(shí)體和汽車類實(shí)體,其中汽車類實(shí)體又包括組織機(jī)構(gòu)和汽車概念等子實(shí)體類型;

2)標(biāo)簽體系代表各個(gè)維度的標(biāo)簽體系,包括內(nèi)容分類、概念標(biāo)簽、興趣標(biāo)簽等以物料維度刻畫的標(biāo)簽;

3)事件類代表一個(gè)或多個(gè)角色的客觀事實(shí),不同類型事件間具有演變關(guān)系。

Protégé可以導(dǎo)出不同類型的Schema配置文件,其中owl.xml結(jié)構(gòu)配置文件如下圖所示。該配置文件可直接在MYSQL、JanusGraph中加載使用,實(shí)現(xiàn)自動(dòng)化的創(chuàng)建Schema。

3.2 知識(shí)獲取

知識(shí)圖譜的數(shù)據(jù)來源通常包括三類數(shù)據(jù)結(jié)構(gòu),分別為結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)。 面向不同類型的數(shù)據(jù)源,知識(shí)抽取涉及的關(guān)鍵技術(shù)和需要解決的技術(shù)難點(diǎn)有所不同。

3.2.1 結(jié)構(gòu)化知識(shí)轉(zhuǎn)模

結(jié)構(gòu)化數(shù)據(jù)是圖譜最直接的知識(shí)來源,基本通過初步轉(zhuǎn)換就可以使用,相較其他類型數(shù)據(jù)成本最低,所以一般圖譜數(shù)據(jù)優(yōu)先考慮結(jié)構(gòu)化數(shù)據(jù)。結(jié)構(gòu)化數(shù)據(jù)可能涉及多個(gè)數(shù)據(jù)庫來源,通常需要使用ETL方法轉(zhuǎn)模,ETL即Extract(抽?。ransform(轉(zhuǎn)換)、Load(裝載),抽取是將數(shù)據(jù)從各種原始的業(yè)務(wù)系統(tǒng)中讀取出來,這是所有工作的前提;轉(zhuǎn)換是按照預(yù)先設(shè)計(jì)好的規(guī)則將抽取的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,使本來異構(gòu)的數(shù)據(jù)格式可以統(tǒng)一起來;裝載是將轉(zhuǎn)換完的數(shù)據(jù)按計(jì)劃增量或全部導(dǎo)入到數(shù)據(jù)倉庫中。

通過上述ETL流程可將不同源數(shù)據(jù)落到中間表,從而方便后續(xù)的知識(shí)入庫。下圖為車系實(shí)體屬性、關(guān)系表示例圖:

車系與品牌關(guān)系表:

3.2.2 非結(jié)構(gòu)化知識(shí)抽取-三元組抽取

除了結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)中也存在著海量的知識(shí)(三元組)信息。一般來說企業(yè)的非結(jié)構(gòu)化數(shù)據(jù)量要遠(yuǎn)大于結(jié)構(gòu)化數(shù)據(jù),挖掘非結(jié)構(gòu)化知識(shí)能夠極大拓展和豐富知識(shí)圖譜。

三元組抽取算法的挑戰(zhàn)

問題1:單個(gè)領(lǐng)域內(nèi),?檔內(nèi)容和格式多樣,需要?量的標(biāo)注數(shù)據(jù),成本?

問題2:領(lǐng)域之間遷移的效果不夠好,跨領(lǐng)域的可規(guī)模化拓展的代價(jià)?

模型基本都是針對特定?業(yè)特定場景,換?個(gè)場景,效果會(huì)出現(xiàn)明顯下降。

解決思路,Pre-train+ Finetune的范式,預(yù)訓(xùn)練:重量級(jí)底座讓模型“?多識(shí)?”充分利??規(guī)模多?業(yè)的?標(biāo)?檔,訓(xùn)練?個(gè)統(tǒng)?的預(yù)訓(xùn)練底座,增強(qiáng)模型對各類?檔的表示和理解能?。

微調(diào):輕量級(jí)?檔結(jié)構(gòu)化算法。在預(yù)訓(xùn)練基礎(chǔ)上,構(gòu)建輕量級(jí)的?向?檔結(jié)構(gòu)化的算法,降低標(biāo)注成本。

針對?檔的預(yù)訓(xùn)練?法

現(xiàn)有關(guān)于?檔的預(yù)訓(xùn)練模型,如果文本較短的類型,Bert可以完全編碼整篇?檔;?我們實(shí)際的?檔通常?較?,需要抽取的屬性值有很多是超過1024個(gè)字的,Bert進(jìn)?編碼會(huì)造成屬性值截?cái)唷?/p>

針對長文本預(yù)訓(xùn)練方法優(yōu)點(diǎn)和不足

Sparse Attention的?法通過優(yōu)化Self-Attention,將O(n2)的計(jì)算優(yōu)化?O(n),??提?了輸??本?度。雖然普通模型的?本?度從512提升到4096,但是依舊不能完全解決截?cái)?本的碎?化問題。百度提出了ERNIE-DOC[3]使用了Recurrence Transformer方法,理論上可以建模?限?的?本。由于建模要輸?所有的?本信息,耗時(shí)?常?。

上述兩種基于??本的預(yù)訓(xùn)練?法,都沒有考慮?檔特性,如空間(Spartial)、視覺(Visual)等信息。并且基于?本設(shè)計(jì)的PretrainTask,整體是針對純?本進(jìn)?的設(shè)計(jì),?沒有針對?檔的邏輯結(jié)構(gòu)設(shè)計(jì)。

針對上述不足這里介紹一種??檔預(yù)訓(xùn)練模型DocBert[4],DocBert模型設(shè)計(jì):

使??規(guī)模(百萬級(jí))?標(biāo)注?檔數(shù)據(jù)進(jìn)?預(yù)訓(xùn)練,基于?檔的?本語義(Text)、版?信息(Layout)、視覺特征(Visual)構(gòu)建?監(jiān)督學(xué)習(xí)任務(wù),使模型更好地理解?檔語義和結(jié)構(gòu)信息。

1.Layout-Aware MLM:在Mask語?模型中考慮?本的位置、字體??信息,實(shí)現(xiàn)?檔布局感知的語義理解。

2.Text-Image Alignment:融合?檔視覺特征,重建圖像中被Mask的?字,幫助模型學(xué)習(xí)?本、版?、圖像不同模態(tài)間的對?關(guān)系。

3.Title Permutation:以?監(jiān)督的?式構(gòu)建標(biāo)題重建任務(wù),增強(qiáng)模型對?檔邏輯結(jié)構(gòu)的理解能?。

4.Sparse Transformer Layers:?Sparse Attention的?法,增強(qiáng)模型對??檔的處理能?。

3.2.3 挖掘概念,興趣詞標(biāo)簽,關(guān)聯(lián)到車系、實(shí)體

除了結(jié)構(gòu)化和非結(jié)構(gòu)化文本中獲取三元組,汽車之家還挖掘物料所包含的分類、概念標(biāo)簽和興趣關(guān)鍵詞標(biāo)簽,并建立物料和車實(shí)體之間的關(guān)聯(lián),為汽車知識(shí)圖譜帶來新的知識(shí)。下面從分類、概念標(biāo)簽、興趣詞標(biāo)簽來介紹汽車之家所做的內(nèi)容理解部分工作以及思考。

分類體系作為內(nèi)容刻畫基礎(chǔ),對物料進(jìn)行粗粒度的劃分。建立的統(tǒng)一的內(nèi)容體系更多的是基于人工定義的方式,通過AI模型進(jìn)行劃分。在分類方法上我們我們采用了主動(dòng)學(xué)習(xí),對于比較難分的數(shù)據(jù)進(jìn)行標(biāo)注,同時(shí)采用數(shù)據(jù)增強(qiáng),對抗訓(xùn)練,以及關(guān)鍵詞融合方式提高分類的效果。

概念標(biāo)簽粒度介于分類和興趣詞標(biāo)簽之間,比分類粒度更細(xì),同時(shí)比興趣詞對于興趣點(diǎn)刻畫更加完整,我們建立了車視野、人視野、內(nèi)容視野三個(gè)維度,豐富了標(biāo)簽維度,細(xì)化了標(biāo)簽粒度。豐富且具體的物料標(biāo)簽,更加方便搜索推薦基于標(biāo)簽的模型優(yōu)化,且可用于標(biāo)簽外展起到吸引用戶及二次引流等作用。概念標(biāo)簽的挖掘,結(jié)合在query等重要數(shù)據(jù)上采用機(jī)器挖掘方式,并對概括性進(jìn)行分析,通過人工review,拿到概念標(biāo)簽集合,采用多標(biāo)簽?zāi)P头诸悺?/p>

興趣詞標(biāo)簽是最細(xì)粒度的標(biāo)簽,映射為用戶興趣,根據(jù)不同用戶興趣偏好進(jìn)可以更好的進(jìn)行行個(gè)性化推薦。關(guān)鍵詞的挖掘采用多種興趣詞挖掘相結(jié)合的方式,包括Keybert提取關(guān)鍵子串,并結(jié)合TextRank、positionRank、singlerank、TopicRank、MultipartiteRank等+句法分析多種方法,產(chǎn)生興趣詞候選。

挖掘出來的詞,相似度比較高,需要對同義詞進(jìn)行識(shí)別,需要提升人工的效率,因此我們也通過聚類進(jìn)行自動(dòng)化語義相似識(shí)別。用于聚類的特征有word2vec,bert embding等其他人工特征。然后使用聚類方法,最后經(jīng)過人工矯正我們離線產(chǎn)生了一批高質(zhì)量的關(guān)鍵詞。

對于不同粒度的標(biāo)簽還是在物料層面的,我們需要把標(biāo)簽和車建立起關(guān)聯(lián),首先我們分別計(jì)算出標(biāo)題\文章的所屬標(biāo)簽,然后識(shí)別出標(biāo)題\文章內(nèi)的實(shí)體,得到若干標(biāo)簽-實(shí)體偽標(biāo)簽,最后根據(jù)大量的語料,共現(xiàn)概率高的標(biāo)簽就會(huì)標(biāo)記為該實(shí)體的標(biāo)簽。通過以上三個(gè)任務(wù),我們在獲得了豐富且海量的標(biāo)簽。對車系、實(shí)體關(guān)聯(lián)上這些標(biāo)簽,會(huì)極大豐富我們的汽車圖譜,建立了媒體和用戶的關(guān)注車標(biāo)簽。

3.2.4人效提升:

伴隨著更大規(guī)模的訓(xùn)練樣本,如何獲得更好的模型質(zhì)量,如何解決標(biāo)注成本高,標(biāo)注周期長成為亟待解決的問題。首先我們可以使用半監(jiān)督學(xué)習(xí),利用海量未標(biāo)注數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練。然后采用主動(dòng)學(xué)習(xí)方式,最大化標(biāo)注數(shù)據(jù)的價(jià)值,迭代選擇高信息量樣本進(jìn)行標(biāo)注。最后可以利用遠(yuǎn)程監(jiān)督,發(fā)揮已有知識(shí)的價(jià)值,發(fā)覺任務(wù)之間的相關(guān)性。例如在有了圖譜和標(biāo)題后,可以用遠(yuǎn)程監(jiān)督的方法基于圖譜構(gòu)造NER訓(xùn)練數(shù)據(jù)。

3.3 知識(shí)入庫

知識(shí)圖譜中的知識(shí)是通過RDF結(jié)構(gòu)來進(jìn)行表示的,其基本單元是事實(shí)。每個(gè)事實(shí)是一個(gè)三元組(S, P, O),在實(shí)際系統(tǒng)中,按照存儲(chǔ)方式的不同,知識(shí)圖譜的存儲(chǔ)可以分為基于RDF表結(jié)構(gòu)的存儲(chǔ)和基于屬性圖結(jié)構(gòu)的存儲(chǔ)。圖庫更多是采用屬性圖結(jié)構(gòu)的存儲(chǔ),常見的存儲(chǔ)系統(tǒng)有Neo4j、JanusGraph、OritentDB、InfoGrid等。

圖數(shù)據(jù)庫選擇

通過JanusGraph 與 Neo4J、ArangoDB、OrientDB 這幾種主流圖數(shù)據(jù)庫的對比,我們最終選擇JanusGraph 作為項(xiàng)目的圖數(shù)據(jù)庫,之所以選擇 JanusGraph,主要有以下原因:

  • 基于 Apache 2 許可協(xié)議開放源碼,開放性好。
  • 支持使用 Hadoop 框架進(jìn)行全局圖分析和批量圖處理。
  • 支持很大的并發(fā)事務(wù)處理和圖操作處理。通過添加機(jī)器橫向擴(kuò)展 JanusGraph 的事務(wù) 處理能力,可以在毫秒級(jí)別相應(yīng)大圖的復(fù)雜查詢。
  • 原生支持 Apache TinkerPop 描述的當(dāng)前流行的屬性圖數(shù)據(jù)模型。
  • 原生支持圖遍歷語言 Gremlin。
  • 下圖是主流圖數(shù)據(jù)庫對比:
Janusgraph介紹

JanusGraph[5]是一個(gè)圖形數(shù)據(jù)庫引擎。其本身專注于緊湊圖序列化、豐富圖數(shù)據(jù)建模、高效的查詢執(zhí)行。圖庫schema 構(gòu)成可以用下面一個(gè)公式來表示:

janusgraph schema = vertex label + edge label + property keys

這里值得注意的是property key通常用于graph index。

為了更好的圖查詢性能janusgraph建立了索引,索引分為Graph Index,Vertex-centric Indexes。Graph Index包含組合索引(Composite Index)和混合索引(Mixed Index).

組合索引僅限相等查找。(組合索引不需要配置外部索引后端,通過主存儲(chǔ)后端支持(當(dāng)然也可以配置hbase,Cassandra,Berkeley))

舉例:

mgmt.buildIndex('byNameAndAgeComposite', Vertex.class).addKey(name).addKey(age).buildCompositeIndex() #構(gòu)建一個(gè)組合索引“name-age”
g.V().has('age', 30).has('name', '小明')#查找 名字為小明年齡30的節(jié)點(diǎn)

混合索引需要ES作為后端索引以支持除相等以外的多條件查詢(也支持相等查詢,但相等查詢,組合索引更快)。根據(jù)是否需要分詞分為full-text search,和string search

JanusGraph數(shù)據(jù)存儲(chǔ)模型

了解Janusgraph存儲(chǔ)數(shù)據(jù)的方式,有助于我們更好的利用該圖庫。JanusGraph 以鄰接列表格式存儲(chǔ)圖形,這意味著圖形存儲(chǔ)為頂點(diǎn)及其鄰接列表的集合。
頂點(diǎn)的鄰接列表包含頂點(diǎn)的所有入射邊(和屬性)。

JanusGraph 將每個(gè)鄰接列表作為一行存儲(chǔ)在底層存儲(chǔ)后端中。 (64 位)頂點(diǎn) ID(JanusGraph 唯一分配給每個(gè)頂點(diǎn))是指向包含頂點(diǎn)鄰接列表的行的鍵。
每個(gè)邊和屬性都存儲(chǔ)為行中的一個(gè)單獨(dú)的單元格,允許有效的插入和刪除。 因此,特定存儲(chǔ)后端中每行允許的最大單元數(shù)也是JanusGraph 可以針對該后端支持的頂點(diǎn)的最大度數(shù)。

如果存儲(chǔ)后端支持key-order,則鄰接表將按頂點(diǎn) id 排序,JanusGraph可以分配頂點(diǎn) id,以便對圖進(jìn)行有效分區(qū)。 分配 id 使得經(jīng)常共同訪問的頂點(diǎn)具有絕對差異小的 id。

3.4 圖譜查詢服務(wù)

Janusgraph進(jìn)行圖搜索用的是gremlin語言,我們提供了統(tǒng)一的圖譜查詢服務(wù),外部使用不用關(guān)心gremlin語言的具體實(shí)現(xiàn),采用通用的接口進(jìn)行查詢。我們分為三個(gè)接口:條件搜索接口,以節(jié)點(diǎn)為中心向外查詢,和節(jié)點(diǎn)間路徑查詢接口。下面是幾個(gè)gremlin實(shí)現(xiàn)的例子:

  • 條件搜索查詢10萬左右,銷量最高的車:
g.V().has('price',gt(8)).has('price',lt(12)).order().by('sales',desc).valueMap().limit(1)

輸出:

==>{name=[xuanyi], price=[10], sales=[45767]}

軒逸銷量最高,為45767

  • 以節(jié)點(diǎn)為中心向外查詢查詢以小明為中心,2度的節(jié)點(diǎn)
g.V(xiaoming).repeat(out()).times(2).valueMap()


  • 節(jié)點(diǎn)間路徑查詢薦給小明推薦兩篇文章,這兩篇文章分別介紹的是卡羅拉和軒逸,查詢小明和 這兩篇文章的路徑:
g.V(xiaoming).repeat(out().simplePath()).until(or(has("car",'name', 'kaluola'),has("car", 'name','xuanyi'))).path().by("name")

輸出

==>path[xiaoming, around 10w, kaluola]
==>path[xiaoming, around 10w, xuanyi]

發(fā)現(xiàn)小明和這兩篇文章之間有個(gè)節(jié)點(diǎn)“10萬左右”

三、知識(shí)圖譜在推薦的應(yīng)用

知識(shí)圖譜中存在大量的非歐式數(shù)據(jù),基于KG的推薦應(yīng)用有效利用非歐式數(shù)據(jù)提升推薦系統(tǒng)準(zhǔn)確度,進(jìn)而讓推薦系統(tǒng)能達(dá)到傳統(tǒng)系統(tǒng)所無法達(dá)到的效果?;贙G的推薦可以分成以三類,基于KG表征技術(shù)(KGE)、基于路徑的方法、圖神經(jīng)網(wǎng)絡(luò)。本章將從KG在推薦系統(tǒng)中冷啟、理由、排序三方面的應(yīng)用和論文進(jìn)行介紹。

3.1 知識(shí)圖譜在推薦冷啟動(dòng)的應(yīng)用

知識(shí)圖譜能夠從user-item交互中建模KG中隱藏的高階關(guān)系,很好地解決了因用戶調(diào)用有限數(shù)量的行為而導(dǎo)致的數(shù)據(jù)稀疏性,進(jìn)而可以應(yīng)用在解決冷啟動(dòng)問題。這一問題業(yè)界也有相關(guān)研究。

Sang 等[6]提出了一種雙通道神經(jīng)交互方法,稱為知識(shí)圖增強(qiáng)的殘差遞歸神經(jīng)協(xié)同過濾(KGNCF-RRN),該方法利用KG上下文的長期關(guān)系依賴性和用戶項(xiàng)交互進(jìn)行推薦。

(1)對于KG上下文交互通道,提出了殘差遞歸網(wǎng)絡(luò)(RRN)來構(gòu)造基于上下文的路徑嵌入,將殘差學(xué)習(xí)融入傳統(tǒng)的遞歸神經(jīng)網(wǎng)絡(luò)(RNN)中,以有效地編碼KG的長期關(guān)系依賴。然后將自關(guān)注網(wǎng)絡(luò)應(yīng)用于路徑嵌入,以捕獲各種用戶交互行為的多義。

(2)對于用戶項(xiàng)目交互通道,用戶和項(xiàng)目嵌入被輸入到新設(shè)計(jì)的二維交互圖中。

(3)最后,在雙通道神經(jīng)交互矩陣之上,使用卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)用戶和項(xiàng)目之間的復(fù)雜相關(guān)性。該方法能捕捉豐富的語義信息,還能捕捉用戶與項(xiàng)目之間復(fù)雜的隱含關(guān)系,用于推薦。

Du Y等[7]提出了一種新的基于元學(xué)習(xí)框架的冷啟問題解決方案MetaKG,包括collaborative-aware meta learner和knowledge-aware meta learner,捕捉用戶的偏好和實(shí)體冷啟動(dòng)知識(shí)。collaborative-aware meta learner學(xué)習(xí)任務(wù)旨在聚合每個(gè)用戶的偏好知識(shí)表示。相反,knowledge-aware meta learner學(xué)習(xí)任務(wù)要在全局泛化不同的用戶偏好知識(shí)表示。在兩個(gè)learner的指導(dǎo)下,MetaKG可以有效地捕捉到高階的協(xié)作關(guān)系關(guān)系和語義表示,可以輕松適應(yīng)冷啟動(dòng)場景。此外,作者還設(shè)計(jì)了一種自適應(yīng)任務(wù),可以自適應(yīng)地選擇KG信息進(jìn)行學(xué)習(xí),以防止模型被噪聲信息干擾。MetaKG架構(gòu)如下圖所示。

3.2 知識(shí)圖譜在推薦理由生成的應(yīng)用

推薦理由能提高推薦系統(tǒng)的可解釋性,讓用戶理解生成推薦結(jié)果的計(jì)算過程,同時(shí)也可以解釋item受歡迎的原因。用戶通過推薦理由了解推薦結(jié)果的產(chǎn)生原理,可以增強(qiáng)用戶對系統(tǒng)推薦結(jié)果的信心,并且在推薦失誤的情況下對錯(cuò)誤結(jié)果更加寬容。

最早可解釋推薦是以模板為主,模板的好處是保證了可讀性和高準(zhǔn)確率。但是需要人工整理模板,并且泛華性不強(qiáng),給人一種重復(fù)的感覺。后來發(fā)展不需要預(yù)設(shè)的free-form形式,并且加以知識(shí)圖譜,以其中的一條路徑作為解釋,配合標(biāo)注還有一些結(jié)合KG路徑的生成式的方法,模型中選擇的每個(gè)點(diǎn)或邊都是一個(gè)推理過程,可以向用戶展示。最近Chen Z [8]等人提出一種增量多任務(wù)學(xué)習(xí)框架ECR,可以實(shí)現(xiàn)推薦預(yù)測、解釋生成和用戶反饋集成之間的緊密協(xié)作。它由兩大部分組成。第一部分,增量交叉知識(shí)建模,學(xué)習(xí)推薦任務(wù)和解釋任務(wù)中轉(zhuǎn)移的交叉知識(shí),并說明如何使用交叉知識(shí)通過使用增量學(xué)習(xí)進(jìn)行更新。第二部分,增量多任務(wù)預(yù)測,闡述如何基于交叉知識(shí)生成解釋,以及如何根據(jù)交叉知識(shí)和用戶反饋預(yù)測推薦分?jǐn)?shù)。

3.3 知識(shí)圖譜在推薦排序的應(yīng)用

KG可以通過給item用不同的屬性進(jìn)行鏈接,建立user-item之間interaction,將uesr-item graph和KG結(jié)合成一張大圖,可以捕獲item間的高階聯(lián)系。傳統(tǒng)的推薦方法是將問題建模為一個(gè)監(jiān)督學(xué)習(xí)任務(wù),這種方式會(huì)忽略item之間的內(nèi)在聯(lián)系(例如凱美瑞和雅閣的競品關(guān)系),并且無法從user行為中獲取協(xié)同信號(hào)。下面介紹兩篇KG應(yīng)用在推薦排序的論文。

Wang[9]等人設(shè)計(jì)了KGAT算法,首先利用GNN迭代對embedding進(jìn)行傳播、更新,從而能夠在快速捕捉高階聯(lián)系;其次,在aggregation時(shí)使用attention機(jī)制,傳播過程中學(xué)習(xí)到每個(gè)neighbor的weight,反應(yīng)高階聯(lián)系的重要程度;最后,通過N階傳播更新得到user-item的N個(gè)隱式表示,不同layer表示不同階數(shù)的連接信息。KGAT可以捕捉更豐富、不特定的高階聯(lián)系。

Zhang[20]等人提出RippleNet模型,其關(guān)鍵思想是興趣傳播:RippleNet將用戶的歷史興趣作為KG中的種子集合(seed set),然后沿著KG的連接向外擴(kuò)展用戶興趣,形成用戶在KG上的興趣分布。RippleNet最大的優(yōu)勢在于它可以自動(dòng)地挖掘從用戶歷史點(diǎn)擊過的物品到候選物品的可能路徑,不需要任何人工設(shè)計(jì)元路徑或元圖。

RippleNet將用戶U和項(xiàng)目V作為輸入,并輸出用戶U單擊項(xiàng)目V的預(yù)測概率。對于用戶U,將其歷史興趣V_{u}作為種子,在圖中可以看到最初的起點(diǎn)是兩個(gè),之后不斷向周圍擴(kuò)散。給定itemV和用戶U的1跳ripple集合V_{u_{}^{1}}中的每個(gè)三元組\left( h_{i},r_{i},t_{i}\right),通過比較V與三元組中的節(jié)點(diǎn)h_{i}和關(guān)系r_{i}分配相關(guān)概率。

在得到相關(guān)概率后,將V_{u_{}^{1}}中三元組的尾部乘以相應(yīng)的相關(guān)概率進(jìn)行加權(quán)求和,得到用戶U的歷史興趣關(guān)于V的一階響應(yīng),用戶興趣由V_{u}轉(zhuǎn)移到o_{u}^{1},可以計(jì)算得到o_{u}^{2}、o_{u}^{3}...o_{u}^{n},進(jìn)而計(jì)算得到U關(guān)于item V的特征可以被計(jì)算為融合他的所有階數(shù)響應(yīng)。

四、總結(jié)

綜上,我們主要圍繞推薦,介紹了圖譜構(gòu)建詳細(xì)流程,對其中的困難和挑戰(zhàn)做出了分析。同時(shí)也綜述了很多重要的工作,以及給出了具體的解決方案,思路以及建議。最后介紹了包括知識(shí)圖譜的應(yīng)用,特別在推薦領(lǐng)域中冷起、可解釋性、召回排序介紹了知識(shí)圖譜的作用與使用。

引用:

[1] Kim S,Oh S G.Extracting and Applying Evaluation Criteria for Ontology Quality Assessment[J].Library Hi Tech,2019.

[2]Protege: ??https://protegewiki.stanford.edu??

[3] Ding S ,  Shang J ,  Wang S , et al. ERNIE-DOC: The Retrospective Long-Document Modeling Transformer[J].  2020.

[4]DocBert,[1] Adhikari A ,  Ram A ,  Tang R ,et al. DocBERT: BERT for Document Classification[J].  2019.

[5]JanusGraph,??https://docs.janusgraph.org/??

[6] Sang L, Xu M, Qian S, et al. Knowledge graph enhanced neural collaborative filtering with residual recurrent network[J]. Neurocomputing, 2021, 454: 417-429.

[7] Du Y ,  Zhu X ,  Chen L , et al. MetaKG: Meta-learning on Knowledge Graph for Cold-start Recommendation[J]. arXiv e-prints, 2022.

[8] Chen Z ,  Wang X ,  Xie X , et al. Towards Explainable Conversational Recommendation[C]// Twenty-Ninth International Joint Conference on Artificial Intelligence and Seventeenth Pacific Rim International Conference on Artificial Intelligence {IJCAI-PRICAI-20. 2020.

[9] Wang X ,  He X ,  Cao Y , et al. KGAT: Knowledge Graph Attention Network for Recommendation[J]. ACM, 2019.

[10]Wang H ,  Zhang F ,  Wang J , et al. RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems[J]. ACM, 2018.


責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2024-10-08 10:37:12

語言數(shù)據(jù)自然語言

2019-05-07 10:01:49

Redis軟件開發(fā)

2017-03-06 16:48:56

知識(shí)圖譜構(gòu)建存儲(chǔ)

2021-01-19 10:52:15

知識(shí)圖譜

2025-04-27 00:10:00

AI人工智能知識(shí)圖譜

2021-01-25 10:36:32

知識(shí)圖譜人工智能

2023-04-26 06:22:45

NLPPython知識(shí)圖譜

2023-10-17 07:54:43

AI算法

2021-01-18 10:42:36

深度學(xué)習(xí)知識(shí)圖譜

2020-11-13 15:38:12

深度學(xué)習(xí)編程人工智能

2021-01-18 10:50:29

知識(shí)圖譜人工智能深度學(xué)習(xí)

2017-04-13 11:48:05

NLP知識(shí)圖譜

2024-06-03 07:28:43

2022-03-01 15:14:36

圖數(shù)據(jù)庫知識(shí)圖譜

2025-04-18 12:49:58

知識(shí)圖譜大模型人工智能

2023-09-08 07:45:32

2021-02-01 22:41:05

語義網(wǎng)知識(shí)圖譜

2017-05-04 13:18:18

深度學(xué)習(xí)知識(shí)圖譜

2021-04-12 11:47:21

人工智能知識(shí)圖譜
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)