李 想,周 良
(南京航空航天大學計算機科學與技術學院,江蘇 南京 210016)
協(xié)同過濾推薦是當前應用最廣泛、最成功的個性化推薦技術。協(xié)同過濾推薦主要根據用戶對項目的評分數據,發(fā)現用戶之間或者項目之間的相關性,預測目標用戶對未評分項目的喜好程度,從而產生推薦。目前常用的協(xié)同過濾推薦算法主要分為2類:基于用戶的協(xié)同過濾推薦和基于項目的協(xié)同過濾推薦[1]。
傳統(tǒng)的基于用戶的協(xié)同過濾推薦算法是以用戶-項目評分矩陣為基礎來計算用戶之間的相似性,用戶評分數據的缺失使系統(tǒng)難以準確定位目標用戶的最近鄰,從而導致推薦質量下降。近些年,一些研究者開始嘗試將語義知識應用到協(xié)同過濾推薦中,在解決評分數據稀疏性問題上取得了顯著的效果。文獻[2]提出了一種基于項目語義相似度的協(xié)同過濾推薦算法,通過計算項目之間的語義相似性來預測用戶評分,并填充用戶評分矩陣,再計算用戶的相似性進行推薦。文獻[3]提出了一種基于本體用戶模型的個性化推薦算法,利用本體構建用戶興趣模型,并通過改進的相似度計算方法來計算用戶相似度。文獻[4]提出了一種領域知識驅動的協(xié)同過濾推薦算法,通過項目語義相似度計算用戶之間的語義相似度,同時結合用戶評分相似性和用戶語義相似性計算用戶最近鄰,有效地改善了推薦質量。
本文提出了一種基于用戶語義相似性的協(xié)同過濾推薦算法。其核心在于利用領域本體中概念之間的關系來描述項目之間的語義關系,同時利用語義擴展的余弦相似性方法來改進傳統(tǒng)的用戶相似性度量方法,并以此來計算用戶語義相似性。該算法能夠很好地克服協(xié)同過濾中數據稀疏性導致的推薦質量下降的問題,提高推薦的準確性。
協(xié)同過濾推薦根據目標用戶最近鄰居集的偏好來預測目標用戶的偏好,推薦流程主要分為2個部分:發(fā)現用戶最近鄰和產生推薦?;谟脩粽Z義相似性的協(xié)同過濾推薦通過引入語義知識,同時綜合用戶評分數據來計算用戶語義相似度,推薦流程如圖1所示。
圖1 基于用戶語義相似性的協(xié)同過濾推薦流程圖
根據圖1中描述的推薦流程,首先利用項目的分類信息構建領域本體,收集用戶興趣信息并構建用戶興趣模型,用戶興趣模型由分類本體樹中的葉子節(jié)點和相應的評分組成;然后,根據領域本體內部的語義關系計算項目之間的語義相似度,綜合項目語義相似度和用戶評分數據來對余弦相似性方法進行語義擴展,以此來計算用戶語義相似度,并為目標用戶產生最近鄰居集;最后,根據用戶最近鄰居集的評分產生Top N推薦。
領域本體通常用來描述某個領域內的概念以及概念之間的關系,領域本體中的上層概念是下層概念的泛化,下層概念是上層概念的具體化。項目之間語義關系的表達可以借助領域本體來實現,圖2描述了電影領域的一個分類本體,領域本體樹中的葉子節(jié)點表示具體的電影項目,非葉子節(jié)點表示泛化的電影分類概念。
圖2 電影領域的分類本體
根據Ganesan在文獻[5]中提出的思想來計算項目之間的語義相似度。設分類本體樹U中葉子節(jié)點的集合為 LLU={l1,l2,l3,…,ln},LCAU(li,lj)表示葉節(jié)點li和lj的最近公共祖先節(jié)點,depth(l)表示從根節(jié)點到節(jié)點l的路徑長度,葉節(jié)點li和lj的語義相似度定義為:
根據定義可知,itemsim(li,lj)∈[0,1],當且僅當li=lj時,itemsim(li,lj)=1。任意兩個項目之間的語義相似度可以根據公式(1)計算得到,且相似度隨著最近公共祖先節(jié)點深度的增加而增加。
協(xié)同過濾算法的核心是計算用戶之間的相似性,從而發(fā)現目標用戶的最近鄰。傳統(tǒng)的相似性度量方法主要有3種:余弦相似性、相關相似性和修正的余弦相似性。傳統(tǒng)的相似性度量方法過于依賴用戶評分數據,在用戶評分數據極端稀疏或者用戶之間評分項目的交集較少的情況下,不能有效地度量用戶之間的相似性,進而影響推薦質量。本文根據用戶評分項目之間的語義相似性和用戶對項目的評分,重新定義向量點積的計算方法,并利用語義擴展的余弦相似性方法來計算用戶語義相似度。
設用戶a和用戶b評分過的項目數量分別為m和n,用戶a和用戶b的興趣模型分別為n}。其中,pi和s(pi)分別為用戶a評分過的項目及其相應的評分值,qj和s(qj)分別為用戶b評分過的項目及其相應的評分值。將用戶興趣模型映射到向量空間上,同時考慮到用戶評分尺度不同的問題,則用戶a和用戶b的興趣評分向量Ia和Ib可以分別表示為:
同理可以計算Ib·Ib,當用戶a和用戶b之間沒有共同的評分項目時,依然可以利用公式(4)來計算得到一個非零數值。用戶a和用戶b的語義相似性可以利用經過語義擴展的余弦相似性方法來計算:
發(fā)現最近鄰的目標就是為目標用戶a產生一個最近鄰居集合 Na={a1,a2,…,ak},a ? Na,且sim(a,ai)≥sim(a,ai+1),1≤i< k,則可以利用公式(7)來計算用戶a對未評分項目i的預測評分Pa,i,然后選擇預測評分值較高的若干項目推薦給目標用戶a。
式中:sim(a,b)表示用戶a與用戶b之間的語義相似度;Rb,i表示用戶b對項目i的評分;和分別表示用戶a與用戶b對項目的平均評分。
本文采用MovieLens站點提供的數據集對基于用戶語義相似性的協(xié)同過濾推薦算法進行測試,并和傳統(tǒng)的基于用戶的協(xié)同過濾推薦算法進行實驗對比。MovieLens數據集包含超過43000個用戶對3500部電影的評分數據以及電影的分類信息。本文根據電影的分類信息構建電影領域的分類本體,從該數據集中隨機選取5000條評分數據作為實驗數據集,其中包含159個用戶和614部電影,并將其分為訓練集和測試集,訓練集占80%,測試集占20%。該實驗數據集的稀疏等級為:
本文采用平均絕對偏差MAE(Mean Absolute Error)作為算法質量的評價標準,它通過計算預測的用戶評分和用戶實際評分之間的偏差來衡量預測的準確性,MAE的值越小,算法推薦的質量越高。設用戶評分的預測值集合為{p1,p2,…,pN},其對應的實際的用戶評分值集合為{q1,q2,…,qN},則 MAE 的計算方法如下[6]:
為了檢驗基于用戶語義相似性的協(xié)同過濾推薦算法的有效性,將傳統(tǒng)的基于用戶的協(xié)同過濾推薦算法與之進行比較,用戶鄰居數從5不斷增加到40,間隔為5。其中,傳統(tǒng)的基于用戶的協(xié)同過濾算法分別以相關相似性和余弦相似性來計算用戶相似度,實驗結果如圖3所示。
從圖3中可以看出,與傳統(tǒng)的基于相關相似性和余弦相似性的協(xié)同過濾算法相比,本文提出的算法均有較小的MAE值。由此可知,與傳統(tǒng)的基于用戶的協(xié)同過濾推薦算法相比,基于用戶語義相似性的協(xié)同過濾推薦算法在用戶評分數據極端稀疏的情況下可以有效地提高推薦質量。
圖3 幾種協(xié)同過濾推薦算法比較
為了克服傳統(tǒng)協(xié)同過濾推薦中存在的數據稀疏性問題,本文提出了一種基于用戶語義相似性的協(xié)同過濾推薦算法。通過構建領域本體來描述項目之間的語義關系,并計算項目語義相似度,根據項目語義相似度和用戶評分來對傳統(tǒng)的余弦相似性公式進行語義擴展,計算用戶語義相似度并尋找用戶最近鄰。通過實驗證明,在用戶評分數據極端稀疏的情況下,該算法與傳統(tǒng)的協(xié)同過濾推薦算法相比顯著地提高了推薦質量。
[1] 馬宏偉,張光衛(wèi),李鵬.協(xié)同過濾推薦算法綜述[J].小型微型計算機系統(tǒng),2009,30(7):1282-1288.
[2] 肖敏,熊前興.基于項目語義相似度的協(xié)同過濾推薦算法[J].武漢理工大學學報,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] 鄧愛林,朱揚勇,施伯樂.基于項目評分預測的協(xié)同過濾推薦算法[J].軟件學報,2003,14(9):1621-1628.