郭夢潔,熊 贇
(復旦大學計算機科學技術學院上海市數據科學重點實驗室,上海 201203)
隨著各種高通量生物技術的迅速發展,生物學領域產生了海量數據,使研究人員能夠收集和研究大量數據,以更好地闡釋復雜疾病的潛在生物學機制[1]。科研機構在生物醫學數據的研究上取得了重要進展,但是由于利用海量的數據進行生物學實驗需要耗費大量的時間和資源,大部分數據在最初的獲取和分析后被擱置[2],因此,數據的生成和整合分析數據的能力之間的差距越來越大。
很多疾病關聯數據可以表示成網絡,其中節點代表生物實體,如疾病、基因等,節點間的邊指代它們之間的關系。這些網絡往往都包含多種類型的實體和關系,被稱作異質網絡[3]。疾病或其他生物實體在異質網絡中是相似的,則它們有很大可能性存在關聯。例如一種miRNA 在一種疾病起關鍵作用,則很有可能在相似疾病中起到相似的作用[2]。
為充分利用網絡中的信息,研究人員采用網絡表示學習算法[3],將網絡映射到低維向量空間,同時保留原有的網絡結構、節點內容等。近年來,興起了異質網絡表示學習算法的研究,一類是基于隨機游走采樣正負節點的訓練,代表性的算法包括Metapath2vec[4]、HeteWalk[2],但它們都依賴合適的元路徑[2],元路徑的選擇需要人工經驗,另一類是將異質網絡分解成子網絡表示學習后進行信息融合,例如PTE[5]、AspEm[6],但在分解和融合過程中容易丟失網絡中的重要信息。此外,上述算法都忽視了節點的數據分布,因此學習的向量表示缺乏魯棒性。
本文提出一種基于生成式對抗網絡(Generative Adversarial Network,GAN)[7]的異質網絡表示學習算法DisGAN。該算法中的判別器和生成器設計通過異質網絡中的關系區分不同關系鏈接的節點對,一對節點被認為是真實的必須滿足基于網絡拓撲結構的真實節點被正確的關系鏈接。DisGAN 算法考慮了網絡中的關系以捕獲豐富的異質信息,并通過對抗學習得到魯棒的向量表示,同時為實現關聯預測的目標并驗證DisGAN 算法性能,本文整合6 個公開數據集構建一個生物異質網絡,進行基因-疾病關聯預測和miRNA-疾病關聯預測。
異質網絡定義為G=(V,E),V 和E 分別代表節點集合和邊集合。該網絡也關聯一個節點類型映射函數?:V →A 和一個邊類型映射函數φ:E →R,其中A 和R 分別代表節點類型和邊類型集合且|A|+|R|>2[3]。
異質網絡表示學習[3]的目標是學習一個映射函數,將網絡中每個節點v?V 映射到一個低維向量空間Rd,其中d?|V|,盡可能保留網絡原有信息。
生成式對抗網絡[6]公式定義如下:

生成器G使用來自預定義分布Pz的噪聲z,生成盡可能接近真實數據的偽樣本,判別器D旨在區分來自Pdata的真實數據和生成器生成的偽數據,θG、θD表示參數。
本節介紹DisGAN 算法,DisGAN 包括判別器Discriminator 和生成器Generator 兩部分。網絡中真實存在的節點對且通過正確的關系鏈接是正樣本,其他均為負樣本,判別器需要進行區分,而生成器需要生成和給定節點通過給定關系相連的偽節點。DisGAN 模型框架如圖1 所示。

圖1 DisGAN 模型框架Fig.1 Framework of DisGAN model
2.1.1 DisGAN 中的判別器
在異質網絡中必須區分給定關系下的真實和虛假節點,因此判別器需要評估一對節點在給定關系下的鏈接性。給定異質網絡G 中一個節點i?V 和關系r?R,參數為θD的判別器D給出一個樣本j是否通過關系r和節點i相連的概率。樣本j可以是真實節點,也可以是生成器生成的偽節點。
判別器D公式定義如下:
其 中,vi,vj?Rd是節點i和j的d維表示向量,Mr?Rd×d是關系r的關系矩陣,參數θD是判別器D學習的所有節點的表示向量和關系的表示矩陣。
如果樣本j是通過關系r和節點i相連的真實節點,判別器給出的概率值應該較高,而對偽樣本應該較低。通常,樣本j與給定的i和r組成一個三元組,就其正負極性而言,每個三元組均屬于以下4 種情況之一,每種情況也構成了判別器損失函數的一部分。
1)通過正確關系鏈接的真實節點
節點i和j是異質網絡G 中的真實節點,并通過真實關系r連接,這樣的三元組是正樣本,希望判別器將其標記為真,因此損失函數定義如下:

從網絡G 中提取上述三元組,即~G。
2)通過錯誤關系鏈接的真實節點
異質網絡中的節點i和j通過一個錯誤的關系r′(r′≠r)鏈接。由于它們的鏈接性與給定關系r攜帶的期望語義信息不匹配,因此判別器希望將其判定為負樣本:

節點對(i,j)從網絡G 提取,關系r′從R'=R -r獲得。
3)通過正確關系鏈接的偽節點
給定異質網絡中一個節點i和其關系r,然后通過生成器G(i,r)生成節點j'。該三元組也應該被判別為負,所以將損失函數定義如下:

偽節點j'的表示向量是從生成器G學習到的分布中提取的,與生成器G的模型參數θG不同。
4)通過錯誤關系鏈接的偽節點
給定節點i和一個i中不存在的關系r*,輸入生成器G(i,r*)生成一個偽樣本j'。判別器的目標是將該三元組也判定為負:

其中,R*代表網絡G 的關系集合R 和節點i擁有的關系子集之間的差集。
整合上述4 個部分作為損失函數訓練判別器:

其中,λD‖θD‖是正則化項用來防止過擬合,通過最小化LD來優化判別器參數θD。
2.1.2 DisGAN 中的生成器
生成器同樣考慮到網絡的異質性,即給定來自異質網絡G 的節點i?V 和關系r?R,參數為θG的生成器G希望生成盡可能和節點i通過關系r鏈接的節點。
生成器希望通過生成接近真實節點的偽樣本來欺騙判別器,使判別器給偽樣本賦予高分:

其中,λG‖θG‖是正則化項,通過最小化公式LG訓練生成器。
DisGAN 模型使用迭代的數值計算方法[8]進行訓練。首先初始化模型參數θG和θD,然后迭代訓練判別器和生成器直到模型收斂。DisGAN 模型訓練過程如算法1 所示。
算法1DisGAN 模型訓練

DisGAN 模型生成器和判別器每次更新主要涉及節點向量和關系矩陣的更新,每輪迭代時間復雜度為O((nG+nD)˙ns˙|V|˙d2),其中,nG和nD是訓練次數,ns是樣本數目,|V|是節點數目,d是維度。本文將nG、nD、ns和d視為常數,所以DisGAN 每輪迭代的時間復雜度是O(|V|)。
DisGAN 模型的生成器是使用Leaky ReLU[9]激活函數的兩層感知機,將最后一層輸出當作偽節點無需softmax 計算采樣偽節點,所以對于整個網絡每輪迭代生成器采樣偽節點的時間復雜度為O(|V|),|V|是網絡中節點數目;而對每個節點每次softmax計算需要遍歷網絡中所有節點,因此每輪迭代時間復雜度為O(|V|2),計算代價非常高。
DisGAN 模型中判別器的參數θG是網絡節點的表示向量和關系的表示矩陣,通過對抗學習優化模型參數。判別器和生成器在對抗學習過程中迭代訓練:首先固定生成器G的參數θG,然后從網絡中采樣真實節點關系三元組,生成器G對每個給定的節點和關系生成ns個偽節點,最后通過最小化式(7)定義的損失函數優化參數θD從而訓練判別器;固定判別器的參數θD,然后同樣采樣真實樣本和偽樣本,最后根據式(8)優化生成器參數θG以生成更好的偽節點。上述迭代過程直到模型收斂時停止。
DisGAN 相對于GAN[7]的改進主要在于將其擴展應用到網絡表示學習:GAN 僅僅區分真偽節點無法捕獲網絡節點間的關系信息,而DisGAN 區分不同關系鏈接的節點對,從而捕獲網絡的結構和語義信息;GAN 中生成器輸入為隨機噪聲,DisGAN 加上網絡中的節點和關系,從而生成和真實節點更相似的偽節點進行訓練提升模型表現。
本文實驗所用數據集如下:
1)基因相互作用網絡:從HPRD 數據庫[10]中獲得的39 240 條記錄。
2)miRNA 相似性網絡:從MISIM 數據庫[11]中提取的56 289 條數據。
3)疾病相似性網絡:從MimMiner[12]中提取 的3 162 016 條數據。
4)基因-疾病關聯網絡:從DisGeNET 數據庫[13]中提取的19 714 條記錄。
5)基因-miRNA 關聯網 絡:從miRTarBase 數據庫[14]中提取的21 259 條記錄。
6)miRNA-疾病關聯網絡:從文獻[15]提供的數據集和miRNet[16]中提取的878 條數據。
通過共同節點鏈接上述6 個網絡來構建一個生物異質網絡。
本文的實驗對比算法主要包括:
1)HSSVM[17]:基于HeteSim 得分[18]衡量節點相關性,使用監督學習算法進行疾病關聯預測。
2)GAN[7]:生成器輸入從正態分布中采樣的噪聲生成偽節點,判別器區分網絡節點和生成器產生的偽節點,將網絡節點表示作為模型參數訓練。
3)DeepWalk[19]:使用隨機游走得到節點序列基于skip-gram[20]模型學習表示向量。
4)AspEm[6]:通過將異質網絡分解成語義子圖,分別學習每個子圖中節點向量表示后進行拼接得到最終節點向量表示。
5)HeteWalk[2]:使用元路徑和鏈接權重指導的隨機游走并基于異質skip-gram 模型進行表示學習。
本文分別進行基因-疾病關聯和miRNA-疾病關聯實驗。每次實驗將已知的關聯數據隨機劃分為訓練集和測試集,訓練集所占比例(R)從50%變化到90%。在進行測試時,已知的關聯作為正樣本,隨機選擇相同數目且相同類型但沒有關聯的節點對作為負樣本,通過算法得到節點表示向量的余弦相似度(歸一化后的點積)得分作為預測值。不同算法在不同訓練比例下的AUC 得分[21]如表1 和表2 所示。

表1 基因-疾病關聯預測實驗的AUC 得分Table 1 AUC score of gene-disease association prediction experiment

表2 miRNA-疾病關聯預測實驗的AUC 得分Table 2 AUC score of miRNA-disease association prediction experiment
從表1 和表2 可以發現,DisGAN 算法在兩個預測任務所有訓練比例上的表現一直都超過所有對比算法。HSSVM 沒有采用網絡表示學習,只提取沿路徑的兩個節點之間可訪問性的簡單特征。GAN 盡管考慮了向量表示的魯棒性,但是忽視了節點間的關系,沒有捕獲網絡的拓撲結構和語義關系。DeepWalk 表現較差的主要原因是針對同質網絡設計的網絡表示學習算法,忽視了不同節點和鏈接類型。AspEm 在網絡分解合并過程中可能會丟失一些重要信息。HeteWalk 盡管通過基于元路徑的隨機游走捕獲到網絡的異質信息,但是沒有學習節點的數據分布,學習到的向量表示魯棒性不高。在所有對比算法中,AspEm 和HeteWalk 表現較好,說明考慮網絡異質性可以提升預測結果。
本文提出的DisGAN 模型超過了所有的對比算法,可以通過對抗學習節點的數據分布,得到更具魯棒性的表示,能夠較好地保留網絡結構和異質語義信息。此外,DisGAN 模型在基因-疾病關聯預測任務上的表現提升更明顯,主要是由于異質網絡中基因-疾病關聯數據相對更多且數據可能更稀疏或存在噪聲,因此需要更具魯棒性的向量表示。
本節探究每個算法在處理異質性上的能力。實驗中采用三折交叉驗證,并去除3.1 節中部分數據集生成了另外兩個只包含兩種節點類型的子網絡。從圖2 和圖3 可以發現,在只包含兩種節點類型的子網絡上進行關聯預測的AUC 得分更低,整合3.1 節中所有網絡數據,構建一個更加復雜的異質網絡有明顯的益處,尤其是在miRNA-疾病關聯預測任務上。這主要是由于miRNA 和疾病之間的已知關聯數據更稀少,因此單一網絡無法保證預測的可靠性。基因相關的數據集可以幫助建立miRNA 和疾病之間的間接關聯,這些關聯很有可能被進行關聯預測的算法捕獲。整合多方面數據可以加深對復雜疾病的理解,結合間接關系信息,進一步提升預測結果。DisGAN 算法能夠整合更多來源的異質網絡數據。

圖2 基因-疾病關聯預測中不同網絡的AUC 得分Fig.2 AUC score on different networks in gene-disease association prediction

圖3 miRNA-疾病關聯預測中不同網絡的AUC 得分Fig.3 AUC score on different networks in miRNA-disease association prediction
本文提出一種基于GAN 的異質網絡表示學習算法DisGAN 進行疾病關聯預測。DisGAN 中的判別器和生成器都考慮了網絡中的關系捕獲異質語義信息,通過對抗學習得到魯棒的向量表示,并在構建的生物異質網絡上進行基因-疾病關聯預測和miRNA-疾病關聯預測來衡量模型性能表現。實驗結果證明了DisGAN算法的有效性和優越性。下一步將整合更多生物數據集來提升DisGAN 算法的預測性能。