于 波, 陳庚午,2, 王愛玲,2, 林 川,2
?
一種結(jié)合項目屬性的混合推薦算法①
于 波1, 陳庚午1,2, 王愛玲1,2, 林 川1,2
1(中國科學(xué)院沈陽計算技術(shù)研究所, 沈陽 110168)2(中國科學(xué)院大學(xué), 北京 100049)
傳統(tǒng)的協(xié)同過濾推薦算法中僅僅根據(jù)評分矩陣進(jìn)行推薦, 由于矩陣的稀疏性, 存在推薦質(zhì)量不高的問題. 本文提出了一種結(jié)合項目屬性相似性的混合推薦算法, 該算法通過計算項目之間屬性的相似性, 并且與基于項目的協(xié)同過濾算法中的相似性動態(tài)結(jié)合, 通過加權(quán)因子的變化控制兩種相似性的比重來改善協(xié)同過濾中的稀疏性問題, 并且將綜合預(yù)測評分和基于用戶的協(xié)同過濾預(yù)測評分相結(jié)合來提高推薦質(zhì)量, 最終根據(jù)綜合評分來進(jìn)行推薦. 通過實驗數(shù)據(jù)實驗證明, 該算法解決了協(xié)同過濾算法的矩陣稀疏性問題.
協(xié)同過濾; 混合算法; 綜合相似性; 稀疏性; 項目屬性
目前, 個性化推薦技術(shù)[1]是解決信息過載的主要的有效手段, 它根據(jù)分析用戶的歷史行為信息, 在海量信息中運用推薦算法自動快速的發(fā)現(xiàn)符合用戶個人興趣的服務(wù)和內(nèi)容, 推薦算法作為個性化推薦技術(shù)的核心部分起到了重要作用, 其中協(xié)同過濾算法得到了廣泛地應(yīng)用.
協(xié)同過濾算法[2-5]的基本原理是通過對用戶歷史行為數(shù)據(jù)的挖掘發(fā)現(xiàn)用戶的偏好, 基于不同的偏好對用戶進(jìn)行群組劃分并推薦品味相似的商品. 根據(jù)協(xié)同過濾的相關(guān)特征, 協(xié)同過濾算法分成基于用戶的協(xié)同過濾算法和基于項目的協(xié)同過濾算法. 基于用戶的協(xié)同過濾首先計算活動用戶和其他用戶之間的相似度, 并從相似用戶的興趣為目標(biāo)用戶進(jìn)行推薦. 基于項目的協(xié)同過濾基于這樣的假設(shè): 能夠引起用戶興趣的項, 必定與之前評分高的項相似.
本實驗室新媒體廣播項目主要是為沈陽廣播電臺, 煙臺廣播電臺和長春廣播電臺提供新媒體廣播服務(wù), 旨在將電臺廣播與互聯(lián)網(wǎng)結(jié)合, 打造包括后臺服務(wù)、主持人端、導(dǎo)播端和移動端的一體化新媒體廣播服務(wù)平臺. 在移動端和主持人端的交互過程中發(fā)現(xiàn), 服務(wù)平臺于廣播欄目的個性化推薦依然一種有效的推薦措施. 由于欄目的收聽和互動存在很強的時間聚集性,所以由此衍生的評分矩陣具有很強的稀疏性. 而且在協(xié)同過濾推薦算法中, 數(shù)據(jù)稀疏性問題是影響協(xié)同過濾系統(tǒng)推薦質(zhì)量的一個關(guān)鍵原因, 由于評分矩陣的稀疏, 導(dǎo)致用戶相似性度計算的評分向量中共同評分項太少, 使得相似性的度量誤差變大, 最近鄰居搜尋的結(jié)果的準(zhǔn)確性也就會變得難以保證, 最終進(jìn)行評分預(yù)測時就會使最終的預(yù)測值和真實評分值之間產(chǎn)生較大的誤差, 從而影響推薦的準(zhǔn)確度. 針對于此問題, 本文提出一種基于內(nèi)容過濾和協(xié)同過濾相結(jié)合的混合模式推薦技術(shù)[6,7], 將基于項目屬性的相似性和協(xié)同過濾中基于項目的相似性結(jié)合, 提出一種新的相似性度量方法, 解決協(xié)同過濾中的矩陣稀疏問題.
在大部分的推薦系統(tǒng)當(dāng)中, 用戶對于項目的評分是非常有限的. 比如在視頻推薦的系統(tǒng)中, 視頻的數(shù)目數(shù)以十萬計, 然而用戶參與評價的視頻最多至幾十部, 再次基礎(chǔ)上的評分?jǐn)?shù)據(jù)相當(dāng)稀疏, 由此產(chǎn)生的評分向量并不能準(zhǔn)確的計算用戶之間的相似性. 由此協(xié)同過濾的推薦質(zhì)量大大下降.
協(xié)同過濾中矩陣稀疏性問題一直是人們研究的重點, 在眾多解決方法中, 最為簡單的辦法就是為用戶未評分的項目設(shè)定一個固定的缺省值, 一般將缺少的評分設(shè)定為整個評分范圍的中間值, 例如評分范圍為1~5分制時將評分設(shè)定為3分. 這種改進(jìn)措施在一定程度上可以提高協(xié)同過濾的推薦準(zhǔn)確度但是添加的缺省值并不能準(zhǔn)確的表示實際評分情況, 所以此方法不能從根本上解決稀疏性帶來的問題. 目前很多學(xué)者也提出了可以有效解決協(xié)同過濾稀疏性的方法, 比較成功的主要有大類: 一種是通過數(shù)學(xué)原理降低矩陣的稀疏性, 通過奇異值分解技術(shù)平滑輸入矩陣, 降低矩陣的維數(shù)從而降低矩陣的稀疏性. 但是分解技術(shù)算法時間復(fù)雜度較高, 并且降低維數(shù)往往會導(dǎo)致評分矩陣中信息的丟失, 在評分極度稀疏的情況下, 效果并不理想. 另一種解決方法是通過融合推薦算法來解決協(xié)同過濾中矩陣稀疏性的問題, 在協(xié)同過濾的計算過程中加入內(nèi)容的預(yù)測等. 本文即選擇了混合算法的策略, 提出了結(jié)合屬性相似性的協(xié)同過濾中的項目相似性的混合推薦算法.
2.1 評分矩陣
推薦系統(tǒng)包含M個用戶和N個項目, 它們形成了一個 M×N的矩陣列表, 此列表即為用戶-項目評分矩陣, 矩陣中的值R表示用戶對項目的評分, 其中評分的值設(shè)置為0-5之間的整數(shù), 如果R=0則表示用戶沒有對項目評分, 評分值越高表示用戶對項目喜愛程度越高.
2.2 相似度的計算方法
協(xié)同過濾算法中, 傳統(tǒng)的3種相似性度量方法分別為余弦相似性, 相關(guān)相似性和修正余弦相似性[8]. 本文采用修正余弦相似性計算方法. 在評分矩陣中, 每一個項目或者用戶都對應(yīng)一個有評分構(gòu)成的評分向量, 所以在基于用戶的協(xié)同過濾算法中, 用戶U---和用戶U的相似性計算公式如下所示:
表示用戶U---和U共同評分集合,表示平均評分.
和用戶的相似性計算類似, 在基于項目的協(xié)同過濾算法中, 項目V和V的相似性計算如下所示:
3.1 內(nèi)容預(yù)測的原理
基于內(nèi)容的推薦算法來源于信息檢索領(lǐng)域, 其基本原理根據(jù)項目的屬性特征構(gòu)建項目的屬性特征文件, 然后通過項目的特征屬性文件與用戶的興趣愛好進(jìn)行相似性匹配, 將用戶感興趣的項目推薦給用戶. 內(nèi)容過濾的推薦技術(shù)僅僅考慮項目的屬性特征并不需要考慮到用戶的評價行為, 因此內(nèi)容的預(yù)測不會受到用戶評分稀疏性的影響. 在此基礎(chǔ)上本節(jié)對協(xié)同過濾中加入項目屬性特征相似性進(jìn)行了研究.
3.2 項目屬性相似性的計算
在協(xié)同過濾推薦算法中, 由于相似性是根據(jù)評分矩陣計算, 然而一些項目沒有足夠的評價, 所以由稀疏矩陣產(chǎn)生的評分向量并不能有效的計算項目之間的相似性[9]. 但是一般的協(xié)同過濾推薦系統(tǒng)會有對項目的簡單描述, 比如在廣播節(jié)目有欄目, 話題, 微博等類別屬性, 而欄目又具有生活, 醫(yī)療, 娛樂, 音樂, 交通等屬性. 這些欄目的屬性, 可以看成是有關(guān)項目的關(guān)鍵詞, 這樣, 每個項目Itemi就可以由關(guān)鍵詞來描述, 如下:
Itemi={A1, A2, …, An}
則通過分析項目信息就可以得到項目-屬性矩陣; 假設(shè)Item個數(shù)為n, 屬性的個數(shù)是k, 則項目-屬性矩陣如表1所示.
表1 項目-屬性表
其中, 1表示項目擁有屬性, 0表示沒有此屬性.
其中項目C和C表示項目V和項目V的屬性向量,表示結(jié)果向量中1的個數(shù).
3.3 綜合相似性的計算
協(xié)同過濾的推薦效果一般要優(yōu)于內(nèi)容過濾[9], 因此, 在推薦過程中主要還是依賴協(xié)同過濾, 但是由于在評分矩陣極端稀疏的情況下, 對兩個項目進(jìn)行評分的用戶集合可能很小. 如果只有一兩個用戶對項目共同評分, 即使算出的相似度較高其可信度也是較低的. 所以, 在基于項目的協(xié)同過濾中, 根據(jù)評分計算項目相似性的同時加入屬性的相似性, 將兩種相似行進(jìn)行線性組合, 最終得到項目的綜合相似性.
在協(xié)同過濾算法中, 基于項目的基本原理是根據(jù)所有用戶對項目的偏好, 發(fā)現(xiàn)項目和項目之間的相似度, 即假設(shè)能夠引起使用者興趣的物品, 必定與其之前偏好的物品相似, 通過計算物品間的相關(guān)來做推薦[10]. 其原理如圖1所示.
如圖所示, 物品a同時被用戶a和用戶b喜歡, 物品c也同時被用戶a和用戶b喜歡, 因此可以認(rèn)為物品a和物品c具有相似性, 同時用戶c喜歡物品a, 所以可以將與物品a具有相似性的物品c推薦給用戶.
根據(jù)上述原理, 通過評分矩陣提取出兩個項目的評分向量, 則通過基于項目的相似性計算公式即公式(2)可以得到兩個項目之間的相似性.
圖1 協(xié)同過濾原理圖
為了提高質(zhì)量, 本文將兩種相似性進(jìn)行線性組合, 引入權(quán)值變量λ, 由于基于評分的相似性與兩個項目的共同評分用戶的數(shù)量有關(guān), 共同評分用戶越多相似性越準(zhǔn)確, 所以權(quán)值變量λ的計算公式如下:
(5)
如公式所示, λ和兩個項目的共同評分用戶數(shù)目息息相關(guān), 如果兩個項目的共同評分用戶數(shù)目越多, 則基于評分的項目相似性所占的比重越大, 從而使相似度計算更加準(zhǔn)確.
通過分析公式(5)可知, 如果存在冷啟動項目, 即沒有用戶進(jìn)行評價, 則λ的值為0, 此時可以根據(jù)項目本身的相似性計算得到其相似項目集合來預(yù)測評分. 如果存在評分矩陣極度稀疏的情況, 同樣λ的值會相應(yīng)的減小, 根據(jù)評分計算的相似性比重也較少, 所以可以減少稀疏性對于相似性計算的影響, 由此可知, 綜合相似性的計算可以在一定程度上解決推薦算法中的矩陣稀疏性問題.
3.4 綜合評分的預(yù)測
由上述可知, 由綜合相似性得到的評分P僅僅是根據(jù)項目之間的相似性計算而來, 而忽略了用戶之間的相似性對于推薦算法的影響, 因此, 在得到項目之間的相似性的同時, 本文引入?yún)f(xié)同過濾中基于用戶的相似性計算. 在協(xié)同過濾中, 與計算項目相似性類似, 通過評分矩陣可以得到每個用戶的評分向量, 則通過公式(1)可以得到用戶之間的相似性, 由次引入基于用戶的協(xié)同過濾預(yù)測評分, 其計算公式如下:
(7)
在得到根據(jù)項目相似性計算的預(yù)測評分P和根據(jù)用戶之間的相似性計算的預(yù)測評分P之后, 通過權(quán)值因子將兩個評分線性組合, 通過實驗來確定的值, 最終得到綜合預(yù)測評分來進(jìn)行推薦. 其組合公式如下:
其中為權(quán)重因子,∈[0,1].
3.5 推薦過程
為了解決協(xié)同過濾中冷啟動和稀疏性的問題, 本文引入了基于項目本身屬性相似性的計算, 將項目屬性相似和基于項目的協(xié)同過濾相似性線性結(jié)合, 然后將混合預(yù)測評分與基于用戶的協(xié)同過濾評分動態(tài)結(jié)合, 最終的到綜合預(yù)測評分. 其推薦過程如圖2所示.
推薦過程描述如下:
Step1: 根據(jù)公式(3)計算項目之間基于屬性的相似度.
Step2: 根據(jù)公式(2)計算項目之間基于評分的相似度.
Step3: 根據(jù)公式(5)計算項目之間的綜合相似度:.
Step4: 根據(jù)公式(6)計算基于項目綜合相似性的預(yù)測評分P.
Step5: 根據(jù)公式(7)計算基于用戶相似性的預(yù)測評分PU.
Step6: 根據(jù)公式(8)計算最終綜合預(yù)測評分P.
Step7: 根據(jù)綜合評分P對項目進(jìn)行降序排序, 將集合的top—k推薦給用戶.
4.1 實驗數(shù)據(jù)
本文采用本實驗室統(tǒng)計的用戶與欄目交互的實際數(shù)據(jù), 用戶與欄目的互動行為包含收藏, 點贊, 評論, 閱讀, 和收聽五個行為, 根據(jù)用戶的行為為欄目打分, 其中收藏2分, 點贊, 評論分別1分, 閱讀收聽分別0.5分由此可得到用戶和欄目的評分矩陣. 根據(jù)實驗室得到的數(shù)據(jù)經(jīng)過處理可以得到1000個用戶對97個欄目10000條評分記錄, 評分范圍為1~5. 數(shù)值越高表示用戶對欄目的偏愛程度越高, 本文將數(shù)據(jù)集按照80%的訓(xùn)練集和20%的測試集劃分. 同時每部欄目都有其所屬的類別, 本文將欄目分成以下類別: 生活, 醫(yī)療, 音樂, 交通, 新聞, 教育, 談話, 服務(wù), 戲劇, 綜藝. 然后將這10種類別作為欄目的屬性, 用于獲得欄目的屬性相似度.
4.2 度量標(biāo)準(zhǔn)
推薦系統(tǒng)常用的度量標(biāo)準(zhǔn)有平均絕對偏差MAE和均方根誤差RMSE. 本文采用平均絕對偏差MAE作為度量標(biāo)準(zhǔn), MAE用于度量推薦算法的估計評分與真實值之間的差異. MAE值越小, 估計的準(zhǔn)確性越高,定義如下:
其中P-為用戶對項目的預(yù)測評分,r為用戶對項目的真是實際評分,為測試集中記錄評分的個數(shù).
4.3 實驗結(jié)果
實驗一: 確定權(quán)重因子.
取項目和用戶的最近鄰居數(shù)目都為30做實驗, 通過改變權(quán)重因子值觀測MAE的變化. 其中的值以0.1為步長從0.2變化到0.8. 混合推薦算法的平均絕對誤差MAE如圖3所示.
圖3 實驗一結(jié)果
從圖3可以看出, 當(dāng)α的值取值太大或太小推薦效果并不是最好, 當(dāng)α=0.6時MAE的值最小, 意味著推薦質(zhì)量最好. 因此取α=0.6進(jìn)行實驗二, 來確定最近鄰居數(shù)并比較兩種算法的優(yōu)劣.
實驗二: 比較混合算法與協(xié)同過濾的優(yōu)劣.
由實驗一確定α后, 通過改變最近鄰居數(shù)目來觀察MAE值的變化, 同時與基于用戶的協(xié)同過濾作推薦結(jié)果比較如圖4所示.
圖4 實驗二結(jié)果
從圖4可以看出, 當(dāng)最近鄰居數(shù)目為50的時候推薦效果比較好, 而且通過兩個曲線比較可以看出, 混合算法的MAE相對于協(xié)同過濾算法有明顯的減小, 所以改進(jìn)的推薦混合推薦算法具有比較好的準(zhǔn)確性和比較好的推薦效果.
實驗三: 稀疏性比較
在通過實驗一和實驗二確定了α和最近鄰居的數(shù)目后, 此實驗通過改變評分矩陣的稀疏性來比較協(xié)同過濾和混合算法的優(yōu)劣. 由實驗室的數(shù)據(jù)可以計算的當(dāng)前數(shù)據(jù)集合的稀疏等級為1-10000/(97*1000)=0.89. 為此通過刪除評分?jǐn)?shù)據(jù)來增加矩陣的稀疏等級, 刪除的策略為優(yōu)先刪除參與評分用戶數(shù)目較少的項目的數(shù)據(jù), 即優(yōu)先刪除冷門欄目, 由此矩陣的評分更加稀疏. 分別選擇稀疏程度在0.89, 0.92, 0.95, 0.98數(shù)據(jù)集合進(jìn)行試驗結(jié)果如圖5.
圖5 稀疏性比較
由實驗結(jié)果可知, 傳統(tǒng)的協(xié)同過濾在矩陣稀疏的情況下推薦質(zhì)量會大大的減少, 而本文提出的混合推薦算法, 雖然隨著矩陣的稀疏增加推薦準(zhǔn)確度也有所下降, 但是相對于協(xié)同過濾算法具有明顯的優(yōu)勢. 因此混合推薦算法在降低了矩陣稀疏對于推薦結(jié)果的影響.
本文對傳統(tǒng)推薦算法進(jìn)行了優(yōu)化, 增加權(quán)值因子來組合項目屬性相似性和協(xié)同過濾的相似性, 得到的相似性度量方法使得計算的項目的最近鄰居更加準(zhǔn)確. 實驗結(jié)果表明, 本文提出的算法顯著提高了協(xié)同過濾推薦算法的推薦質(zhì)量, 并且可以有效解決評分矩陣稀疏性的問題. 實驗不足之處是在解決用戶冷啟動問題上, 計算精度還有待提高, 需要進(jìn)一步的深入研究.
1 冷亞軍,陸青,梁昌勇.協(xié)同過濾推薦技術(shù)綜述.模式識別與人工智能,2014,8:720–734.
2 楊博,趙鵬飛.推薦算法綜述.山西大學(xué)學(xué)報(自然科學(xué)版),2011,3:337–350.
3 劉青文.基于協(xié)同過濾的推薦算法研究[博士學(xué)位論文].合肥:中國科學(xué)技術(shù)大學(xué),2013.
4 孔維梁.協(xié)同過濾推薦系統(tǒng)關(guān)鍵問題研究[博士學(xué)位論文].武漢:華中師范大學(xué),2013.
5 Peng H. Research of collaborative filtering recommendation algorithm based on network structure. Journal of Networks, 2013: 810.
6 Gong S. A collaborative filtering recommendation algorithm based on user clustering and item clustering. Journal of Software, 2010, 5(7): 745–752.
7 張馳,陳剛,王慧敏.基于混合推薦技術(shù)的推薦模型.計算機工程,2010,22:248–250,253.
8 張旭陽.基于權(quán)重的混合推薦策略研究[碩士學(xué)位論文].昆明:云南大學(xué),2015.
9 張騰季.個性化混合推薦算法的研究[碩士學(xué)位論文].杭州:浙江大學(xué),2013.
10 高虎明,趙鳳躍.一種融合協(xié)同過濾和內(nèi)容過濾的混合推薦方法.現(xiàn)代圖書情報技術(shù),2015,6:20–26.
Hybrid Recommendation Algorithm Combined with the Project Properties
YU Bo1, CHEN Geng-Wu1,2, WANG Ai-Ling1,2, LIN Chuan1,2
1(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)2( University of Chinese Academy of Sciences, Beijing 100049, China)
Traditional collaborative filtering recommendation algorithm only bases on matrix. Due to the sparsity of matrix, the quality of recommendation is not high. This paper proposes a hybrid recommendation algorithm whose similarity is combined with the properties of projects. This algorithm improves the data sparseness in collaborative filtering through the change of the weighted factor, controlling the proportion of two kinds of similarity that one is the similarity of attribute between projects and the other is the similarity of item-based collaborative filtering algorithm. And the comprehensive prediction score and user-based collaborative filtering prediction score are combined to improve the quality of recommendation. Finally, the recommendation is given according to the comprehensive scores. Experiments show that the algorithm has better recommendation quality.
collaborative filtering; hybrid algorithm; comprehensive similarity; sparse matrix; project properties
2016-04-06;收到修改稿時間:2016-04-27
[10.15888/j.cnki.csa.005490]