專利名稱:一種基于gpu多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法
技術(shù)領(lǐng)域:
本發(fā)明屬于社交網(wǎng)絡(luò)應(yīng)用領(lǐng)域,更具體地,涉及ー種GPU平臺(tái)下實(shí)現(xiàn)基于多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法。
背景技術(shù):
在社交網(wǎng)絡(luò)中,存在著名的“六度分割(Six degrees of Separation) ”理論,即世界上任何兩個(gè)個(gè)體,最多通過六個(gè)個(gè)體即可建立聯(lián)系,亦稱之為“小世界(Small World)”理論。隨著社交網(wǎng)絡(luò)的不斷發(fā)展,對(duì)個(gè)體間關(guān)聯(lián)路線的研究日漸成為社交網(wǎng)絡(luò)應(yīng)用的研究熱點(diǎn),即模擬驗(yàn)證“六度分割”理論,探索社交網(wǎng)絡(luò)中任意兩個(gè)體如何構(gòu)建路線,建立關(guān)聯(lián)關(guān)系。現(xiàn)階段,社交網(wǎng)絡(luò)中個(gè)體間關(guān)聯(lián)度的判定一般根據(jù)個(gè)體基本信息計(jì)算得出,不具有全面性和擴(kuò)展性。同時(shí),隨著社交網(wǎng)絡(luò)的發(fā)展,尋求個(gè)體間關(guān)聯(lián)路線成為ー種社交需求, 不僅需要得到任意兩個(gè)個(gè)體的關(guān)聯(lián)度數(shù)據(jù),還要捜索其構(gòu)建關(guān)聯(lián)的最優(yōu)路線。經(jīng)調(diào)研得出,目前尚未形成ー套成熟的算法體系(即社交網(wǎng)絡(luò)關(guān)聯(lián)搜索)研究個(gè)體間如何構(gòu)建聯(lián)系。在生物信息學(xué)領(lǐng)域,多序列比對(duì)算法被證實(shí)能有效尋找生物序列同源性關(guān)系,可推廣應(yīng)用于尋找其他個(gè)體或事物之間的聯(lián)系。多序列比對(duì)算法的基本處理過程分為三個(gè)基本階段序列兩兩比對(duì)構(gòu)建距離矩陣(Smith-Waterman算法);根據(jù)距離矩陣構(gòu)建關(guān)聯(lián)進(jìn)化路線指導(dǎo)樹(Neighbor-Joining算法);循環(huán)重構(gòu)進(jìn)化指導(dǎo)樹,完成所有序列比對(duì)(Profile-Profile算法)。通過三個(gè)階段的處理,可找出基因庫中兩序列間進(jìn)化路線及親緣遠(yuǎn)近關(guān)系。將該算法思想進(jìn)行改進(jìn)并推廣應(yīng)用于社交網(wǎng)絡(luò)中,可探索個(gè)體間關(guān)聯(lián)路線,尋找任意兩個(gè)體構(gòu)建關(guān)聯(lián)關(guān)系的路徑。與此同時(shí),隨著社交網(wǎng)絡(luò)的日益發(fā)展和用戶數(shù)量不斷増加,海量數(shù)據(jù)管理變得困難,數(shù)據(jù)操作的復(fù)雜性越來越高,傳統(tǒng)的CPU無法達(dá)到準(zhǔn)確快速獲取個(gè)體關(guān)聯(lián)路線搜索的目的。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于提供一種基于GPU多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,g在解決在GPU上實(shí)現(xiàn)社交網(wǎng)絡(luò)關(guān)聯(lián)搜索、任意指定社交網(wǎng)絡(luò)中兩個(gè)體并快速高效搜索出個(gè)體間最優(yōu)關(guān)聯(lián)路線的問題。為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于GPU多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,包括以下步驟(I)CPU對(duì)個(gè)體網(wǎng)頁進(jìn)行網(wǎng)絡(luò)爬蟲,以提取社交網(wǎng)絡(luò)中的個(gè)體特征信息向量(T1,T2, T3J ,Tn);(2) CPU過濾所述個(gè)體特征信息向量(T1, T2, T3, , Tn)中的冗余特征信息,以生成統(tǒng)ー個(gè)體特征信息向量庫CPU對(duì)所述個(gè)體特征信息向量(T1, T2, T3, , Tn)的特征屬性進(jìn)行語義分析,以得出所述個(gè)體特征向量對(duì)應(yīng)的特征屬性集{Pp p2,p3,...,PJ ;CPU對(duì)所述特征屬性集{Pi,P2,P3,...,Pn}的屬性元素進(jìn)行模擬訓(xùn)練,計(jì)算所述屬性元素對(duì)個(gè)體間關(guān)聯(lián)度的貢獻(xiàn)因子,并得出與所述特征屬性集{Pi,p2,p3,... ,PJ對(duì)應(yīng)的特征貢獻(xiàn)因子分?jǐn)?shù)集{Si,S2, S3, , SJ ;CPU根據(jù)網(wǎng)絡(luò)聚焦算法,對(duì)所述特征貢獻(xiàn)因子分?jǐn)?shù)集{Si,S2, S3, , SJ進(jìn)行模擬評(píng)估處理,計(jì)算得出貢獻(xiàn)因子分?jǐn)?shù)閾值Smin,Sfflax);設(shè)置計(jì)數(shù)器C,并初始化c=l;CPU判斷所述特征貢獻(xiàn)因子分?jǐn)?shù)集以,S2, S3, , SJ中的元素S。是否在所述貢獻(xiàn)因子分?jǐn)?shù)閾值(smin, S-)范圍內(nèi);若元素S。在貢獻(xiàn)因子分?jǐn)?shù)閾值(Smin,Sfflax)范圍內(nèi),則保留S。,并保留與S。對(duì)應(yīng)的屬性P。;判斷c是否大于等于n;若c大于等于n,則CPU得出統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集{Si,S2,S3,. . . ,Sj和統(tǒng)ー標(biāo)準(zhǔn)的特征屬性集(PUijPU2jPU3, , PUJ,并根據(jù)統(tǒng)ー標(biāo)準(zhǔn)的特征屬性集(PUijPU2jPU3, ,PUJ對(duì)個(gè)體特征信息向量(TpT2J3,. . . ,Tn)進(jìn)行批量過濾處理,以得到與統(tǒng)ー標(biāo)準(zhǔn)特征屬性集(PU1, PU2, PU3, , PUJ對(duì)應(yīng)的統(tǒng)ー個(gè)體特征信息向量(TU1, TU2, TU3, , TUm),井形成統(tǒng)ー個(gè)體特征信息向量庫;CPU將統(tǒng)ー特征信息向量(TU1, TU2, TU3. . .,TUm)和統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集(S1,
S2,S3, , SJ 傳入 GPU ;(3)GPU根據(jù)所述統(tǒng)ー個(gè)體特征信息向量庫計(jì)算社交網(wǎng)絡(luò)個(gè)體距離矩陣和矯正距離矩陣GPU根據(jù)所述統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集以,S2, S3, , SJ計(jì)算社交網(wǎng)絡(luò)中兩兩個(gè)體間的距離,并構(gòu)成社交網(wǎng)絡(luò)個(gè)體距離矩陣D ;GPU獲取社交網(wǎng)絡(luò)中個(gè)體的總數(shù)C,設(shè)置計(jì)數(shù)器k,并初始化為k = C,且設(shè)置社交網(wǎng)絡(luò)的個(gè)體集合為(E^E2J3, -,EJ ;GPU根據(jù)多序列比對(duì)算法,對(duì)社交網(wǎng)絡(luò)個(gè)體距離矩陣D進(jìn)行關(guān)聯(lián)計(jì)算,即對(duì)某ー個(gè)體距離值和其他所有個(gè)體距離值進(jìn)行關(guān)聯(lián)處理,以得出更能真實(shí)反映個(gè)體間距離的矯正距尚矩陣M ;(4) GPU根據(jù)所述矯正距離矩陣M,構(gòu)建社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹GPU將所有個(gè)體的結(jié)點(diǎn)構(gòu)成星形初始樹;GPU根據(jù)星形初始樹遍歷矯正距離矩陣M,以找出矯正距離矩陣M中最大的元數(shù)據(jù)對(duì)應(yīng)的兩個(gè)個(gè)體;GPU根據(jù)找到的兩個(gè)個(gè)體生成虛擬父結(jié)點(diǎn),并計(jì)算虛擬父結(jié)點(diǎn)到兩個(gè)個(gè)體結(jié)點(diǎn)的 距離;GPU根據(jù)所述計(jì)算方法計(jì)算出虛擬父結(jié)點(diǎn)到兩個(gè)個(gè)體結(jié)點(diǎn)的距離后,將被合并的兩個(gè)個(gè)體結(jié)點(diǎn)去除,并計(jì)算新的結(jié)點(diǎn)集合對(duì)應(yīng)的距離矩陣和矯正距離矩陣;設(shè)置k = k_l,即每合并兩個(gè)結(jié)點(diǎn)生成一個(gè)新結(jié)點(diǎn)后,結(jié)點(diǎn)個(gè)體集合{Ei,E2,E3,…,Ej中結(jié)點(diǎn)個(gè)數(shù)減I ;判斷k是否小于等于2;
若k小于等于2,則進(jìn)入步驟(5);(5) GPU遍歷所述社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹,以確定最優(yōu)關(guān)聯(lián)路線GPU查找社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹中待搜索的源個(gè)體及目標(biāo)個(gè)體,并建立源個(gè)體和目標(biāo)個(gè)體之間的關(guān)聯(lián)路線;GPU根據(jù) 關(guān)聯(lián)路線進(jìn)行最短路徑優(yōu)先計(jì)算,以篩選出最短的關(guān)聯(lián)路線,即得出社交網(wǎng)絡(luò)中源個(gè)體和目標(biāo)個(gè)體間最優(yōu)關(guān)聯(lián)路徑。本發(fā)明的方法還包括步驟若元素S。不在貢獻(xiàn)因子分?jǐn)?shù)閾值(Smin,S_)范圍內(nèi),則從特征貢獻(xiàn)因子分?jǐn)?shù)集(S1, S2, S3, , SJ中將S。去除,并從特征屬性集(P1, P2, P3,,PJ中將與S。對(duì)應(yīng)的P。去除。本發(fā)明的方法還包括步驟若c不大于等于n,則c = c+1,并返回所述CPU判斷所述特征貢獻(xiàn)因子分?jǐn)?shù)集{Si,S2,S3,. . . ,SJ中的元素Sii否在所述貢獻(xiàn)因子分?jǐn)?shù)閾值(smin,Smax)范圍內(nèi)的步驟。本發(fā)明的方法還包括步驟若k不小于等于2,則GPU計(jì)算所述新的虛擬父結(jié)點(diǎn)到除所述被合并的兩個(gè)個(gè)體的結(jié)點(diǎn)以外所有結(jié)點(diǎn)的距離,以構(gòu)成新的距離矩陣,GPU計(jì)算新的距離矩陣對(duì)應(yīng)的矯正距離矩陣。GPU根據(jù)所述統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集以,S2, S3, , SJ計(jì)算社交網(wǎng)絡(luò)中兩兩個(gè)體間的距離,并構(gòu)成社交網(wǎng)絡(luò)個(gè)體距離矩陣D的步驟具體包括GPU根據(jù)統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集以,S2, S3, , SJ遍歷統(tǒng)一特征信息向量(TU1, TU2, TU3. . .,TUm),以判斷統(tǒng)ー特征信息向量中的特征元數(shù)據(jù)的屬性條件是否相同,若屬性條件相同,則累加特征向量中特征元數(shù)據(jù)對(duì)應(yīng)的貢獻(xiàn)因子分?jǐn)?shù),否則進(jìn)行下一個(gè)特征元數(shù)據(jù)的比較。通過本發(fā)明所構(gòu)思的以上技術(shù)方案,與現(xiàn)有技術(shù)相比,具有以下的技術(shù)效果(I)本發(fā)明基于GPU平臺(tái)實(shí)現(xiàn)社交網(wǎng)絡(luò)關(guān)聯(lián)搜索,充分利用GPU適合處理大量密集型數(shù)據(jù)的優(yōu)勢,將多序列比對(duì)算法解決關(guān)聯(lián)捜索問題進(jìn)行并行化,利用GPU完成矩陣及關(guān)聯(lián)路線指導(dǎo)樹的形成和遍歷等復(fù)雜耗時(shí)操作,解決了社交網(wǎng)絡(luò)數(shù)據(jù)量大和操作復(fù)雜性所帯來的耗時(shí)長問題。(2)與現(xiàn)階段社交網(wǎng)絡(luò)僅根據(jù)個(gè)體基本信息判斷其親密度相比,本發(fā)明加入了個(gè)體間交互信息提取及統(tǒng)計(jì)訓(xùn)練的社交網(wǎng)絡(luò)模型,能更真實(shí)更全面反映個(gè)體間親密度,并以GTO平臺(tái)下并行化的快速多序列比對(duì)算法為基礎(chǔ),探索個(gè)體間是如何產(chǎn)生關(guān)聯(lián)的,即實(shí)現(xiàn)最優(yōu)關(guān)聯(lián)路線搜索,具有真實(shí)性和全面性。
圖I為本發(fā)明基于GPU多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法的流程圖。圖2為本發(fā)明方法中構(gòu)建關(guān)聯(lián)路線指導(dǎo)樹的流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)ー步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。以下首先對(duì)本發(fā)明的技術(shù)術(shù)語進(jìn)行解釋和說明
個(gè)體間關(guān)聯(lián)度個(gè)體間關(guān)聯(lián)關(guān)系的強(qiáng)弱程度。貢獻(xiàn)因子是個(gè)體特征信息向量中向量元素對(duì)應(yīng)的屬性對(duì)個(gè)體間關(guān)聯(lián)關(guān)系強(qiáng)弱程度的一種數(shù)值表達(dá)。如圖I所示,本發(fā)明基于GPU多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法包括如下步驟(I)CPU根據(jù)網(wǎng)絡(luò)聚焦爬蟲算法對(duì)個(gè)體網(wǎng)頁進(jìn)行網(wǎng)絡(luò)爬蟲,以提取社交網(wǎng)絡(luò)中的個(gè)體特征信息向量(TijT2jT3, ... ,Tn) 在社交網(wǎng)絡(luò)中,通常通過爬蟲算法提取頁面信息,獲取個(gè)體信息數(shù)據(jù),若社交網(wǎng)絡(luò)數(shù)據(jù)庫公開,則可通過調(diào)用數(shù)據(jù)庫直接獲取該社交網(wǎng)絡(luò)中個(gè)體特征信息,但通常社交網(wǎng)絡(luò)涉及隱私保護(hù),數(shù)據(jù)庫信息并非公開化。本發(fā)明不僅提取個(gè)體基本信息,還根據(jù)語義分析提取個(gè)體間交互信息,因此需要定向抓取相關(guān)網(wǎng)頁資源,即聚焦爬蟲技術(shù);網(wǎng)絡(luò)聚焦爬蟲是ー個(gè)自動(dòng)提取網(wǎng)頁的程序,涵蓋了網(wǎng)頁數(shù)據(jù)抽取、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、語義理解等技術(shù),從社交網(wǎng)絡(luò)中若干個(gè)個(gè)體頁面URL開始,根據(jù)網(wǎng)頁分析算法,基于給定的目標(biāo)數(shù)據(jù)模式,選擇性地訪問與此數(shù)據(jù)模式相關(guān)的數(shù)據(jù)信息及網(wǎng)頁相關(guān)的鏈接,為面向選擇的用戶查詢提供數(shù)據(jù)資源。本發(fā)明根據(jù)網(wǎng)絡(luò)聚焦爬蟲技術(shù),采用基于網(wǎng)頁內(nèi)容的分析算法,獲取個(gè)體頁面的基本信息及與其他個(gè)體間的交互信息,從而形成個(gè)體特征信息向量(T1, T2, T3, , Tn),此時(shí)將存儲(chǔ)該社交網(wǎng)絡(luò)中所有對(duì)象的個(gè)體信息向量數(shù)據(jù),形成該社交網(wǎng)絡(luò)個(gè)體特征信息向量庫。(2) CPU過濾個(gè)體特征信息向量(T1, T2, T3, , Tn)中的冗余特征信息,以生成統(tǒng)一個(gè)體特征信息向量庫由于在個(gè)體特征信息向量中,不是每個(gè)特征元數(shù)據(jù)均能反映個(gè)體間關(guān)聯(lián)關(guān)系,SP存在冗余特征信息,并且大量特征數(shù)據(jù)會(huì)造成內(nèi)存浪費(fèi)和數(shù)據(jù)操作困難,故需對(duì)CPU中個(gè)體特征信息向量進(jìn)行過濾處理,去除冗余信息,以在GPU上形成的統(tǒng)ー標(biāo)準(zhǔn)的特征信息向量模型。本步驟具體包括以下子步驟(2. DCPU根據(jù)語義分析模型對(duì)個(gè)體特征信息向量(T1, T2, T3, , Tn)中的每個(gè)特征元數(shù)據(jù)進(jìn)行屬性語義分析,以得出個(gè)體特征向量對(duì)應(yīng)的特征屬性集(P1, P2, P3, ...,PnI。其中,特征屬性集中的屬性Pi與特征信息向量中的特征Ti對(duì)應(yīng);(2. 2) CPU根據(jù)社交網(wǎng)絡(luò)中信息過濾模型,將相關(guān)信息即特征貢獻(xiàn)因子分?jǐn)?shù)放入等待抓取的信息隊(duì)列,對(duì)每個(gè)屬性進(jìn)行統(tǒng)計(jì)訓(xùn)練模擬,計(jì)算得出特征屬性集(P1, P2, P3,,PnI中每個(gè)屬性的個(gè)體關(guān)聯(lián)貢獻(xiàn)因子,形成特征貢獻(xiàn)因子分?jǐn)?shù)集{Si,S2, S3, , SJ ;(2.3)CPU根據(jù)網(wǎng)絡(luò)聚焦算法,對(duì)(2.2)中形成的特征貢獻(xiàn)因子分?jǐn)?shù)集(S1, S2,
S3,...,SJ進(jìn)行模擬評(píng)估處理,計(jì)算得出貢獻(xiàn)因子分?jǐn)?shù)閾值Smin,Sfflax);(2. 4)設(shè)置計(jì)數(shù)器C,并初始化c = l;(2. 5)CPU判斷特征貢獻(xiàn)因子分?jǐn)?shù)集{Si,S2,S3, …,SJ中的元素S。是否在貢獻(xiàn)因子分?jǐn)?shù)閾值(smin, Smax)范圍內(nèi)若元素S。在貢獻(xiàn)因子分?jǐn)?shù)閾值(Smin,Sfflax)范圍內(nèi),則保留S。,并保留與S。對(duì)應(yīng)的屬性P。,并進(jìn)入步驟(2. 6),否則執(zhí)行步驟(2. 7);(2. 6)判斷c是否大于等于n ;若c大于等于n,則CPU得出統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集{Si,S2,S3,. . . ,Sj和統(tǒng)ー標(biāo)準(zhǔn)的特征屬性集(PUijPU2jPU3, , PUJ,并根據(jù)統(tǒng)ー標(biāo)準(zhǔn)的特征屬性集(PUijPU2jPU3, ,PUJ對(duì)個(gè)體特征信息向量(TpT2J3,. . . ,Tn)進(jìn)行批量過濾處理,以得到與統(tǒng)ー標(biāo)準(zhǔn)特征屬性集(PU1, PU2, PU3, , PUJ對(duì)應(yīng)的統(tǒng)ー個(gè)體特征信息向量(TU1, TU2, TU3, , TUm),井形成統(tǒng)ー個(gè)體特征信息向量庫,然后進(jìn)入步驟(2.9);否則,執(zhí)行步驟(2.8);(2. 7)從特征貢獻(xiàn)因子分?jǐn)?shù)集(S1, S2, S3, , SJ中將S。去除,并從特征屬性集(P1, P2, P3, , PJ中將與S。對(duì)應(yīng)的P。去除;(2. 8)設(shè)置 c = c+1,并返回步驟(2. 5);(2. 9) CPU將統(tǒng)ー特征信息向量(TU1, TU2, TU3. .,TUm)和統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集(SpS25S3,...,SJ 傳入 GPU;(3) GPU根據(jù)統(tǒng)ー個(gè)體特征信息向量庫計(jì)算社交網(wǎng)絡(luò)個(gè)體距離矩陣和矯正距離矩 陣由于社交網(wǎng)絡(luò)中兩個(gè)體間距離通過兩個(gè)體間的特征信息向量距離來衡量,故本發(fā)明通過計(jì)算兩兩個(gè)體的統(tǒng)ー特征信息向量間的距離來代表個(gè)體間距離。本步驟具體包括以下子步驟(3. DGPU根據(jù)步驟⑵中得出的統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集以,S2, S3, , Sj計(jì)算社交網(wǎng)絡(luò)中兩兩個(gè)體間的距離,并構(gòu)成社交網(wǎng)絡(luò)個(gè)體距離矩陣D,具體為GPU根據(jù)統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集以,S2,S3,...,SJ遍歷統(tǒng)一特征信息向量(TU1, TU2, TU3.,TUm),以判斷統(tǒng)ー特征信息向量中的特征元數(shù)據(jù)的屬性條件是否相同,若屬性條件相同,則累加特征向量中特征元數(shù)據(jù)對(duì)應(yīng)的貢獻(xiàn)因子分?jǐn)?shù),否則進(jìn)行下一個(gè)特征元數(shù)據(jù)的比較。
具體實(shí)施方式
舉例說明如下:設(shè)有個(gè)體Ei (TUi1, TUi2, TUi3. ..,TUim)和個(gè)體Ej (TUjljTUj2, TUj3. . .,TUjm),Ei和Ej間距離Su初始化為O。首先,對(duì)統(tǒng)ー特征模型向量中的特征值進(jìn)行遍歷比較,若TUi1和TUj1特征值相同,則累積加分Sij,否則,處理下一特征元數(shù)據(jù),直至完成所有特征元數(shù)據(jù)遍歷比較,即得出個(gè)體Ei和個(gè)體之間距離分?jǐn)?shù)值Su。按照以上實(shí)施方法,對(duì)社交網(wǎng)絡(luò)中所有統(tǒng)ー個(gè)體特征信息向量進(jìn)行兩兩比對(duì),SP可得出個(gè)體距離矩陣D,其中兩個(gè)體特征信息向量間距離分?jǐn)?shù)和Sij即為距離矩陣D中距離元素值。由于所有距離矩陣中Su和Sm距離值相等,即該矩陣具有対稱性,為減少存儲(chǔ)空間,在CUDA中以上三角形式存儲(chǔ)距離矩陣;(3. 2) GPU獲取社交網(wǎng)絡(luò)中個(gè)體的總數(shù)C,設(shè)置計(jì)數(shù)器k,并初始化為k = C,且設(shè)置社交網(wǎng)絡(luò)的個(gè)體集合為(EpE2J3,…,Ek};(3. 3)GPU根據(jù)多序列比對(duì)算法,對(duì)社交網(wǎng)絡(luò)個(gè)體距離矩陣D進(jìn)行關(guān)聯(lián)計(jì)算,即對(duì)某一個(gè)體距離值和其他所有個(gè)體距離值進(jìn)行關(guān)聯(lián)處理,以得出更能真實(shí)反映個(gè)體間距離的矯正距離矩陣M,具體計(jì)算方法如公式(I)和(2)所示M (EiEj) = d (Ei Ej) - [ (r (Ei) +r (Ej) ] / (C-2)(I)r (Ei) = d (Ei E1)+d (Ei E2)+d (Ei E3)+d (Ei Ek) (2)其中d(EiEj)代表距離矩陣D中代表兩個(gè)體距離的矩陣元,即個(gè)體Ei與個(gè)體Ej間的距離Su,r (Ei)為距離矩陣D中所有非Ei個(gè)體到Ei的距離和。(4)根據(jù)步驟(3. 3)計(jì)算得出的矯正距離矩陣M,構(gòu)建社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹如圖2所示,本步驟具體包括以下子步驟
(4. I) GPU將所有個(gè)體的結(jié)點(diǎn)構(gòu)成星形初始樹;(4. 2) GPU根據(jù)星形初始樹遍歷矯正距離矩陣M,以找出矯正距離矩陣M中最大的元數(shù)據(jù)對(duì)應(yīng)的兩個(gè)個(gè)體根據(jù)公式⑴和⑵計(jì)算得出的矯正距離矩陣M可知,M中距離值越大,兩個(gè)體親密度越大。在GPU上多個(gè)線程并行遍歷矯正距離矩陣M,找出距離值最大的兩個(gè)體,設(shè)遍歷得出社交網(wǎng)絡(luò)的個(gè)體集合(E1, E2, E3,…,EJ中最大的元數(shù)據(jù)對(duì)應(yīng)的兩個(gè)個(gè)體為Ei和Ej,即距離最近的兩個(gè)結(jié)點(diǎn);(4. 3)GPU根據(jù)找到的兩個(gè)個(gè)體生成虛擬父結(jié)點(diǎn),并計(jì)算虛擬父結(jié)點(diǎn)到兩個(gè)個(gè)體結(jié)點(diǎn)的距離
在星形樹中將結(jié)點(diǎn)Ei和合井,生成新的虛擬根結(jié)點(diǎn)N1插入星形樹,完成關(guān)聯(lián)路線指導(dǎo)樹的第一次重構(gòu),并用如下公式(3)和(4)計(jì)算虛擬根結(jié)點(diǎn)N1與Ei和的聯(lián)系,即N1與Ei和Ej的距離值。D(EiN1) =CKEi Ej)/2+[r (Ej)-r (Ei) ]/2 (C-2)(3)D (EjN1) = d (EiEj) -D (EiN1)(4)其中D(EiN1)代表被去除的結(jié)點(diǎn)Ei到新的虛擬結(jié)點(diǎn)N1的距離,d(EiEj)為距離矩陣D中代表兩個(gè)體距離的矩陣元,r (Ei)為距離矩陣D中所有非Ei個(gè)體到Ei的距離之和;(4. 4)GPU根據(jù)步驟(4. 3)所述計(jì)算方法計(jì)算出虛擬父結(jié)點(diǎn)到兩個(gè)個(gè)體結(jié)點(diǎn)的距離后,將被合并的兩個(gè)個(gè)體結(jié)點(diǎn)去除,并計(jì)算新的結(jié)點(diǎn)集合對(duì)應(yīng)的距離矩陣和矯正距離矩陣GPU將(4. 3)中被合并的結(jié)點(diǎn)Ei和Ej從最初的社交網(wǎng)絡(luò)個(gè)體集合(EnE2J3,…,EJ中去除,并加入新結(jié)點(diǎn)N1,得出新結(jié)點(diǎn)集合,并重新計(jì)算新結(jié)點(diǎn)集合中兩兩結(jié)點(diǎn)間距離,計(jì)算得出新結(jié)點(diǎn)集合對(duì)應(yīng)的距離矩陣D(1),其中需重新計(jì)算新結(jié)點(diǎn)N1到個(gè)體集合(E1, E2,E3,…,EJ中去除Ei和的其他所有結(jié)點(diǎn)的距離,步驟(4. 3)所述虛擬結(jié)點(diǎn)NX到新個(gè)體集合中其他結(jié)點(diǎn)距離計(jì)算方法如公式(5)所示D(EmN1) =CKEi Em)+d (EjEm)-d (EiEj)/2(5)其中Ei和Ej為被去除結(jié)點(diǎn),N1為新生成虛擬結(jié)點(diǎn),Em為矩陣D中除Ei和Ej以外的結(jié)點(diǎn),D(Em N1)代表虛擬結(jié)點(diǎn)到個(gè)體集合取,E2, E3,…,EJ中去除Ei和的其他結(jié)點(diǎn)的距離,d(EiEj)代表距離矩陣D中代表兩個(gè)體距離的矩陣元;再按照公式(I)和⑵計(jì)算距離矩陣D(1)對(duì)應(yīng)的矯正距離矩陣M(1);(4.5)設(shè)置k = k_l,即每合并兩個(gè)結(jié)點(diǎn)生成一個(gè)新結(jié)點(diǎn)后,結(jié)點(diǎn)個(gè)體集合(EpE2,E3,…,Ek}中結(jié)點(diǎn)個(gè)數(shù)減I ;(4.6)判斷k是否小于等于2,若k大于2,則重復(fù)子步驟(4.2)-(4.4);否則進(jìn)入步驟(5);(5)GPU遍歷步驟(4)得出的社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹,以確定最優(yōu)關(guān)聯(lián)路線,具體包括以下子步驟(5. I) GPU查找社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹中待搜索的源個(gè)體及目標(biāo)個(gè)體,并建立源個(gè)體和目標(biāo)個(gè)體之間的關(guān)聯(lián)路線;根據(jù)關(guān)聯(lián)路線指導(dǎo)樹的構(gòu)建步驟和原理可知,指導(dǎo)樹中每個(gè)虛擬根結(jié)點(diǎn)的兩個(gè)子結(jié)點(diǎn)均為親密度最高的兩個(gè)個(gè)體,若指定該社交網(wǎng)絡(luò)中任意源個(gè)體和目標(biāo)個(gè)體,從源個(gè)體出發(fā),對(duì)社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹進(jìn)行層次遍歷及深層遍歷,直至掃描出目標(biāo)個(gè)體并建立關(guān)聯(lián)路線為止;(5. 2)GPU根據(jù)關(guān)聯(lián)路線進(jìn)行最短路徑優(yōu)先計(jì)算,以篩選出最短的關(guān)聯(lián)路線,即得出社交網(wǎng)絡(luò)中源個(gè)體和目標(biāo)個(gè)體間最優(yōu)關(guān)聯(lián)路徑;首先在GPU上實(shí)現(xiàn)最短路徑優(yōu)先算法,即將最短路徑優(yōu)先算法并行化,本發(fā)明中采用基于Bellman-Ford-Moore的并行方案,在考慮算法并行實(shí)現(xiàn)的各種優(yōu)化策略的同時(shí),考慮了如何進(jìn)行大規(guī)模圖的數(shù)據(jù)分割問題,解決在顯存空間有限情況下,求解大規(guī)模圖的最短路徑問題。然后利用此并行后的最短路徑優(yōu)先算法對(duì)(5. I)所述關(guān)聯(lián)路線進(jìn)行處理,得出該社交網(wǎng)絡(luò)中源個(gè)體和目標(biāo)個(gè)體間最優(yōu)關(guān)聯(lián)路徑。本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含 在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種基于GPU多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,其特征在于,包括以下步驟 (1)CPU對(duì)個(gè)體網(wǎng)頁進(jìn)行網(wǎng)絡(luò)爬蟲,以提取社交網(wǎng)絡(luò)中的個(gè)體特征信息向量(T1,T2,T3,…,Tn); (2)CPU過濾所述個(gè)體特征信息向量(T1, T2,T3, ...,Tn)中的冗余特征信息,以生成統(tǒng)一個(gè)體特征信息向量庫 CPU對(duì)所述個(gè)體特征信息向量(T1, T2, T3,, Tn)的特征屬性進(jìn)行語義分析,以得出所述個(gè)體特征向量對(duì)應(yīng)的特征屬性集{P1; P2,P3,...,PJ ; CPU對(duì)所述特征屬性集{P1; P2, P3,, PJ的屬性元素進(jìn)行模擬訓(xùn)練,計(jì)算所述屬性元素對(duì)個(gè)體間關(guān)聯(lián)度的貢獻(xiàn)因子,并得出與所述特征屬性集(PpP2J3,... ,PJ對(duì)應(yīng)的特征貢獻(xiàn)因子分?jǐn)?shù)集; CPU根據(jù)網(wǎng)絡(luò)聚焦算法,對(duì)所述特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2, S3,, SJ進(jìn)行模擬評(píng)估處理,計(jì)算得出貢獻(xiàn)因子分?jǐn)?shù)閾值smin,Smax); 設(shè)置計(jì)數(shù)器C,并初始化c = I ; CPU判斷所述特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2, S3, , SJ中的元素S。是否在所述貢獻(xiàn)因子分?jǐn)?shù)閾值(smin, Smax)范圍內(nèi); 若元素S。在貢獻(xiàn)因子分?jǐn)?shù)閾值(Smin,Smax)范圍內(nèi),則保留S。,并保留與S。對(duì)應(yīng)的屬性Po; 判斷C是否大于等于η ; 若C大于等于η,則CPU得出統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2, S3,, SJ和統(tǒng)ー標(biāo)準(zhǔn)的特征屬性集{PU1; PU2, PU3, , PUJ,并根據(jù)統(tǒng)ー標(biāo)準(zhǔn)的特征屬性集{PU1; PU2, PU3, ,PUJ對(duì)個(gè)體特征信息向量(TpT2J3,... ,Tn)進(jìn)行批量過濾處理,以得到與統(tǒng)ー標(biāo)準(zhǔn)特征屬性集{PU1;PU2,PU3, ,PUJ對(duì)應(yīng)的統(tǒng)ー個(gè)體特征信息向量(TU1, TU2, TU3, , TUm),井形成統(tǒng)ー個(gè)體特征信息向量庫; CPU將統(tǒng)ー特征信息向量(TU1, TU2, TU3. . .,TUm)和統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2,S3, , SJ 傳入 GPU ; (3)GPU根據(jù)所述統(tǒng)ー個(gè)體特征信息向量庫計(jì)算社交網(wǎng)絡(luò)個(gè)體距離矩陣和矯正距離矩陣 GPU根據(jù)所述統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2, S3, , SJ計(jì)算社交網(wǎng)絡(luò)中兩兩個(gè)體間的距離,并構(gòu)成社交網(wǎng)絡(luò)個(gè)體距離矩陣D ; GPU獲取社交網(wǎng)絡(luò)中個(gè)體的總數(shù)C,設(shè)置計(jì)數(shù)器k,并初始化為k = C,且設(shè)置社交網(wǎng)絡(luò)的個(gè)體集合為(EijE27E3, -,EJ ; GPU根據(jù)多序列比對(duì)算法,對(duì)社交網(wǎng)絡(luò)個(gè)體距離矩陣D進(jìn)行關(guān)聯(lián)計(jì)算,即對(duì)某一個(gè)體距離值和其他所有個(gè)體距離值進(jìn)行關(guān)聯(lián)處理,以得出更能真實(shí)反映個(gè)體間距離的矯正距離矩陣M; (4)GPU根據(jù)所述矯正距離矩陣M,構(gòu)建社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹 GPU將所有個(gè)體的結(jié)點(diǎn)構(gòu)成星形初始樹; GTO根據(jù)星形初始樹遍歷矯正距離矩陣M,以找出矯正距離矩陣M中最大的元數(shù)據(jù)對(duì)應(yīng)的兩個(gè)個(gè)體;GPU根據(jù)找到的兩個(gè)個(gè)體生成虛擬父結(jié)點(diǎn),并計(jì)算虛擬父結(jié)點(diǎn)到兩個(gè)個(gè)體結(jié)點(diǎn)的距離; GPU根據(jù)所述計(jì)算方法計(jì)算出虛擬父結(jié)點(diǎn)到兩個(gè)個(gè)體結(jié)點(diǎn)的距離后,將被合并的兩個(gè)個(gè)體結(jié)點(diǎn)去除,并計(jì)算新的結(jié)點(diǎn)集合對(duì)應(yīng)的距離矩陣和矯正距離矩陣; 設(shè)置k = k-l,即每合并兩個(gè)結(jié)點(diǎn)生成一個(gè)新結(jié)點(diǎn)后,結(jié)點(diǎn)個(gè)體集合{E1;E2,E3,…,Ek}中結(jié)點(diǎn)個(gè)數(shù)減I ; 判斷k是否小于等于2; 若k小于等于2,則進(jìn)入步驟(5); (5)GPU遍歷所述社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹,以確定最優(yōu)關(guān)聯(lián)路線 GPU查找社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹中待搜索的源個(gè)體及目標(biāo)個(gè)體,并建立源個(gè)體和目標(biāo)個(gè)體之間的關(guān)聯(lián)路線; GPU根據(jù)關(guān)聯(lián)路線進(jìn)行最短路徑優(yōu)先計(jì)算,以篩選出最短的關(guān)聯(lián)路線,即得出社交網(wǎng)絡(luò)中源個(gè)體和目標(biāo)個(gè)體間最優(yōu)關(guān)聯(lián)路徑。
2.根據(jù)權(quán)利要求I所述的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,其特征在于,還包括步驟 若元素S。不在貢獻(xiàn)因子分?jǐn)?shù)閾值(Smin,Smax)范圍內(nèi),則從特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2,S3, ...,SJ中將S。去除,并從特征屬性集(P1, P2, P3, ...,PJ中將與S。對(duì)應(yīng)的P。去除。
3.根據(jù)權(quán)利要求I所述的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,其特征在于,還包括步驟 若c不大于等于n,則c = c+1,并返回所述CPU判斷所述特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2,S3,,SJ中的元素S。是否在所述貢獻(xiàn)因子分?jǐn)?shù)閾值(Sfflin, Smax)范圍內(nèi)的步驟。
4.根據(jù)權(quán)利要求I所述的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,其特征在于,還包括步驟 若k不小于等于2,則GPU計(jì)算所述新的虛擬父結(jié)點(diǎn)到除所述被合并的兩個(gè)個(gè)體的結(jié)點(diǎn)以外所有結(jié)點(diǎn)的距離,以構(gòu)成新的距離矩陣; GPU計(jì)算新的距離矩陣對(duì)應(yīng)的矯正距離矩陣。
5.根據(jù)權(quán)利要求I所述的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,其特征在干,所述GPU根據(jù)所述統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集(SpS2A3,...;)計(jì)算社交網(wǎng)絡(luò)中兩兩個(gè)體間的距離,并構(gòu)成社交網(wǎng)絡(luò)個(gè)體距離矩陣D的步驟具體包括GPU根據(jù)統(tǒng)ー特征貢獻(xiàn)因子分?jǐn)?shù)集{S1; S2, S3,,SJ遍歷統(tǒng)一特征信息向量(TU1, TU2, TU3. . .,TUm),以判斷統(tǒng)ー特征信息向量中的特征元數(shù)據(jù)的屬性條件是否相同,若屬性條件相同,則累加特征向量中特征元數(shù)據(jù)對(duì)應(yīng)的貢獻(xiàn)因子分?jǐn)?shù),否則進(jìn)行下一個(gè)特征元數(shù)據(jù)的比較。
全文摘要
本發(fā)明公開了一種基于GPU多序列比對(duì)算法的社交網(wǎng)絡(luò)關(guān)聯(lián)搜索方法,包括以下步驟CPU對(duì)個(gè)體網(wǎng)頁進(jìn)行網(wǎng)絡(luò)爬蟲,以提取社交網(wǎng)絡(luò)中的個(gè)體特征信息向量,CPU過濾個(gè)體特征信息向量中的冗余特征信息,以生成統(tǒng)一個(gè)體特征信息向量庫,GPU根據(jù)統(tǒng)一個(gè)體特征信息向量庫計(jì)算社交網(wǎng)絡(luò)個(gè)體距離矩陣和矯正距離矩陣,GPU根據(jù)矯正距離矩陣構(gòu)建社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹,GPU遍歷社交網(wǎng)絡(luò)關(guān)聯(lián)路線指導(dǎo)樹,以進(jìn)行最優(yōu)關(guān)聯(lián)路線搜索。本發(fā)明充分利用GPU適合處理大量密集型數(shù)據(jù)的優(yōu)勢,將多序列比對(duì)算法解決關(guān)聯(lián)搜索問題進(jìn)行并行化,利用GPU完成矩陣及關(guān)聯(lián)路線指導(dǎo)樹的形成和遍歷等復(fù)雜耗時(shí)操作,解決了社交網(wǎng)絡(luò)數(shù)據(jù)量大和操作復(fù)雜性所帶來的耗時(shí)長問題。
文檔編號(hào)G06F17/30GK102651030SQ20121010052
公開日2012年8月29日 申請(qǐng)日期2012年4月9日 優(yōu)先權(quán)日2012年4月9日
發(fā)明者馮曉文, 張瓊瑤, 鄭然 , 金海 , 陳漢華 申請(qǐng)人:華中科技大學(xué)