**導讀:**本次分享的題目是圖表示學習技術在藥物推薦系統中的應用。
主要包括以下四個部分:
研究背景與挑戰 * 判別式藥品包推薦 * 生成式藥品包推薦 * 總結與展望
分享嘉賓|鄭值 中科大 博士研究生
編輯整理|王麗穎 360 出品社區|DataFun
01
研究背景與挑戰
1. 研究背景
藥物推薦是智慧醫療的一個子問題,首先從智慧醫療的大背景說起,在我國智慧醫療存在緊迫性,隨著人口增長、老齡化加劇,人們對于高質量醫療服務的需求不斷攀升。圖中兩組數據,一是全國醫療機構的就診人數在 60.5 億人次,同比增長 22.4%;二是柳葉刀上關于各國醫療衛生條件統計,我國醫生大學本科以上學歷僅 57.4%,包括醫生、護士、社區衛生工作者等 16 類衛生工作職業的每萬人從業者數量上,中國僅達到美國的 1/3 。我國的診療人數不斷攀升,但醫療資源和醫療水平相對于發達國家還有較大的不足,此外還存在著醫療資源分配不均的問題。基層醫療機構的醫療水平相對有限,而頂層機構是供不應求的。因此如何充分利用高水平醫療機構的診療經驗,協助提升基層醫療機構的醫療水平,是一個亟待解決的重要問題。
隨著近些年醫療機構數字化進程加快,我國大量的醫療機構尤其是三甲醫院等高水平醫療機構都已經積累了非常豐富的電子病歷數據。如果能夠利用大數據人工智能技術,充分挖掘此信息并提取相關知識,則有可能幫助我們理解這些高水平機構中醫療專家的一些診療方式和思想,進而支撐智慧復診、醫療影像分析、慢性病隨訪等一系列的下游智慧醫療的應用,這些具有顯著的意義。2. 研究挑戰當下越來越多的醫療 AI 技術正在取得更加廣泛的應用,也推動了醫療服務的公平化和普惠化。部分 AI 技術如醫療影像分析等已經取得了一些令人矚目的成果,但在藥品推薦系統中卻存在較少應用,原因是藥品推薦系統和傳統的推薦系統有著非常大的差別,技術上也存在著諸多的難點。
第一個挑戰是傳統基于協同過濾等方法的推薦系統的應用場景主要是一次為一名用戶推薦一個物品,他們的輸入是單個物品和單個用戶的表示,輸出的是二者之間的匹配程度打分。然而在藥品推薦中,醫生往往需要一次為患者開出一組藥品。藥品推薦系統實際上是一個包推薦系統,叫做 package recommendation system,同時為一個用戶推薦一組藥品。如何結合包推薦系統進行藥品推薦,是我們面臨的第一個大挑戰。
藥品推薦系統的第二個挑戰是藥品之間存在著多種多樣的相互作用。有些藥品之間存在藥效互相促進的協同作用,有些藥品間存在藥效互相抵消的拮抗作用,甚至有些藥品的合用會導致毒性或者其他副作用。圖中病人是患有某種腎臟疾病,左邊部分是醫生為病人所開藥品,其中部分藥品存在協同作用,可以促進藥效。右邊部分是統計分析出來的對癥高頻藥品。可以看到這些藥品可能是由于一些拮抗作用而沒有被選取,下面的藥品可能是跟已有的某種藥品產生了毒性,因此也沒有被此患者使用。此外,藥品的相互作用影響是個性化的。我們在數據統計中發現存在大量有拮抗作用、甚至是有毒性作用的藥品同時使用。根據分析,其實醫生是會根據病人的病情考慮相互作用影響而開出藥物。比如一些腎臟健康的病人,他往往可以承受一定的藥品腎臟毒性的,因此我們需要對藥品之間的相互作用進行個性化的建模和分析。
3. 圖表示學習技術成為了新的可能
總結來說,結合以上的挑戰,圖表示學習技術是非常適合解決藥品推薦系統中存在的問題。隨著圖神經網絡的飛速發展,人們意識到圖神經網絡技術可以非常有效的建模節點之間的組合效應與節點之間的關系,這啟發我們圖表示學習技術或許將會成為構建藥品推薦系統的一個利器。圖中舉例來說,我們可以將一個藥品包根據其中的相互作用構建成圖,通過已有的圖神經網絡進行建模。基于以上想法,我們使用圖深度學習技術在藥品推薦系統上做了兩篇工作,分別發表在 WWW 和 TOIS 期刊上,以下是詳細介紹。
02
判別式藥品包推薦首先介紹一下我們發表在 WWW2021 上的關于藥品包推薦論文。這篇文章采用了包推薦系統中廣泛應用的判別式模型定義方法建模,同時使用了圖表示學習技術作為核心技術部分。
1. 數據描述
首先介紹工作中使用的數據描述。我們在研究工作中使用的電子病歷是來自于一個大型三甲醫院的真實電子病歷數據庫,其中每條電子病歷都包括了以下幾類信息:一是患者的基本信息,包括患者的年齡、性別、醫保等等;二是患者的化驗信息,包括醫生關注的化驗結果的異常,以及異常的種類:偏高、偏低、是否陽性等;三是醫生為患者撰寫的病情描述:包括患者為什么入院、以及初步體格檢查等信息;最后是醫生為患者開的一組藥品。此電子病歷數據是一個異構數據,包括年齡、性別、化驗等結構化信息以及病情描述等非結構化文本信息。
為了研究藥品之間的相互作用,我們從 DrugBank 與藥制網兩個大型在線開源藥品知識庫里收集了部分藥品的屬性及相互作用數據。藥品相互作用是基于一些模板的自然語言描述,如上圖中 description 一欄是在講某種藥品可能可以增加代謝或減弱代謝等,中間話是模板,前后是填充的藥品名字。因此只要清楚模型分類,則可以把數據庫里所有的藥品相互作用進行標記。因此,**我們在專業醫師的指導下,把藥品相互作用考慮了無相互作用、協同作用和拮抗作用三類,把模板進行了標注,得到了藥品相互作用的分類。
2. 數據預處理與問題定義數據預處理來說,對于電子病歷數據,我們將其分為了兩個部分:患者的基本信息和化驗信息,我們將其處理為一個 One-hot 的向量;病情描述文本部分,我們通過一些 Padding 與 Cut off 將其轉化為定長文本。對于藥品相互作用數據:我們將其轉化為一個藥品的相互作用矩陣。同時問題定義如下:給定一組患者的描述以及對應 Ground-truth 藥品包,我們將訓練一個個性化的打分函數,該函數可以輸入給定患者和樣品包,輸出一個匹配程度打分。很明顯,這是一個判別式模型的定義方式。
3. 模型概覽
**本文提出的論文題目是 DPR:Drug Package Recommendation via Interaction-aware Graph Induction。模型包括三個部分:**預訓練部分,我們基于 NCF 框架得到病人與藥品初始表征。藥品包構建部分,我們提出了一種基于藥品相互作用關系類型,將藥品包構建成藥品圖的方法。最后一個部分是基于圖的藥品包的推薦框架,其中設計了兩個不同的變種,從兩種不同的角度去理解如何建模藥品之間的相互作用。
預訓練
首先預訓練部分是按照傳統的一對一推薦方式進行的。給定一個病例,醫生為給病人使用過的藥品是正例,未使用過的藥品是負例。通過 BPRLoss 進行預訓練,使用過的藥品得分比沒使用過的高。預訓練部分主要是要捕捉基本的藥效信息,為后面捕捉更復雜的交互作用提供基礎。對于 One-hot 部分,我們使用 MLP 提取特征;對于文本部分,我們使用LSTM提取文本特征。
藥品圖構建
與傳統推薦相比,藥品推薦的核心問題是如何考慮藥品間的相互作用關系,得到藥品包的表征。基于此,本文提出了基于圖模型的藥品包建模方法。 首先,已標注好的藥品相互作用關系會轉化成一個藥品相互作用矩陣,其中不同的數值表示不同的相互作用類型。隨后基于此矩可以將任意一個給定的藥品包轉化成一個異構藥品圖,圖中節點對應藥品包中的藥品,節點屬性是節點對應上一個步驟中的預訓練過的Embedding。同時為了避免計算量過大,我們并沒有把藥品圖構建成完全圖,即沒有讓任意兩個藥品之間都有一條邊,而是有選擇的進行保留,具體而言只保留了那些被標注過的藥品對的邊以及頻率超過一定閾值的邊。
藥品圖構建
為了對藥品圖進行有效表征,我們提出了兩種方式對藥品圖上的邊屬性進行形式化。
第一種形式是 DPR-WG,使用帶權圖表示藥品圖。首先是根據標注好的藥品相互作用,對邊全值進行初始化,其中使用-1表示拮抗,+1表示協同,0 是表示無相互作用或者未知。隨后使用了掩碼向量對藥品圖中的邊權值進行個性化的更新。該掩碼向量反映了不同藥品的相互作用,對于個病人的個性化的影響程度,它的計算方法是使用一個非線性層加 Sigmoid 的函數使得每一個維度取值都是從 0~1 之間,從而實現特征選擇的作用,對藥品的相互作用進行個性化調整。藥品圖更新過程是在 DPR-WG 中先算出一個更新因子,更新因子與對應邊上的權重相乘或者相加等進行更新。后續實驗中發現其實更新方法對結果影響不大,在藥品圖表征過程中,我們設計了基于帶權圖的表示藥品的方法。總結來說,我們首先設計了一個針對帶權圖的信息更新過程:聚合鄰居信息,在聚合的過程中,根據邊的權重,個性化調整它聚合程度。隨后我們使用了一個 Self Attention 機制把不同節點之間的權重計算,使用一個聚合 MLP 把圖聚合起來得到最終整個藥品圖的表征。后續把病人表征與藥品圖表征輸入到打分函數里面去,可以得到輸出進行推薦。此外,本文使用 BPRLoss 訓練模型,引入負采樣方法,對應 1 個正樣本有 10 個負樣本。
第二個變種是使用屬性圖表示藥品圖。首先是通過一個 MLP 融合邊兩端的節點向量初始化邊向量。隨后同樣使用掩碼向量對邊向量進行更新,此時更新方法就不再是更新因子,而是計算一個更新向量,使用更新向量與藥品的邊向量進行逐元素相乘,得到更新后的邊屬性向量。我們專門設計了針對屬性圖的 GNN,其 message passsing 過程首先是根據邊向量及兩端的節點 Embedding計算出message進行傳播,通過self attention及聚合方法得到Graph Embedding。同樣我們可以采用 BPRLoss 進行訓練,不同的是我們額外引進了一個針對邊分類的交叉熵損失函數,希望邊向量可以包含藥品相互作用的類別信息。因為上一個變種中初始化的正負號天然的保留了此信息,但此變種的圖沒有,因此通過引入損失函數來把此信息補上。
從實驗結果來看,我們的兩個模型均在不同的評價指標上超出了其他判別式模型。同時我們也進行了案例分析:采用 t-SNE 方法,把之前提到的掩碼向量投影到一個二維的空間上。圖中所示,比如孕婦、嬰兒以及肝臟病人等,他們使用的藥物有非常明顯的聚集成簇的趨勢,證明了我們方法的有效性。03
生成式藥品包推薦以上判別式模型只能在已有藥品包中進行挑選,沒有生成新的藥品包能力,會影響推薦效果,接下來我們將會介紹發表在 TOIS 期刊上的針對上一篇工作的擴展工作,目的是希望模型能夠生成全新的為新病人量身定做藥品包。此工作是保留了上一篇論文中圖表示學習的核心思想,同時完全改變問題定義,把模型定義成生成模型,引入序列生成與強化學習技術,大幅的提高了推薦效果。
1. 判別式推薦->生成式推薦
判別式模型與生成式模型的核心區別是判別式模型是給定病人與給定藥品包的匹配程度打分,而生成式模型是為病人生成候選藥品包并挑選最佳藥品包。
2. 啟發式生成方法
針對上文中提出的判別式模型的缺點,我們設計了一些啟發式生成方法:通過在相似病人的藥品包中進行增加和刪除部分藥品的操作,形成一些歷史記錄中從來沒有出現過的藥品包供模型挑選。實驗結果證明這種簡單的方法十分有效,為后續方法提供了基礎。
3. 模型概覽
接下來是發表在 TOIS 的 Interaction-aware Drug Package Recommendation via Policy Gradient 文章。文中提出的模型叫做 DPG,不同于上一篇的 DPR,這里的 G 是 Generation。此模型主要包含三個部分,分別是藥品相互作用圖上的信息傳播,病人的表征以及藥品包生成模塊,與上文的最大的區別是藥品包生成模塊。
藥品相互作用圖
首先構建藥品相互作用圖部分,文中保留了圖神經網絡捕捉藥品間相互作用的方法,不同的是判別式模型中,藥品包是給定的,可以方便的轉化為藥品圖,而在生成式模型中,藥品圖是不固定的,由于計算量原因,無法把所有的藥品包都構建成圖。本文把所有的藥品全部包含在了一個藥品相互作用圖中,同樣采用 Attributed graph 進行圖形式化,同時也保留了邊分類損失函數,保留邊的 Embedding 信息,最后也構建了基于此藥品相互作用圖上的 GNN。經過幾輪(一般為2)的 message passing 后,我們提取其中節點 Embedding 作為要使用的藥品 Embedding。
病人表征
病人表征部分,同樣采用了 MLP 和 LSTM 提取病人的表征向量,同時也會計算掩碼向量,后續用于捕捉病人個性化表示向量。
藥品包生成任務可以視為一個序列生成任務,采用循環神經網絡 RNN 實現。但此方法也帶來了兩大挑戰: 第一個挑戰是在生成過程中如何考慮生成出的藥品和已有的藥品之間的相互作用。為此我們提出了一種基于藥品相互作用向量的方法顯式建模藥品之間的相互作用。第二個挑戰是樣品包是一個集合,本質是無序的,但是序列生成任務往往針對有序序列順序的方法。為此我們提出了一種基于策略梯度的強化學習方法,同時增加了基于SCST的方法來提升此算法的效果和穩定性。
首先介紹如何在基于極大自然的藥品包生成過程中考慮藥品間的相互作用,此部分也是后面用強化學習部分的基礎。基于極大似然的序列生成方法在 NLP 領域已經得到了廣泛使用,在生成過程中,每生成一個藥品都依賴于之前生成的其他藥品。 為了考慮到藥品間的相互作用,同時又不為模型帶來過大的計算負擔,我們提出在每一個時間步,顯式計算最新生成的藥品與之前藥品的相互作用向量,此向量計算方法來自于之前圖神經網絡里的一個層。同時我們增加掩碼向量與相互作用向量進行對應元素相乘,引入患者的個性化信息。最后把所有藥品的相互作用向量求和,使用 MLP 將其融合得到綜合的相互作用向量。后續把此向量融入經典的序列模型中進行生成,則是解決了第一個挑戰。
與經典的序列生成不同的是藥品包其實是一個集合,不應該出現重復藥品,因此我們后續增加了一個限制,讓模型不能生成已經生成過的這個藥品,保證生成結果一定是一個集合。最后我們采用了基于極大似然的 MLE 損失函數訓練模型。
以上基于最大似然的方法最大的缺點是藥品包具有嚴格順序,部分人工為藥品指定順序的方法,如根據頻率排序,根據首字母排序等等,會破壞藥品包集合的特性,同時也會損失掉部分模型的 performance,因此我們提出了基于強化學習的藥品包生成模型。強化學習中模型的目標是最大化人工設置的 reward 函數,在模型生成完整的藥品包之后,給一個和順序無關的 reward 損失函數,則可以減弱模型對順序的依賴性。本文采用的是 F-value 作為 reward,它是一個順序無關的函數,同時是我們所關注的評價指標。本文采用 F-value 作為評價指標,在訓練方式上采用了基于策略梯度的訓練方式,在此就不進行詳細推導。
基于策略梯度的訓練方法中,其重一個廣為人知的方法是使用一個 baseline 減少梯度估計的方差,從而增加訓練的穩定性。因此我們使用了基于 SCST 的訓練方式,即 Self-critical sequence training 方法。baseline 同樣來自于模型自身生成的這個藥品包所獲得的 reward,自己生成的方式我設計為 Greedy search 的正常序列生成方法。我們希望模型根據 Policy gradient 采樣出來的藥品包的 reward 要高于傳統給予 Greedy search 生成出來藥品包。基于此本文設計了強化學習的損失函數,如圖中所示,這里就不詳細的介紹推導過程。
此外,強化學習的一個特性是訓練較難,因此我們結合了以上兩種訓練方式,首先采用極大自然的估計方法對模型進行預訓練,隨后采用強化學習的方法,對模型參數進行微調。
接下來是模型的實驗結果。
在上表中,所有的藥品包都是用 Greedy search 生成的。首先基于生成式模型的表現普遍優于基于判別式模型方法,該實驗證明了生成式模型將會是一個更加優秀的選擇。此模型在 F value 上超越了其他所有的 Baseline。此外,基于強化學習的模型表現大大超越了基于極大似然模型,證明了強化學習方法的有效性。
后續我們還進行了一系列的消融實驗。我們分別去掉了相互作用圖,包括相互作用的掩碼向量以及強化學習的模塊進行消融,結果證明我們的各個模塊都是有效的。同時可以看到,把 SCST 模塊去掉,模型效果下降非常多,因此也證明了強化學習確實比較難訓練。如果不加 Baseline 限制,整個訓練過程會非常抖動。
最后我們也做了大量的案例分析,可以看到孕婦和嬰兒有明顯的個性化偏好。同時我們額外加了一些常見病如胃病、心臟病等,這些病的掩碼向量則分布非常分散,沒有形成簇。常見病的患者情況多種多樣,不會有特別個性化的情況出現,不像孕婦和嬰兒有著非常明顯的對于藥品的篩選,如某些需要指定小兒藥品,有些藥品孕婦不能使用等。同時我們對藥品的相互作用向量進行了投影,可以看到協同作用和拮抗作用兩種藥品相互作用形成了兩個不同的對立情況,說明模型捕捉到了兩種不同相互作用帶來的不同效果。
04
總結與展望總結來說,我們的研究主要是相互作用感知的個性化藥品包推薦,包括判別式的藥品包推薦以及生成式的藥品包推薦。兩者共同點是都使用了圖表示學習技術來建模藥品間的相互作用、都使用了掩碼向量考慮病人病情對于相互作用的個性化的感知。兩項工作最大的區別是問題定義差別,對于判別模型我們要的是一個打分函數,那么對于生成模型我們要的是一個生成器,通過實驗證明,生成式模型其實是對于問題更好的一個定義。
|分享嘉賓|
鄭值
中科大 博士研究生
本科及碩士就讀于中科大計算機學院,博士就讀于中科大大數據學院。以第一作者身份發表CCF A類會議及期刊論文4篇,CCF中文A類期刊論文1篇。曾獲得元慶獎學金、華為獎學金、深交所獎學金等獎項,并入選騰訊犀牛鳥精英科研人才計劃。主要研究方向為推薦系統。
摘要: 電力系統預測主要包括負荷預測、出力預測以及健康狀態預測等。通過負荷預測,可以優化電力生產規劃,從而更好地實現電能的精細化分配;通過出力預測,可以有效提升新能源電力消納能力,實現電能的充分及合理利用;通過電力設備健康狀態預測,可以及時發現設備運行隱患,從而進一步保障電力系統平穩安全運行。深度學習憑借其卓越的特征分析和預測能力,被廣泛應用于電力系統運行及維護。本文首先歸納介紹了電力系統預測深度學習模型的特點、適用場景;其次,梳理了深度學習在面向民用及工業場景負荷預測、光伏及風電出力預測、機械及非機械設備健康狀態預測中的應用前沿;最后,對深度學習在電力系統預測中所面臨的關鍵問題、發展趨勢進行了總結和展望。
//115.25.60.6/article/doi/10.13374/j.issn2095-9389.2021.12.21.006
現代電力系統結構日益復雜,規模不斷擴大, 若僅僅依靠傳統的物理建模方法,難以充分應對 運行分析需求[1] . 結合多源數據,深度學習已廣泛 應用于電力系統預測. 通過采集運維數據、設備 數據等電力系統各環節基礎數據,結合深度學習 技術,可以較好地擬合影響電力系統后續運行狀 態各因素之間的非線性關系[2] ,建立預測模型,實 現電力系統預測,如負荷預測[3] 和出力預測[4] 等. 本文著重對目前研究較多的幾種預測,包括電力 系統負荷預測、新能源出力預測和電力設備健康 狀態預測的應用情況進行歸納和梳理. 針對不同 的應用場景,電力系統負荷預測分為面向民用場 景的負荷預測和面向工業場景的負荷預測;針對 不同的預測對象,出力預測分為光伏出力預測和 風電出力預測;針對不同的設備種類,健康狀態預 測分為機械類設備健康狀態預測和非機械設備健 康狀態預測.
來自東北大學最新《大規模圖神經網絡系統》綜述論文
圖神經網絡(GNN)是一類基于深度學習的處理圖域信息的方法, 它通過將圖廣播操作和深度學習算法結合, 可以讓圖的結構信息和頂點屬性信息都參與到學習中, 在頂點分類、圖分類、鏈接預測等應用中表現出良好的效果和可解釋性, 已成為一種廣泛應用的圖分析方法. 然而現有主流的深度學習框架(如TensorFlow、PyTorch等)沒有為圖神經網絡計算提供高效的存儲支持和圖上的消息傳遞支持, 這限制了圖神經網絡算法在大規模圖數據上的應用. 目前已有諸多工作針對圖結構的數據特點和圖神經網絡的計算特點, 探索了大規模圖神經網絡系統的設計和實現方案. 首先對圖神經網絡的發展進行簡要概述, 總結了設計圖神經網絡系統需要面對的挑戰; 隨后對目前圖神經網絡系統的工作進行介紹, 從系統架構、編程模型、消息傳遞優化、圖分區策略、通信優化等多個方面對系統進行分析; 最后使用部分已開源的圖神經網絡系統進行實驗評估, 從精確度、性能、擴展性等多個方面驗證這些系統的有效性.
圖神經網絡概述
深度學習在對象檢測[1,2]、機器翻譯[3,4]、語音識別[5]、物理系統[6,7]等領域取得了革命性的成功, 推動了對模 式識別和數據挖掘的研究. 現有的深度學習方法能夠處理歐式空間表示下的規則數據, 例如圖像數據可以表示為 歐幾里得空間中的規則網絡, 而現實中的很多應用的數據以圖的形式來表示. 比如在社交網絡[8]中, 可以通過圖來 表示對象之間的關聯關系, 從而能夠進行社區發現、聚類[9]等算法. 在生物領域[10] , 可以通過圖來表示蛋白質分子 之間的關系, 從而能夠對蛋白質進行分類. 在引文網絡[11]領域, 可以用圖來表示論文之間的引用關系, 從而能夠對論文按領域進行分組. 在電子商務領域, 可以用圖來表示用戶和商品之間的交互關系, 從而能夠對用戶進行商品的 推薦. 由于圖數據的不規則性和稀疏性, 每個頂點可能具有不同數量的鄰居, 并且圖數據之間具有依賴性, 圖中每個頂點的計算依賴于其他的頂點, 所以導致很多深度學習方法無法直接應用在圖數據中. 例如, 卷積只能對圖像或文本這樣的歐幾里德數據進行操作, 無法直接應用于圖數據, 限制了深度學習方法在圖領域的發展.
隨著圖領域深度學習方法逐漸受到廣泛關注, 近些年出現了很多圖神經網絡算法, 這些方法通過在傳統深度 學習模型中添加圖操作, 應用圖的結構信息和屬性信息, 來處理圖數據的復雜性, 成為解決圖學習問題的有效方 法. 比較典型的工作有 Structure2Vec[12]、GCN[13]、FastGCN[14]、AS-GCN[15]、GraphSAGE[16]等.
圖神經網絡算法將傳統深度學習的方法, 如卷積, 擴展到了圖數據領域, 并結合數據傳播的思想形成了在圖上的深度學習算法, 其 在社交網絡、推薦系統[17]、知識圖譜[18]、鏈接預測[19]等領域都取得了良好的效果. 圖神經網絡受到廣泛關注的原因如下: 首先, 現有標準神經網絡無法正確處理圖數據的輸入, 因為其按照特定 順序處理節點特征, 而圖中的頂點沒有自然順序. 圖神經網絡算法采用在頂點上傳播信息的計算方式, 忽略頂點的 輸入順序解決了這個問題. 第二, 在標準神經網絡中, 圖中頂點的依賴關系僅能作為頂點特征輸入, 而圖神經網絡 算法根據圖中頂點的依賴關系進行信息傳播, 保留了圖結構的信息, 為下游深度學習任務提供了更加完整的信息. 第三, 推理是高級人工智能的一個重要研究課題, 圖神經網絡強大的表示能力, 為進一步生成強大的神經模型提供 了基礎.
現有的深度學習框架如 TensorFlow[20]、PyTorch[21]、MXNet[22]以及 CNTK[23] , 和圖處理框架 PowerLyra[24]、 PowerGraph[25]、Garaph[26]、Pregel[27]、TuX2[28]都不能很好地支持圖神經網絡的計算, 這阻礙了圖神經網絡的進一 步發展, 也限制了圖神經網絡在大規模數據中的應用. 因此突破現有框架限制, 開發專用于圖神經網絡訓練的系 統, 對于充分發揮圖神經網絡的潛力十分重要.
本文首先分析圖神經網絡算法的計算模式, 提出大規模圖神經系統訓練存在的挑戰, 并對現有系統進行介紹. 然后從系統架構、通信優化等多個維度對這些系統進行詳細的分析和對比, 對圖神經網絡系統的不同優化技術進 行總結和分析, 并對目前已經開源的圖神經網絡系統設計實驗, 從多個方面測評系統的性能, 驗證系統有效性.
大規模圖神經網絡訓練的挑戰
隨著圖神經網絡在不同領域的應用越來越廣, 對訓練圖神經網絡系統的性能要求也越來越高. 結合對圖嵌入[42-44]以及圖神經網絡[45, 46]的分析, 本文對設計開發神經網絡訓練系統存在的挑戰進行如下總結.
(1) 現有深度學習系統不能很好地抽象圖傳播過程. 現有的深度學習系統處理的是規則數據, 規則數據中每個樣本的計算圖是獨立的, 與其他樣本無關, 而圖神經網絡是將深度神經網絡和迭代圖傳播結合起來進行計算的, 圖數據的每個樣本(即圖頂點)之間具有依賴性, 所以現有系統不能自然地表達和有效地支持圖傳播模型. 如何突破現有框架的局限, 設計一種適用于圖神經網絡的系統架構是發展圖神經網絡的重要問題;
(2) 訓練大規模圖神經網絡的計算、存儲復雜度高. 真實世界中的尺寸都非常大, 而且由于頂點之間具有復雜的依賴性, 隨著圖神經網絡層數的增加, 計算成本和內存空間需求呈指數級增長. 例如Facebook的社交網絡圖包含超過20億個頂點和1萬億條邊, 這種規模的圖在訓練時可能會產生100 TB的數據. 所以針對大圖的訓練, 如何設計計算和存儲策略以利用有限的資源來使系統達到理想的性能也是發展圖神經網絡系統的一大挑戰;
(3) 圖計算局部性差導致系統開銷問題. 真實世界圖的稀疏性會導致非常差的空間局部性, 在單機系統中這會導致Cache命中率降低. 而在分布式系統中, 這會導致頻繁的跨節點訪問, 進而產生大量的消息傳遞開銷. 所以如何針對圖的特殊性質減少系統開銷是提高系統性能的一大挑戰;
(4) 圖的冪律分布導致分布式計算負載均衡問題. 對于具有數億個頂點的大型圖, 通常需要對圖進行分布式處理, 圖神經網絡算法不同于傳統的圖算法, 平衡的圖分區不僅依賴于分區內的頂點數量, 還依賴于分區內頂點鄰居的數量, 多層圖神經網絡模型中不同頂點多階鄰居的數量可能相差極大, 并且這些分區之間需要頻繁的數據交換, 如何對圖數據進行合理的分區來保證分布式訓練的性能是對于分布式系統的重大挑戰;
(5) 異構計算架構中的任務劃分和負載調度的合理性問題. GPU的廣泛應用為訓練深度學習模型帶來了很多機會和挑戰. 在利用GPU加速神經網絡的訓練時, 通常將數據存儲在主機內存中, 在計算時需要將數據傳輸到GPU, 由于圖神經網絡算法在反向傳播階段的復雜性, 需要頻繁的在主機和GPU之間進行數據傳輸, 如何設計合理的調度方案來最大程度地減少數據傳輸成本也是提高系統性能的一大挑戰.
為了應對這些挑戰, 出現了很多針對圖神經網絡的訓練框架, 其中單機系統如PyTorch Geomertic、DGL、NeuGraph. 圖神經網絡通常處理非常大且不規則的圖, 這些大圖無法存儲在單個設備中, 因此必須以分布式方式進行分區和處理, 其中分布式圖神經網絡框架如Euler、AliGraph、Roc、AGL. 接下來本文將介紹若干典型的單機圖神經網絡系統以及分布式圖神經網絡系統.
圖神經網絡系統介紹
圖神經網絡算法將深度神經網絡的運算(如卷積、梯度計算)與迭代圖傳播結合在一起: 每個頂點的特征都是由其鄰居頂點的特征結合一組深度神經網絡來計算. 但是, 現有的深度學習框架不能擴展和執行圖傳播模型, 因此缺乏高效訓練圖神經網絡的能力, 并且現有框架一般采用數據/模型并行來分布式訓練深度神經網絡, 這種并行計算方法難以直接應用于圖神經網絡, 因此限制了訓練大規模圖神經網絡的能力. 而現有的圖處理系統雖然能夠表示迭代圖傳播模型, 并能有效支持大規模圖的迭代計算, 但是缺乏支持神經網絡計算的關鍵能力, 如張量抽象、自動微分等. 因此, 為了支持圖神經網絡在大規模圖上的應用, 以及對更復雜圖神經網絡結構的探索, 開發針對圖神經網絡的訓練系統是十分有必要的.
目前具有代表性的圖神經網絡框架: DGL[47]、PyTorch Geometric[48]、NeuGraph[49]、EnGN[50]、Euler[51]、PSGraph[52]、AliGraph[53]、Roc[54]、AGL[55]、PGL[56]. DGL[47]是易于使用, 高性能且可擴展的Python庫, 用于圖結構的深度學習, 能夠與主流的深度學習框架集成, 例如Tensorflow[20]、PyTorch[21]、MXNet[22]. PyTorch Geometric[48]是基于PyTorch構建的深度學習庫, 用于處理非結構化數據的深度學習. NeuGraph[49]是一種將數據流系統和圖處理系統結合起來訓練圖神經網絡的框架, 它構建在現有的數據流引擎之上, 使用Python和C++作為開發語言. EnGN[50]是一種以邊為中心, 專門用于大規模圖神經網絡訓練的加速器. Euler[51]與PSGraph[52]是一個與深度學習工具集成的大規模分布式圖學習框架, 支持用戶在數十億點數百億邊的圖上進行模型訓練. AliGraph[53]是由阿里巴巴團隊開發的采樣建模訓練一體化的圖神經網絡平臺. Roc[54]是一種用于快速圖神經網絡訓練的分布式多GPU框架. AGL[55]是用于工業用途圖學習的集成系統, 利用傳統基礎架構(MapReduce、參數服務器[57])實現了容錯性和一致性. PGL (paddle graph learning)[56]是由百度開發的基于PaddlePaddle的高效靈活的圖學習框架.
圖神經網絡系統總結和分析
本節從系統架構、處理模型、圖分區策略、通信優化策略、以及社區活躍度與系統易用性方面, 對現有圖神經網絡系統進行分析和對比, 并從多個維度對系統的特點進行總結, 以表格的形式清晰的展示系統的共性與不同, 來為研究人員提供有效參考.
(1) 系統架構. DGL和PyTorch Geometric都是結合現有的深度學習框架來實現的, 并且針對圖神經網絡的特點做了多種優化, 達到了很好的性能. 結合現有深度學習框架來實現的系統, 更加方便用戶使用, 能夠幫助其更快地實現圖神經網絡模型. 但結合現有深度學習框架來實現的系統, 在針對圖操作的優化上有很多局限性. NeuGraph采用了一種新的架構, 將圖模型和數據流模型結合起來, 以支持高效的圖神經網絡訓練, 這種架構既彌補了現有數據流引擎不能有效地支持圖計算的缺點, 又彌補了圖引擎不能支持數據流編程模型的缺點. EnGN在統一的處理模型基礎上, 開發了一個定制的EnGN加速器, 它集成了一個神經圖處理單元(NGPU), 可以在統一的體系結構中執行特征提取, 聚合和更新操作. EnGN的專用加速器突破了硬件結構的限制, 相比于其他系統配備的多個CPU或GPU, 大大降低了成本和能源開銷. AliGraph、Euler和PGL的架構類似, 都采用分層架構, 構建于現有數據流框架之上, 并且都構建在CPU平臺上. Roc將圖神經網絡的計算分布在多個計算節點上, 每個計算節點可以包含多個GPU, 每個計算節點在子圖上執行圖神經網絡的訓練, 并與CPU通信來獲得輸入張量并保存中間結果. Roc采用分布式多GPU的架構不僅解決了單節點系統對于大規模圖的限制, 并且比基于CPU的系統更高效. AGL、PSGraph都是利用現有大數據處理系統和參數服務器的并行體系結構來組建的基于CPU的分布式圖神經網絡訓練框架, 這些系統具有良好的容錯性和可伸縮性.
(2) 處理模型. DGL和PyTorch Geometric通過使用面向圖的消息傳遞接口包裝深度學習系統, 來支持針對圖神經網絡的編程. 這種消息傳遞模型很好地表示了圖上的數據流動, 整個模型分為兩步. 第1步: “消息”生成操作, 這個操作定義在每個邊上, 通過將邊的特征與兩端頂點特征組合為每一條邊生成一條“消息”. 第2步: 更新操作, 定義在每個頂點上, 通過匯總頂點入邊傳入的消息來更新頂點特征. 通過系統提供的消息傳遞接口, 用戶可以快速實現圖神經網絡的原型制作. PGL也采用消息傳遞范式構建圖神經網絡的接口, 并提供多種聚合方法, 提高了并行處理效率. NeuGraph提出了一種新的處理模型SAGA-NN, 提高了在頂點和邊上執行批量操作的靈活性, 提供了在圖計算和數據流調度中實現優化的機會, 提高了系統性能. EnGN提供一種以邊為中心的處理模型, 將圖神經網絡的計算抽象為特征提取, 聚合和更新3個階段. EnGN與其他3個系統不同, 在處理模型基礎上定制了針對圖神經網絡的加速器, 不依賴于現有的深度學習系統, 并擁有獨特的數據流處理方法. EnGN優化了頂點數據和邊數據移動的內存訪問模式. 對于大圖中的源頂點數據訪問, 采用圖切片技術, 并確保對源節點的訪問僅引起對連續內存地址的訪問. 對于聚合和更新階段中的隨機目標頂點訪問, EnGN利用哈希邊數據布局和多級緩存方法來避免寫沖突并提高片上緩沖器中的數據命中率.
(3) 圖分區策略. 平衡的圖分區是實現分布式圖神經網絡系統的關鍵之一. Euler采用簡單的哈希方法將圖的頂點進行分片, 這種分片方式使各個節點擁有目標頂點的數量基本一致, 但是在每個頂點的子圖中擁有的鄰居數量是不同的, 所以每個節點的計算負載并不均衡. AliGraph則提供了多種內置的圖分區算法供用戶選擇, 比如適合處理稀疏圖的METIS方法, 適合稠密圖的點割和邊割方法, 這種方法雖然為用戶提供了多種選擇, 但需要用戶自己去判斷使用哪種分區方式, 給用戶造成很大不便. Roc采用一種在線線性回歸模型來優化圖分區. 這種基于線性回歸的圖分區方法在圖神經網絡系統中能夠達到比傳統分區更好的性能.
(4) 通信優化策略. 針對通信開銷影響分布式系統性能的問題, Euler采用的是緩存對應頂點k階內的鄰居頂點信息, 這種方式雖然直接避免了計算節點之間的通信, 但是造成了很嚴重的內存浪費, 并且在冪律分布的圖中還會使各個計算節點之間負載不均衡. AGL采用的策略和Euler相同, 但是AGL提出了重新索引的策略來均衡負載. AliGraph提出了一種緩存重要頂點的鄰居的方法來降低通信開銷, 同時提出了一種對頂點重要性的度量標準, 既能有效減低通信開銷, 又防止產生巨大的存儲成本, 避免資源浪費. ROC引入了代價模型, 可以最大程度地減少CPU和GPU之間的數據傳輸. 這種動態的方法突破了手動優化的局限, 將影響通信的多種因素綜合考慮, 從而更好的降低通信成本, 提高系統性能. PGL的分布式參數服務器提供了一種高效的參數更新策略: GeoSSD, 在全異步的條件下進行參數更新, 并重疊模型訓練與節點通信, 在保證模型效果的前提下提升了訓練效率.
(5)社區活躍度與系統易用性. PyTorch Geometric、DGL、AliGraph、Euler、PSGraph、PGL為開源系統, 這里的社區活躍度以GitHub上討論區的數量為標準, 這其中最活躍的社區為PyTorch Geometric. 在系統易用性方面, 從配置文件的完整度、對其他系統的依賴度、用戶使用的方便度多個角度綜合考量, 這其中DGL和PyTorch Geometric的易用性排在前列, 而Euler與PSGraph雖然給出了配置文件, 但在配置系統時, 需要配置其他多個依賴包, 并且數據處理過程繁瑣, 不易用戶使用. 本文為系統的社區活躍度和易用性給出星級評價, 星級越高, 系統在這兩方面表現越好, 其中空白符號表示系統未開源.
本文對目前的圖神經網絡系統從多個維度進行了綜合分析, 對這些系統的共同特性進行提取, 并總結歸納, 見表1.
總結
本文首先簡要介紹了圖神經網絡的發展, 并對典型的圖神經網絡算法的計算模式進行了介紹, 并簡要分析了圖神經網絡訓練的難點. 然后本文對現有圖神經網絡系統做了詳細描述, 并對這些系統從系統架構、處理模型以及優化策略和系統易用性等多個角度進行分析和總結, 總結了針對圖神經網絡系統的多種優化技術, 最后使用目前可用的開源系統驗證了現有分布式圖神經網絡系統的有效性. 經過論文分析與總結, 發現現有圖神經網絡系統仍存在以下問題, 同時也是未來的研究方向: 首先, 目前系統所采用的架構仍依賴于現有數據流框架, 現有數據流框架針對深度神經網絡的運算做了一系列優化, 但缺少針對圖操作的優化尤其是高效分布式圖操作, 與這些框架結合起來搭建系統, 制約了分布式圖神經網絡系統的進一步發展. 第二, 目前系統所采用的小批量并行計算方式, 并不適用于基于譜方法的圖卷積網絡, 本文通過實驗發現, 采用這種并行計算方式會對基于譜方法圖卷積網絡的訓練精度產生影響. 第三, 圖的分區操作和通信管理是影響系統性能的關鍵因素, 盡管目前的系統已經在這兩方面提出多種優化, 減少了內存消耗和通信開銷, 但這兩者仍存在非常大的優化空間.
隨著互聯網和信息計算的飛速發展,衍生了海量數據,我們已經進入信息爆炸的時代。網絡中各種信息量的指數型增長導致用戶想要從大量信息中找到自己需要的信息變得越來越困難,信息過載問題日益突出。推薦系統在緩解信息過載問題中起著非常重要的作用,該方法通過研究用戶的興趣偏好進行個性化計算,由系統發現用戶興趣進而引導用戶發現自己的信息需求。目前,推薦系統已經成為產業界和學術界關注、研究的熱點問題,應用領域十分廣泛。在電子商務、會話推薦、文章推薦、智慧醫療等多個領域都有所應用。傳統的推薦算法主要包括基于內容的推薦、協同過濾推薦以及混合推薦。其中,協同過濾推薦是推薦系統中應用最廣泛最成功的技術之一。該方法利用用戶或物品間的相似度以及歷史行為數據對目標用戶進行推薦,因此存在用戶冷啟動和項目冷啟動問題。此外,隨著信息量的急劇增長,傳統協同過濾推薦系統面對數據的快速增長會遇到嚴重的數據稀疏性問題以及可擴展性問題。為了緩解甚至解決這些問題,推薦系統研究人員進行了大量的工作。近年來,為了提高推薦效果、提升用戶滿意度,學者們開始關注推薦系統的多樣性問題以及可解釋性等問題。由于深度學習方法可以通過發現數據中用戶和項目之間的非線性關系從而學習一個有效的特征表示,因此越來越受到推薦系統研究人員的關注。目前的工作主要是利用評分數據、社交網絡信息以及其他領域信息等輔助信息,結合深度學習、數據挖掘等技術提高推薦效果、提升用戶滿意度。對此,本文首先對推薦系統以及傳統推薦算法進行概述,然后重點介紹協同過濾推薦算法的相關工作。包括協同過濾推薦算法的任務、評價指標、常用數據集以及學者們在解決協同過濾算法存在的問題時所做的工作以及努力。最后提出未來的幾個可研究方向。
//jcs.iie.ac.cn/xxaqxb/ch/reader/view_abstract.aspx?file_no=20210502&flag=1
目前流行的圖表示學習(GRL)方法通常依賴于從“大”數據中學習,需要大量標注數據進行模型訓練。然而,通常情況下,圖形與“小”標記數據相關聯,因為數據注釋和標記總是一項耗時和資源消耗的任務。這個事實掩蓋了GRL在許多實際情況下的能力和適用性。因此,對圖的數據有效學習已經成為許多現實應用的必要條件,近年來已經有許多關于這一主題的研究。在本教程中,我們將系統地回顧近年來關于圖數據高效學習的研究,特別是圖少樣本學習和圖自監督學習的一系列方法和應用。首先,我們將介紹圖表示學習方法、傳統的少樣本學習和自監督學習技術的概況。然后,我們將從三個主要的不同粒度的圖挖掘任務: 節點級學習任務、圖級學習任務和邊緣級學習任務來介紹圖數據高效學習的工作。最后,我們將總結本教程,并提出未來研究中有待解決的問題和迫切需要解決的問題。本教程的作者是這個研究領域的活躍和多產的研究者。關鍵詞: 圖表示學習,數據高效學習,少樣本學習,自監督學習。
現實世界的系統通常被建模為圖形,表示由邊(關系)連接的節點(實體)以及節點和邊中的內容。在進行特定目的的機器學習算法特征工程時,系統中的大規模數據收集既需要領域理解,又需要較大的探索搜索空間。因此,許多數據驅動圖表示學習技術(data-driven graph representation learning techniques, GRL)[6,21]被提出用于自動生成各種應用領域的圖的特征表示,包括信息服務、醫療保健、網絡安全等。
在一個系統中開發強大的GRL通常需要大量的特定任務的監控信息(標記數據)進行模型訓練。然而,丟失或缺少標簽數據在實際系統中是很常見的,做數據注釋通常代價很高。例如,治療活性的分子特性檢測需要大量的人力物力和實驗資源。對于進入系統的新用戶/實體,信息服務面臨冷啟動問題。近年來,研究者針對GRL中的小標記數據挑戰提出了許多數據高效學習模型,主要基于少樣本學習[19]和自監督學習[11]。因此,我們有動機組織本教程來回顧最近關于圖表數據高效學習的工作,并討論它們如何解決現實世界的問題。結合不同粒度級別的主要圖數據挖掘任務,本教程將研究內容分為概覽、節點級數據高效學習、圖級數據高效學習和邊緣級數據高效學習四個部分。
概述。我們將介紹背景和概述。首先,我們將介紹主要的圖表示學習方法[6,21],傳統的少樣本學習[19]和自監督學習技術[11]。然后,我們將介紹數據高效GRL研究的概況。
節點級數據高效學習。我們將在節點級別上介紹數據高效學習的方法和應用。目標是用小的標記數據對圖上的節點進行預測。我們將涵蓋一般節點分類[2,7,8,10,16,18,23,24,28]和異常檢測[3,12,15]。
圖級數據高效學習。我們將介紹數據高效學習的方法和應用。與節點級預測任務不同,目標是使用少量注釋信息對整個圖進行預測。我們將討論一般的圖分類[1,14]和分子預測[5,17]。
邊級數據高效學習。我們將在邊級層面討論數據高效學習的方法和應用。其目的是利用小的已知關系數據對關系結構進行建模,并預測節點之間的缺失關系。我們將包括鏈路預測[4,9,22,26]、多跳關系推理[13,27]和推薦[20,25]。
音樂流媒體服務嚴重依賴推薦系統來改善用戶體驗,通過幫助他們瀏覽一個大型音樂目錄,并發現新的歌曲、專輯或藝術家。然而,向新用戶推薦相關和個性化的內容,而不需要與目錄進行交互,是一項挑戰。這通常被稱為用戶冷啟動問題。在這篇應用論文中,我們提出了最近部署在音樂流媒體服務Deezer上的系統來解決這個問題。該解決方案利用了一種半個性化的推薦策略,該策略基于深度神經網絡架構,并基于來自異構信息源的用戶集群。通過離線和在線的大規模實驗,我們廣泛展示了該系統在預測冷啟動用戶未來音樂偏好方面的實際影響和有效性。我們公開了我們的代碼以及我們實驗中的匿名使用數據。我們希望此次發布的行業資源將有助于未來用戶冷啟動建議的研究。
藥物發現是一個非常漫長和昂貴的過程,開發一種新藥平均需要10年以上,花費25億美元。人工智能有潛力通過從大量生物醫學數據中提取證據來顯著加快藥物發現過程,從而徹底改變整個制藥行業。圖表示學習技術是機器學習和數據挖掘領域中一個快速發展的主題,專注于圖形結構數據的深度學習。由于該領域中的許多數據都是分子和生物醫學知識圖等圖形結構的數據,它為藥物發現帶來了巨大的機遇。在本次演講中,我將介紹我們在藥物發現的圖表示學習方面的最新進展,包括: (1)分子性質預測; (2)從頭分子設計與優化; (3)反合成預測。
題目:Graph Structure Estimation Neural Networks
作者:Ruijia Wang, Shuai Mou, Xiao Wang, Wanpeng Xiao, Qi Ju, Chuan Shi and Xing Xie
簡介:盡管現有的GNN已成功應用于各種場景,但存在一個基本的假設:所觀察到的圖結構是正確的且符合GNN的性質。實際上,由于圖通常抽取自復雜的交互系統,該假設總是被違反。原因之一是這些交互系統通常包含不確定性或錯誤。例如,在蛋白質相互作用圖中,傳統的實驗誤差是錯誤的主要來源。另一個原因是數據缺失是不可避免的。例如,Internet構建的圖通過檢查路由表或跟蹤路由路徑集合確定,而這兩個表僅給出了邊的子集。已經有研究表明不可靠的圖結構可能會嚴重限制GNN的表示能力,其中一個典型的例子是GNN的性能會在同配性(即同一社區內的節點傾向于相互連接)差的圖上大大降低。簡而言之,在實際的圖中普遍存在缺失、無意義甚至錯誤的邊,這導致其與GNN的性質不匹配,并對結果的準確性或正確性產生影響。因此,迫切需要探索適宜于GNN的圖結構。
然而,有效學習適合于GNN的圖結構在技術上具有挑戰性。我們認為,需要解決兩個障礙。(1)應考慮圖生成機制。網絡科學的很多文獻中已經證明圖的生成可能受某些基本原則的約束,如隨機塊模型模型。考慮這些原則,可以從根本上驅使學得的圖保持規則的全局結構,并對實際觀測中的噪聲更魯棒。不幸的是,大多數當前方法對每條邊進行參數化,沒有考慮全局結構和圖的基礎生成機制,因此學得的圖對噪聲和稀疏性的容忍度較低。(2)應該利用多方面信息以減少偏差。從一個信息源學習圖結構不可避免地會導致偏差和不確定性。合理的假設是如果一條邊在多次測量中存在,則邊存在的置信度會更大。因此,一個可靠的圖結構應該考慮全面的信息,盡管要獲得多視圖的信息并描述它們與GNN的關系是很復雜的。現有的方法主要利用特征相似性,從而使學得的圖易受單一視圖偏差的影響。
為了解決上述問題,在本文中我們提出了圖結構估計神經網絡(GEN),通過估計適宜于GNN的圖結構來提高節點分類性能。我們首先分析GNN的性質以匹配適當的圖生成機制。GNN作為低通濾波器,平滑鄰域以使相鄰節點表示相似,適用于具有社區結構的圖。因此,我們提出結構模型約束圖生成過程,假設圖是從隨機塊模型(SBM)中產生的。此外,除觀察到的圖結構和節點特征外,我們還創造性地利用多階鄰域信息來規避偏差,并提出觀測模型將上述多視圖信息作為最佳圖結構的觀測共同建模。為了估計最佳圖結構,我們在GNN訓練期間構造觀測集合,并基于結構和觀測模型應用貝葉斯推斷來計算圖結構的后驗分布。最后,估計的圖結構和GNN的參數通過精心設計的迭代優化實現彼此增強。