圖數(shù)據(jù)庫應(yīng)用

1. 什么是圖?

圖數(shù)據(jù)庫是專門存儲龐大的圖形網(wǎng)絡(luò)并從中檢索信息的數(shù)據(jù)庫驱敲。它可以將圖中的數(shù)據(jù)高效存儲為點(diǎn)(Vertex)和邊(Edge),還可以將屬性(Property)附加到點(diǎn)和邊上宽闲。

在具體應(yīng)用上:點(diǎn)可以抽象為實(shí)體众眨,邊抽象為關(guān)系。例如:小明有一只鋼筆——小明為其中一個(gè)點(diǎn)容诬,鋼筆為另一個(gè)點(diǎn)娩梨,關(guān)系則為“有”。當(dāng)然小明也可以有很多只鋼筆放案,那么只需要有很多個(gè)鋼筆的點(diǎn)和關(guān)系就可以了姚建。

2. 適用場景

參考neo4j演示文稿

2.1 是否涉及實(shí)體之間的關(guān)系

  • 推薦
  • 欺詐檢測
  • 重復(fù)檢測
  • ...

2.2 是否涉及大量對統(tǒng)一類型實(shí)體的引用

  • 組織層次結(jié)構(gòu)
  • 訪問權(quán)限管理
  • 社會影響力
  • 朋友的朋友(N度好友)
  • ...

2.3 是否探索了不同或未知深度的關(guān)系

  • 供應(yīng)鏈可見性
  • 材料清單
  • 網(wǎng)絡(luò)管理
  • ...

2.4 是否涉及到許多不同的路線或路徑

  • 交通大數(shù)據(jù)(物流)
  • 依賴追蹤
  • 基礎(chǔ)設(shè)施管理
  • ...

3. 案例

3.1 社交關(guān)系分析(朋友的朋友,好友推薦吱殉,影響力)

Neo4j 圖數(shù)據(jù)庫在社交網(wǎng)絡(luò)等領(lǐng)域的應(yīng)用
圖數(shù)據(jù)庫及應(yīng)用場景
新冠肺炎傳染圖譜建模與分析

  • 人物關(guān)系如下圖(語句為nGQL):
網(wǎng)絡(luò)關(guān)系圖
//點(diǎn)
INSERT VERTEX user (name) VALUES "A":("A"), "B":("B"), "C":("C"), "D":("D"), "E":("E"), "F":("F"), "G":("G");

//邊
INSERT EDGE friend () VALUES "A"->"B":(), "A"->"D":(), "C"->"B":(), "E"->"B":(), "E"->"D":(), "E"->"C":(), "F"->"E":(), "E"->"G":();  

<1> n度好友

//用戶E的2度好友
match (v1:user)-[e1:friend*2]-(v2:user) where id(v1)=="E" return DISTINCT(v2)
MINUS 
match (v1:user)-[e1:friend*1]-(v2:user) where id(v1)=="E" return DISTINCT(v2);  

<2> 兩個(gè)陌生人之間的認(rèn)識路徑

//用戶A和用戶C的認(rèn)識路徑
FIND SHORTEST PATH FROM "A" TO "C" OVER friend BIDIRECT;

<3> 用戶影響力(出度掸冤,入度)

//所有用戶影響力查詢
match (v:user)-[:friend]-(:user) return DISTINCT(v) as u, count(*) as c order by c desc;

<4> 共同好友的朋友推薦

//用戶A的共同好友推薦
match (v1:user)-[:friend]->(v2:user)<-[:friend]-(v3:user) where id(v1)=="A" return DISTINCT(v3), count(*); 
  • 如果我們在單純用戶的網(wǎng)絡(luò)關(guān)系圖中加入每個(gè)人讀過的書籍,我們還可以做關(guān)于書籍相關(guān)的操作了友雳,形成下圖:
加入了書籍的網(wǎng)絡(luò)關(guān)系圖
//book點(diǎn)
INSERT VERTEX book (name) VALUES "book1":("book1"), "book2":("book2"), "book3":("book3"), "book4":("book4"), "book5":("book5");

//read邊
INSERT EDGE read () VALUES "A"->"book1":(), "A"->"book2":(), "E"->"book1":(), "E"->"book2":(), "E"->"book3":(), "C"->"book4":(), "A"->"book5":(); 

<5> 共同愛好的朋友推薦

//和用戶A讀過相同書籍的用戶
match (v1:user)-[:read]->(v2:book)<-[:read]-(v3:user) where id(v1)=="A" return DISTINCT(v3), count(v2);

<6> 共同愛好的書籍推薦

//用戶A的書籍推薦
match (v1:user)-[:read]->(v2:book)<-[:read]-(v3:user)-[:read]->(v4:book) where id(v1)=="A" return DISTINCT(v4) as book 
MINUS
match (v1:user)-[:read]->(v2:book)<-[:read]-(v3:user) where id(v1)=="A" return DISTINCT(v2) as book;

<7> 基于關(guān)鍵人物的書籍推薦

//找出關(guān)鍵人物
match (v:user)-[:friend]-(:user) return DISTINCT(v) as u, count(*) as c order by c desc limit 1;

//查詢給用戶A的推薦書籍
match (v1:user)-[:read]->(v2:book) where id(v1)=="E" return DISTINCT(v2) as book 
MINUS
match (v1:user)-[:read]->(v2:book) where id(v1)=="A" return DISTINCT(v2) as book;

match不支持管道符稿湿,需使用兩條語句
https://discuss.nebula-graph.com.cn/t/topic/5295/3
https://discuss.nebula-graph.com.cn/t/topic/4840

3.2 企業(yè)關(guān)系構(gòu)建(組織層次結(jié)構(gòu))

企業(yè)圖譜:

企業(yè)圖譜

股權(quán)穿透圖:

股權(quán)穿透圖

企業(yè)關(guān)系圖譜:

企業(yè)關(guān)系圖譜

3.3 欺詐檢測

圖數(shù)據(jù)庫應(yīng)用:金融反欺詐實(shí)踐
【案例】基于圖數(shù)據(jù)庫的保險(xiǎn)欺詐檢測
提升反欺詐效果 看關(guān)聯(lián)圖譜在風(fēng)控領(lǐng)域應(yīng)用
基于圖數(shù)據(jù)庫Neo4j的信用卡反欺詐系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于Neo4j數(shù)據(jù)庫的個(gè)人信用評估系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

在傳統(tǒng)概念里:用戶手機(jī)號即可能為用戶的一個(gè)屬性,因此在往圖中寫入時(shí)押赊,也會寫入到節(jié)點(diǎn)的屬性中饺藤。在欺詐檢測方面,往往會把這種數(shù)據(jù)當(dāng)作圖中的一個(gè)點(diǎn)流礁,這是因?yàn)樵谄墼p特征檢測中涕俗,判斷是否為欺詐往往會用到此類數(shù)據(jù)。由此可見神帅,往往在數(shù)據(jù)建模階段再姑,需要根據(jù)業(yè)務(wù)來判斷,哪些數(shù)據(jù)需要創(chuàng)建節(jié)點(diǎn)找御,哪些需要創(chuàng)建成節(jié)點(diǎn)屬性元镀。

例如:在信用卡申請、個(gè)人信貸霎桅、小微貸栖疑、消費(fèi)貸等業(yè)務(wù)場景,欺詐者通過共用電話號碼滔驶、聯(lián)系人手機(jī)號等遇革,組合創(chuàng)建多個(gè)合成身份,由于擁有共用的信息,欺詐者通過這些信息構(gòu)成欺詐環(huán)澳淑。如下圖所示

欺詐檢測圖

查詢使用相同手機(jī)號的用戶語句

//當(dāng)手機(jī)號當(dāng)作節(jié)點(diǎn)時(shí)
match (用戶)-[]->(手機(jī)號) where 手機(jī)號="XXXXX" return 用戶

//當(dāng)手機(jī)號當(dāng)作節(jié)點(diǎn)屬性時(shí)
match (用戶) where 用戶.手機(jī)號="XXXXX" return 用戶

手機(jī)號當(dāng)作節(jié)點(diǎn)時(shí)明顯要比當(dāng)作屬性查詢快比原,前者只需掃描部分節(jié)點(diǎn)插佛,后者可能需要掃描全圖的節(jié)點(diǎn)杠巡。并且由于關(guān)聯(lián)關(guān)系,又可以根據(jù)手機(jī)號進(jìn)行延伸查詢

當(dāng)我不知道手機(jī)號只知道用戶時(shí):

match (用戶A)-->(手機(jī)號)<--(其他用戶) where 用戶A="XXX" return 其他用戶

當(dāng)通過特征分析出欺詐人員時(shí)雇寇,又可以根據(jù)社區(qū)發(fā)現(xiàn)算法氢拥,找出詐騙團(tuán)伙

發(fā)現(xiàn)詐騙團(tuán)伙

4. 總結(jié)

數(shù)據(jù)建模階段要根據(jù)具體的業(yè)務(wù)來選擇哪些數(shù)據(jù)需要創(chuàng)建成節(jié)點(diǎn),哪些數(shù)據(jù)創(chuàng)建成節(jié)點(diǎn)屬性锨侯。以用戶手機(jī)號舉例嫩海,如果存在“查找重復(fù)手機(jī)號的用戶”需求時(shí),那么可以將手機(jī)號變成節(jié)點(diǎn)囚痴。但此行為也會將圖變得越來約復(fù)雜叁怪,點(diǎn)上的邊也會也來越多,從而導(dǎo)致性能問題深滚。

關(guān)系的定義上也可以更抽象些奕谭,例如:小明有一只鋼筆的"有"。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載痴荐,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者血柳。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市生兆,隨后出現(xiàn)的幾起案子难捌,更是在濱河造成了極大的恐慌,老刑警劉巖鸦难,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件根吁,死亡現(xiàn)場離奇詭異,居然都是意外死亡合蔽,警方通過查閱死者的電腦和手機(jī)击敌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辈末,“玉大人愚争,你說我怎么就攤上這事〖菲福” “怎么了轰枝?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長组去。 經(jīng)常有香客問我鞍陨,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任诚撵,我火速辦了婚禮缭裆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寿烟。我一直安慰自己澈驼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布筛武。 她就那樣靜靜地躺著缝其,像睡著了一般。 火紅的嫁衣襯著肌膚如雪徘六。 梳的紋絲不亂的頭發(fā)上内边,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機(jī)與錄音待锈,去河邊找鬼漠其。 笑死,一個(gè)胖子當(dāng)著我的面吹牛竿音,可吹牛的內(nèi)容都是我干的和屎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼谍失,長吁一口氣:“原來是場噩夢啊……” “哼眶俩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起快鱼,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤颠印,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后抹竹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體线罕,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年窃判,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钞楼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袄琳,死狀恐怖询件,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唆樊,我是刑警寧澤宛琅,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站逗旁,受9級特大地震影響嘿辟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一红伦、第九天 我趴在偏房一處隱蔽的房頂上張望英古。 院中可真熱鬧,春花似錦昙读、人聲如沸召调。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽某残。三九已至,卻和暖如春陵吸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背介牙。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工壮虫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人环础。 一個(gè)月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓囚似,卻偏偏與公主長得像,于是被迫代替她去往敵國和親线得。 傳聞我的和親對象是個(gè)殘疾皇子饶唤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容