周 迅,劉超慧,周克萍,韓傳福
(鄭州航空工業(yè)管理學(xué)院 智能工程學(xué)院,河南 鄭州 450046)
互聯(lián)網(wǎng)上的在線圖書(shū)資源正在以越來(lái)越快的速度增長(zhǎng)著,如何快速地幫助用戶找到所需的信息成了亟待解決的難題,即“信息過(guò)載”問(wèn)題[1]。信息檢索和信息過(guò)濾應(yīng)運(yùn)而生,其中協(xié)同過(guò)濾推薦算法可以在過(guò)濾大量信息的同時(shí)為用戶提供個(gè)性化的圖書(shū)資源推薦。
Goldberg等[2]在論文中第一次提出“協(xié)同過(guò)濾”概念,并開(kāi)發(fā)了以協(xié)同過(guò)濾為核心的郵件處理系統(tǒng) Tapestry,標(biāo)志著初代推薦系統(tǒng)的形成;1994年,Resnick[3]使用協(xié)同過(guò)濾算法進(jìn)行嘗試,并開(kāi)發(fā)了GroupLens系統(tǒng),解決了新聞過(guò)載的問(wèn)題;1997年,Resnick等[4]提出“推薦系統(tǒng)”設(shè)想;2003年,Greg等[5]提出了item-based模型的推薦算法,極大提高了推薦算法的推薦質(zhì)量。然而,目前協(xié)同過(guò)濾圖書(shū)推薦算法依舊面臨用戶興趣隨時(shí)間漂移、熱門圖書(shū)對(duì)挖掘用戶興趣的干擾以及冷啟動(dòng)等問(wèn)題。
針對(duì)上述問(wèn)題,朱白[6]引入時(shí)間評(píng)分權(quán)重計(jì)算相似度矩陣,緩解了目標(biāo)用戶隨著時(shí)間推移發(fā)生興趣偏移而導(dǎo)致推薦系統(tǒng)質(zhì)量下降的問(wèn)題。孫彥超等[7]使用興趣隨時(shí)間遷移函數(shù),改進(jìn)相似度計(jì)算公式,提高推薦精度。董楊帆[8]利用概率分布計(jì)算用戶所要圖書(shū)與其關(guān)鍵詞模型相符合的概率,建立概率關(guān)鍵詞模型,有效緩解了數(shù)據(jù)稀疏性問(wèn)題。安德智等[9]對(duì)圖書(shū)進(jìn)行聚類,構(gòu)建無(wú)缺失的圖書(shū)評(píng)價(jià)矩陣,在面對(duì)數(shù)據(jù)稀疏時(shí)也能有效地進(jìn)行推薦。上述文獻(xiàn)忽略熱門項(xiàng)目和用戶的評(píng)分習(xí)慣對(duì)推薦效果的影響。
針對(duì)傳統(tǒng)的協(xié)同過(guò)濾圖書(shū)推薦算法忽略熱門項(xiàng)目對(duì)用戶興趣的影響,以及用戶的評(píng)分習(xí)慣問(wèn)題切入研究。筆者通過(guò)改進(jìn)用戶的相似度以提高傳統(tǒng)圖書(shū)推薦算法的推薦質(zhì)量,提出了融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法;考慮到圖書(shū)的熱門程度,引入懲罰因子[10],降低熱門圖書(shū)的評(píng)分權(quán)重;根據(jù)用戶的評(píng)分習(xí)慣,引入用戶平均評(píng)分因子。
1.1.1 基于用戶的協(xié)同過(guò)濾算法
基于用戶的協(xié)同過(guò)濾算法(User-CF)依賴于用戶—項(xiàng)目評(píng)分矩陣,將用戶對(duì)不同項(xiàng)目的喜愛(ài)差異作為特征,通過(guò)相似度計(jì)算模型來(lái)計(jì)算用戶相似度。如果用戶們具有相似的項(xiàng)目喜愛(ài)偏好,即對(duì)不同項(xiàng)目的評(píng)分?jǐn)?shù)據(jù)相近,那么這些相似用戶就是目標(biāo)用戶的近鄰用戶。可以將近鄰用戶喜歡而目標(biāo)用戶未參與反饋的項(xiàng)目進(jìn)行預(yù)測(cè)評(píng)分排序,將排序靠前的Top-N項(xiàng)目推薦給目標(biāo)用戶。
1.1.2 基于項(xiàng)目的協(xié)同過(guò)濾算法
基于項(xiàng)目的協(xié)同過(guò)濾算法(Item-CF)計(jì)算的相似度是項(xiàng)目相似度。如果兩個(gè)項(xiàng)目的相似度較高,就可以向目標(biāo)用戶推薦其喜歡項(xiàng)目的類似項(xiàng)目,其中這個(gè)類似項(xiàng)目要求是目標(biāo)用戶尚未進(jìn)行評(píng)分。
基于用戶和項(xiàng)目的協(xié)同過(guò)濾算法,都是通過(guò)計(jì)算相似度求得Top-K近鄰集,在近鄰集上進(jìn)Top-N的評(píng)分預(yù)測(cè)和推薦。兩者的核心差異在于相似度計(jì)算上,基于用戶算法的相似度是將用戶對(duì)多個(gè)項(xiàng)目的評(píng)分作為特征,而基于項(xiàng)目算法的相似度是以多個(gè)用戶對(duì)項(xiàng)目的評(píng)分作為特征。
1.2.1 熱門圖書(shū)懲罰因子
冷門圖書(shū)更能代表用戶的喜愛(ài)偏好,表達(dá)用戶的相似性,且圖書(shū)越小眾,其對(duì)挖掘用戶的喜愛(ài)偏好貢獻(xiàn)越大[11]。故引入熱門圖書(shū)懲罰因子以削弱其對(duì)度量用戶相似度的影響,熱門圖書(shū)懲罰因子的計(jì)算公式如式(1)所示:
(1)
式中,N(i)表示圖書(shū)i出現(xiàn)的次數(shù)。
1.2.2 用戶平均評(píng)分因子
用戶平均評(píng)分因子通過(guò)用戶的平均評(píng)分來(lái)描述兩用戶的評(píng)分習(xí)慣,其計(jì)算公式如式(2)所示:
(2)
1.2.3 余弦相似度
余弦相似度cosine(x,y)通過(guò)計(jì)算兩個(gè)向量之間的夾角余弦值來(lái)度量:兩向量的夾角越小,表明用戶相似度越高,反之則相似度越低;夾角為 90°時(shí),余弦值為 0,兩用戶不相似;當(dāng)余弦值為負(fù)數(shù)時(shí),表明兩用戶興趣偏好相反。余弦相似度計(jì)算公式如式(3)所示:
(3)
式中:Ix為用戶x的圖書(shū)評(píng)分集;Iy為用戶y的圖書(shū)評(píng)分集;Rx,i為用戶x對(duì)圖書(shū)i的評(píng)分;Ry,i為用戶y對(duì)圖書(shū)i的評(píng)分。
1.2.4 組合KNN推薦算法
通過(guò)用戶相似度計(jì)算公式,便可計(jì)算目標(biāo)用戶與關(guān)聯(lián)用戶、集中用戶的相似度,將相似度按降序排列,選取Top-K用戶組成目標(biāo)用戶的近鄰集合Nu。得到目標(biāo)用戶u的Top-K近鄰集合Nu={u1,u2,…,uk}后,通過(guò)式(4)計(jì)算用戶u對(duì)圖書(shū)i的預(yù)測(cè)評(píng)分值:
(4)
本文針對(duì)傳統(tǒng)的協(xié)同過(guò)濾圖書(shū)推薦算法忽略熱門圖書(shū)對(duì)用戶興趣的影響,以及用戶的評(píng)分習(xí)慣問(wèn)題切入研究,提出了融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法。從熱門圖書(shū)和用戶評(píng)分習(xí)慣的維度出發(fā),引入熱門物品懲罰因子和用戶平均評(píng)分因子。
2.1.1 熱門圖書(shū)與用戶評(píng)分習(xí)慣
協(xié)同過(guò)濾算法依據(jù)用戶對(duì)不同圖書(shū)評(píng)分的差異,得到用戶的喜愛(ài)偏好,進(jìn)而得到用戶之間的相似度,忽略了某些圖書(shū)由于其過(guò)于熱門,會(huì)對(duì)挖掘用戶的喜愛(ài)偏好或計(jì)算用戶之間的相似度造成一定的不利影響。一些流行度高的圖書(shū),并不能很充分地代表用戶的喜愛(ài)偏好,也無(wú)法代表兩用戶是擁有共同喜好的,因此要降低這類圖書(shū)評(píng)分對(duì)度量用戶之間相似度的權(quán)重。此外每個(gè)人都有自己獨(dú)特的評(píng)分習(xí)慣,即使兩個(gè)人對(duì)同一物品給予了相同的評(píng)分,內(nèi)心也可能會(huì)是不同的喜愛(ài)程度。
冷門圖書(shū)更能代表用戶的喜愛(ài)偏好,表達(dá)用戶的相似性,且圖書(shū)越小眾,其對(duì)挖掘用戶的喜愛(ài)偏好貢獻(xiàn)越大。故引入熱門圖書(shū)懲罰因子以削弱其對(duì)度量用戶相似度的影響。由于余弦相似度本身并未對(duì)用戶去中心化,故引入用戶的平均評(píng)分因子進(jìn)行加權(quán)改進(jìn)。基于熱門圖書(shū)懲罰因子與用戶平均評(píng)分因子的余弦相似度計(jì)算方法如式(5)所示:
(5)
從式(5)可以看出,物品越大眾化,Punish(i)越小,該物品對(duì)度量用戶之間相似度的貢獻(xiàn)也就越小。
2.1.2 評(píng)分預(yù)測(cè)
使用相似度sim3計(jì)算用戶的Top-K近鄰集,并將sim3替換公式(4)的相似度sim,得到本文的評(píng)分預(yù)測(cè)公式如式(6)所示:
(6)
將近鄰集中用戶參與評(píng)分的圖書(shū),利用改進(jìn)后的評(píng)分預(yù)測(cè)公式進(jìn)行評(píng)分預(yù)測(cè),將圖書(shū)進(jìn)行降序排列,并將Top-K物品推薦給目標(biāo)用戶。
本文將熱門懲罰因子和用戶平均評(píng)分應(yīng)用于圖書(shū)推薦算法中,算法先計(jì)算用戶之間的相似度,選取該用戶的近鄰集,再據(jù)此得到推薦圖書(shū)。融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法(UA-CF)簡(jiǎn)要描述如算法1:
Algorithm1:UA-CF
1:Input:ui.base,ui.test,α,β,Top-K,Top-N
2:Output:MAE,Recall,Coverage,Precision
3:tainMatrix,tainTimeMatrix←ui.base,testMatrix←ui.test
本文提出的從用戶和推薦系統(tǒng)的角度出發(fā),為用戶提供更精準(zhǔn)的個(gè)性化推薦服務(wù),可增加用戶對(duì)推薦系統(tǒng)的依賴。融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法在余弦相似度的基礎(chǔ)上進(jìn)行改進(jìn):依據(jù)余弦相似度的特性,引入平均評(píng)分因子;根據(jù)熱門物品的特性,引入熱門物品懲罰因子。
利用由Cai-Nicolas Ziegler根據(jù)bookcrossing.com的數(shù)據(jù)編寫(xiě)的圖書(shū)評(píng)分?jǐn)?shù)據(jù)集Book-Crossing[12]進(jìn)行實(shí)驗(yàn)評(píng)測(cè),數(shù)據(jù)集中包含了278 858個(gè)讀者對(duì)271 379本書(shū)籍的1 149 780條評(píng)估數(shù)據(jù),評(píng)分范圍0~10,包括顯式和隱式的評(píng)分。本次實(shí)驗(yàn)以80%的數(shù)據(jù)作為訓(xùn)練集,剩余的20%作為測(cè)試集。
3.2.1 平均絕對(duì)誤差
平均絕對(duì)誤差 MAE(Mean Absolute Error,公式中記為MAE)將預(yù)測(cè)的評(píng)分值與目標(biāo)用戶實(shí)際對(duì)圖書(shū)評(píng)分之間的偏差當(dāng)作度量。算法的推薦質(zhì)量與 MAE大小成反比,MAE越小,推薦質(zhì)量越高,平均絕對(duì)誤差計(jì)算公式為:
(7)
式中:T為測(cè)試集;actx,i為實(shí)際評(píng)分;predictx,i為預(yù)測(cè)評(píng)分。
3.2.2 召回率
召回率(Recall,公式中記為Recall)描述用戶u在測(cè)試集中的反饋物品有多大的比例包含在最終的Top-N物品推薦列表中,Recall 描述的是用戶的行為數(shù)據(jù),Recall越大,說(shuō)明對(duì)用戶行為預(yù)測(cè)就越準(zhǔn)確。召回率計(jì)算公式為:
(8)
式中:R(u)為用戶u推薦的Top-N物品;T(u)為用戶u在測(cè)試集上有過(guò)反饋的物品集合。
3.2.3 覆蓋率
覆蓋率(Coverage,公式中記為Coverage)描述推薦系統(tǒng)挖掘長(zhǎng)尾物品的能力,在推薦項(xiàng)目對(duì)用戶有效的情況下,覆蓋率越大表明推薦的項(xiàng)目分布越均勻。覆蓋率計(jì)算公式為:
(9)
式中,n為數(shù)據(jù)集中物品的總數(shù)量。
3.3.1 平均絕對(duì)誤差
經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法與基于余弦相似度的協(xié)同過(guò)濾圖書(shū)推薦算法的MAE對(duì)比,如圖1所示。
圖1 傳統(tǒng)算法與UA-CF的MAE比較
由圖1可知,融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法MAE要低于傳統(tǒng)算法,提高了推薦精度。當(dāng)近鄰用戶為5時(shí)可降低1.5%,說(shuō)明改進(jìn)算法在一定程度上可以緩解系統(tǒng)冷啟動(dòng)問(wèn)題。
3.3.2 召回率
融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法與傳統(tǒng)算法的Recall 對(duì)比,如圖2所示。
圖2 傳統(tǒng)算法與UA-CF的Recall比較
由圖2可知,融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法的Recall要高于傳統(tǒng)算法, 融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法較傳統(tǒng)算法召回率平均提高5.4%,提高了推薦質(zhì)量。
3.3.3 覆蓋率
融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法與傳統(tǒng)算法的Coverage對(duì)比,如圖3所示。
圖3 傳統(tǒng)算法與UA-CF的Coverage比較
由圖3可知,融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法與傳統(tǒng)算法的覆蓋率有了略微的提升,融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法覆蓋率平均提高0.19%。
綜上所述,融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法相較于傳統(tǒng)算法,考慮了熱門物品對(duì)用戶興趣的影響、用戶的評(píng)分習(xí)慣以及用戶的興趣隨時(shí)間進(jìn)行遷移等諸多問(wèn)題,對(duì)用戶的相似度計(jì)算公式進(jìn)行相應(yīng)的改進(jìn),通過(guò)驗(yàn)證實(shí)驗(yàn),改進(jìn)算法相較于傳統(tǒng)算法召回率平均提高5.4%,在近鄰用戶較少時(shí),MAE降低1.5%,在一定程度上緩解了系統(tǒng)的冷啟動(dòng)問(wèn)題,提高了推薦精度與質(zhì)量,有效彌補(bǔ)了傳統(tǒng)算法的缺陷。
本文在基于余弦相似度的協(xié)同過(guò)濾圖書(shū)推薦算法基礎(chǔ)上,提出融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法,引入熱門物品懲罰因子和用戶平均評(píng)分因子,降低熱門物品的評(píng)分權(quán)重。在Book-Crossing數(shù)據(jù)集上,將融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法與基于余弦相似度的傳統(tǒng)算法進(jìn)行對(duì)比,改進(jìn)算法與傳統(tǒng)算法的覆蓋率基本持平,卻降低了傳統(tǒng)算法的平均絕對(duì)誤差,提高了傳統(tǒng)算法的召回率,在一定程度上緩解了傳統(tǒng)算法的冷啟動(dòng)問(wèn)題,提高了推薦質(zhì)量。本文提出的融合懲罰因子的協(xié)同過(guò)濾圖書(shū)推薦算法,雖然在一定程度上彌補(bǔ)了傳統(tǒng)算法的缺陷,提高了推薦質(zhì)量,但其自身仍存在局限性。例如相似度計(jì)算方法、算法效率等,所以在分析現(xiàn)有工作不足之處的基礎(chǔ)上,提出后續(xù)將重點(diǎn)關(guān)注的幾個(gè)方面:(1)在不降低推薦精度的前提下提高算法的覆蓋率,提高推薦物品的多樣性和用戶的驚喜度。(2)用戶的興趣不是恒古不變的,而是隨著自身年齡和閱歷的不斷增長(zhǎng)而發(fā)生變遷的[11]。(3)針對(duì)用戶自身的特征屬性(年齡、性別、職業(yè))進(jìn)行畫(huà)像分析,為用戶提供更好的個(gè)性化推薦服務(wù)。