佘名高,張照亮,胡錦紅
(武漢理工大學(xué) 計算機科學(xué)技術(shù)學(xué)院,湖北 武漢 430070)
隨著互聯(lián)網(wǎng)的發(fā)展和網(wǎng)絡(luò)信息的增加,為用戶提供個性化的服務(wù)以便獲取更準(zhǔn)確的信息已成為焦點。在網(wǎng)絡(luò)環(huán)境下,個性化服務(wù)[1-2]是一種網(wǎng)絡(luò)信息服務(wù)的方式,這種服務(wù)方式的實現(xiàn)主要是根據(jù)用戶設(shè)定,借助于計算機及網(wǎng)絡(luò)技術(shù),對信息資源進行收集、整理和分類,向用戶提供和推薦相關(guān)信息,以滿足用戶對信息的需求。在個性化推薦中,協(xié)同過濾是當(dāng)前應(yīng)用最成功的技術(shù)。
在基于項目的協(xié)同過濾推薦中,為了產(chǎn)生對目標(biāo)用戶的推薦,需要搜索最近鄰居,此時項目之間相似性的計算成為關(guān)鍵。系統(tǒng)開始時,由于參與的用戶和用戶評分項目很少導(dǎo)致用戶評分項的交集很小,傳統(tǒng)的相似性計算方式在這種情況下很難找到最近鄰進行推薦,隨著時間的推移,還容易產(chǎn)生數(shù)據(jù)稀疏問題和“冷啟動”現(xiàn)象,推薦質(zhì)量大大下降。
隨著網(wǎng)絡(luò)的發(fā)展,計算機輔助診斷成為越來越重要的應(yīng)用技術(shù),對于一種疾病,可以在互聯(lián)網(wǎng)上找到包括運動療法、中醫(yī)理療、營養(yǎng)配餐等數(shù)以千計的治療方法,為用戶提供個性化的服務(wù)在健康系統(tǒng)中也有所應(yīng)用。隨著醫(yī)學(xué)的發(fā)展,傳統(tǒng)相似性度量不足和新項目的冷啟動問題也可能發(fā)生,因此引入了本體,構(gòu)建用戶興趣本體,將項目的語義相似性和用戶相似性結(jié)合,這種基于領(lǐng)域本體的個性化推薦算法在一定程度上緩解了數(shù)據(jù)稀疏問題和冷啟動問題,將這種算法應(yīng)用到某健康系統(tǒng)中進行分析,已取得較好的推薦效果。
“Ontology”是指哲學(xué)領(lǐng)域的本體論。在哲學(xué)中“Ontology”是一個存在的系統(tǒng)化解釋,用于描述事物的本質(zhì)。而在計算機領(lǐng)域是用于知識表示、知識共享和重用,“ontology”表示,翻譯為本體。直觀地講,本體是一個實體,是對某一領(lǐng)域應(yīng)用本體論的方法分析、建模的結(jié)果,即把現(xiàn)實世界中的某一領(lǐng)域抽象為一組概念及概念之間的關(guān)系。
為了澄清在知識工程領(lǐng)域中本體的概念,美國學(xué)者Tom Gruber給出了一個被廣泛接受的定義:本體是一個可共享概念化(Conceptualization)的顯式(Explicit)的規(guī)格說明[3]。 這里包含4層含義:
1)“共享”指出本體的主要作用就是領(lǐng)域知識交互,而非為個人所用;
2)“概念化”指出知識的形式化表示的基礎(chǔ)是概念化,領(lǐng)域知識內(nèi)的對象、概念和其他實體,以及它們之間的關(guān)系;
3)“顯式”則表示概念的類型和約束必須直接、無二義地給出,同時是機器可理解的;
4)“規(guī)格說明”則要求概念化體系用具體形式進行表達。本體的目的就是建立統(tǒng)一的概念和語義結(jié)構(gòu),進行相關(guān)領(lǐng)域知識的交換。
文獻[4]對本體的作用進行概括,本體作用如下:
1)本體的分析澄清了領(lǐng)域知識的結(jié)構(gòu),從而為知識表示下基礎(chǔ)。本體可以重用,從而避免重的領(lǐng)域知識分析;
2)統(tǒng)一的術(shù)語和概念使知識共享成為可能。本體可將某個或多個特定領(lǐng)域的概念和術(shù)語規(guī)范化,為該領(lǐng)域或領(lǐng)域之間實際應(yīng)用提供便利。
1)行為記錄模塊 負責(zé)記錄能夠體現(xiàn)用戶喜好以及需求的行為,比如購買、下載、評分等。下載和評分這兩種行為表達潛在的喜好程度就不盡相同,完善的行為記錄需要能夠綜合多種不同的用戶行為,處理不同行為的累加;
2)模型分析模塊 實現(xiàn)對用戶行為記錄的分析,采用不同算法建立起模型描述用戶的喜好信息;
3)推薦模塊 通過推薦模塊,實時地從內(nèi)容集篩選出目標(biāo)用戶可能會感興趣的內(nèi)容推薦給用戶。
由上可見,建立一個真正能體現(xiàn)用戶興趣的模型是至關(guān)重要的,它對個性化推薦的質(zhì)量起著非常重要的作用。建立興趣模型所需要的數(shù)據(jù)一般有2種獲取方式:
1)系統(tǒng)一般使用打分方式,最著名的例如 Movie Lens,這種方式稱為“顯式評分”方法[4],但其收集數(shù)據(jù)比較困難,用戶通常并不愿意提供這種數(shù)據(jù)。
2)被認為更有效的方法是“隱式評分”方法,這種方法不需要用戶直接輸入評價數(shù)據(jù),而是根據(jù)用戶的行為特征由系統(tǒng)代替用戶完成評價。無論采用哪種方式,抽取到的都是一組能表示用戶興趣和需求的關(guān)鍵詞,這就涉及到這些詞的組織問題。
在傳統(tǒng)推薦系統(tǒng)中, 用戶興趣描述為:U={(Ci,Wi)|Ci:關(guān)鍵詞,Wi:權(quán)重(表征用戶興趣高低)},可以看出這種表示方法,用戶興趣用一組羅列的關(guān)鍵詞表示,而沒有考慮詞之間內(nèi)在的聯(lián)系,沒有從語義上對信息進行理解,造成了推薦質(zhì)量的下降。這里根據(jù)用戶行為記錄模塊來記錄用戶行為,通過模型分析模塊得到用戶的興趣信息,將用戶的興趣信息與領(lǐng)域本體中的概念進行映射,構(gòu)建用戶興趣本體,然后進行用戶模式識別,通過推薦模塊產(chǎn)生推薦。由于考慮了詞之間的內(nèi)在聯(lián)系,系統(tǒng)的推薦質(zhì)量大大提高。
個性化推薦的實現(xiàn)是建立在領(lǐng)域本體上的,在領(lǐng)域本體的構(gòu)建上,本文借鑒了國外本體工程中七步法的思想,參考了國內(nèi)外基于敘詞表構(gòu)建本體的有關(guān)思路和方法。領(lǐng)域本體構(gòu)建步驟如下[5]:
1)確定本體的領(lǐng)域和范圍;2)本體概念體系的構(gòu)建,包括定義類及類的等級體系、定義類的屬性和創(chuàng)建實例;3)概念的規(guī)范化處理;4)利用現(xiàn)有的本體開發(fā)工具輔助本體構(gòu)建,并可直接轉(zhuǎn)化成相應(yīng)的本體表示語言的文件格式存儲;5)本體評價和應(yīng)用。
利用領(lǐng)域本體構(gòu)建用戶興趣本體,通過將用戶的興趣信息與領(lǐng)域本體中的概念進行映射,將用戶的興趣內(nèi)容轉(zhuǎn)化為本體概念的形式,并利用這些本體概念構(gòu)建用戶興趣本體。最后利用構(gòu)建的用戶興趣本體,進行用戶模式識別。用戶興趣建模過程如圖1所示。
圖1 用戶興趣建模Fig.1 User interests modeling
2.3.1 利用領(lǐng)域本體構(gòu)建用戶興趣本體
用戶本體是用戶信息的概念化的規(guī)格說明[6],它定義了有關(guān)用戶概念的各種術(shù)語、關(guān)系并給出術(shù)語的語義。用戶興趣本體主要對用戶興趣進行描述,展示用戶興趣的不同屬性及屬性之間的關(guān)系。將用戶興趣信息與領(lǐng)域本體庫進行映射,得到用戶感興趣的領(lǐng)域本體概念集合,進而將用戶興趣用領(lǐng)域本體概念來表述,生成用戶興趣本體。
2.3.2 利用用戶興趣本體發(fā)掘用戶興趣模式
利用用戶興趣本體的概念集合,通過概念間的語義關(guān)系(主要是上下位類關(guān)系和類-實例關(guān)系)和鄰接徑度,將用戶興趣劃分為若干個子興趣,從而實現(xiàn)用戶興趣建模。在知識本體的支持下,這種劃分可以迭代進行,理論上可以實現(xiàn)任意詳細程度的用戶興趣描述。
用戶興趣通過本體概念集進行了概念化的、語義層面的描述,然后基于本體中概念鄰接關(guān)系,將用戶感興趣的主題概念按鄰接程度進行聚集,最后得到若干個聚集后的向量形成用戶興趣模式。在系統(tǒng)與用戶的交互過程中,用戶的興趣會發(fā)生變化和調(diào)整,即原有的興趣本體節(jié)點權(quán)重將逐步衰減,同時新的興趣本體節(jié)點不斷增加,因此必須進行用戶興趣的增量更新。
個性化推薦算法是在收集和分析用戶信息的基礎(chǔ)上,學(xué)習(xí)用戶的興趣愛好和行為習(xí)慣,從而將用戶需要的、感興趣的信息主動推薦給用戶。
利用領(lǐng)域本體的個性化推薦算法:利用Web站點的領(lǐng)域知識計算用戶評價項目之間的相似度,這種相似度更適合人們直觀上的感覺;通過項集合的相似性計算用戶之間的相似性,得到最近鄰進行推薦。
2.4.1 用戶興趣本體相似度計算
在計算用戶興趣本體相似度時,可以與領(lǐng)域本體相聯(lián)系,通過計算用戶興趣本體包含的領(lǐng)域本體中的概念之間的相似度,來進一步計算用戶興趣本體相似度。
利用基于網(wǎng)絡(luò)距離的方法,計算本體中概念相似度。通過概念相對應(yīng)的節(jié)點之間的距離表示,路徑越短,它們之間越相似,使用這種簡單的邊計數(shù)方法是在假定邊距離統(tǒng)一的情況下(例如每條邊的路徑距離為1),Wu和Palmer[6]提出了計算節(jié)點c1和c2之間相似度方法:
其中,N1和N2為從c1和c2到它們最近公共祖先節(jié)點c3的路徑長度,N3為c3到根節(jié)點的路徑長度。
例如,對于用戶興趣本體A和C,如果要計算A中的概念A(yù)1與C中的概念c1的相似度,只需確定它們分別所處的節(jié)點位置,再利用式 (1)即可算出。
比如,計算表1中,A中apple和C中apple的相似度,N1=N2=1,N3=1,
對于用戶興趣本體 A與B,計算出B中m個概念分別與A中n個概念的相似度值后,求其均值,即是用戶興趣本體B與A的相似度。
用上例中的方法,計算出A與C中各項的相似度,從而得出:
2.4.2 評分項目之間的相似性
設(shè)對項i和項j共同評分過的項集合用Uij表示,Ui和Uj表示對項i和項j評分過的用戶集,則評分項目之間的相似性為:
有了評分項目之間相似度的計算方式,可根據(jù)用戶評分項的集合計算用戶的相似度。集合之間相似度的計算需要考慮相似的對稱性性質(zhì)和集合元素個數(shù)對相似計算結(jié)果的影響。另外,用戶之間的相似度應(yīng)該滿足以下基本條件:
1)用戶和自身的相似度為1,即滿足自反性;
2)用戶A與 B的相似度應(yīng)等于B與A的相似度,即滿足對稱性;
3)假設(shè)用戶評分項目集合都有n個元素,其中m(m〈n)個項目相同,又假設(shè)2個項目的相似度只能是0(不同)或1(相同),那么這兩個用戶的相似度應(yīng)該是 m/n。
通過在集合的元素之間建立對應(yīng)的關(guān)系來消除集合元素數(shù)目的影響并保證計算結(jié)果滿足以上的條件。具體方法為:1)首先計算兩個用戶評分項集合的所有項目兩兩間相似度;2)從所有的相似度值中選擇最大的一個,將這個相似度值對應(yīng)的兩個項目對應(yīng)起來,并累加該最大值。3)從所有的相似度值中刪去那些已經(jīng)建立對應(yīng)關(guān)系的項目的相似度值。4)重復(fù)上述第2)步和第3)步,直到所有的相似度值都被刪除;5)沒有建立起對應(yīng)關(guān)系的項目與空元素對應(yīng);6)求平均相似度(累加和除以對應(yīng)項目個數(shù)),返回。
首先按照相似度建立起兩個集合中項目的一一對應(yīng)關(guān)系,然后計算用戶評分項目集合的相似度:用戶評分項目集合的相似度等于其元素對的相似度的加權(quán)平均。因為評分項目集合的元素之間都是平等的,所以所有的權(quán)值取相同,那么項目集合的相似度等于其項目對的相似度的算術(shù)平均。
2.4.3 產(chǎn)生推薦集
基于領(lǐng)域本體的個性化推薦算法,綜合考慮用戶評分項目之間的語義相似性和用戶的相似性:
式中,simij為混合相似度,sim(i,j)為評分項目的語義相似度,ω為語義相似度的貢獻權(quán)值,sim(u,v)為用戶的相似度,1-ω為用戶相似度的貢獻權(quán)值。
用戶u對目標(biāo)項i的預(yù)測評分pui可以通過目標(biāo)項i的最近鄰居集合V對j的評分得到:
個性化推薦系統(tǒng)為用戶提供個性化的服務(wù),應(yīng)用于醫(yī)療領(lǐng)域,在健康系統(tǒng)中也有很大的用途,為臨床診斷、選擇治療方案提供參考。以為用戶提供合理的營養(yǎng)配餐為例進行分析。
手工構(gòu)建本體的工作量是很大的,通過下面的技術(shù)構(gòu)建領(lǐng)域本體,具體做法是:首先對訓(xùn)練文本進行預(yù)處理,然后構(gòu)建術(shù)語、文本矩陣并對其進行SVD分解得到一組概念和描述每一個概念的一組術(shù)語,這些概念之間的關(guān)系通過聚類得到。這里以健康系統(tǒng)食物查詢模塊中部分食物的分類為依據(jù),構(gòu)建其本體形式,如圖2所示。
將用戶興趣信息與領(lǐng)域本體概念進行映射后,得到用戶A、B、C具有相同的興趣模式,其用戶興趣本體信息如表1所示。
圖2 營養(yǎng)配餐食物領(lǐng)域本體模型Fig.2 Domain ontology model of food nutrition catering
表1 用戶興趣本體信息Tab.1 User interest ontology information
抽取幾個用戶和評分項目的信息做簡單的數(shù)據(jù)舉例,若以B、C為相似用戶向A推薦食物,由式(1)和式(2)計算出用戶興趣本體B與A的相似度為0.125,C與A的相似度為0.125,再由式(3)計算出興趣本體中評分項之間的相似度,由此再計算用戶之間的相似性,B與A的相似度為0.678,C與 A的相似度為 0.769,可以得到推薦概念集合為{apple,rice,hairtail}。
設(shè)計一個基于食物領(lǐng)域本體的個性化推薦系統(tǒng),依據(jù)上述的思路,在健康系統(tǒng)中做初步的實驗性應(yīng)用,并采用系統(tǒng)數(shù)據(jù)來進行測試。該系統(tǒng)已有200個用戶對500個食物項目評分,評分值為從1到5的整數(shù),數(shù)值越高表明用戶對該食品的興趣度越高。
采用平均絕對誤差MAE作為評測的標(biāo)準(zhǔn)。MAE是常用的評價推薦算法質(zhì)量的標(biāo)準(zhǔn),它通過計算用戶實際評分與預(yù)測評分之間的偏差衡量預(yù)測的準(zhǔn)確性,MAE的值越小,推薦的質(zhì)量越高。
考慮到混合相似度計算中的ω權(quán)重參數(shù)對MAE[7]的影響,在使用混合相似度算法預(yù)測時,找出最優(yōu)ω值的范圍,權(quán)重參數(shù)ω從0到1,間隔為0.1。實驗結(jié)果如圖3所示,由此得出結(jié)論,ω的取值在0.5附近時最優(yōu)的。
圖3 權(quán)重參數(shù)ω對推薦精度的影響Fig.3 Weight parameter ω effect on the accuracy of recommended
為了檢驗基于領(lǐng)域本體的個性化推薦算法的性能,本文將傳統(tǒng)的基于內(nèi)容的協(xié)同過濾推薦算法與本本文的算法進行比較,權(quán)重參數(shù)ω選為0.5,最近鄰居N從20增加到120,間隔為20,實驗結(jié)果如圖4所示。
圖4 推薦算法精度-MAE比較Fig.4 Recommendation algorithm precision-comparison of MAE
從實驗結(jié)果分析,通過項目語義相似性與用戶相似性的融合,挖掘出項目之間的語義關(guān)系,抽取出項目之間的一樣信息,不僅能很好的解決傳統(tǒng)的基于項目的協(xié)同過濾的新項目的冷問題以及提高推薦精度,還能進一步說明用戶對特定領(lǐng)域的項目是否感興趣。隨著用戶的增加,特別是具有較高評分項目數(shù)用戶的增加,這兩種算法的推薦質(zhì)量都有明顯的提高。
以領(lǐng)域本體為中介,通過抽取領(lǐng)域本體中概念的語義關(guān)系,構(gòu)建用戶興趣本體并進行用戶興趣建模,通過融合評分項目相似性和用戶相似性,產(chǎn)生用戶的最近鄰居并且得到項目的推薦集合。將本文的方法應(yīng)用到健康系統(tǒng)中進行初步的實驗分析,實驗結(jié)果表明利用領(lǐng)域知識計算相似度可以解決用戶評分項很少數(shù)據(jù)極端稀疏情況下的系統(tǒng)冷啟動現(xiàn)象,提高系統(tǒng)的推薦質(zhì)量和精度。
[1] 韓燕.數(shù)據(jù)挖掘方法和知識發(fā)現(xiàn)[J].人工智能及識別技術(shù),2007, 17(1):10-25.HAN Yan.Data mining and knowledge discovery[J].Artificial Intelligence and Identification Technology,2007,17(1):10-25.
[2] 李慶祝,佘玲玲,單光先.數(shù)據(jù)挖掘及應(yīng)用[J].現(xiàn)代電子技術(shù),2010(12):28-30.LI Qing-zhu,SHE Ling-ling,SHAN guang-xian.Data mining and its application [J].Modern Electronic Technique,2010(12):28-31.
[3] Chandrasekaran B,Josephson J R,Benjamins V R.What are ontologies,and why do we need them [J].IEEE Intelligent Systems Archive, 1999, 14(1):20-25.
[4] LI Wang,LI Ying-jie.The semantic matching of semantic web services[C].In:IEEE/ACM/KGGI O4, 2004.
[5] 曾子明.電子商務(wù)推薦系統(tǒng)與智能談判技術(shù)[M].武漢:武漢大學(xué)出版社,2008.
[6] 顏端武.面向知識服務(wù)的智能推薦系統(tǒng)研究[D].南京:南京理工大學(xué),2007.
[7] 陳健,印鑒.基于影響集的協(xié)作過濾推薦算法[J].軟件學(xué)報,2007,18(7):1685-1694.CHEN Jian.YIN Jian.A collaborative filtering recommendation algorithm based on influence sets[J].Journal of Software,2007,18(17):1685-1694.