亚洲男人的天堂2018av,欧美草比,久久久久久免费视频精选,国色天香在线看免费,久久久久亚洲av成人片仓井空

導讀 創鄰科技是一家致力于分布式原生圖技術的公司,從 2016 年成立以來,一直在圖存儲和圖計算領域深耕。創鄰的圖數據庫產品 Galaxybase 已經為銀行、電力、公安、互聯網等行業的多家頭部客戶提供服務。本文將分享基于圖數據庫的知識圖譜存儲技術及實踐。

主要內容包括以下幾大部分:

  1. RDF 和屬性圖
  2. 圖數據庫存儲的核心目標
  3. 圖數據庫存儲的主流技術方案
  4. Galaxybase 圖數據庫應用實踐 分享嘉賓|周研 創鄰科技 CTO 編輯整理|Richard 江西財經大學 出品社區|DataFun

01****RDF 和屬性圖

首先來介紹 RDF 和屬性圖。大家知道世界萬物是普遍聯系的,Internet 帶來了信息的連通,IoT 帶來了設備的連通,像微信、微博、抖音、快手這些 APP 帶來了人際關系的連通。隨著社交、零售、金融、電信、物流等行業的快速發展,當今社會支起了一張龐大而復雜的關系網,在人們的生產和生活過程中,每時每刻都產生著大量的數據。隨著技術的發展,我們對這些數據的分析和使用也不再局限于從統計的角度進行一些相關性的分析,而是希望從關聯的角度揭示數據的一些因果聯系。這里的關聯,指的是相互連接的 connectivity,而不是統計意義上的 correlation。

關聯分析的場景也非常多,覆蓋我們生活的方方面面。比如從社交網絡分析里,我們可以做精準營銷、好友推薦、輿情追蹤等等;金融領域可以做信用卡反欺詐的分析,資金流向識別;零售領域,我們可以做用戶 360 畫像做商品實時推薦,返薅羊毛;電力領域,可以做電網的調度仿真、故障分析、電臺因子計算;電信領域,可以做電信防騷擾,電信防詐騙;政企領域,可以做道路規劃、智能交通,還有疫情精準防控;在制造業,我們可以做供應鏈管理、物流優化、產品溯源等;網絡安全行業,可以做攻擊溯源、調用鏈分析等等。

以上只是列舉了一些常見的分析場景。事實上,關聯分析的應用遠遠不止于這些場景,還有很多其它場景。比如企業的股權穿透分析,公安的安全案情分析,還有生物醫藥領域的基因分類和新藥研發等等,這里就不一一贅述了。在做關聯分析的時候,我們往往需要一個圖模型來描述。常見的圖模型分為 RDF 和屬性圖兩種。RDF 圖中用點來表示唯一標識的資源或者是字面量的值,邊則用來表示謂詞。點和邊之間組成一個 SPO 的三元組。屬性圖中,點表示實體,邊表示關系,屬性是點或邊上的一個鍵值對。相比之下,RDF 的優勢是可以支持多值屬性,因為它的屬性也是一個點,所以一個點連出去,可以有多值的屬性。也可以通過四元組的方式前面加上一個圖的描述,來實現動態圖。并且 RDF 開始的比較早,所以有一個比較統一的標準。屬性圖的優勢在于它兩點之間可以表示同類型的多條邊,因為它在邊上是可以有區分屬性的,邊上的屬性值也能讓邊上的表達能力更豐富。并且它支持復雜的屬性類型,比如 list、set、map 等。隨著行業的發展,我們看到越來越多的可能。知識圖譜的表示在逐漸用屬性圖來完成。今年將正式投票、明年發布的 GQL 標準,也是基于屬性圖的一個查詢語言標準。當然也有少量的圖數據庫是用 RDF 模型來做的,但是未來更多的新型圖數據庫都會用屬性圖模型。02****圖數據庫存儲的核心目標不論是用 RDF 還是用屬性圖,作為一個圖數據庫,它的核心目標是什么?或者說數據庫存儲需要解決的一個根本問題是什么呢?那些需要用關聯分析的圖場景,往往是一些數據規模大、關聯跳數深、實時要求高的場景。

完成一個圖查詢或者圖分析的核心操作,就是鄰居的迭代遍歷。單獨的訪問點或者邊,或者上面的屬性并不是這里的關鍵。僅僅是單獨訪問,使用傳統的數據庫也可以提供很好的性能。在關聯分析當中,不論是從一個起始點若干跳數內的鄰域網絡進行分析,還是對全圖進行一些完整的計算,最核心的操作都是迭代遍歷某個點的所有邊,也就是所謂鄰居的迭代遍歷。在關系型數據庫中是依賴外鍵,通過建立索引等方式來完成的。在圖數據庫中,會直接存儲邊數據,也就是所謂的實現 index-free adjacency。寫入的時候,保證一個點和它直接相連的邊總是存儲在一起。查詢的時候,迭代遍歷一個點的所有鄰居可以直接進行,不需要依賴于其它數據結構,從而可以大幅提升鄰居迭代遍歷的性能。

這里是跟關系型數據庫做的一個深點查詢的性能對比,用的是 who-trust-whom 的一個公開數據集,這個數據集也不是很大,約 7.5 萬點,50 萬邊。我們想知道一個信任的人這樣一個多跳關聯的查詢結果。使用關鍵性數據庫的時候,對比了加索引和不加索引的情況。可以看出 2 跳的時候加索引可以明顯提升關系型數據庫的查詢速度,到 3 跳的時候提升就不多了, 4 跳以上的時候加不加索引都會變得很慢。而使用圖數據庫,查詢性能一直會保持在一個非常快的水平。這就是圖數據庫的 index-free adjacency 的特性,能夠大幅提升鄰居查詢的速度。

根據實現免索引連接的方式,可以把圖數據庫分成三類。**第一類是使用原生圖存儲的方式,它的數據存儲層就直接實現了免索引連接。**上面的處理計算層和業務層都是以完全圖的結構來描述,并且也不依賴于第三方存儲組件,所以這種實現免索引連接的性能是最高效的。**第二種方式是非原生存儲,**數據存儲層使用的是一個第三方的開源存儲組件,但是它在處理過程中實現了近似免索引連接,在大多數情況下也能提供不錯的性能。它的問題是由于使用了第三方存儲組件,在某些場景下可能做得不是最優化。**第三種方式就是完全非原生的存儲,**底下可能是一個關系型數據庫,或者是一個文檔型或者其它類型的數據庫,它的存儲層其實并不是真正地實現了免索引連接,而是處理成通過索引或者一些其它技術手段,向上表達了一個圖模型的查詢接口。這種其實只是在接口層上實現了圖的一個語義,而底下的存儲和計算層都不是完全地使用免索引連接,所以它的性能也會相對低一些。03****圖數據庫存儲的主流技術方案前文中已經明確了數據庫存儲的核心目標就是實現免索引連接。那么接下來就來看一些具體實現免索引連接的主流技術方案。這里主要介紹不同方案的設計思路,并不局限于某個產品的具體實現細節。首先我們能想到的最直接的一個方案,就是用一個數組把每個點上的邊按照順序一起存儲。在這一存儲方案中,點文件就是由一系列的點數據組成的。每個點的存儲內容包括點的 ID、點的 Meta 信息,以及這個點的一系列屬性。在邊文件中,是按照起始點的順序存儲點上對應的邊,每條邊存儲的內容包括終止點 ID、邊的 Meta 信息、邊的一系列屬性。這里所謂的 Meta 信息包括點邊的類型、方向,還有一些為了實現事務的額外字段,這對于整體的存儲來說不是特別重要,在這里就不詳細展開了。在這個存儲方案中,可以直接從起始點開始遍歷相鄰邊的所有數據,讀取性能是非常高的。

這種存儲需要處理的一個比較棘手的問題,就是數組變長的情況。這里的變長是由很多因素導致,比如兩個點可能屬性數量不一樣,屬性本身如果是字符串,長度也會不一樣。屬性長度不一樣會導致每條邊的存儲空間也不一樣,這樣在邊文件中就不能用一個簡單的數組來進行尋址了。如果僅僅是屬性導致的變長,還是有比較簡單的解決方案的,比如可以把屬性單獨的再放到另一個存儲文件中,這樣點文件和邊文件里面的內容,是不是定長的呢?其實也不一定,因為每個點上邊的數量也是不一樣的,所以在邊文件里面,每個點觸發的邊序列的總長度也是不一樣的。所以還是要處理數組變長的問題。

解決思路一般是兩種,一種是使用額外的一個 offset 的記錄,相當于是用一個偏移量記錄,來記錄每一個點或者邊的起始位置。這個記錄本身就可以是定長的了,因為它是個 offset 值。或者是提前劃分好一些額外的區域,來預留給它增長的空間。為了解決這種數組存儲變長的問題,我們自然也可以想到用類似鏈表的方式來存儲。在鏈表方式的存儲模式中,點和邊全部存的都是 ID,包括點 ID、邊 ID、屬性 ID 等等。通過屬性 ID ,可以在另外一個屬性存儲里面找到它的位置以及具體的值。因為存的都是 ID,所以每個點和每條邊的數據長度就是固定的了。通過 ID 可以直接計算出偏移量,然后用偏移量的位置去讀取數據。所以每個數據本身也不需要保存自身的ID,因為偏移量的位置是能夠反推出來自身 ID 的。

這是一個鏈表存儲下進行邊迭代的例子。假設有一個起始點 A,需要迭代它的所有邊。首先在點文件中找到點 A 的首個邊,α。然后去邊文件中找到 α 對應偏移量的位置,就可以讀出這條邊的數據。可以看到,是一個從點 A 到點 B 的邊,A 是一個起始點,我們就去找起始點下一條邊的 ID,就找到邊 θ。然后去邊 θ 的位置,找到偏移量,就找到邊 θ。這里我們看到它是一個 C 到 A 的邊,A 是終止點。我們就去找終止點的下一條邊,是 ω。再去找到邊 ω 的位置,看到是起始點 A 終止點 D,通過這樣的方式就可以不斷地去迭代邊。

我們看到,用鏈表存儲的方式很好地解決了數組變長的問題,因為新增邊的時候,只需要新增固定長度的結構組成鏈表即可。每一次迭代也是在 O(1) 的時間內直接找到了下一條邊,也不依賴于外部的索引或者其它結構。這看似是一個比較好的方案,但實際的使用中,也存在著一些問題。不要忘記,現在討論的是一個存儲格式,而不是一個內存結構。存儲格式意味著最終是要在磁盤 IO 上進行讀寫的。在鏈表存儲方案下,每一次邊迭代的時候,由于邊 offset 的位置是隨機的,所以會有大量的隨機讀操作。而磁盤對于隨機讀操作并不是很友好。所以雖然這里理論上的迭代鄰居找到下一條邊的復雜度是 O(1),但 O(1) 的單位時間是磁盤隨機讀的時間,而不是順序讀的時間,這兩者在性能上是會有非常大的差別的。所以使用這種鏈表的存儲方式,通常來說會依賴一個非常高效實現的緩存機制,需要把大量的磁盤數據放到內存緩存中來讀,在內存中進行隨機訪問的性能就會提升很多。除了基于數組和鏈表的方法,還有其它一些格式可以實現 O(1) 時間的邊迭代。比如,使用 LSM-Tree 的存儲結構,這個結構是一種順序寫盤多層結構的 KV 存儲。這里只簡單介紹一下它的工作原理。

這個圖忽略了像寫 WAL 這樣的細節,是 LSM 樹讀寫的核心操作流程。LSM 樹是一種常用的鍵值存儲結構,處理寫請求的性能很高。它的讀寫操作流程如下:當一個請求進來的時候,直接寫入內存中的一個 MemTable,如果 MemTable 沒寫滿,就直接返回請求。因此它處理寫請求的性能是很高的。當 MemTable 滿的時候,會生成一個不可寫的、只讀的 Immutable MemTable,同時生成新的可寫的 MemTable,以供后續使用。然后 Immutable MemTable 就會寫到磁盤上,形成一個 SST 文件。SST 文件在寫盤的時候,會根據 Key 排序,從而實現順序的邊迭代。其落盤結構的 SST 文件也是分層來組織的。從內存中直接寫出來的第 0 層達到一定數據量大小的時候,或者觸發某種條件的時候,就會進行一個歸并排序,歸并排序就是一個 Compaction 的過程。合并出來的第一層的 SST 文件,都是按照 Key 的順序寫排的。讀取的時候是先去內存中的 MemTable 查找,找到了就返回,如果沒有找到就去第 0 層的 SST 文件中查找,找不到再去第 1 層,這樣逐層查找,一直到找到需要讀取的 Key 為止。使用 SST 文件進行存儲的一個關鍵就是設計邊的 Key。因為在 SST 文件中,Key 是有序排列的,所以我們需要通過 LSMTree 來實現免索引連接的能力。關鍵點就是合理地設計邊的 Key,使一個點所有邊在排序后是相鄰的。說起來比較拗口,其實實現起來并不難。我們看一下這個例子。只要把邊 Key 的最高位放起始點 ID,那么后面無論是邊的其它什么信息,都可以讓從起始點 ID 出發的邊自然地排序排在一起。這里也可以加入一個編號的字段,因為兩點之間,起始點和終止點 Meta 這些是固定的,編號字段加入之后,就可以支持在兩點之間同類型的多條邊共存。因為這是一個 KV 結構。如果只有起始點、終止點和 Meta,兩點之間同類型的邊只能存在一條。所以比如轉賬交易或者是訪問記錄這些具有事件性質的邊要存多條,可以加一個編號。當然也不一定都是必須從起始點開始來做邊的 Key。

比如在例 2 中,把 type 邊類型放在高位。它就可以先以 type 進行劃分,后面才是起始點。這種方法也比較適合在分布式場景下按類型做分片,這樣同一類型的邊就會排在相鄰的分片中,有利于提高分布式查詢的性能。使用這個方式,有非常高的寫入性能,并且讀取的時候也能提供免索引連接的能力。但是其實它也并不完美,也有很多問題需要克服。首先是讀性能,在讀的時候,如果內存沒有命中,下面是一個逐層的 SST 文件,去找 Key 的最壞情況,可能要把所有層的 SST 文件全部找完,才能找到合適的 Key。所以它的免索引連接是比較依賴于Compaction 操作的。只有在理想情況下,比如在一個完整的 Compaction 完成的情況下,它才能真正實現免索引連接,否則會在各個 SST 文件內部去查找。在整體上,它并沒有完整地達到不去利用其它結構就能夠進行快速的領域迭代。而做 Compaction 又是一個有比較大的磁盤 IO 的操作,并且如果使用的是第三方的存儲結構,那么做 Compaction 的操作是不受圖數據庫本身控制的,可能是由一些其它的機制觸發的,比如是在前臺負載壓力比較大的情況下觸發了 Compaction,這樣實際在使用的時候會出現一些瓶頸,所以必須要對第三方存儲進行比較深度的改動,才能夠更好地優化。

可以看到,各種實現免索引連接的存儲方式都不是一勞永逸的,而是有各自的優勢和短板。通過數組的方式讀取速度快,但是寫入因為涉及到變長的問題,可能會比較慢。通過 LSM 樹的方式寫入速度快,但是讀的時候又依賴于 Compaction 操作,在 Compaction 沒有完成的情況下,它的讀取速度也比較慢。通過鏈表的方式讀取和寫入速度都不占優,但是它的靈活性卻最高,因為它是以 offset 形式的指針來實現的。在實際商業圖數據庫的實現過程中,需要根據設計理念去做取舍。也可以結合兩種或者多種方案的優點,在不同的數據形式下,靈活地實現不同類型的存儲。還有一些其它的問題,比如分區分片、反向邊一致性、如何支持事務、數據索引怎么做、數據過期等等,都是要解決的問題,實現起來還是比較復雜的。04****Galaxybase 圖數據庫應用實踐接下來介紹 Galaxybase 圖數據庫的一些應用實踐。Galaxybase 是創鄰研發的國產高性能分布式圖平臺,它的特點是速度快、高擴展、實時計算,支持一個知識中臺,并且安全自主可控。

使用原生分布式并行圖存儲,實現了存儲層的免索引連接,可以毫秒級完成傳統方案無法完成的深鏈分析,較同類技術有數百倍的提升。使用完全分布式的架構,支持動態在線擴容,高效支持萬億級超級大圖。也內置了非常豐富的圖算法,包括分布式圖算法和單機圖算法,不需要 ETL 就能實現實時圖分析。底層存儲包含數據壓縮的能力,可以優化資源利用,節省硬件和維護成本。有一個可視化交互的知識中臺,便于業務理解和操作,幫助數據價值快速變現。同時也是完全自主可控的,全面兼容國產底層軟硬件。

這是 Galaxybase 的架構圖,中間部分是整體的核心部分。底層使用了數據分片動態壓縮的分布式存儲技術,支持屬性圖的存儲模型,并且實現了原生圖存儲。存儲層之上是計算層,實現了內置的圖計算引擎,包含了單機的圖算法和分布式圖算法,并且還可以由用戶來自定義一些定制化函數,來實現自己的高效算法。再往上是接口層,支持 Java、Python、Go、Rest 的 API。并且可視化的模塊也可以以接口的方式嵌入到其它第三方頁面中。左側可以看到,支持多源異構數據,比如傳統關系庫、CSV 文件、HDFS、實時流數據等等,都可以直接進行數據導入。底層適配了各種操作系統,支持各種國產和非國產的主流操作系統。也支持國產的各種 CPU。在上面可以構建一個圖智能中臺,包括圖工作流管理和可視化分析。在中臺之上,可以在各種的業務場景下提供不同的業務解決方案。Galaxybase 的一個性能優勢,是能夠高效地進行分布式圖計算,并且實現了當前最大規模的圖數據處理,實現了 5 萬億超大規模的分布式圖存儲。在線查詢僅使用了 50 臺機器的集群,出入度最大有 1000 萬的超級節點,6 跳的平均查詢時間僅為 6.7 秒。這是與中山大學攜手共建的一個圖計算項目。

Galaxybase 還具備非常高效的查詢性能。在 LDBC 的 SNB 測試里面,去年我們做了一個官方的 Audit,打破了一項世界記錄,較之前的吞吐量提升 70%,平均查詢性能有 6 倍以上的提升,最高的 95 分位查詢性能提升達到 72 倍。

Galaxybase 支持非常豐富的圖算法,包括 57 種圖算法,其中 28 種已經支持了分布式,其它一些分布式算法也正在實現中。我們也是首家完成信通院圖計算評測的一個圖計算平臺。

我們的產品里面還包括一個圖智能中臺,主要是通過可視化界面的方式來進行交互式的探索,完成圖的一些定性分析,包括搜索頂點、點邊位置擴展、查找路徑,還有各種混合的布局。布局模式有各種方式混合的搭配,還可以和自定義的地圖進行匹配,支持時序演進分析等功能。

Galaxybase 是一款完全國產自主可控的產品。內核的存儲、計算、查詢的代碼完全都是自研的,不依賴于其它第三方開源框架。也完成了各種操作系統和 CPU 的國產信創適配認證,并且獲得了信創的一些相關獎項。

我們提供各種圖場景的解決方案,有很多合作伙伴,有很多已經在金融、能源、教育、互聯網、政府多個行業中的頭部客戶落地的使用場景,并且已經服務了幾年時間。

05

問答環節

**Q1:針對大 value,比如大于 4K 的數據,隨機讀取的時候會非常耗 IO,這塊有什么優化嗎?**A1:一般來說,圖數據庫里如果是一個屬性值,單個屬性值大于 4K,其實我們不建議把它放到圖數據庫中來,因為圖數據庫主要是做點邊的關聯鄰居查找的。如果單個屬性大于 4K,可能是一個很長的文本。在這個上面做圖的分析,價值并不大。如果這個是要作為一個存儲放進來的話,最好是把它單獨放在一個另外的區域中,不要跟點邊正常的這些屬性來放在一起。如果指的是點邊的結構,可能某一個點的鄰居特別多,會就這種超級節點的情況把它存在一起。針對鄰居存儲的數量非常大的情況,涉及到一個圖切分的概念。通常情況下我們更多使用的是一個邊切割,所以所有點的鄰居都會存在一起,這樣能更高效地來訪問一個點的所有鄰居。當一個點的鄰居數量特別大的時候,這里可能都不只是 4K 量級,可能會有 400M 或者 4G 這樣的量級,這種情況下的切割就會形成單個非常大的文件。這種時候也可以考慮動態的點切割的方式,就是把一個點的鄰居,再切割成多個存儲文件,存儲文件可以在不同的分區里,可以在不同的分片下,這樣就可以實現并行迭代的方式。當然這里的技術會更復雜,需要首先有對邊進行唯一定位的能力,有這個能力之后,就可以在這一個點的所有鄰居邊上,再進行進一步的切割,然后把大文件再分成不同的小文件。這也是常見的處理超級節點的一個方式。**Q2:在查詢路徑時,如果有超級節點,返回所有的路徑會不會有問題?一般怎么處理?**A2:這要結合業務需求查詢所有路徑。比如有的圖很大的時候,全部路徑的數量會是一個天文數字,那么返回所有路徑可能就沒有意義了。這時候更好的方式是,要了解我們要路徑去做什么。在路徑上可能要做一些計算,或者做一些聚合,做一些其它的操作。在做這些計算的時候,就不是簡單地返回路徑,而是把路徑上面的計算也一起做了,得到一個最后的計算結果。如果是路徑數量沒有那么大的情況下,也是可以逐條返回的。通常我們可以用寫輸出一個文件或者其它的方式,來返回所有路徑。**Q3:底層數據壓縮對圖性能的影響有多大?**A3:肯定是有影響的,因為壓縮畢竟也要占 CPU,所以這其實是個可選項,要看我們的需求是對讀寫性能更敏感,還是對磁盤空間更敏感。因為也有一些應用,不是實時的情況下,其實對延遲沒有那么敏感,但它的數據量可能很大。這時候我們可以通過底層數據壓縮的方式來節省磁盤空間。當然,如果是對實時性能要求比較高的情況下,肯定是不壓縮,直接讀寫性能更高。因此可以根據場景來決定。**Q4:怎么做無 ETL 的實時圖計算?如果直接從存儲層迭代出來的數據怎么解決一致性的問題?如果用 snapshot 就會有 ETL。**A4:可能要這樣解釋一下我們這個產品,它是存儲、計算都包含的,它是自帶了存儲層和計算層,所以用 snapshot 不需要 ETL 過程,相當于我們自己的計算引擎可以去加載存儲里面的數據,也不需要再做一個數據清理或者是轉換的過程。可以選擇你需要用的一些點邊類型或者屬性類型做篩選,去生成一個圖計算引擎。一般我們在做一個圖計算的時候,其實都是在一個 snapshot 上做圖計算,不然整個計算結果也沒有一致性。所以我們會加載圖存儲的某一個時間切片的一個時間點的 snapshot 到圖計算引擎中,來做圖計算。以上就是本次分享的全部內容。歡迎大家關注我們,進行更深入的探討。謝謝大家。

分享嘉賓 INTRODUCTION

周研

創鄰科技

CTO

浙江創鄰科技有限公司聯合創始人。分布式數據處理領域技術專家、Apache 開源項目貢獻者、圖數據庫和圖計算領域專家、Galaxybase 圖數據庫產品研發負責人。

付費5元查看完整內容

相關內容

 圖形數據庫是NoSQL數據庫的一種類型,它應用圖形理論存儲實體之間的關系信息。

合作分享:Jesus Barrasa-Neo4j-歐洲區售前和技術總監 合作分享:丁可-Neo4j-亞太區高級技術顧問 編輯整理:吳祺堯-加州大學圣地亞哥分校 出品平臺:DataFunTalk

**導讀:**Neo4j近年來與眾多公司合作,在很多領域中成功結合知識圖譜技術,使得知識圖譜順利落地于各個項目中。今天由 Neo4j 的歐洲區售前和技術總監Barrasa博士來介紹知識圖譜的技術解析與案例分享。 今天的介紹會圍繞下面五點展開: * 數據架構中的知識存在于何處 * 知識圖譜在技能發現中的應用 * 知識圖譜在元數據管理中的應用 * 知識圖譜在語義搜索中的應用 * 總結

01

數據架構中的知識存在于何處

首先,我使用一個問題作為開場:在數據架構中知識存在于何處?我會使用一個金融領域的例子來幫助大家理解知識圖譜的概念,并使得大家可以將知識圖譜推廣到其他領域中。

數據的來源與種類十分多樣。我們可能會有顧客數據、產品數據、顧客行為數據,它們可以有很多存儲方式,下面我以關系型數據庫為例進行介紹。通常情況下,我們會有很多應用來消費、處理、理解這些數據。比如,有一個用來生成dashboard的“App 1”,它可以用來生成給上級主管查看的報告,那么這個app會查詢數據庫,結合顧客數據和顧客行為數據,自動輸出一份由顧客賬戶為索引的總結。在這個app中,知識存在于那些可以用于處理、理解數據的代碼中。它們往往是上百行SQL語句。又比如我們還有另一個應用“App 2”,它用于向顧客推薦需要升級的產品。具體地,它會結合顧客數據、顧客行為數據、產品數據等來向顧客推薦潛在的升級產品。相似地,應用決定了數據的意義,那么知識就存在于這一具體應用中。綜上,我們可以發現數據的存儲與知識是解耦的。上述范式可以重復運用于所有應用中,比如我們還可以有一個“App 3”,它生成一個可以用來監管的報告。 但是,這種解耦的知識存在形式像一個黑盒,對于我們來說很難去維護。所以,我們可以使用知識圖譜使得我們的數據更加“聰明”,讓業務邏輯與數據的聯系更加緊密。 首先,我們使用圖結構,將業務與數據的聯系顯式地用邊來表示。在構建完知識圖譜后,我們將它賦予實際的語義,覆蓋在業務的本體之上。通過這種方法,你可以結合自己領域的知識,使用各類的圖算法來使得知識圖譜生成新的數據或知識,最終實現圖譜與實際應用的緊密結合的目的。知識圖譜帶來的另一個好處在于你的下游應用會更加輕量化,這是因為原先很多需要處理的邏輯交給了知識圖譜進行解析。

**知識圖譜由兩部分組成。**首先,知識圖譜中存在大量數據。其次,知識圖譜中包含很多顯式的知識,它可以使用現有數據來生成新知識或者新數據。知識可以有多種存在形式,如本體、分類、算法、Cypher規則等。總的來說,數據和知識的組合形成了“智慧”的知識圖譜,而知識圖譜保證了知識和數據可以更加容易地進行存取操作。

02

知識圖譜在技能發現中的應用

很多著名分析家,如Gardner強調了技能發現的重要性。他指出超過53%的公司“技能發現”的短板阻礙了業務轉型,因為他們無法識別新業務中員工所必需的技能,從而無法有效利用公司中的人力資源。Neo4j曾經與DAIMLER合作,使用知識圖譜成功地將技能發現運用于公司員工中。具體地,他們想要找到公司在哪些技能方向上缺少足夠的優質員工,并試圖在公司內部找到最能勝任那些空缺職位的員工。此外,他們還想要為公司員工制定一套最佳的職業規劃路線,使得員工可以最大化地激發自己的潛能并合理地運用自身所含技能。

當然,他們最初沒有足夠的能力去找到這些問題的答案。所以,他們決定使用知識圖譜的方法,在更高的維度收集員工數據,并構建一張圖。知識圖譜中覆蓋在圖上,包含領域知識信息如領域內技能的分類等。通過將知識融入圖結構的做法,我們可以回答之前無法解答的復雜問題,如技能發現。

具體地,我們首先在很多平臺中收集如員工信息、員工勞動力信息、資源管理信息、HR平臺、員工培訓信息等數據。Neo4j根據數據的動態屬性使用傳統的ETL工具、最近很流行的kafka流式數據處理中間件來處理、構造知識圖譜。進一步,知識圖譜可以根據實時更新的數據動態地調整圖結構,并將產出的知識圖譜顯式地覆蓋在領域的本體上。此外,Neo4j支持owl、rdfs等各種語言,將關系型數據庫中的數據融入Neo4j框架中。最終,通過構建的知識圖譜與企業自身設定的模式,我們就可以回答如元數據相關或者數據的知識相關的查詢、推薦問題。

03

知識圖譜在元數據管理中的應用

第二個案例是關于知識圖譜在元數據管理中的應用。元數據不僅包含數據本身的信息,還包括了如數據集的來源、數據源所在平臺等上層信息。所以,元數據信息相當于為數據加上額外一層血緣關系,是“數據的數據”。當我們想要將數據展示給潛在數據消費者,如一個團隊的新成員時,那么元數據這類包含數據類型、數據最近版本的信息就變得極為重要。

很多大公司慢慢意識到元數據管理可以使用知識圖譜來解決。他們近年來都在Neo4j圖數據庫的基礎上構建了自己的元數據管理平臺。最初,Dataportal率先搭建了自己的datahub,后續如lyft、Amundsen、LinkedIn和最近的Manta都創建了自己的常用知識圖譜元數據管理工具。

元數據管理的維護依賴數據處理pipeline,它不僅建模數據本身,還建模數據的變換方式、使用方式等。具體地,元數據管理可以讓我們查看一組數據在處理pipeline中是如何通過一系列數據變換如聚合、組合等,生成一組輸出數據。數據本身與很多實體相連接,例如它們所在的數據平臺,數據變換的創建者、維護者,數據的時間信息,數據的最近修改時間、數據的使用頻率等。每個部門都可以建立并維護自己的數據pipeline。最終,當我們將元數據知識圖譜構建完畢后,我們就可以處理如數據pipeline出現故障時的問題排查,因為我們可以通過檢查pipeline中數據的處理流程中可能受故障影響的環節來達到目的。總而言之,只要你能將元數據信息構建成一張知識圖譜,你就有能力使用如Cypher等語言回答各種復雜問題。

04

知識圖譜在語義搜索中的應用

**最后,我來介紹一下知識圖譜領域最被廣泛使用的應用:基于知識圖譜的語義搜索。**很久之前,我們在網站進行搜索時,我們只是尋找與query匹配的關鍵詞所在的文章或網頁。現在,我們要求搜索引擎可以理解query的語義信息。 之前NASA也遇到了這類問題,因為它們的數據庫中包含海量的文檔、報告、項目數據、經驗教訓、研究成果等。之前,NASA的搜索方式使用關鍵詞匹配,而這類忽略上下文信息與語義信息的搜索方法十分低效。

**NASA的解決方案是利用知識圖譜與自然語言處理技術來處理這些海量文檔。**首先,自然語言處理中的實體抽取任務可以將實體表示為知識圖譜上一個顯式的圖節點。當我們建模文檔中的所有實體,并結合元數據信息以及領域先驗知識如領域分類信息、領域知識表達等,我們可以將實體節點按照自己的范式進行連接,構成一張包含豐富領域知識的圖譜,進而使得我們可以從一個節點游走到另一個節點,從語義層面回答query。

例如,你想要查詢自己感興趣的話題,那么通過知識圖譜上的游走我們就可以找到與話題語義相關的多個文檔,并將這些你可能感興趣的文章推薦給你。

具體地,NASA不僅將經驗教訓、文檔、URL等映射為知識圖譜上的節點,還使用表示學習將文檔的主題、實體詞建模并映射至知識圖譜中,并將它們與對應的文檔相連。通過這一做法,query查詢可以充分利用語義相關信息,使得搜索更加高效。

05

總結

最后,我對今天的分享進行總結。 首先,知識圖譜可以使得我們的數據根據我們的下游應用變得更加“聰明”,進而使得數據和應用的聯系更加緊密。它可以根據我們使用數據的目的來構建合適的、包含語義信息和知識信息的圖結構,覆蓋在原有數據之上。應用知識圖譜的最佳實踐是:找到自己應用數據的目的,構建正確的語義知識圖譜,從小型圖譜開始逐漸擴大圖的規模。 總而言之,由于GraphQL只是一個數據接口語言,它無法進行復雜的圖查詢,因此Cypher更適用于圖遍歷和復雜圖查詢的場景(它和圖數據庫結合得更緊密),而GraphQL適用于存取數據。

06

Q&A

Q:GraphQL和Cypher分別在什么情況下使用是最好的?它們可以一起進行使用嗎? A:GraphQL提供了標準的圖數據庫接口。如果前端的開發和數據庫管理人員想要進行解耦,那么GraphQL是一個不錯的選擇,因為它可以建立自己的API,使得后端的任何變動都不會影響前端的業務開發。Cypher需要嵌入圖數據庫中,它適用于當圖數據庫需要進行大幅度的升級的情況,這時內部的Cypher代碼需要進行相應的調整。總而言之,Cypher更適用于遍歷的場景(因為它和數據庫結合得更緊密),而GraphQL適用于存取數據。另外,由于GraphQL是一個圖數據庫的接口語言,它無法像Cypher一樣進行復雜的圖數據查詢。

分享嘉賓:

付費5元查看完整內容

數據稀疏和冷啟動是當前推薦系統面臨的兩大挑戰. 以知識圖譜為表現形式的附加信息能夠在某種程度上緩解數據稀疏和冷啟動帶來的負面影響, 進而提高推薦的準確度. 本文綜述了最近提出的應用知識圖譜的推薦方法和系統, 并依據知識圖譜來源與構建方法、推薦系統利用知識圖譜的方式, 提出了應用知識圖譜的推薦方法和系統的分類框架, 進一步分析了本領域的研究難點. 本文還給出了文獻中常用的數據集. 最后討論了未來有價值的研究方向.

//www.aas.net.cn/cn/article/doi/10.16383/j.aas.c200128

推薦系統推薦系統是一種向目標用戶建議可能感興趣物品的軟件工具. 隨著網絡與現實信息的爆炸式增長, 越來越多的在線服務商為用戶提供商品、音樂、電影等(以下統稱為物品)的推薦服務. 推薦系統能夠滿足用戶的個性化需求, 為在線服務商帶來巨大商業價值. 同時, 推薦方法與系統的研究促進了偏好挖掘、大數據處理、決策支持等領域的相關理論和實踐的飛速發展, 其學術價值也引起了廣泛的關注.

推薦系統面臨的重要挑戰主要是數據稀疏性問題和冷啟動問題. 數據稀疏問題指的是相對于數量龐大的用戶和物品, 僅有少量的物品獲得了用戶的評價或者購買, 難以據此獲得相似的用戶或相似的物品, 使得傳統推薦方法失效了. 冷啟動問題指的是系統由于并不知道新加入用戶的歷史行為, 無法給他們推薦物品, 同樣新加入的物品也由于沒有被用戶評價或購買過而無法被針對性的推薦.

推薦系統中通常利用附加信息來解決上述問題, 以提高性能. 附加信息(一般也稱上下文信息)分為顯式信息和隱式信息[1]. 顯式信息是通過諸如物理設備感知、用戶問詢、用戶主動設定等方式獲取的與用戶、物品相關聯的上下文信息. 隱式信息即利用已有數據或周圍環境間接獲取的一些上下文信息, 例如可根據用戶與系統的交互日志獲取時間上下文信息.

近年來, 利用以知識圖譜為表示形式的附加信息的推薦方法受到了學者們的關注. 知識圖譜最初用于提升搜索系統的性能[2], 刻畫了海量實體之間的多種關系, 具有網狀結構, 能夠用于推薦系統中來增強用戶、物品之間聯系的認知與解釋, 從而提高推薦準確度. 本文綜述了2015年~2019年發表在DLRS、RecSys、KDD、CIKM、NIPS、TIST、UMAP、SIGIR等會議和期刊中的利用知識圖譜的推薦方法的文獻, 共23篇. 在利用知識圖譜的推薦系統中, 通常首先將收集到的用戶信息、物品信息、在利用知識圖譜的推薦系統中, 通常首先將收集到的用戶信息、物品信息、用戶歷史行為等數據或者一些相關的外部數據表示成知識圖譜的形式. 然后, 設計推薦算法, 利用知識圖譜生成推薦. 此類推薦系統通常包含知識圖譜構建和利用知識圖譜產生推薦兩個環節. 本文根據這兩個環節中構建知識圖譜數據的不同來源, 以及推薦方法中利用知識圖譜信息的不同形式提出了分類框架, 并據此對相關文獻進行了分類綜述, 詳情請參看本文第三章. 與本文最為相關是文獻[3]. 該文獻綜述了2009年~2017年16篇利用知識圖譜的推薦方法的文獻. 本文在綜述的文章數量上超過了文獻[3]. 此外, 本文提出文獻分類框架能夠更好地覆蓋新提出的方法.

本文第一章介紹了利用知識圖譜的推薦方法的相關背景知識; 第二章對利用知識圖譜的推薦方法文獻進行分類與綜述; 第三章整理了目前常用的推薦系統數據集和知識圖譜數據集; 第四章、第五章分別討論了應用知識圖譜的推薦系統的研究難點與發展前景; 最后, 在第六章中對全文進行了總結.

付費5元查看完整內容
北京阿比特科技有限公司