李 想,周 良
(南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210016)
協(xié)同過(guò)濾推薦是當(dāng)前應(yīng)用最廣泛、最成功的個(gè)性化推薦技術(shù)。協(xié)同過(guò)濾推薦主要根據(jù)用戶(hù)對(duì)項(xiàng)目的評(píng)分?jǐn)?shù)據(jù),發(fā)現(xiàn)用戶(hù)之間或者項(xiàng)目之間的相關(guān)性,預(yù)測(cè)目標(biāo)用戶(hù)對(duì)未評(píng)分項(xiàng)目的喜好程度,從而產(chǎn)生推薦。目前常用的協(xié)同過(guò)濾推薦算法主要分為2類(lèi):基于用戶(hù)的協(xié)同過(guò)濾推薦和基于項(xiàng)目的協(xié)同過(guò)濾推薦[1]。
傳統(tǒng)的基于用戶(hù)的協(xié)同過(guò)濾推薦算法是以用戶(hù)-項(xiàng)目評(píng)分矩陣為基礎(chǔ)來(lái)計(jì)算用戶(hù)之間的相似性,用戶(hù)評(píng)分?jǐn)?shù)據(jù)的缺失使系統(tǒng)難以準(zhǔn)確定位目標(biāo)用戶(hù)的最近鄰,從而導(dǎo)致推薦質(zhì)量下降。近些年,一些研究者開(kāi)始嘗試將語(yǔ)義知識(shí)應(yīng)用到協(xié)同過(guò)濾推薦中,在解決評(píng)分?jǐn)?shù)據(jù)稀疏性問(wèn)題上取得了顯著的效果。文獻(xiàn)[2]提出了一種基于項(xiàng)目語(yǔ)義相似度的協(xié)同過(guò)濾推薦算法,通過(guò)計(jì)算項(xiàng)目之間的語(yǔ)義相似性來(lái)預(yù)測(cè)用戶(hù)評(píng)分,并填充用戶(hù)評(píng)分矩陣,再計(jì)算用戶(hù)的相似性進(jìn)行推薦。文獻(xiàn)[3]提出了一種基于本體用戶(hù)模型的個(gè)性化推薦算法,利用本體構(gòu)建用戶(hù)興趣模型,并通過(guò)改進(jìn)的相似度計(jì)算方法來(lái)計(jì)算用戶(hù)相似度。文獻(xiàn)[4]提出了一種領(lǐng)域知識(shí)驅(qū)動(dòng)的協(xié)同過(guò)濾推薦算法,通過(guò)項(xiàng)目語(yǔ)義相似度計(jì)算用戶(hù)之間的語(yǔ)義相似度,同時(shí)結(jié)合用戶(hù)評(píng)分相似性和用戶(hù)語(yǔ)義相似性計(jì)算用戶(hù)最近鄰,有效地改善了推薦質(zhì)量。
本文提出了一種基于用戶(hù)語(yǔ)義相似性的協(xié)同過(guò)濾推薦算法。其核心在于利用領(lǐng)域本體中概念之間的關(guān)系來(lái)描述項(xiàng)目之間的語(yǔ)義關(guān)系,同時(shí)利用語(yǔ)義擴(kuò)展的余弦相似性方法來(lái)改進(jìn)傳統(tǒng)的用戶(hù)相似性度量方法,并以此來(lái)計(jì)算用戶(hù)語(yǔ)義相似性。該算法能夠很好地克服協(xié)同過(guò)濾中數(shù)據(jù)稀疏性導(dǎo)致的推薦質(zhì)量下降的問(wèn)題,提高推薦的準(zhǔn)確性。
協(xié)同過(guò)濾推薦根據(jù)目標(biāo)用戶(hù)最近鄰居集的偏好來(lái)預(yù)測(cè)目標(biāo)用戶(hù)的偏好,推薦流程主要分為2個(gè)部分:發(fā)現(xiàn)用戶(hù)最近鄰和產(chǎn)生推薦。基于用戶(hù)語(yǔ)義相似性的協(xié)同過(guò)濾推薦通過(guò)引入語(yǔ)義知識(shí),同時(shí)綜合用戶(hù)評(píng)分?jǐn)?shù)據(jù)來(lái)計(jì)算用戶(hù)語(yǔ)義相似度,推薦流程如圖1所示。
圖1 基于用戶(hù)語(yǔ)義相似性的協(xié)同過(guò)濾推薦流程圖
根據(jù)圖1中描述的推薦流程,首先利用項(xiàng)目的分類(lèi)信息構(gòu)建領(lǐng)域本體,收集用戶(hù)興趣信息并構(gòu)建用戶(hù)興趣模型,用戶(hù)興趣模型由分類(lèi)本體樹(shù)中的葉子節(jié)點(diǎn)和相應(yīng)的評(píng)分組成;然后,根據(jù)領(lǐng)域本體內(nèi)部的語(yǔ)義關(guān)系計(jì)算項(xiàng)目之間的語(yǔ)義相似度,綜合項(xiàng)目語(yǔ)義相似度和用戶(hù)評(píng)分?jǐn)?shù)據(jù)來(lái)對(duì)余弦相似性方法進(jìn)行語(yǔ)義擴(kuò)展,以此來(lái)計(jì)算用戶(hù)語(yǔ)義相似度,并為目標(biāo)用戶(hù)產(chǎn)生最近鄰居集;最后,根據(jù)用戶(hù)最近鄰居集的評(píng)分產(chǎn)生Top N推薦。
領(lǐng)域本體通常用來(lái)描述某個(gè)領(lǐng)域內(nèi)的概念以及概念之間的關(guān)系,領(lǐng)域本體中的上層概念是下層概念的泛化,下層概念是上層概念的具體化。項(xiàng)目之間語(yǔ)義關(guān)系的表達(dá)可以借助領(lǐng)域本體來(lái)實(shí)現(xiàn),圖2描述了電影領(lǐng)域的一個(gè)分類(lèi)本體,領(lǐng)域本體樹(shù)中的葉子節(jié)點(diǎn)表示具體的電影項(xiàng)目,非葉子節(jié)點(diǎn)表示泛化的電影分類(lèi)概念。
圖2 電影領(lǐng)域的分類(lèi)本體
根據(jù)Ganesan在文獻(xiàn)[5]中提出的思想來(lái)計(jì)算項(xiàng)目之間的語(yǔ)義相似度。設(shè)分類(lèi)本體樹(shù)U中葉子節(jié)點(diǎn)的集合為 LLU={l1,l2,l3,…,ln},LCAU(li,lj)表示葉節(jié)點(diǎn)li和lj的最近公共祖先節(jié)點(diǎn),depth(l)表示從根節(jié)點(diǎn)到節(jié)點(diǎn)l的路徑長(zhǎng)度,葉節(jié)點(diǎn)li和lj的語(yǔ)義相似度定義為:
根據(jù)定義可知,itemsim(li,lj)∈[0,1],當(dāng)且僅當(dāng)li=lj時(shí),itemsim(li,lj)=1。任意兩個(gè)項(xiàng)目之間的語(yǔ)義相似度可以根據(jù)公式(1)計(jì)算得到,且相似度隨著最近公共祖先節(jié)點(diǎn)深度的增加而增加。
協(xié)同過(guò)濾算法的核心是計(jì)算用戶(hù)之間的相似性,從而發(fā)現(xiàn)目標(biāo)用戶(hù)的最近鄰。傳統(tǒng)的相似性度量方法主要有3種:余弦相似性、相關(guān)相似性和修正的余弦相似性。傳統(tǒng)的相似性度量方法過(guò)于依賴(lài)用戶(hù)評(píng)分?jǐn)?shù)據(jù),在用戶(hù)評(píng)分?jǐn)?shù)據(jù)極端稀疏或者用戶(hù)之間評(píng)分項(xiàng)目的交集較少的情況下,不能有效地度量用戶(hù)之間的相似性,進(jìn)而影響推薦質(zhì)量。本文根據(jù)用戶(hù)評(píng)分項(xiàng)目之間的語(yǔ)義相似性和用戶(hù)對(duì)項(xiàng)目的評(píng)分,重新定義向量點(diǎn)積的計(jì)算方法,并利用語(yǔ)義擴(kuò)展的余弦相似性方法來(lái)計(jì)算用戶(hù)語(yǔ)義相似度。
設(shè)用戶(hù)a和用戶(hù)b評(píng)分過(guò)的項(xiàng)目數(shù)量分別為m和n,用戶(hù)a和用戶(hù)b的興趣模型分別為n}。其中,pi和s(pi)分別為用戶(hù)a評(píng)分過(guò)的項(xiàng)目及其相應(yīng)的評(píng)分值,qj和s(qj)分別為用戶(hù)b評(píng)分過(guò)的項(xiàng)目及其相應(yīng)的評(píng)分值。將用戶(hù)興趣模型映射到向量空間上,同時(shí)考慮到用戶(hù)評(píng)分尺度不同的問(wèn)題,則用戶(hù)a和用戶(hù)b的興趣評(píng)分向量Ia和Ib可以分別表示為:
同理可以計(jì)算Ib·Ib,當(dāng)用戶(hù)a和用戶(hù)b之間沒(méi)有共同的評(píng)分項(xiàng)目時(shí),依然可以利用公式(4)來(lái)計(jì)算得到一個(gè)非零數(shù)值。用戶(hù)a和用戶(hù)b的語(yǔ)義相似性可以利用經(jīng)過(guò)語(yǔ)義擴(kuò)展的余弦相似性方法來(lái)計(jì)算:
發(fā)現(xiàn)最近鄰的目標(biāo)就是為目標(biāo)用戶(hù)a產(chǎn)生一個(gè)最近鄰居集合 Na={a1,a2,…,ak},a ? Na,且sim(a,ai)≥sim(a,ai+1),1≤i< k,則可以利用公式(7)來(lái)計(jì)算用戶(hù)a對(duì)未評(píng)分項(xiàng)目i的預(yù)測(cè)評(píng)分Pa,i,然后選擇預(yù)測(cè)評(píng)分值較高的若干項(xiàng)目推薦給目標(biāo)用戶(hù)a。
式中:sim(a,b)表示用戶(hù)a與用戶(hù)b之間的語(yǔ)義相似度;Rb,i表示用戶(hù)b對(duì)項(xiàng)目i的評(píng)分;和分別表示用戶(hù)a與用戶(hù)b對(duì)項(xiàng)目的平均評(píng)分。
本文采用MovieLens站點(diǎn)提供的數(shù)據(jù)集對(duì)基于用戶(hù)語(yǔ)義相似性的協(xié)同過(guò)濾推薦算法進(jìn)行測(cè)試,并和傳統(tǒng)的基于用戶(hù)的協(xié)同過(guò)濾推薦算法進(jìn)行實(shí)驗(yàn)對(duì)比。MovieLens數(shù)據(jù)集包含超過(guò)43000個(gè)用戶(hù)對(duì)3500部電影的評(píng)分?jǐn)?shù)據(jù)以及電影的分類(lèi)信息。本文根據(jù)電影的分類(lèi)信息構(gòu)建電影領(lǐng)域的分類(lèi)本體,從該數(shù)據(jù)集中隨機(jī)選取5000條評(píng)分?jǐn)?shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)集,其中包含159個(gè)用戶(hù)和614部電影,并將其分為訓(xùn)練集和測(cè)試集,訓(xùn)練集占80%,測(cè)試集占20%。該實(shí)驗(yàn)數(shù)據(jù)集的稀疏等級(jí)為:
本文采用平均絕對(duì)偏差MAE(Mean Absolute Error)作為算法質(zhì)量的評(píng)價(jià)標(biāo)準(zhǔn),它通過(guò)計(jì)算預(yù)測(cè)的用戶(hù)評(píng)分和用戶(hù)實(shí)際評(píng)分之間的偏差來(lái)衡量預(yù)測(cè)的準(zhǔn)確性,MAE的值越小,算法推薦的質(zhì)量越高。設(shè)用戶(hù)評(píng)分的預(yù)測(cè)值集合為{p1,p2,…,pN},其對(duì)應(yīng)的實(shí)際的用戶(hù)評(píng)分值集合為{q1,q2,…,qN},則 MAE 的計(jì)算方法如下[6]:
為了檢驗(yàn)基于用戶(hù)語(yǔ)義相似性的協(xié)同過(guò)濾推薦算法的有效性,將傳統(tǒng)的基于用戶(hù)的協(xié)同過(guò)濾推薦算法與之進(jìn)行比較,用戶(hù)鄰居數(shù)從5不斷增加到40,間隔為5。其中,傳統(tǒng)的基于用戶(hù)的協(xié)同過(guò)濾算法分別以相關(guān)相似性和余弦相似性來(lái)計(jì)算用戶(hù)相似度,實(shí)驗(yàn)結(jié)果如圖3所示。
從圖3中可以看出,與傳統(tǒng)的基于相關(guān)相似性和余弦相似性的協(xié)同過(guò)濾算法相比,本文提出的算法均有較小的MAE值。由此可知,與傳統(tǒng)的基于用戶(hù)的協(xié)同過(guò)濾推薦算法相比,基于用戶(hù)語(yǔ)義相似性的協(xié)同過(guò)濾推薦算法在用戶(hù)評(píng)分?jǐn)?shù)據(jù)極端稀疏的情況下可以有效地提高推薦質(zhì)量。
圖3 幾種協(xié)同過(guò)濾推薦算法比較
為了克服傳統(tǒng)協(xié)同過(guò)濾推薦中存在的數(shù)據(jù)稀疏性問(wèn)題,本文提出了一種基于用戶(hù)語(yǔ)義相似性的協(xié)同過(guò)濾推薦算法。通過(guò)構(gòu)建領(lǐng)域本體來(lái)描述項(xiàng)目之間的語(yǔ)義關(guān)系,并計(jì)算項(xiàng)目語(yǔ)義相似度,根據(jù)項(xiàng)目語(yǔ)義相似度和用戶(hù)評(píng)分來(lái)對(duì)傳統(tǒng)的余弦相似性公式進(jìn)行語(yǔ)義擴(kuò)展,計(jì)算用戶(hù)語(yǔ)義相似度并尋找用戶(hù)最近鄰。通過(guò)實(shí)驗(yàn)證明,在用戶(hù)評(píng)分?jǐn)?shù)據(jù)極端稀疏的情況下,該算法與傳統(tǒng)的協(xié)同過(guò)濾推薦算法相比顯著地提高了推薦質(zhì)量。
[1] 馬宏偉,張光衛(wèi),李鵬.協(xié)同過(guò)濾推薦算法綜述[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(7):1282-1288.
[2] 肖敏,熊前興.基于項(xiàng)目語(yǔ)義相似度的協(xié)同過(guò)濾推薦算法[J].武漢理工大學(xué)學(xué)報(bào),2009,31(3):21-32.
[3] Jiangling Yuan,Hui Zhang,JiangFeng Ni.A new ontology-based user modeling method for personalized recommendation[C]//Computer Science and Information Technology(ICCSIT).Chengdu:20103rd IEEE International Conference,2010:363-367.
[4] Lingling Zhang,Xiaojie Zhang,Quan Chen,et al.Domain-Knowledge driven recommendation method and its application[C]//2011 Fourth International Joint Conference.Yunnan:Computational Sciences and Optimization(CSO),2011:21-25.
[5] Ganesan P,Garcia-Molina H.Exploiting hierarchical domain structure to compute similarity[J].ACM Transactions on Information Systems,2003,21(1):64-93.
[6] 鄧愛(ài)林,朱揚(yáng)勇,施伯樂(lè).基于項(xiàng)目評(píng)分預(yù)測(cè)的協(xié)同過(guò)濾推薦算法[J].軟件學(xué)報(bào),2003,14(9):1621-1628.