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