生物信息學設計與實現

時間:2022-10-25 07:50:00

導語:生物信息學設計與實現一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

生物信息學設計與實現

摘要:在生物信息學系統設計中引進推薦系統,提出具有個性化服務的生物信息學網站模型,完成生物信息學推薦系統的設計和實現,體現出推薦系統在生物信息學中使用的必要性和優越性。

關鍵詞:推薦系統;生物信息學

推薦系統(RecommenderSystem)[1]是個性化信息服務的主要技術之一,它實現的是“信息找人,按需服務”;通過對用戶信息需要、興趣愛好和訪問歷史等的收集分析,建立用戶模型,并將用戶模型應用于網上信息的過濾和排序,從而為用戶提供感興趣的資源和信息。生物信息學(Bioinformatics)[2,3]是由生物學、應用數學和計算機科學相互交叉所形成的一門新型學科;其實質是利用信息科學的方法和技術來解決生物學問題。20世紀末生物信息學迅速發展,在信息的數量和質量上都極大地豐富了生物科學的數據資源,而數據資源的急劇膨脹需要尋求一種科學而有力的工具來組織它們,基于生物信息學的二次數據庫[4]能比較好地規范生物數據的分類與組織,但是用戶無法從大量的生物數據中尋求自己感興趣的部分(著名的生物信息學網站NCBI(美國國立生物技術信息中心),僅僅是小孢子蟲(Microsporidia)的DNA序列就達3399種),因此在生物二次數據庫上建立個性化推薦系統,能使用戶快速找到自己感興趣的生物信息。特別是在當前生物信息數據量急劇增長的情況下,生物信息學推薦系統將發揮強大的優勢。

1推薦系統的工作流程

應用在不同領域的推薦系統,其體系結構也不完全相同。一般而言,推薦系統的工作流程[5]如圖1所示。

(1)信息獲取。推薦系統工作的基礎是用戶信息。用戶信息包括用戶輸入的關鍵詞、項目的有關屬性、用戶對項目的文本評價或等級評價及用戶的行為特征等,所有這些信息均可以作為形成推薦的依據。信息獲取有兩種類型[6],即顯式獲取(Explicit)和隱式獲取(Implicit),由于用戶的很多行為都能暗示用戶的喜好,因此隱式獲取信息的準確性比顯式高一些。

(2)信息處理。信息獲取階段所獲得的用戶信息,一般根據推薦技術的不同對信息進行相應的處理。用戶信息的存儲格式中用得最多的是基于數值的矩陣格式,最常用的是用m×n維的用戶—項目矩陣R來表示,矩陣中的每個元素Rij=第i個用戶對第j個項目的評價,可以當做數值處理,矩陣R被稱為用戶—項目矩陣。

(3)個性化推薦。根據形成推薦的方法的不同可以分為三種,即基于規則的系統、基于內容過濾的系統和協同過濾系統。基于規則的推薦系統和基于內容過濾的推薦系統均只能為用戶推薦過去喜歡的項目和相似的項目,并不能推薦用戶潛在感興趣的項目。而協同過濾系統能推薦出用戶近鄰所喜歡的項目,通過用戶與近鄰之間的“交流”,發現用戶潛在的興趣。因此本文所用的算法是基于協同過濾的推薦算法。

(4)推薦結果。顯示的任務是把推薦算法生成的推薦顯示給用戶,完成對用戶的推薦。目前最常用的推薦可視化方法是Top-N列表[7],按照從大到小順序把推薦分值最高的N個事物或者最權威的N條評價以列表的形式顯示給用戶。

2生物信息學推薦系統的設計

綜合各種推薦技術的性能與優缺點,本文構造的生物信息學推薦系統的總體結構如圖2所示。

生物信息學推薦系統實現的主要功能是在用戶登錄生物信息學網站時,所留下的登錄信息通過網站傳遞到推薦算法部分;推薦算法根據該用戶的用戶名從數據庫提取出推薦列表,并返回到網站的用戶界面;用戶訪問的記錄返回到數據庫,系統定時調用推薦算法,對數據庫中用戶訪問信息的數據進行分析計算,形成推薦列表。

本系統采用基于近鄰的協同過濾推薦算法,其結構可以進一步細化為如圖3所示。算法分為鄰居形成和推薦形成兩大部分,兩部分可以獨立進行。這是該推薦系統有別于其他系統的優勢之一。由于信息獲取后的用戶—項目矩陣維數較大,使得系統的可擴展性降低。本系統采用SVD矩陣降維方法,減少用戶—項目矩陣的維數,在計算用戶相似度時大大降低了運算的次數,提高了推薦算法的效率。

(1)信息獲取。用戶對項目的評價是基于用戶對某一個項目(為表示簡單,以下提及的項目均指網站上的生物物種)的點擊次數來衡量的。當一個用戶注冊并填寫好個人情況以后,系統會自動為該用戶創建一個“信息矩陣”,該矩陣保存了所有項目的ID號以及相應的用戶評價,保存的格式為:S+編號+用戶評價,S用于標記項目,每個項目編號及其評價都以“S”相隔開;編號是唯一的,占5位;用戶評價是用戶點擊該項目的次數,規定其范圍是0~100,系統設定當增加到100時不再變化。這樣做可防止形成矩陣時矩陣評價相差值過大而使推薦結果不準確。(2)信息處理。信息處理是將所有用戶的信息矩陣轉換為用戶—項目矩陣,使用戶信息矩陣數值化,假設系統中有M個用戶和N個項目,信息處理的目的就是創建一個M×N的矩陣R,R[I][J]代表用戶I對項目J的評價。

(3)矩陣處理。協同過濾技術的用戶—項目矩陣的數據表述方法所帶來的稀疏性嚴重制約了推薦效果,而且在系統較大的情況下,它既不能精確地產生推薦集,又忽視了數據之間潛在的關系,發現不了用戶潛在的興趣,而且龐大的矩陣增加了計算的復雜度,因此有必要對該矩陣的表述方式做優化,進行矩陣處理。維數簡化是一種較好的方法,本文提出的算法應用單值分解(SingularValueDecomposition,SVD)技術[8],對用戶—項目矩陣進行維數簡化。

(4)相似度計算。得到降維以后的用戶矩陣US,就可以尋找每個用戶的近鄰。近鄰的確定是通過兩個用戶的相似度來度量的。本文采用Pearson相關度因子[9]求相似度。(5)計算用戶鄰居。該方法有兩種[10],即基于中心的鄰居(Center-BasedNeighbor)和集合鄰居(AggregateNeighbor)。本系統采用了第一種方法,直接找出與用戶相似度最高的前N個用戶作為鄰居,鄰居個數N由系統設定,比如規定N=5。

(6)推薦形成。推薦形成的前提是把當前用戶的鄰居ID號及其與當前用戶的相似度保存到數據庫中,而在前面的工作中已找出各用戶的鄰居以及與用戶的相似度,推薦形成部分只需要對當前登錄用戶進行計算。推薦策略是:對當前用戶已經訪問過的項目不再進行推薦,推薦的范圍是用戶沒有訪問的項目,其目的是推薦用戶潛在感興趣的項目;考慮到系統的項目比較多,用戶交互項目的數量很大,所以只篩選出推薦度最大的N個項目,形成Top-N推薦集,設定N=5。

3生物信息學推薦系統的實現

生物信息學推薦系統的實現可以用圖4來表示。數據庫部分主要存儲用戶信息和項目信息,用SQLServer2000實現。

數據訪問層實現了與用戶交互必需的存儲過程以及觸發器,也使用SQLServer2000,主要完成以下功能:初始化新用戶信息矩陣;插入新項目時更新所有用戶的信息矩陣;用戶點擊項目時更新該用戶對項目的評價;刪除項目時更新所有用戶的信息矩陣。用戶訪問層主要涉及網頁與用戶的交互和調用數據訪問層的存儲過程,在這里不做詳細的介紹。

推薦算法完成整個個性化推薦的任務,用Java實現。

(1)數據連接類DataCon。該類完成與SQLServer2000數據庫的連接,在連接之前必須要下載三個與SQLServer連接相關的包,即msutil.jar、msbase.jar和mssqlserver.jar。

(2)數據操作類DataControl。該類負責推薦算法與數據庫的數據交換,靜態成員Con調用DataCon.getcon()獲得數據庫連接,然后對數據庫進行各種操作。把所有方法編寫成靜態,便于推薦算法中不創建對象就可以直接調用。

(3)RecmmendSource與CurrentUserNeighbor。這兩個類作為FCRecommand類的內部類,RecmmendSource用于保存當前用戶的推薦列表,包括推薦項目號和推薦度;CurrentUserNeighbor用于保存鄰居信息,包括鄰居ID號、相似度及其訪問信息。

(4)協同過濾推薦算法FCRecommand。該類實現了整個推薦算法,主要分為鄰居形成方法FCArithmetic和推薦形成方法GenerateRecommend。

下面給出方法FCArithmetic的關鍵代碼:

Matrixuser_item=this.User_Item_Arry();//獲取用戶—項目矩陣

user_item=this.SVD_Calculate(user_item);//調用SVD降維方法

Vectorc_uservector=newVector();//當前用戶向量

Vectoro_uservector=newVector();//其他用戶向量

Vectorc_user_correlate_vector=newVector();

//當前用戶與其他用戶之間相似度向量

for(inti=0;ifor(intj=0;jc_uservector.addElement(user_item.get(i,j));

//1.獲得當前用戶向量

for(intk=0;ko_uservector.clear();

for(intl=0;lo_uservector.addElement(user_item.get(k,l));

//2.獲得其他用戶的向量

//3.計算當前用戶與其他用戶的相似度

usercorrelativity=this.Correlativity(c_uservector,o_uservector);

c_user_correlate_vector.addElement(usercorrelativity);

}

//4.根據當前用戶與其他用戶的相似度,計算其鄰居

this.FindUserNeighbor(i,c_user_correlate_vector);

}

根據鄰居形成方法FCArithmetic,可以得到每個用戶的鄰居。作為測試用例,圖6顯示用戶Jack與系統中一部分用戶的相似度,可以看出它與自己的相似度必定最高;并且它與用戶Sugx訪問了相同的項目,它們之間的相似度也為1,具有極高的相似度。

4結束語

在傳統推薦系統的基礎上,結合當前生物信息學網站的特點,提出一個基于生物信息平臺的推薦系統,解決了傳統生物信息網站平臺信息迷茫的缺點,為用戶推薦其感興趣物種的DNA或蛋白質序列。

優點在于協同過濾的推薦算法能發現用戶潛在的興趣,能促進生物學家之間的交流;推薦算法的鄰居形成與推薦形成兩部分可以單獨運行,減少了系統的開銷。進一步的工作是分析生物數據的特點及生物數據之間的關系,增加用戶和項目數量,更好地發揮推薦系統的優勢。

參考文獻:

[1]PAULR,HALRV.Recommendersystems[J].CommunicationsoftheACM,1997,40(3):56-58.

[2]陳新.生物信息學簡介[EB/OL].(2001).166.111.68.168/bioinfo/papers/Chen_Xin.pdf.

[3]林毅申,林丕源.基于WebServices的生物信息解決方案[J].計算機應用研究,2005,22(6):157-158,164.[4]邢仲璟,林丕源,林毅申.基于Bioperl的生物二次數據庫建立及應用[J].計算機系統應用,2004(11):58-60.

[5]AIRIAS,TAKAHISAA,HIROYAI,etal.Personalizationsystembasedondynamiclearning:InternationalSemanticWebConference[C].Sardinia:[s.n.],2002.

[6]BREESEJS,HECKERMAND,KADIEC.Empericalanalysisofpredictivealgorithmsforcollaborativefiltering:proceedingsoftheFourteenthConferenceonUniversityinArtificialIntelligence[C].Madison:WI,1998:43-52.

[7]SCHAFERJB,KONSTANJ,RIEDLJ.Recommendersystemsine-commerce:proceedingoftheACMConferenceonElectronicCommerce[C].Pittsburgh:PA,1999:158-166.

[8]PRYORMH.Theeffectsofsingularvaluedecompositiononcollaborativefiltering[EB/OL].(1998).www.cs.dartmouth.edu/reports/TR98-338.pdf.

[9]SARWARB,KARYPISG,KONSTANJ,etal.Analysisofrecommendationalgorithmsfore-commerce:proceedingsofthe2ndACMConferenceonElectronicCommerce[C].Minneapolis:[s.n.],2000:158-167.

[10]SUNTong,ANDR’ET.Animplementede-commerceshoppingsystemwhichmakespersonalrecommendations[EB/OL].(2001-10).www.stfx.ca/academic/mathcs/apics2001/Papers/tsun.pdf.