圖計算,正在成為下一個科技前沿。
這里的圖是「graph」,而不是圖片「image」,它自于數學中的圖論(graph theory)。圖計算是研究人類世界的事物和事物之間的關系,對其進行描述、刻畫、分析和計算的一門技術。
Gartner 在《2021 年十大數據和分析技術趨勢》報告中預測,到 2025 年圖技術將應用于 80% 的數據和分析創新。圖計算技術在金融、制造、能源等領域有著巨大的應用價值和前景,甚至在前沿的腦科學研究中,也能看到它的身影。
目前,圖計算已經成為國內外科技巨頭們競爭的「新風口」。中國工程院院士、清華大學計算機科學與技術系教授鄭緯民強調:「現在布局高性能圖計算恰逢其時,就相當于抓住了未來大數據、人工智能和高性能計算產業發展的牛鼻子,其影響不可估量?!?/p>
5 月 30 日,在極客公園「Rebuild」視頻直播中,清華大學計算機系教授、螞蟻集團圖計算技術負責人 陳文光,和我們聊了聊圖計算。在他看來,圖計算不僅僅只是一個技術,更是一種理解世界新的方式。
01 圖是認識世界的一種新方式
Founder Park: 圖計算里面的「圖」指的是什么?是我們日常生活中的圖片嗎?
陳文光:從英文上看,更容易分清楚一些。圖片在英文中是「image」,圖形叫「graphics」。圖計算對應的英文是指「Graph Processing」,這里的圖其實來自于數學中的圖論(graph theory)。
在圖論中,「圖」是由節點和邊組成的,你可以想象這個節點代表實體,然后邊代表它們之間的關系。舉個例子,比如說我們把微博用戶關系抽象成一個圖,賬號抽象成圖上的點,關注關系則是圖上的邊。這個邊其實還是有方向的,我們叫有向圖。有些圖的邊,是沒有方向的,稱之為無向圖。
還有比如說路網,它用圖怎么表示呢?把地點特別是交叉口作為節點,然后把路本身當做一條邊。這時邊還可以有屬性,比如說距離和寬窄等。
可以看到圖數據可以很好地描述事物之間的聯系,包括描述聯系的方向和屬性。而且特別要注意的是,這種圖可能非常大。比如說社交網絡賬號之間構成的圖,它可能是有幾億節點,幾百億邊的巨大規模。
Founder Park: 你之前曾提到「圖是認識世界的一種新的方式」,那么之前我們認識世界的方式是什么?圖作為一種認識世界的方式,先進在哪里?
陳文光:在大學數據結構的課上,大家開始學的鏈表或者是線性表,基本上是個一維結構。然后又學到了樹(tree),樹的應用非常廣。比如說廣播樹,我們今天的直播,一個視頻流要給成千上萬的人去發,并不是一個一個去發,而是先發一些點,再通過他們再發另外一些,這樣一路發下去。樹是非常有用的數據結構,但它有一個限制,就是它上面不能有環,如果有環的話就不能叫樹,而圖可以有環。
從數據結構的演進上看,圖是對事物之間關系的一種原生的(native)表達,它用來表示關聯的時候,它的描述能力要比鏈表、樹這些數據結構要強得多。所以說當用圖來認識世界,特別是用來認識關聯的時候,它是一種更加直接和先進的方式。
傳統的數據庫叫關系數據庫,但其實它的數據組織形式并不是關系原生的,而是以表的形式進行組織,就是一張一張的表,然后靠表上的鍵連起來的。所以其實關系數據庫應該叫表數據庫,而圖數據庫反而應該叫關系數據庫。
Founder Park: 圖計算是什么?它和圖數據庫的有什么關系?
陳文光:圖計算可以從廣義和狹義來區分它。
狹義的圖計算說的是,在確定不變的圖上面來做各種各樣的計算。比如說路網圖,它基本上比較穩定,路很久才修一條。我們可以在路網圖上進行某種計算操作,比如說從水立方到故宮找一條路最短路徑,這是圖計算典型可以解決的問題。
而廣義的圖計算能干的事會更多一些,它是指基于圖數據來做各種各樣的處理。比如說這張圖是在變化的。在路網圖上,如果只把路的寬度作為邊的屬性,那它可能就是很長時間不變的,但如果我們以邊上路的擁堵程度作為屬性的話,那這個圖是在變的。還比說流圖計算,數據源源不斷地以流的方式到來,該怎么處理。這些都是屬于廣義的圖計算范疇。
廣義的圖計算,可以理解是包括了圖數據庫。
02 圖計算的發展需要技術和需求雙輪驅動
Founder Park: 你之前在采訪中提到,你遇到《編譯原理》(Compilers)的合著者莫尼卡·拉姆 (Monica Lam),她對你有很大觸動和啟發,好奇這具體指的是什么?
陳文光:我是 03 年在清華大學開始工作的,一開始的學術方向是做編譯器里的編譯優化。我們在國際頂會 PLDI(Programming Language Design and Implementation)發表了一篇論文。論文能被錄用,說明大家還是認可這項工作的,但是它最后的效果是什么?在當時 CPU 測試基準測試上獲得的性能提升只有 1% 左右。
這個技術是有用的,但總體上影響沒那么大。所以后來我就轉了一個方向,去做程序分析。
之后我碰到了莫尼卡·拉姆,她當時講了一句話對我影響很大的話:「好的軟件不是靠程序分析、查錯查出來的,而是由正確的人構建出來的」。也就是說,好軟件要由對的人從頭把它構建出來,而程序分析實際上是在做輔助性優化,并沒有解決整個系統中最重要的問題,這項工作有用,但是并沒有那么有用。
受到這個思想的影響,我走上了從頭構建一個先進軟件系統的道路,2010 年,我開始做圖計算相關的學術研究共奏。
Founder Park: 之前在清華做圖計算相關的科研,為什么會想要去創業?
陳文光:在圖計算上,我們取得了一些積極成果。到了 16 年,我們研究了一個分布式內存的圖計算系統,它比當時開源軟件中常用的圖計算框架 GraphX 大概要快 100 倍,內存的需求大概只是它的 1/10。這奠定了一個好的基礎。
當時我就想圖計算如何能更好地做下去。我發現至少到 2016 年為止我們自己開發的系統軟件還是非常少的,所以我一直在想原因是什么?
我在清華培養的博士生大概也有十多位了,他們在寫軟件方面都非常優秀。我發現他們畢業之后,主要還是進入工業界了。但他們很多工作可能都是在現有的一個大的軟件上去做一些增量式的改進。
所以我當時就想,我們已經有一個很好的軟件基礎,它領先于現有產品一到兩個數量級。如果能夠成立一家公司,把優秀畢業學生能聚攏在一起,持續地去完善軟件,然后再把它進行推廣使用。
這是在探索回答我一直以來的疑惑:我們把自己的系統軟件做出來了,但怎么能用起來?所以當時就成立了費馬科技。
Founder Park: 費馬科技當時你們做的不錯,為什么選擇加入螞蟻?
陳文光:圖計算要想真正發現起來,第一步要解決:做出來;第二步:有人用;第三步:大規模使用。而當時困擾我的問題,怎么實現從有人用到大規模使用。
到 2020 年的時候,我們發現了自身的局限性。費馬團隊總體上技術上是很強,但是管理和市場銷售,特別是后者我們相對比較弱的。
雖然也取得了一些成績,有一些標桿的客戶,比如像京東金融,國家電網、民生銀行等。但整體商業化路徑是不清晰的,沒有辦法很好地大規模推廣。
我當時覺得,圖計算要想實現更好地發展,還是需要技術加場景的雙輪驅動。而我們當時在學校,還更多的是以技術驅動的角度往前推。
螞蟻作為一家金融科技公司,有著全球領先的圖計算的場景需求,而螞蟻當時自身,在圖計算上也有很好的研究基礎。所以,我們決定加入螞蟻。
03 圖計算,方興未艾
Founder Park: 圖計算現在處于一個什么樣的發展階段?
陳文光:如果我用一個詞來簡單地來形容的話,應該叫方興未艾。
圖計算在各個行業,像金融、證券、公共衛生在這些領域都有一些典型的案例。大家可能都很關注它,比如在數據庫流行度排行榜網站 DB-Engines 上,圖數據庫的關注度,在過去十年內是比其他的數據庫都要高。另一方面,也出現了一些功能比較成熟的產品出現。
我認為圖計算整體上,還處于比較早期的階段,它的整個產品形態目前也沒有 100% 的定下來。如果拿關系數據庫來做對比的話,圖計算從技術的深度和應用廣度來看,都還有比較大的差距。
Founder Park: 圖計算都有哪些具體的行業應用?
陳文光:我首先從金融風控的例子介紹一下。
比如說在企業擔保的場景。要給一個企業貸款,那么這個企業說我找 A 企業擔保,然后 A 企業他又找了 B 企業擔保,然后 B 又找 C 擔保過,最后發現他們形成了一個環。那么這個擔保等于是無效的,因為你一層一層地下來,它回到了最初的這個出問題的公司。
這可以都把它抽象成在圖上找環的問題。
找環這個問題,傳統的方法不是不能做。比如說有些銀行用 MapReduce 大數據處理的方法,但在企業擔保場景里,它大概只能找到長度為 6 的環,更長的就找不到了。
那么像套現分析的這類場景,不僅是需要找環,而速度還要非???。用戶去刷一個信用卡,肯定不希望后臺算上兩個小時才說有風險。
在金融的場景中,「實時」是比較難的。螞蟻在 2020 年的雙 11,它的最高的交易數每秒 58 萬筆,在如此高的吞吐率下去檢測異常,進而保障交易能夠按時完成,這個場景挑戰是非常大的。在螞蟻很多的風控場景中,我們希望在 20 毫秒內完成圖計算環節。
圖計算的應用不僅在金融上,在復雜電網的故障分析,電商產品的智能推薦,疫情期間的密接、次密接以及時空伴隨者發現都有重要的應用。此外,大家日常生活中在螞蟻森林偷能量,它也是用圖數據庫來管理的。
Founder Park: 目前圖計算應用比較多的行業,有什么樣的特點?
陳文光:首先行業的數字化要有一定基礎,能夠產生大量的數據。其次對復雜關系分析是有需求的,數據之間不是孤立的。比如說目前有一些物聯網產生的數據,每個傳感器按時間把一些數據上傳,那這些可能就用時序數據庫來處理就行。
總體來看,隨著全行業的數字化水平的深入,對于復雜關聯分析的需求進一步增加,圖計算會有一個更好的發展。
Founder Park: 圖計算融合到 AI,能夠解決 AI 什么樣的問題?圖計算和 AI 的結合,目前發展怎么樣了?
陳文光:AI 和圖計算融合產生的圖神經網絡,是目前正在快速發展且重要的領域。
人和人之間或者各種實體之間的關系數據,它怎么和神經網絡進行結合?圖神經網絡,利用了表示學習,通過圖的結構先把每一個節點或者邊都用向量來表示特征,然后再進一步地使用神經網絡來處理。這就擴展了神經網絡使用的范圍,把實體之間的關系也引入到 AI 的處理中。
目前圖神經網絡已經有了很多的應用。我們把圖神經網絡系統應用在芝麻信用中,提高了信用評分的準確率,這產生了不錯的效果。
Founder Park: 我知道你們在嘗試用圖計算來進行神經元仿真,這是想要去解決什么樣的問題?為什么覺得圖計算在解決腦科學領域相關問題,是有機會的呢?
陳文光:從科學發現的范式上來講,第一范式是實驗科學,第二范式是理論科學,第三范式其實是以仿真模擬為基礎的方法。
大腦作為一個研究對象,受限于倫理和法律,想直接去研究是非常困難的,在實驗方法和手段上都很缺乏。而仿真是理解大腦這種復雜系統運行的一個基本方法。
我們可以通過仿真,來去模擬大腦背后的機制,可能最后結果是錯的,但如果是對的,就驗證了一個猜想。從這個角度來說,它給研究腦科學和神經科學,提供了一種減少實驗開銷以及擴大研究范圍的方法。
Founder Park: 目前你們進展怎么樣了?
陳文光:這個方向其實國內外都非常的關注。歐洲有一個叫藍腦計劃 (Blue Brain Project),它用超級計算機來模擬人腦。但實際上我們的觀察到最困難的點,是神經科學和計算機科學的交叉和融合。
所以我們目前在做一個事情,和實驗神經科學家合作,以鼠腦的聽覺為一個基礎,去探究以下兩個問題。第一個是要知道單個神經元應該模擬成什么樣是合適的?粒度太太粗,會導致最后模擬的行為都是不對的,粒度太細又會使得模擬的規模受限。第二個是神經元之間是怎么連接的?這其實非常復雜,因為現在腦科學發現神經元的連接是不斷地產生和消失的。
我們希望能夠先找到這兩個問題的合理解釋,然后再來做大腦的模擬,目前整個項目還在推進中。
04 圖計算的未來和產學研的思考
Founder Park: 目前圖計算往前發展,遇到的核心挑戰是什么?
陳文光:我覺得最大的挑戰是人才和市場發展能不能形成正反饋。把一個產品做好,它可以服務很多人,大家覺得它真的用,市場擴大,人才就會被吸引進來,把產品進一步做好,然后再去服務更大的市場。
一個正向的迭代是非常重要的?,F在做圖計算,既有大公司,也有一些中型創業公司。那么到底誰能夠在這個領域里能夠持續地去吸引人,擴大自己的市場服務的對象,我覺得這可能是進一步要去解決的最核心問題。
Founder Park: 圖計算目前在全球的競爭情況是怎么樣的?螞蟻大概處于一個什么樣的位置?
陳文光:圖計算的競爭還是非常激烈的,大概有這樣幾種,一種是像 Oracle 、SAP 這樣的傳統數據庫巨頭,他們其實不太會專門做一個單獨的圖計算產品,而是會把圖計算和他們的關系數據庫產品合在一起,在關系數據庫上來做擴展。
另一類是獨立的產品公司。比如說,Neo4j 是成立最早的圖計算和圖數據庫的公司,它的開源版本在全球影響力是非常大的。TigerGraph 也是一個目前相對來講,商業化比較成熟的圖數據庫公司。此外,國內的創鄰科技其實也做得不錯。
螞蟻是這樣的,在服務內部業務上面我們做得還是不錯的。整體上我們在圖計算系統的完整度還有深度上面都還有一定的優勢,但在產品的通用化上,就是如何服務外部的客戶方面還有較大的提升空間。
Founder Park: 在你推動圖計算的發展上,其實帶有非常強的「產學研」結合的色彩。你會怎么看目前產學研遇到的一些問題?
陳文光:我只能說從我個人的一些經歷和觀察,稍微分享一點觀點。
很多老師的學術研究,已經比十年前的水平要高很多了。我們能看到,不少的年輕老師可以在計算機國際頂級會議上發表論文,甚至還能連續發表多篇。
這初步解決了做出來的問題,后面我覺得要解決的是能夠用起來的問題。解決這個問題有幾條路線。一條路線是去做創業公司,但這是一個比較直接但異常艱難的路線。
另外一條就是知識產權的轉讓,把研究成果變成專利,然后交給企業去使用。這個方向如果我們看最近 10 年的數據會比之前更好,但是可能沒有好到大家期待的水平。
這里面的主要原因我覺得是兩個方面:一是我們大學的老師,很多時候不知道企業中真實遇到的問題核心是什么,當想要去做研究的時候,也沒有相關的數據資源來做支持。從企業的角度來講,他很希望老師幫他解決一個眼前的問題,而學術上更關心的根本性的問題,往往也不太容易提煉出來。即使想大學合作,到底去合作什么,定義這個問題本身也很難,想合規地提供數據也非常的難。
所以這就會造成一定程度上的學術研究和企業需求之間的脫節。
Founder Park: 在解決辦法上有什么思考?
陳文光:目前能夠看到像華為、阿里以及螞蟻在內,越來越能夠用更加開放的心態來與學術界開展合作。
我可以舉些例子,前些天,螞蟻開放了一些自己的專利,此外也主導一個圖數據庫的國際基準測試程序,我們國內的幾家圖數據庫廠商,還有國外的像 intel 這幾家核心的公司都參與了。
這個工作的核心是給出一個測試標準,它是把內部的業務和數據的特點抽象成數據模型和典型查詢。數據生成器生成的圖數據在統計上和內部一些真實的數據是等價的,但它避免了數據隱私的問題。
這個事情預期在推動產學研上會有比較好的效果。企業界提煉自己的需求,把它變成一個可度量的問題,然后鼓勵學術界在這種反映了企業界真實情況的數據和場景下面來開展研究。
Founder Park: 在推動科研的高水平創新上,你有什么思考?
陳文光:最近可以看到學校在征集從 0 到 1 的原創問題。我覺得這個其實是咱們國家科技發展里面非常重要的一步。我們不是每個人都要去提一個問題然后自己解決,才叫成果,其實提出好的問題,是非常重要的。
如果問題和目標的定義都是別人,我們只是在后面去做優化,其實很難實現真正的高水平創新。
我覺得我們到了需要去更好地定義問題的時候了。