◆王玉林 馬 欣 柴爭(zhēng)義
(天津工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院 天津 300387)
基于免疫優(yōu)化算法的電影個(gè)性化推薦
◆王玉林 馬 欣 柴爭(zhēng)義
(天津工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與軟件學(xué)院 天津 300387)
本文針對(duì)傳統(tǒng)電影推薦系統(tǒng)中缺乏新穎性的問(wèn)題,提出一種基于免疫優(yōu)化算法的求解方法。該算法將準(zhǔn)確性和新穎性作為兩個(gè)目標(biāo)函數(shù),通過(guò)免疫優(yōu)化算法的原理,設(shè)計(jì)了個(gè)體編碼、交叉算子以及變異算子。仿真實(shí)驗(yàn)結(jié)果表明,免疫優(yōu)化算法能夠有效地求得最佳解決方案,為用戶提供準(zhǔn)確性和新穎性都較高的電影推薦列表。
免疫算法;個(gè)性化推薦;電影
隨著信息技術(shù)和互聯(lián)網(wǎng)的迅速發(fā)展,影視資源正逐漸從匱乏的年代走進(jìn)了過(guò)載的時(shí)代。目前,無(wú)論是觀影用戶還是電影系統(tǒng)都遇到了前所未有的挑戰(zhàn)。用戶為了尋找自己喜歡的電影資源,常常需要頻繁地從海量電影中進(jìn)行篩選,不僅浪費(fèi)時(shí)間,還找不到感興趣的電影資源,大大降低了用戶的觀看興趣;而對(duì)于電影系統(tǒng),讓電影資源能夠高效地滿足不同品位的用戶,提高電影資源的利用率,也較為困難[1]。因此,一個(gè)高效的電影個(gè)性化推薦系統(tǒng)就顯得十分重要。
通常情況下,傳統(tǒng)的電影推薦系統(tǒng)主要是向用戶推薦某一類(lèi)電影,使得推薦準(zhǔn)確性提升。但是,容易使得推薦的電影十分相似,出現(xiàn)“千篇一律”的感覺(jué),缺乏新穎性,已經(jīng)不能滿足用戶的需求。因此,必須得考慮新穎性指標(biāo),才能滿足用戶的需求。
電影個(gè)性化推薦系統(tǒng)是通過(guò)采集并了解用戶的觀看行為興趣偏好以及評(píng)分記錄,最終為每一位觀影用戶提供有針對(duì)性的“量身定做”式的電影推薦列表。
在電影個(gè)性化的推薦系統(tǒng)中,把準(zhǔn)確性和新穎性作為兩個(gè)目標(biāo)函數(shù)進(jìn)行優(yōu)化,此多目標(biāo)優(yōu)化問(wèn)題是一個(gè)NP問(wèn)題,更適合用智能化的方法來(lái)求解。本文采用免疫優(yōu)化算法對(duì)電影個(gè)性化推薦問(wèn)題進(jìn)行求解,向觀影用戶提供一組既準(zhǔn)確又新穎、令人滿意的電影推薦列表。
2.1 免疫優(yōu)化算法
免疫優(yōu)化算法是一種智能化的算法,它是通過(guò)模擬人類(lèi)免疫系統(tǒng)清除異己,保持健康狀態(tài)的原理而產(chǎn)生的。在求解過(guò)程中,把問(wèn)題看作為異己的抗原,把要求的解看作為抗體,通過(guò)發(fā)生免疫反應(yīng),得到最佳的解決方案。免疫優(yōu)化算法具有無(wú)組織自發(fā)性、特異性高以及魯棒性強(qiáng)的優(yōu)點(diǎn)。在全局搜索和局部搜索方面表現(xiàn)十分突出。在尋優(yōu)問(wèn)題、安全監(jiān)測(cè)、資源分配等眾多領(lǐng)域有著十分卓越表現(xiàn)和相當(dāng)大的潛力。
2.2 兩個(gè)目標(biāo)函數(shù)
在電影個(gè)性推薦系統(tǒng)中,把準(zhǔn)確性和新穎性建模成兩個(gè)目標(biāo)函數(shù)最大化的問(wèn)題。準(zhǔn)確性作為一個(gè)目標(biāo)函數(shù),能夠衡量出用戶的興趣偏愛(ài)以及個(gè)人品位,電影的推薦準(zhǔn)確性越高,說(shuō)明推薦越接近用戶的喜好,越能滿足用戶的觀影需求。
新穎性在很大程度上為用戶提供一種全新的感受,觀影的用戶大多數(shù)沒(méi)有太明確的目標(biāo),新穎性越高表示推薦的種類(lèi)越豐富,越能為用戶發(fā)現(xiàn)新的喜好。
2.3 關(guān)鍵技術(shù)
在電影個(gè)性化推薦系統(tǒng)中,個(gè)體編碼方式是一個(gè)比較關(guān)鍵的技術(shù)。根據(jù)觀影用戶和電影存在多對(duì)多的關(guān)系,免疫優(yōu)化算法的一個(gè)抗體對(duì)應(yīng)的是電影個(gè)性化推薦系統(tǒng)中一條推薦列表,一條推薦列表包含n個(gè)推薦電影項(xiàng)目;多條推薦列表組成一個(gè)集合,表示為不同的用戶提供不同的推薦,就相當(dāng)于多個(gè)抗體組成一個(gè)抗體種群。
在算法中有兩個(gè)重要的算子:交叉算子和變異算子。這兩個(gè)算子都是為了讓算法的性能更加優(yōu)秀。在交叉和變異中應(yīng)該遵循的原則是:完全相同項(xiàng)目的電影項(xiàng)目不能在一個(gè)電影推薦列表中列表中多次出現(xiàn)。
交叉發(fā)生在兩兩個(gè)體之間,兩個(gè)個(gè)體都相同的項(xiàng)目保持不動(dòng);不同的項(xiàng)目執(zhí)行交叉操作,按照交叉概率確定新的位置。變異算子發(fā)生在單個(gè)個(gè)體中,目的是增加種群的新穎性,使得種群不致于陷入局部最優(yōu)。
2.4 算法過(guò)程
電影個(gè)性化推薦中,為多個(gè)用戶提供不同的電影推薦列表,是通過(guò)抗體種群發(fā)生多次迭代,進(jìn)而產(chǎn)生得到折中最優(yōu)解。免疫優(yōu)化算法的具體步驟如下:
步驟1:隨機(jī)地產(chǎn)生初始抗體種群A。設(shè)置實(shí)驗(yàn)的終止條件。
步驟2:親和度函數(shù)計(jì)算,對(duì)抗體種群A中的抗體進(jìn)行親和度計(jì)算。
步驟3:對(duì)抗體種群A實(shí)施交叉、變異操作,得到新的抗體種群B。
步驟4:對(duì)抗體種群B實(shí)施免疫選擇,從中選中top-N個(gè)優(yōu)秀的抗體,得到新的抗體種群,作為下一代候選種群A。
步驟5:判斷終止條件。當(dāng)滿足終止條件時(shí),輸出最佳方案;否則進(jìn)入步驟2。
為了驗(yàn)證基于免疫優(yōu)化算法的電影個(gè)性化推薦系統(tǒng)的效果。本文采用GroupLens Research項(xiàng)目收集的Movielens數(shù)據(jù)集,在實(shí)驗(yàn)中對(duì)參數(shù)進(jìn)行了設(shè)置,其中最大迭代數(shù)gmax為500,推薦列表長(zhǎng)度為10,種群大小N為50,交叉概率為0.8,變異概率為0.1。然后通過(guò)運(yùn)行實(shí)驗(yàn),取不同的方案的準(zhǔn)確性與新穎性的值如表1所示。
表1 推薦算法的準(zhǔn)確性與新穎性值
從表1中可以清楚地看出,不同的解決方案的準(zhǔn)確性和新穎性是不同的,準(zhǔn)確性較高的推薦新穎性相對(duì)較低,反之同理。因此,在之間可以找到折中的解,可以為用戶提供準(zhǔn)確性和新穎性都較高的電影推薦列表。
本文利用免疫優(yōu)化算法對(duì)電影個(gè)性化推薦系統(tǒng)中的準(zhǔn)確性和新穎性進(jìn)行了優(yōu)化。通過(guò)仿真實(shí)驗(yàn),結(jié)果表明了算法能夠很好的電影的推薦最佳方案。隨著用戶和電影資源的不斷增加,個(gè)性化推薦系統(tǒng)也將面臨一些新的挑戰(zhàn),這是下一步繼續(xù)研究的內(nèi)容。
[1]項(xiàng)亮.推薦系統(tǒng)實(shí)踐[M].北京:人民郵電出版社,2012.
[2]F Ricci,L Rokach,B Shapira,PB Kantor Recommend-er systems handbook[M].Springer,2011.
[3]孟祥武,劉樹(shù)林,張玉潔,胡勛.社會(huì)化推薦系統(tǒng)研究[J].軟件學(xué)報(bào),2015.