港大等發布GraphGPT:1/50微調參數,準確率提升10倍!無需超長token,LLM也能讀懂圖結構
圖神經網絡(Graph Neural Networks)已經成為分析和學習圖結構數據的強大框架,推動了社交網絡分析、推薦系統和生物網絡分析等多個領域的進步。
圖神經網絡的主要優勢在于它們能夠捕獲圖數據中固有的結構信息和依賴關系。利用消息傳遞和聚合機制,圖神經網絡可以有效地在圖中傳播和組合信息,從而模擬復雜的關系并進行準確的預測。
近年來,各種圖神經網絡架構在圖節點之間的信息交換和聚合方面引入了不同的創新。例如,圖卷積網絡(Graph Convolutional Networks)將卷積操作遷移到圖結構數據,實現有效的圖結構特征表示。
圖注意力網絡(Graph Attention Networks)利用注意力機制為相鄰節點分配不同的權重,實現更細粒度的信息聚合。
然而,許多圖神經網絡方法的一個顯著局限性是它們過于依賴監督學習,這可能導致在面對稀疏和噪聲數據時魯棒性和泛化能力不足。為了增強圖神經網絡的泛化能力,自監督學習(Self-Supervised Learning)已經成為圖表示學習中的一種有前景的方法。
這些方法的目標是生成可泛化到不同下游任務的圖表示,但它們仍然需要使用下游圖學習場景的標簽進行微調。然而,這種對下游任務的標簽數據的依賴可能會限制它們在實際情況中的泛化能力,特別是在難以獲取高質量標簽的情況下。
因此,本研究的目標是通過解決具有挑戰性的實際零樣本學習場景來提高圖模型的泛化能力。受到大語言模型(Large Language Models)在自然語言處理任務中巨大成功的啟發,本文將介紹香港大學數據智能實驗室和百度等機構提出的圖結構大語言模型(GraphGPT),其能夠在多種下游數據集和任務中實現高度的泛化。
論文鏈接:https://arxiv.org/abs/2310.13023
代碼鏈接:https://github.com/HKUDS/GraphGPT
項目網站:https://graphgpt.github.io/
期待GraphGPT能夠吸引更多的開源社區開發者參與討論和實踐,共同探索圖結構數據挖掘領域新篇章。
概述
總得來說,將大語言模型與圖學習結合是一項重大的挑戰。
首先,在圖的結構信息和語言空間之間實現適當的對齊需要深入的研究。
同時,如何引導大語言模型有效地理解圖的結構信息,以及如何賦予大語言模型對于圖學習下游任務逐步推理的能力,都是當前面臨的關鍵問題。
為了深入了解直接使用純文本提示為大語言模型建模圖結構的局限性,本文進行了一系列的實驗和對比,如圖1所示。
這些實驗揭示了僅依賴文本提示進行圖結構建模時可能出現的潛在問題。
相比之下,新框架GraphGPT能夠有效地解決這些問題,通過保留和利用圖的結構信息,實現了對文章類別的準確識別。
此外,使用基于文本的圖結構提示會導致輸入token數大小增加,這在實際應用中帶來了挑戰。
長token序列會導致更高的計算和內存成本,使其在實際應用中的可行性降低。
同時,現有的大語言模型有輸入長度限制,這進一步限制了用長文本提示進行大規模圖結構建模的適用性。
為了應對這些挑戰,本文提出了一個名為GraphGPT的全新框架,該框架旨在使用精心設計的圖指令微調范式將大語言模型與圖結構對齊。
GraphGPT引入了文本-圖結構對齊范式作為初始步驟,通過對比方式結合文本信息,實現了在圖編碼器中有效地對齊文本語義。
進一步提出雙階段圖指令微調范式,在第一階段,利用無標簽的圖結構數據,通過自監督的圖匹配任務,指導大語言模型獲得與圖數據相關的結構知識,從而增強了其對圖結構的理解。
在第二階段,為了進一步定制大語言模型在多種下游圖學習任務中的推理行為,使用特定任務的圖數據指令對大語言模型進行微調,以提高模型的適應性。
最后,通過思維鏈(Chain-of-Thought)將閉源大語言模型(如,ChatGPT)蒸餾整合到GraphGPT中,增強了其逐步推理能力,極大地改善了分布偏移帶來的性能下降。
本研究的主要貢獻如下:
- 將圖領域特定的結構知識與大語言模型的推理能力對齊,以提高圖學習的泛化。
- 提出的方法旨在通過圖指令微調范式將大語言模型與圖結構數據對齊。此范式結合了自監督指令微調,增強了大語言模型對圖結構知識的理解和推理能力。此外,引入了具體任務的指令微調,以提高模型在不同圖學習任務中的適應性。
- 實驗評估了GraphGPT在有監督和零樣本圖學習任務上的表現。通過與最先進的基線進行比較,GraphGPT展現出在各種設置中優越的泛化能力。
方法
這一部分,將闡述GraphGPT圖指令微調范式的技術細節,其整體框架如圖2所示:
用「文本-圖」對齊編碼結構信息
在GraphGPT中圖結構編碼器的選擇可以非常靈活,使其能夠利用從多種圖預訓練范式中獲得的各種基礎GNN架構。
為了更有效地將大語言模型與圖結構對齊,本節探索了能與大語言模型良好協作的圖結構編碼方式。
受之前的研究啟發,本文以對比的方式將文本信息融入圖結構的編碼過程中。本文直接將帶有預訓練參數的圖編碼器集成到GraphGPT模型框架中,從而無縫地整合圖編碼器的功能。
具體來說,讓一個圖與原始文本內容對應,其中代表節點數,表示第i個結點的文本長度。通過任意圖編碼器(例如graph transformer)和文本編碼器(例如普通transformer)得到編碼后的圖表示和文本表示。
接著,通過對比學習進行不同維度的「文本-圖」對齊:
其中為對比標簽,和為不同對比策略的轉換函數。
兩階段圖指令微調
1. 自監督指令微調
在圖指令微調范式的第一階段,引入了自監督指令微調機制,其將圖領域特定的結構知識注入到語言模型中,提高其推理能力,并使其能夠有效地理解圖結構中的上下文信息。
具體來說,本文設計了一個結構感知的圖匹配任務,引導語言模型使用自然語言標記來區分不同的圖結點。這個指令任務在準確地將圖結點與其相應的文本描述關聯起來方面起到了關鍵作用,從而加深了模型對圖結構數據的理解。
指令設計
圖匹配任務的指令包括三個部分:i) 圖信息,ii) 人類問題,和 iii) GraphGPT的回應。在這個任務中,將圖中的每個節點視為中心節點,并執行h跳的隨機鄰居采樣,從而得到一個子圖結構。大語言模型的自然語言輸入是人類的問題。
在圖匹配任務的上下文中,指令包括指示符token <graph>
和一個被打亂的節點文本信息列表。例如,在一個論文引用圖中,節點文本信息對應于論文標題。
大語言模型在圖匹配任務中的目標是將每個圖結點token與其相應的節點文本信息對齊。這需要根據圖結點token的順序重新排序節點文本信息列表,有效地將每個圖結點token與其相關的文本描述關聯起來。
微調策略
為了高效地優化微調過程,本文提出了一種輕量級對齊投影策略。在訓練過程中,固定大語言模型和圖編碼器的參數,僅專注于優化投影器的參數。
訓練后,假設投影器已經成功地學會了將編碼的圖表示映射到圖結點token,而大語言模型則擅長將這些圖結點token與多種節點文本信息對齊。為了將圖結點token與自然語言token對齊,使用一個投影器,它可以簡單到用一個單一的線性層實現。
這個投影器建立了圖結點token和自然語言token之間的對應關系。通過在原始自然語言token序列中替換指示符token<graph>
為對齊的圖結點token序列{<graph_begin>
, <graph_token>1
, ..., <graph_token>n
, <graph_end>
},從而得到了一個大語言模型的輸入token序列。
考慮到圖匹配過程是無監督的,這將有機會利用來自不同領域的大量未標記的圖數據,以增強學習到的投影器的泛化能力。
2. 特定任務指令微調
在第二階段,本文提出了特定任務指令微調,旨在定制模型的推理行為,以滿足不同圖學習任務的特定約束和要求,如節點分類或鏈接預測。
通過使用任務特定的圖指令對大語言模型進行微調,引導模型生成更適合當前圖學習任務的響應,進一步提高了模型在處理各種圖學習任務時的適應性和性能。
指令設計
為了為每個節點生成圖信息,采用第一階段相同的鄰居采樣方法。對于節點分類任務,人類問題指令包含指示符token<graph>
和關于中心節點的特定文本信息。
這個指令提示語言模型基于圖結構數據和伴隨的文本信息來預測中心節點的類別。在圖3中可以看到不同任務的指令數據的模版。
微調策略
訓練的第二階段使用第一階段訓練得到的結構感知投影器的參數作為初始狀態,在訓練過程中,保持大語言模型和圖編碼器的參數不變,僅專注于優化前一階段的投影器的參數,確保大語言模型進一步與下游任務對齊,增強其理解和解釋圖結構的能力。
完成上述的兩個訓練階段后,GraphGPT已經獲得了理解給定圖結構并在提供的圖上執行各種下游任務的能力。
3. 思維鏈蒸餾
面對多樣的圖數據,語言模型可能會遇到新的或不熟悉的模式和結構。這種分布的變化可能在生成準確和連貫的回應時帶來挑戰,特別是當節點類的數量在不同類型的圖數據中變化時。
為了應對這一挑戰并在分布變化的情況下提高準確性,為GraphGPT配備逐步推理能力是至關重要的。受思維鏈技術(Chain-of-Thought)技術的啟發,提出通過整合思維鏈技術,提高GraphGPT生成文本的連貫性和一致性,使模型能夠遵循邏輯上的思維發展,進一步增強其理解和推理給定圖數據的能力。
然而,由于思維鏈技術的增益與模型參數規模強相關,如何在較小的模型參數下最大程度獲得思維鏈技術的增益成為關鍵。
為了克服這一點,從之前的研究中汲取靈感,從一個封閉源、強大的語言模型(如GPT-3.5,擁有超過2000億的參數)中蒸餾得到思維鏈推理能力,使GraphGPT能夠生成高質量準確的回答,并增強模型的逐步推理能力,同時避免增加參數。
對于引文圖中的節點分類任務,將節點表示的論文的摘要、標題以及分類任務的描述作為輸入的一部分,使用GPT-3.5語言模型進行逐步推理,通過順序的思考過程得出最終答案。
在生成的輸出中,大語言模型不僅為節點類提供預測,而且為每個預測提供詳細的解釋,這確保了模型的推理和決策過程是透明和可理解的。
為了進一步提高性能,將生成的思維鏈指令數據與之前為任務特定指令微調階段設計的指令集成,進行圖指令微調。
實驗
1. 總體性能
Obs.1 總體性能優越性:GraphGPT在有監督和零樣本場景中都穩定地超越了各種最先進的基線模型。
值得注意的是,即使是最近開發的強大的基于GNN的模型,如NodeFormer、DIFFormer和GKD,在監督設置中都展現出了良好的結構建模能力,但當它們被轉移到沒有進一步訓練的新數據集時,性能顯著下降。
相比之下,GraphGPT不僅在監督任務中超越了所有最先進的方法,而且在零樣本圖學習場景中實現了顯著的2-10倍的準確率提升。
此外,基于大語言模型的解決方案,如Baichuan-7B和Vicuna-7B在不同的數據集中都保持穩定的性能。然而,它們僅限于基于文本信息進行預測。
相比之下,GraphGPT有效地保留了圖結構信息,為圖學習任務提供了更全面的解決方案。
Obs.2 結構感知的圖匹配任務:第一階段指令微調的自監督圖匹配任務,對于增強GraphGPT的零樣本遷移能力起到了關鍵作用。第一階段重點是將編碼豐富結構信息的圖結點token與語言 token對齊。
這種對齊使模型能夠更深入地理解圖數據的固有結構特性。如果沒有第一階段,模型只進行特定任務的指令微調的第二階段,模型往往更容易在特定數據集上過擬合。
在這種情況下,模型的性能可能嚴重依賴于數據集特定的模式和特性,而不是對底層圖結構的真正理解。這可能限制了模型對新的、未見過的數據集的泛化能力。
Obs.3 思維鏈蒸餾:「-std」和「-cot」變體表明,使用思維鏈蒸餾對更復雜的圖學習任務有很大的幫助。
使用標準指令數據集微調的模型在轉移到較簡單的任務時,如只有3個類的PubMed數據集,已經可以取得顯著的結果,例如Arxiv-PubMed的準確率為0.7011。然而,當應用于如Cora數據集這樣有70個類的復雜任務時,它們的性能往往只是中等的。
通過思維鏈蒸餾利用閉源模型(GPT-3.5)的強大推理能力,模型可以整合這些知識和推理能力,并顯著提高其在復雜圖任務上的性能。
2. 泛化性能力探索
更多的數據激發更強的遷移能力:本節首先研究了數據量對GraphGPT遷移能力的影響,如表1中的「(Arxiv + PubMed)-Cora」列所示。
在這個實驗中,使用Arxiv和PubMed數據集的組合來訓練模型,并在Cora數據集上進行零樣本測試。
結果顯示,通過結合相對較小的PubMed數據集(包含20,000+項),GraphGPT在Cora上的轉移性能得到了顯著的提高。相比之下,單獨在Arxiv和PubMed上訓練的基于GNN的模型的轉移性能卻有所下降。
更多的數據但是不遺忘:本節進一步驗證了結合Arxiv和PubMed指令數據在原始Arxiv數據上的性能,如表1中的「(Arxiv + PubMed)-Arxiv」列所示。
結果表明,大多數傳統的基于GNN的方法在Arxiv上經過迭代訓練后性能顯著下降。相比之下,GraphGPT反而表現得更好。
本文將這一現象歸因于基于GNN的模型中發生的災難性遺忘,即在較小的PubMed數據集上訓練的模型的結構建模能力受到損害。
然而,通過兩階段的圖結構指令微調,模型有效地緩解了這一問題,使得GraphGPT能夠通過保留泛化的圖結構模式來維持甚至增強其性能。
可泛化的多任務圖學習器:近期關于指令微調的研究表明,混合不同的指令微調數據可以進一步提高大語言模型的性能。
在本研究中,確保指令條目的數量一致的情況下,混合了不同類型的指令數據,包括標準指令(-std)、思維鏈指令(-cot)、標準指令(50%)和思維鏈指令(50%)的混合(-mix),以及鏈路預測指令(Link)。
結果分別在表2和表3中呈現。可以觀察到,有效的數據混合方案可以顯著提高GraphGPT在各種設置下的性能。
添加鏈路預測指令后顯著提高了模型在節點分類中的性能,在加入節點分類后,鏈路預測的性能也超過了現有模型。
在混合了不同任務的指令后,模型展現出了有效處理各種圖學習任務并將其知識轉移到其他未見數據集的能力。
3. 消融實驗
圖指令微調的效果:在本小節的研究中,使用變體「w/o GS」探討了將圖結構信息納入大語言模型的好處。
在這個變體中,直接采用大語言模型基座(具體為Vicuna-7B-v1.5)在三個數據集上進行節點分類,而不納入圖結構信息。
研究結果顯示,GraphGPT明顯優于缺乏結構信息的基座模型。這表明提出的圖指令微調范式使大語言模型更有效地理解圖結構信息。
重要的是,這種性能的提高是在不改變大語言模型原始參數的情況下實現的。
相反,它完全是通過輕量級對齊投影器來實現,該投影器通過一層線性投影操作對齊圖結點token和自然語言token。
大語言模型增強語義推理的效果:本小節通過僅使用默認的圖編碼器進行有監督和零樣本預測,來評估大語言模型的推理能力對GraphGPT的影響,這個變體被稱為「w/o LR」。
研究結果表明,整合了大語言模型的GraphGPT顯著提高了圖編碼器的性能,特別是在零樣本條件下。這表明大語言模型注入的豐富語義信息為性能提供了顯著的增益。
4. 模型效率研究
訓練效率:提出的指令微調框架遵循兩階段的過程,其中大語言模型和圖編碼器的參數都被凍結,只有「圖-文」對齊投影器被微調。在一個4卡40G Nvidia A100環境中,對凍結和微調大語言模型參數(分別用「-freeze」和「-tune」表示)進行了比較。
該研究分析了在訓練時間、微調參數的數量和GPU占用(每個GPU的MiB)方面的時間和空間效率。在相同的實驗條件下,當調整大語言模型參數時,即使批處理大小為1,也會遇到GPU內存溢出(OOM)錯誤。
然而,通過使用提出的微調策略,即使批處理大小為2,訓練過程仍然穩定。
此外,與全量微調大語言模型相比,提出的微調策略的參數數量減少了50倍以上。
推理效率:本小節進一步通過與baichuan-7B、vicuna-7B-v1.1和vicuna-7B-v1.5進行比較,評估了GraphGPT的推理速度和準確性。
實驗使用單張40G Nvidia A100,測量了在Arxiv和Cora思維鏈指令數據集上的推理時間(每個響應所用的秒數),結果如圖4所示。GraphGPT展示了卓越的效率和準確性。
值得注意的是較低的推理時間并不一定意味著更好的性能:baichuan-7B提供快速但往往是不正確或不相關的答案,而vicuna-7B-v1.1和vicuna-7B-v1.5需要更長、更復雜的推理步驟來得到更好的答案。
相比之下,GraphGPT通過簡短的推理過程實現了準確的預測,提高了推理效率。
5. 模型案例研究
本節對GraphGPT在下游圖學習任務中的表現進行了詳細分析,并使用不同類型的指令將其與傳統大語言模型進行了比較。
實驗使用Arxiv數據提示ChatGPT和GraphGPT,不同類型的指令包括僅使用節點內容(標題和摘要)、帶有基于文本的圖結構的節點內容以及本文設計的圖指令。
結果如圖5中所示,清楚地表明,盡管ChatGPT的參數數量巨大(超過200B),但僅基于節點文本信息或帶有基于文本的圖結構的節點內容進行準確預測仍然困難。
尤其是處理具有高度交叉學科特性的論文時,如例子中所展示的機器學習和硬件架構的交叉。相比之下,GraphGPT始終提供準確的預測并提供合理的解釋。
這是因為GraphGPT接受一個帶有103個節點的子圖結構,允許它從鄰近節點的引文關系中提取豐富的結構信息,從而實現準確的預測。
此外,使用圖結點token來表示圖結構作為輸入到大語言模型的方法比自然語言解決方案更為高效。
在一個103節點的子圖的情況下,GraphGPT只需要將750個token輸入到LLM中,而基于文本的方法需要4649個token。這種顯著的token消耗減少轉化為訓練和推理資源需求的大幅減少。
總結與未來工作
本文提出了一個有效且可擴展的圖結構大語言模型,旨在提高圖結構模型的泛化能力。所提出的框架,GraphGPT,通過雙階段圖指令微調范式將圖領域特定的結構知識注入到大語言模型中。
通過利用一個簡單而有效的圖文對齊投影器,使語言模型能夠理解和解釋圖的結構。在不同設置下的廣泛評估證明了模型在監督和零樣本圖學習場景中的有效性。
此外,該模型展現出強大的泛化能力,使其能夠處理多種下游數據集和任務,而不會遭受災難性的遺忘。
未來的研究方向是探索修剪技術來壓縮LLM的冗余或不太重要的參數,從而減少整體模型大小,同時保持其性能。
One More Thing
關于圖基礎模型的思考:最近基礎模型(Foundation Models)在自然語言處理(NLP)和計算機視覺領域(CV)都有蓬勃的發展,涌現了許多不可思議的應用(如ChatGPT,Segment Anything)。
然而,在圖學習領域,如何構造基礎模型,圖學習領域的基礎模型是否存在一直懸而未定。這是由于不同圖結構的「語義」存在較大區別,無法用一個統一的模型做到跨數據集,多任務的圖結構建模。
我們的工作利用大語言模型強大的語義建模能力,同時用圖指令微調的方法使大語言模型擁有結構理解能力,可以作為圖基礎模型的一個發展方向。
關于Data-Centric 圖學習的思考:基礎模型的發展展現了數據為中心的人工智能(Data-Centric AI)的有效性和優越性。然而,由于不同的圖結構之間的「結構關系」無法像NLP中轉換為統一的token表示或者CV中的像素表示,如何定義和開發Data-Centric 圖學習一直尚無定論。
我們在實驗中發現,GraphGPT可以在混合多種數據的情況下彰顯出更強的準確度,泛化性和多任務屬性,緩解了傳統圖神經網絡的災難性遺忘問題。
因此,我們相信所提出的圖指令微調框架可以很好的作為Data-Centric 圖學習的一個研究基礎。