郭夢潔,熊 贇
(復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院上海市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室,上海 201203)
隨著各種高通量生物技術(shù)的迅速發(fā)展,生物學(xué)領(lǐng)域產(chǎn)生了海量數(shù)據(jù),使研究人員能夠收集和研究大量數(shù)據(jù),以更好地闡釋復(fù)雜疾病的潛在生物學(xué)機(jī)制[1]??蒲袡C(jī)構(gòu)在生物醫(yī)學(xué)數(shù)據(jù)的研究上取得了重要進(jìn)展,但是由于利用海量的數(shù)據(jù)進(jìn)行生物學(xué)實(shí)驗(yàn)需要耗費(fèi)大量的時(shí)間和資源,大部分?jǐn)?shù)據(jù)在最初的獲取和分析后被擱置[2],因此,數(shù)據(jù)的生成和整合分析數(shù)據(jù)的能力之間的差距越來越大。
很多疾病關(guān)聯(lián)數(shù)據(jù)可以表示成網(wǎng)絡(luò),其中節(jié)點(diǎn)代表生物實(shí)體,如疾病、基因等,節(jié)點(diǎn)間的邊指代它們之間的關(guān)系。這些網(wǎng)絡(luò)往往都包含多種類型的實(shí)體和關(guān)系,被稱作異質(zhì)網(wǎng)絡(luò)[3]。疾病或其他生物實(shí)體在異質(zhì)網(wǎng)絡(luò)中是相似的,則它們有很大可能性存在關(guān)聯(lián)。例如一種miRNA 在一種疾病起關(guān)鍵作用,則很有可能在相似疾病中起到相似的作用[2]。
為充分利用網(wǎng)絡(luò)中的信息,研究人員采用網(wǎng)絡(luò)表示學(xué)習(xí)算法[3],將網(wǎng)絡(luò)映射到低維向量空間,同時(shí)保留原有的網(wǎng)絡(luò)結(jié)構(gòu)、節(jié)點(diǎn)內(nèi)容等。近年來,興起了異質(zhì)網(wǎng)絡(luò)表示學(xué)習(xí)算法的研究,一類是基于隨機(jī)游走采樣正負(fù)節(jié)點(diǎn)的訓(xùn)練,代表性的算法包括Metapath2vec[4]、HeteWalk[2],但它們都依賴合適的元路徑[2],元路徑的選擇需要人工經(jīng)驗(yàn),另一類是將異質(zhì)網(wǎng)絡(luò)分解成子網(wǎng)絡(luò)表示學(xué)習(xí)后進(jìn)行信息融合,例如PTE[5]、AspEm[6],但在分解和融合過程中容易丟失網(wǎng)絡(luò)中的重要信息。此外,上述算法都忽視了節(jié)點(diǎn)的數(shù)據(jù)分布,因此學(xué)習(xí)的向量表示缺乏魯棒性。
本文提出一種基于生成式對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)[7]的異質(zhì)網(wǎng)絡(luò)表示學(xué)習(xí)算法DisGAN。該算法中的判別器和生成器設(shè)計(jì)通過異質(zhì)網(wǎng)絡(luò)中的關(guān)系區(qū)分不同關(guān)系鏈接的節(jié)點(diǎn)對,一對節(jié)點(diǎn)被認(rèn)為是真實(shí)的必須滿足基于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的真實(shí)節(jié)點(diǎn)被正確的關(guān)系鏈接。DisGAN 算法考慮了網(wǎng)絡(luò)中的關(guān)系以捕獲豐富的異質(zhì)信息,并通過對抗學(xué)習(xí)得到魯棒的向量表示,同時(shí)為實(shí)現(xiàn)關(guān)聯(lián)預(yù)測的目標(biāo)并驗(yàn)證DisGAN 算法性能,本文整合6 個(gè)公開數(shù)據(jù)集構(gòu)建一個(gè)生物異質(zhì)網(wǎng)絡(luò),進(jìn)行基因-疾病關(guān)聯(lián)預(yù)測和miRNA-疾病關(guān)聯(lián)預(yù)測。
異質(zhì)網(wǎng)絡(luò)定義為G=(V,E),V 和E 分別代表節(jié)點(diǎn)集合和邊集合。該網(wǎng)絡(luò)也關(guān)聯(lián)一個(gè)節(jié)點(diǎn)類型映射函數(shù)?:V →A 和一個(gè)邊類型映射函數(shù)φ:E →R,其中A 和R 分別代表節(jié)點(diǎn)類型和邊類型集合且|A|+|R|>2[3]。
異質(zhì)網(wǎng)絡(luò)表示學(xué)習(xí)[3]的目標(biāo)是學(xué)習(xí)一個(gè)映射函數(shù),將網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)v?V 映射到一個(gè)低維向量空間Rd,其中d?|V|,盡可能保留網(wǎng)絡(luò)原有信息。
生成式對抗網(wǎng)絡(luò)[6]公式定義如下:
生成器G使用來自預(yù)定義分布Pz的噪聲z,生成盡可能接近真實(shí)數(shù)據(jù)的偽樣本,判別器D旨在區(qū)分來自Pdata的真實(shí)數(shù)據(jù)和生成器生成的偽數(shù)據(jù),θG、θD表示參數(shù)。
本節(jié)介紹DisGAN 算法,DisGAN 包括判別器Discriminator 和生成器Generator 兩部分。網(wǎng)絡(luò)中真實(shí)存在的節(jié)點(diǎn)對且通過正確的關(guān)系鏈接是正樣本,其他均為負(fù)樣本,判別器需要進(jìn)行區(qū)分,而生成器需要生成和給定節(jié)點(diǎn)通過給定關(guān)系相連的偽節(jié)點(diǎn)。DisGAN 模型框架如圖1 所示。
圖1 DisGAN 模型框架Fig.1 Framework of DisGAN model
2.1.1 DisGAN 中的判別器
在異質(zhì)網(wǎng)絡(luò)中必須區(qū)分給定關(guān)系下的真實(shí)和虛假節(jié)點(diǎn),因此判別器需要評估一對節(jié)點(diǎn)在給定關(guān)系下的鏈接性。給定異質(zhì)網(wǎng)絡(luò)G 中一個(gè)節(jié)點(diǎn)i?V 和關(guān)系r?R,參數(shù)為θD的判別器D給出一個(gè)樣本j是否通過關(guān)系r和節(jié)點(diǎn)i相連的概率。樣本j可以是真實(shí)節(jié)點(diǎn),也可以是生成器生成的偽節(jié)點(diǎn)。
判別器D公式定義如下:
其 中,vi,vj?Rd是節(jié)點(diǎn)i和j的d維表示向量,Mr?Rd×d是關(guān)系r的關(guān)系矩陣,參數(shù)θD是判別器D學(xué)習(xí)的所有節(jié)點(diǎn)的表示向量和關(guān)系的表示矩陣。
如果樣本j是通過關(guān)系r和節(jié)點(diǎn)i相連的真實(shí)節(jié)點(diǎn),判別器給出的概率值應(yīng)該較高,而對偽樣本應(yīng)該較低。通常,樣本j與給定的i和r組成一個(gè)三元組,就其正負(fù)極性而言,每個(gè)三元組均屬于以下4 種情況之一,每種情況也構(gòu)成了判別器損失函數(shù)的一部分。
1)通過正確關(guān)系鏈接的真實(shí)節(jié)點(diǎn)
節(jié)點(diǎn)i和j是異質(zhì)網(wǎng)絡(luò)G 中的真實(shí)節(jié)點(diǎn),并通過真實(shí)關(guān)系r連接,這樣的三元組是正樣本,希望判別器將其標(biāo)記為真,因此損失函數(shù)定義如下:
從網(wǎng)絡(luò)G 中提取上述三元組,即~G。
2)通過錯(cuò)誤關(guān)系鏈接的真實(shí)節(jié)點(diǎn)
異質(zhì)網(wǎng)絡(luò)中的節(jié)點(diǎn)i和j通過一個(gè)錯(cuò)誤的關(guān)系r′(r′≠r)鏈接。由于它們的鏈接性與給定關(guān)系r攜帶的期望語義信息不匹配,因此判別器希望將其判定為負(fù)樣本:
節(jié)點(diǎn)對(i,j)從網(wǎng)絡(luò)G 提取,關(guān)系r′從R'=R -r獲得。
3)通過正確關(guān)系鏈接的偽節(jié)點(diǎn)
給定異質(zhì)網(wǎng)絡(luò)中一個(gè)節(jié)點(diǎn)i和其關(guān)系r,然后通過生成器G(i,r)生成節(jié)點(diǎn)j'。該三元組也應(yīng)該被判別為負(fù),所以將損失函數(shù)定義如下:
偽節(jié)點(diǎn)j'的表示向量是從生成器G學(xué)習(xí)到的分布中提取的,與生成器G的模型參數(shù)θG不同。
4)通過錯(cuò)誤關(guān)系鏈接的偽節(jié)點(diǎn)
給定節(jié)點(diǎn)i和一個(gè)i中不存在的關(guān)系r*,輸入生成器G(i,r*)生成一個(gè)偽樣本j'。判別器的目標(biāo)是將該三元組也判定為負(fù):
其中,R*代表網(wǎng)絡(luò)G 的關(guān)系集合R 和節(jié)點(diǎn)i擁有的關(guān)系子集之間的差集。
整合上述4 個(gè)部分作為損失函數(shù)訓(xùn)練判別器:
其中,λD‖θD‖是正則化項(xiàng)用來防止過擬合,通過最小化LD來優(yōu)化判別器參數(shù)θD。
2.1.2 DisGAN 中的生成器
生成器同樣考慮到網(wǎng)絡(luò)的異質(zhì)性,即給定來自異質(zhì)網(wǎng)絡(luò)G 的節(jié)點(diǎn)i?V 和關(guān)系r?R,參數(shù)為θG的生成器G希望生成盡可能和節(jié)點(diǎn)i通過關(guān)系r鏈接的節(jié)點(diǎn)。
生成器希望通過生成接近真實(shí)節(jié)點(diǎn)的偽樣本來欺騙判別器,使判別器給偽樣本賦予高分:
其中,λG‖θG‖是正則化項(xiàng),通過最小化公式LG訓(xùn)練生成器。
DisGAN 模型使用迭代的數(shù)值計(jì)算方法[8]進(jìn)行訓(xùn)練。首先初始化模型參數(shù)θG和θD,然后迭代訓(xùn)練判別器和生成器直到模型收斂。DisGAN 模型訓(xùn)練過程如算法1 所示。
算法1DisGAN 模型訓(xùn)練
DisGAN 模型生成器和判別器每次更新主要涉及節(jié)點(diǎn)向量和關(guān)系矩陣的更新,每輪迭代時(shí)間復(fù)雜度為O((nG+nD)˙ns˙|V|˙d2),其中,nG和nD是訓(xùn)練次數(shù),ns是樣本數(shù)目,|V|是節(jié)點(diǎn)數(shù)目,d是維度。本文將nG、nD、ns和d視為常數(shù),所以DisGAN 每輪迭代的時(shí)間復(fù)雜度是O(|V|)。
DisGAN 模型的生成器是使用Leaky ReLU[9]激活函數(shù)的兩層感知機(jī),將最后一層輸出當(dāng)作偽節(jié)點(diǎn)無需softmax 計(jì)算采樣偽節(jié)點(diǎn),所以對于整個(gè)網(wǎng)絡(luò)每輪迭代生成器采樣偽節(jié)點(diǎn)的時(shí)間復(fù)雜度為O(|V|),|V|是網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目;而對每個(gè)節(jié)點(diǎn)每次softmax計(jì)算需要遍歷網(wǎng)絡(luò)中所有節(jié)點(diǎn),因此每輪迭代時(shí)間復(fù)雜度為O(|V|2),計(jì)算代價(jià)非常高。
DisGAN 模型中判別器的參數(shù)θG是網(wǎng)絡(luò)節(jié)點(diǎn)的表示向量和關(guān)系的表示矩陣,通過對抗學(xué)習(xí)優(yōu)化模型參數(shù)。判別器和生成器在對抗學(xué)習(xí)過程中迭代訓(xùn)練:首先固定生成器G的參數(shù)θG,然后從網(wǎng)絡(luò)中采樣真實(shí)節(jié)點(diǎn)關(guān)系三元組,生成器G對每個(gè)給定的節(jié)點(diǎn)和關(guān)系生成ns個(gè)偽節(jié)點(diǎn),最后通過最小化式(7)定義的損失函數(shù)優(yōu)化參數(shù)θD從而訓(xùn)練判別器;固定判別器的參數(shù)θD,然后同樣采樣真實(shí)樣本和偽樣本,最后根據(jù)式(8)優(yōu)化生成器參數(shù)θG以生成更好的偽節(jié)點(diǎn)。上述迭代過程直到模型收斂時(shí)停止。
DisGAN 相對于GAN[7]的改進(jìn)主要在于將其擴(kuò)展應(yīng)用到網(wǎng)絡(luò)表示學(xué)習(xí):GAN 僅僅區(qū)分真?zhèn)喂?jié)點(diǎn)無法捕獲網(wǎng)絡(luò)節(jié)點(diǎn)間的關(guān)系信息,而DisGAN 區(qū)分不同關(guān)系鏈接的節(jié)點(diǎn)對,從而捕獲網(wǎng)絡(luò)的結(jié)構(gòu)和語義信息;GAN 中生成器輸入為隨機(jī)噪聲,DisGAN 加上網(wǎng)絡(luò)中的節(jié)點(diǎn)和關(guān)系,從而生成和真實(shí)節(jié)點(diǎn)更相似的偽節(jié)點(diǎn)進(jìn)行訓(xùn)練提升模型表現(xiàn)。
本文實(shí)驗(yàn)所用數(shù)據(jù)集如下:
1)基因相互作用網(wǎng)絡(luò):從HPRD 數(shù)據(jù)庫[10]中獲得的39 240 條記錄。
2)miRNA 相似性網(wǎng)絡(luò):從MISIM 數(shù)據(jù)庫[11]中提取的56 289 條數(shù)據(jù)。
3)疾病相似性網(wǎng)絡(luò):從MimMiner[12]中提取 的3 162 016 條數(shù)據(jù)。
4)基因-疾病關(guān)聯(lián)網(wǎng)絡(luò):從DisGeNET 數(shù)據(jù)庫[13]中提取的19 714 條記錄。
5)基因-miRNA 關(guān)聯(lián)網(wǎng) 絡(luò):從miRTarBase 數(shù)據(jù)庫[14]中提取的21 259 條記錄。
6)miRNA-疾病關(guān)聯(lián)網(wǎng)絡(luò):從文獻(xiàn)[15]提供的數(shù)據(jù)集和miRNet[16]中提取的878 條數(shù)據(jù)。
通過共同節(jié)點(diǎn)鏈接上述6 個(gè)網(wǎng)絡(luò)來構(gòu)建一個(gè)生物異質(zhì)網(wǎng)絡(luò)。
本文的實(shí)驗(yàn)對比算法主要包括:
1)HSSVM[17]:基于HeteSim 得分[18]衡量節(jié)點(diǎn)相關(guān)性,使用監(jiān)督學(xué)習(xí)算法進(jìn)行疾病關(guān)聯(lián)預(yù)測。
2)GAN[7]:生成器輸入從正態(tài)分布中采樣的噪聲生成偽節(jié)點(diǎn),判別器區(qū)分網(wǎng)絡(luò)節(jié)點(diǎn)和生成器產(chǎn)生的偽節(jié)點(diǎn),將網(wǎng)絡(luò)節(jié)點(diǎn)表示作為模型參數(shù)訓(xùn)練。
3)DeepWalk[19]:使用隨機(jī)游走得到節(jié)點(diǎn)序列基于skip-gram[20]模型學(xué)習(xí)表示向量。
4)AspEm[6]:通過將異質(zhì)網(wǎng)絡(luò)分解成語義子圖,分別學(xué)習(xí)每個(gè)子圖中節(jié)點(diǎn)向量表示后進(jìn)行拼接得到最終節(jié)點(diǎn)向量表示。
5)HeteWalk[2]:使用元路徑和鏈接權(quán)重指導(dǎo)的隨機(jī)游走并基于異質(zhì)skip-gram 模型進(jìn)行表示學(xué)習(xí)。
本文分別進(jìn)行基因-疾病關(guān)聯(lián)和miRNA-疾病關(guān)聯(lián)實(shí)驗(yàn)。每次實(shí)驗(yàn)將已知的關(guān)聯(lián)數(shù)據(jù)隨機(jī)劃分為訓(xùn)練集和測試集,訓(xùn)練集所占比例(R)從50%變化到90%。在進(jìn)行測試時(shí),已知的關(guān)聯(lián)作為正樣本,隨機(jī)選擇相同數(shù)目且相同類型但沒有關(guān)聯(lián)的節(jié)點(diǎn)對作為負(fù)樣本,通過算法得到節(jié)點(diǎn)表示向量的余弦相似度(歸一化后的點(diǎn)積)得分作為預(yù)測值。不同算法在不同訓(xùn)練比例下的AUC 得分[21]如表1 和表2 所示。
表1 基因-疾病關(guān)聯(lián)預(yù)測實(shí)驗(yàn)的AUC 得分Table 1 AUC score of gene-disease association prediction experiment
表2 miRNA-疾病關(guān)聯(lián)預(yù)測實(shí)驗(yàn)的AUC 得分Table 2 AUC score of miRNA-disease association prediction experiment
從表1 和表2 可以發(fā)現(xiàn),DisGAN 算法在兩個(gè)預(yù)測任務(wù)所有訓(xùn)練比例上的表現(xiàn)一直都超過所有對比算法。HSSVM 沒有采用網(wǎng)絡(luò)表示學(xué)習(xí),只提取沿路徑的兩個(gè)節(jié)點(diǎn)之間可訪問性的簡單特征。GAN 盡管考慮了向量表示的魯棒性,但是忽視了節(jié)點(diǎn)間的關(guān)系,沒有捕獲網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和語義關(guān)系。DeepWalk 表現(xiàn)較差的主要原因是針對同質(zhì)網(wǎng)絡(luò)設(shè)計(jì)的網(wǎng)絡(luò)表示學(xué)習(xí)算法,忽視了不同節(jié)點(diǎn)和鏈接類型。AspEm 在網(wǎng)絡(luò)分解合并過程中可能會丟失一些重要信息。HeteWalk 盡管通過基于元路徑的隨機(jī)游走捕獲到網(wǎng)絡(luò)的異質(zhì)信息,但是沒有學(xué)習(xí)節(jié)點(diǎn)的數(shù)據(jù)分布,學(xué)習(xí)到的向量表示魯棒性不高。在所有對比算法中,AspEm 和HeteWalk 表現(xiàn)較好,說明考慮網(wǎng)絡(luò)異質(zhì)性可以提升預(yù)測結(jié)果。
本文提出的DisGAN 模型超過了所有的對比算法,可以通過對抗學(xué)習(xí)節(jié)點(diǎn)的數(shù)據(jù)分布,得到更具魯棒性的表示,能夠較好地保留網(wǎng)絡(luò)結(jié)構(gòu)和異質(zhì)語義信息。此外,DisGAN 模型在基因-疾病關(guān)聯(lián)預(yù)測任務(wù)上的表現(xiàn)提升更明顯,主要是由于異質(zhì)網(wǎng)絡(luò)中基因-疾病關(guān)聯(lián)數(shù)據(jù)相對更多且數(shù)據(jù)可能更稀疏或存在噪聲,因此需要更具魯棒性的向量表示。
本節(jié)探究每個(gè)算法在處理異質(zhì)性上的能力。實(shí)驗(yàn)中采用三折交叉驗(yàn)證,并去除3.1 節(jié)中部分?jǐn)?shù)據(jù)集生成了另外兩個(gè)只包含兩種節(jié)點(diǎn)類型的子網(wǎng)絡(luò)。從圖2 和圖3 可以發(fā)現(xiàn),在只包含兩種節(jié)點(diǎn)類型的子網(wǎng)絡(luò)上進(jìn)行關(guān)聯(lián)預(yù)測的AUC 得分更低,整合3.1 節(jié)中所有網(wǎng)絡(luò)數(shù)據(jù),構(gòu)建一個(gè)更加復(fù)雜的異質(zhì)網(wǎng)絡(luò)有明顯的益處,尤其是在miRNA-疾病關(guān)聯(lián)預(yù)測任務(wù)上。這主要是由于miRNA 和疾病之間的已知關(guān)聯(lián)數(shù)據(jù)更稀少,因此單一網(wǎng)絡(luò)無法保證預(yù)測的可靠性?;蛳嚓P(guān)的數(shù)據(jù)集可以幫助建立miRNA 和疾病之間的間接關(guān)聯(lián),這些關(guān)聯(lián)很有可能被進(jìn)行關(guān)聯(lián)預(yù)測的算法捕獲。整合多方面數(shù)據(jù)可以加深對復(fù)雜疾病的理解,結(jié)合間接關(guān)系信息,進(jìn)一步提升預(yù)測結(jié)果。DisGAN 算法能夠整合更多來源的異質(zhì)網(wǎng)絡(luò)數(shù)據(jù)。
圖2 基因-疾病關(guān)聯(lián)預(yù)測中不同網(wǎng)絡(luò)的AUC 得分Fig.2 AUC score on different networks in gene-disease association prediction
圖3 miRNA-疾病關(guān)聯(lián)預(yù)測中不同網(wǎng)絡(luò)的AUC 得分Fig.3 AUC score on different networks in miRNA-disease association prediction
本文提出一種基于GAN 的異質(zhì)網(wǎng)絡(luò)表示學(xué)習(xí)算法DisGAN 進(jìn)行疾病關(guān)聯(lián)預(yù)測。DisGAN 中的判別器和生成器都考慮了網(wǎng)絡(luò)中的關(guān)系捕獲異質(zhì)語義信息,通過對抗學(xué)習(xí)得到魯棒的向量表示,并在構(gòu)建的生物異質(zhì)網(wǎng)絡(luò)上進(jìn)行基因-疾病關(guān)聯(lián)預(yù)測和miRNA-疾病關(guān)聯(lián)預(yù)測來衡量模型性能表現(xiàn)。實(shí)驗(yàn)結(jié)果證明了DisGAN算法的有效性和優(yōu)越性。下一步將整合更多生物數(shù)據(jù)集來提升DisGAN 算法的預(yù)測性能。