本系列文為整理學習Graph的筆記內容,以O’REILLY圖形演算法一書為主,並且著重在圖形演算法的實作與應用。
現今資料處理上,最大的挑戰都集中在關係處理,而不只是把離散資料做成表格而已。
什麼是圖形
歷史:
- 最早是 1736 年, Leonhard Euler 解決了柯尼斯堡七座橋的問題,七座橋問題是:柯尼斯堡有四個由七座橋相連的區域,請問是否有可能藉由七座橋走遍所有,且每座橋只能走一次( ans: 不可能)
- 雖然是起源於數學,但是是一種實用、高保真的資料建模和分析方式
定義:
- 構成圖形的物件: 節點(Node) 和連線(Relation/Edge)
圖形技術用途,例如:
- 金融市場到資訊科技的變動環境預測
- 預測傳染病的傳播途徑
- 個人化的推薦與體驗
什麼是圖形分析和圖形演算法
圖形演算法是圖形分析工具的子集,圖形分析是一種動作,它使用任何圖形的方法來分析連接的資料
- 查詢圖形資料
- 使用基本統計資料
- 視覺化瀏覽圖表
- 圖形合併到機器學習任務
而這個分析的動作,稱作圖形演算法(Graph algorithm)
為什麼我們要關心圖形演算法
圖形演算法讓連結性資料更有意義,特別適合用來理解高度連接資料庫的架構,並且揭露其資料模式。
偏好依附原則(preferential attachment),當一個節點要加入網路中,會偏好已經有很多連接的節點。
這就會和常態分佈的模型有很大的差異,它甚至是呈現冪律分佈(power-law distribution)= 少數一些節點有著高度連結,大多數的節點只有少數的連接。
(像是 80/20 法則)
那使用常態分佈的工具去分析這些資料是很麻煩的,因為這往往會面臨資料不平均的問題,資料中可能隱藏著一個結構,但很難被找到。
圖形分析使用
圖形分析應用於預測行為和預測變動群組的行動,需要去理解群組中的關係和結構,並透過圖形演算法視察網路連結來實現。
- 傳播途徑: 事情怎麼傳的
- 水流與影像力: 容量和成本控制點
- 相互作用與韌性: 如何相互作用,未來會不會改變?
這裡的意思比較抽象,大致理解在使用圖形演算法解決的問題,可以有這三種,具體的話可能要等實作真正的案例才足夠理解。
參考資料:圖形演算法:Apache Spark與Neo4j實務範例
小心得
這會是一系列的文,也是在學習圖形演算法時紀錄的筆記,預計會有的內容是:圖形的介紹、圖形演算法,像是:最短路徑、社群檢測、運用在 ML 領域… 等。如果有興趣的話,歡迎追蹤~下次見囉!