湯 偉
(1.中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所,上海201210;2.上??萍即髮W(xué)信息科學(xué)與技術(shù)學(xué)院,上海201210;3.中國科學(xué)院大學(xué)北京101407)
陪伴著“互聯(lián)網(wǎng)+”技術(shù)的急速普及,視頻業(yè)務(wù)也呈現(xiàn)急劇增長(zhǎng)的趨勢(shì)。用戶對(duì)視頻內(nèi)容需求也呈現(xiàn)多元化趨勢(shì),視頻推薦技術(shù)的重要性也更加突出。它可以根據(jù)用戶的興趣和行為向目標(biāo)用戶推薦個(gè)人感興趣的視頻信息,滿足用戶對(duì)視頻的個(gè)性化和多元化需求,減少用戶選擇困難的煩惱[1]。
然而,視頻推薦系統(tǒng)也存在著諸多問題,其中最常見的莫過于推薦系統(tǒng)中由于無相關(guān)數(shù)據(jù)而導(dǎo)致的推薦冷啟動(dòng)問題以及用戶數(shù)據(jù)過于稀疏導(dǎo)致推薦準(zhǔn)確度低的問題[2]。本文針對(duì)推薦系統(tǒng)內(nèi)部存在的冷啟動(dòng)及推薦準(zhǔn)確度低的問題,提出基于Web挖掘的視頻推薦系統(tǒng)方式和改進(jìn)相似度計(jì)算方法,不僅能夠達(dá)到緩解推薦系統(tǒng)內(nèi)部冷啟動(dòng)問題的效果,而且也提高了視頻推薦精確度,從而給用戶帶來更舒適的體驗(yàn)質(zhì)量,給視頻提供商帶來更有前景的金融效益[2-3]。
Web數(shù)據(jù)挖掘是將傳統(tǒng)的數(shù)據(jù)采集技術(shù)和Web開發(fā)有效的結(jié)合起來,從Web文檔及Web網(wǎng)頁中進(jìn)行瀏覽相關(guān)數(shù)據(jù)中探索未知的、隱藏的、具有潛在效益的一種數(shù)據(jù)搜集的過程。這是數(shù)據(jù)挖掘技術(shù)在Web中的一種運(yùn)用[4]。Web挖掘?qū)Ρ扰c于傳統(tǒng)數(shù)據(jù)采集的特征只要展現(xiàn)在Web數(shù)據(jù)源具有很強(qiáng)的動(dòng)態(tài)性、豐富性、多樣性以及目標(biāo)用戶的模糊性、自身的不斷改進(jìn)與完善等等。根據(jù)Web數(shù)據(jù)類型差異,Web挖掘相關(guān)研究可以分成:Web日志挖掘,Web結(jié)構(gòu)挖掘、Web內(nèi)容挖掘。Web數(shù)據(jù)挖掘的主要流水線步驟可以分成Web數(shù)據(jù)的捕獲階段、Web數(shù)據(jù)預(yù)處理階段、模式分析階段三個(gè)主要過程。此外,Web數(shù)據(jù)挖掘技術(shù)也在眾多領(lǐng)域得到廣泛運(yùn)用,例如:電子商務(wù)、生物信息處理、工業(yè)控制以及政府部分等[5]。本文提出的基于Web挖掘的個(gè)性化視頻推薦系統(tǒng),其實(shí)質(zhì)是一種構(gòu)建數(shù)學(xué)模型來建立目標(biāo)用戶興趣模型,計(jì)算目標(biāo)用戶與近鄰用戶之間的相似程度,對(duì)目標(biāo)用戶舉薦列表中的視頻,從而使用戶具有更加舒適的視頻體驗(yàn)質(zhì)量。
文章中在傳統(tǒng)協(xié)同過濾算法根基上引入Web數(shù)據(jù)挖掘技術(shù),該算法首先通過采集用戶點(diǎn)擊行為、搜索記錄、評(píng)分記錄等信息,建立目標(biāo)用戶興趣模型,然后結(jié)合基于內(nèi)容和協(xié)同過濾算法形成一種同構(gòu)化的混合推薦方法,改進(jìn)推薦算法中相似度計(jì)算方式,來給目標(biāo)用戶舉薦個(gè)性化的視頻列表電影內(nèi)容[6-7]。系統(tǒng)總體設(shè)計(jì)流程如圖1所示。
圖1 視頻推薦方式總體設(shè)計(jì)流程工藝圖
具體而言,文章中采用的基于Web挖掘的視頻推薦算法首先是將數(shù)據(jù)轉(zhuǎn)化為“用戶-視頻”效用矩陣,其中效用矩陣主要采集用戶的行為信息和注冊(cè)信息,其行為信息包含用戶對(duì)視頻點(diǎn)贊行為、用戶評(píng)分,用戶搜索視頻行為等,利用目標(biāo)用戶的量化效用矩陣,通過采取分類回歸算法來創(chuàng)建“個(gè)性化的視頻興趣模型”,然后根據(jù)“用戶-視頻”的關(guān)聯(lián)性計(jì)算出目標(biāo)用戶的相似鄰居集,由于在進(jìn)行近鄰集篩選中,考慮到數(shù)據(jù)過于稀疏而導(dǎo)致的維度過高,會(huì)對(duì)數(shù)據(jù)集采用主成分分析(Principal Component Analysis,PCA)來進(jìn)行降維處理,提取用戶的主要特征模型。最后,計(jì)算近鄰用戶集與視頻項(xiàng)目之間的關(guān)聯(lián)性,從而對(duì)目標(biāo)用戶與視頻之間的量化牽連性做出舉薦,由此就可以給目標(biāo)用戶建立topN的視頻舉薦列表。這樣的推薦電影方式不僅可以緩解新用戶無歷史數(shù)據(jù)帶來的推薦冷啟動(dòng)問題,排除傳統(tǒng)推薦系統(tǒng)中由于用戶信息少而帶來的稀疏性問題,也可以提高用戶的視頻體驗(yàn)質(zhì)量[8]。
用 CART(Classification and Regression Tree)算法建立用戶興趣模型。CART算法也是決策樹算法的一種,它既可以用于分類也可以用于回歸。其算法主要圍繞決策樹生成和決策樹剪枝兩個(gè)過程進(jìn)行開展的。
CART分類樹選擇基尼指數(shù)來劃分最有價(jià)值的特點(diǎn)。CART分類樹生成的算法如下:
輸入:訓(xùn)練數(shù)據(jù)集D和計(jì)算的終止條件。
輸出:CART決策樹。
算法步驟:
1)對(duì)每個(gè)特征A,以及它可能的每個(gè)值a,計(jì)算基尼指數(shù),如公式(1)。
2)選取最優(yōu)性狀和最優(yōu)的切分點(diǎn):在所有性狀A(yù)以及所有切分點(diǎn)a中選取最小的基尼指數(shù)作為最優(yōu)特征和最優(yōu)特征的劃分點(diǎn)。其中,基尼指數(shù)越小說明運(yùn)用該屬性進(jìn)行劃分?jǐn)?shù)據(jù)集的純度越高。
3)對(duì)下一個(gè)子節(jié)點(diǎn)遞歸調(diào)用上面的步驟,直到滿足輸入的終止條件為止。
4)最終生成CART決策樹。
CART剪枝是從生成樹開始剪掉一些枝葉,使得決策樹變小。剪枝過程主要是由兩步組成(假設(shè)初始的生成樹為T0):
1)從T0起始不斷地剪枝,直到剪成一顆顆單節(jié)點(diǎn)的子樹。這些剪枝會(huì)逐漸形成一個(gè)個(gè)剪枝樹序列{T0,T1,…,Tn};
2)從這個(gè)剪枝序列中挑選出最優(yōu)剪枝樹。挑選措施是使用交叉驗(yàn)證法采用驗(yàn)證數(shù)據(jù)集對(duì)剪枝樹序列進(jìn)行測(cè)試。
在如今大數(shù)據(jù)和移動(dòng)互聯(lián)網(wǎng)普及的背景下,視頻網(wǎng)站的用戶和視頻數(shù)量日益增加,然而大多數(shù)用戶僅僅只對(duì)其中很少一部分的視頻項(xiàng)目進(jìn)行評(píng)分,致使已有的用戶-視頻評(píng)分的效用矩陣十分稀疏,例如就本實(shí)驗(yàn)中的MovieLens-100k數(shù)據(jù)集而言,用戶已評(píng)分的項(xiàng)目記錄僅約占總數(shù)據(jù)的6.3%,因此如果采用傳統(tǒng)的協(xié)同過濾算法來計(jì)算用戶之間的相似性計(jì)算會(huì)導(dǎo)致較大的實(shí)驗(yàn)誤差,最終會(huì)致使推薦精確度不高,用戶體驗(yàn)差的后果[9]。
在實(shí)際的模型構(gòu)建中,因?yàn)閿?shù)據(jù)量的龐大導(dǎo)致數(shù)據(jù)過于稀疏的問題,本文利用主成分分析(PCA)的降維技術(shù)來處理數(shù)據(jù)。這樣能夠在保存大部分?jǐn)?shù)據(jù)的情況下,減少數(shù)據(jù)維度。此外,由于數(shù)據(jù)的過于稀疏,僅僅利用一種推薦方法得到的結(jié)果會(huì)很難用戶滿意。例如:協(xié)同過濾可以通過計(jì)算用戶與用戶之間的相似程度來獲得推薦,但是它卻疏忽了項(xiàng)目和用戶自身所具有的特性,并且還存在冷啟動(dòng)的弊端?;趦?nèi)容的推薦盡管力所能及解決協(xié)同過濾中的弊端,可是它在提取視頻的內(nèi)容特征上有困難。在這樣條件中,將兩種算法融合形成基于內(nèi)容-協(xié)同過濾的同構(gòu)化混合推薦算法很必要。不但能夠互相彌補(bǔ)各自的弊端,并且也可以使視頻推薦系統(tǒng)具備更高的精確度和效率。此外,在相似度計(jì)算上僅僅利用采用傳統(tǒng)的Pearson或者Jaccard等相似度計(jì)算方法直接計(jì)算會(huì)帶來較大的數(shù)據(jù)誤差[10]。鑒于此,本文借助PCA算法和加權(quán)皮爾遜相似度計(jì)算方式提出一種為PCABsaedCBFCF的算法來做基于內(nèi)容和協(xié)同過濾的混合推薦。
改進(jìn)傳統(tǒng)的相似度計(jì)算方法,例如采用Pearson相似度計(jì)算方式留有一定程度的不足,例如,在對(duì)相同的經(jīng)典電影《戰(zhàn)狼》,兩個(gè)用戶都給與相當(dāng)高的評(píng)分,這樣帶來的信息肯定不如兩個(gè)用戶對(duì)其他電影評(píng)價(jià)不同分帶來的信息更有價(jià)值。結(jié)合文本文檔檢索中的TF-IDF技術(shù)[11],文中提出了一種基于反文檔頻率加權(quán)計(jì)算模式。反文檔頻率的意思是指對(duì)于那些常見的詞語對(duì)于區(qū)分文檔沒有太大作用,應(yīng)該給那些僅出現(xiàn)在某些文檔中具有代表性的詞更高權(quán)重。結(jié)合視頻推薦而言,如果一部電影被大多數(shù)用戶給與相同的評(píng)分,那么這個(gè)電影在區(qū)分用戶之間的相似度的時(shí)候占據(jù)的權(quán)重會(huì)降低一些。計(jì)算公式如(2)
其中,ui表示評(píng)價(jià)過視頻i的用戶數(shù),u表示用戶總體數(shù)量。改進(jìn)后的Pearson相似度計(jì)算公式如(3)
其中,用戶u和用戶v都評(píng)價(jià)過的視頻項(xiàng)目的集合,用戶v和用戶u評(píng)分相應(yīng)的平均值分別為和。rui和rvi分別代表用戶u和v對(duì)項(xiàng)目i的評(píng)分。λi的表示第i個(gè)視頻所占的權(quán)重。盡管改善了傳統(tǒng)的相似度計(jì)算方式,但是僅僅利用一種相似度的計(jì)算方式還是無法準(zhǔn)確的反映用戶之間的關(guān)系。因此,我們綜合思量了多種相似度的方式,選擇了Jaccard相似度計(jì)算方式,因?yàn)镴accard相似度可以較好的反映用戶和項(xiàng)目之間的關(guān)系。最終我們?cè)谟?jì)算用戶與用戶之間相似度采用了如公式(4)
其中,α作為權(quán)重因子可以用來調(diào)整Pearson相似度和Jaccard相似度各自自身所占的權(quán)重。其中,α是在不斷的變化和調(diào)節(jié)。公式(4)中的Jaccard相似度計(jì)算方式如公式(5)表示:
其中,J(A,B)體現(xiàn)兩個(gè)集合A和B的交集元素在A、B的并集中占用的比例。最后PCABsaed CBFCF的算法表示:
輸入:用戶項(xiàng)目評(píng)分效用矩陣U,測(cè)試數(shù)據(jù)集Utest,近鄰數(shù)量 K-Neighbor,權(quán)重因子α
輸出:測(cè)試集上的MAE。
1)每個(gè)用戶自身數(shù)據(jù)值減去用戶的均值來填充原始數(shù)據(jù)集中缺失的值;
2)進(jìn)行PCA分解;
3)計(jì)算用戶間的Perason相似度;
4)計(jì)算用戶間的Jaccard相似度;
5)利用公式(3)來計(jì)算改進(jìn)的相似度;
6)根據(jù)近鄰數(shù)量K-Neighbours計(jì)算測(cè)試集上的預(yù)測(cè)評(píng)分;
7)計(jì)算測(cè)試集上的MAE;
在本試驗(yàn)中為了證實(shí)推薦算法效用性,采取MovieLens-100k數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)。在實(shí)驗(yàn)結(jié)果中,如圖2是在不同相似度在不同近鄰數(shù)下的MAE值的曲線差異圖,在試驗(yàn)中選擇了余弦相似度、Jaccard相似度和本文中采用的改進(jìn)相似度計(jì)算法,即FrePearson相似度,從圖中可以看出采用FrePerson相似度算法在平均絕對(duì)誤差(MAE)上明顯優(yōu)勝于其他兩種計(jì)算方法,此外從圖中可以看出Jaccard相似度也優(yōu)勝于傳統(tǒng)的余弦相似度,也就是說FrePearson相似度計(jì)算方式優(yōu)勝于Jaccard相似度,同時(shí)Jaccard相似度也比傳統(tǒng)余弦相似度更優(yōu),這樣本文在融合了Jaccard和Pearson相似度各自具有的優(yōu)勢(shì),提高了推薦精確度。此外,從圖2中可以看出這3種相似度在不同的近鄰數(shù)下呈現(xiàn)很大的差異,并不是近鄰數(shù)越多越好,可能選擇的近鄰數(shù)目越多帶來一些數(shù)據(jù)過多冗余,比如有些用戶在打分的時(shí)候是很隨意的打分[12]。如果選擇的近鄰數(shù)目過多,也許會(huì)使目標(biāo)用戶相似度很低的用戶也會(huì)被選擇為鄰居集,從而帶來推薦精度降低的弊端,因而在實(shí)際中選擇合理的鄰居數(shù)目也是重要方面。
圖2 不同相似度在近鄰數(shù)下的MAE值
除了近鄰數(shù)目會(huì)影響推薦結(jié)果的精確度,權(quán)重因子也是一個(gè)重要的影響因子。
圖3是本文算法在不同的權(quán)重因子下MAE值變化情況。從圖3中可以看出不同權(quán)重因子下MAE值的變化,整體展現(xiàn)出先上升再下降然后再上升的趨向。其中,在α為0.2時(shí),MAE取值最大,說明此時(shí)的推薦精度最低,在α值為1時(shí),算法只用到了一種FrePearson相似度計(jì)算方法,在α為0時(shí),算法只用到Jaccard相似度計(jì)算方式,MAE的取值較大,從側(cè)面說明FrePearson的相似度計(jì)算方式優(yōu)勝于Jaccard計(jì)算方式。此外,在α從0到1變化的時(shí)候,F(xiàn)rePearson相似度計(jì)算方式所占比重會(huì)逐步加大,MAE的值也在呈現(xiàn)迅速下降到逐步上升的趨勢(shì)狀態(tài)。在α為0.4附近,MAE的值達(dá)到了最優(yōu)值(此時(shí)Jaccard相似度所占的權(quán)重更大)推薦精度也達(dá)到了最優(yōu)。因此,在實(shí)驗(yàn)中選擇合適的權(quán)重因子可以提高推薦精確度。
圖3 不同權(quán)重因子下的MAE值
圖4 是本文提出的PCABasedCBFCF算法,同經(jīng)典的協(xié)同過濾(Collaborative Filtering,CF)和基于內(nèi)容的推薦算法(Content-based Filtering,CBF)做性能上的差異分析,從圖4中看PCABasedCBF-CF算法在性能上優(yōu)勝于傳統(tǒng)的協(xié)同過濾算法和基于內(nèi)容的算法,整體降低了15%和6%。
在表格1中展示本文給出的算法在不同的近鄰數(shù)目下平絕絕對(duì)誤差(MAE)的對(duì)應(yīng)節(jié)點(diǎn)值變化。
圖4 不同近鄰數(shù)目差異算法的MAE值
表1 不同算法對(duì)于的MAE值
前面對(duì)基于Web挖掘的視頻推薦系統(tǒng)進(jìn)行了分析和設(shè)計(jì),并采用同構(gòu)化推薦算法和改進(jìn)相似度計(jì)算方法,提高了系統(tǒng)的推薦準(zhǔn)確率。下一步就是在設(shè)計(jì)基礎(chǔ)上搭建視頻推薦模型,確保推薦算法可以在本系統(tǒng)中的模塊可以平穩(wěn)地工作。整個(gè)系統(tǒng)環(huán)境搭建是建立在 Django、Bootstrap、HTML、MySQL的基礎(chǔ)上完成的[13-15]。
新用戶注冊(cè)時(shí),系統(tǒng)會(huì)需要注冊(cè)用戶輸入一個(gè)唯一的用戶名,同時(shí)用戶務(wù)必選擇喜歡的電影類型標(biāo)簽,也可以設(shè)置系統(tǒng)內(nèi)部沒有類型標(biāo)簽[16],標(biāo)簽的選擇可以彌補(bǔ)推薦系統(tǒng)冷啟動(dòng)帶來的不足,如圖5和圖6。
圖5 用戶登錄與注冊(cè)
用戶可以進(jìn)入界面搜索相應(yīng)的影片,或是評(píng)價(jià)電影、給電影打分。后臺(tái)會(huì)將目標(biāo)用戶的行為記錄到個(gè)人Web日志系統(tǒng),然后結(jié)合之前測(cè)試的推薦算法,進(jìn)行計(jì)算,產(chǎn)生個(gè)性化推薦列表,然后將推薦列表在前端頁面展示給目用戶,如圖7。
圖6 個(gè)性化標(biāo)簽
圖7 視頻推薦列表
這樣一個(gè)具有個(gè)性化視頻推薦系統(tǒng)和高效推薦算法融合的模型,就展現(xiàn)在觀眾面前,提高了視頻網(wǎng)站觀眾的忠實(shí)度和依賴度,也為推薦系統(tǒng)在電子商務(wù)系統(tǒng)中不斷前進(jìn)貢獻(xiàn)了自己的一份力量。
文中設(shè)計(jì)的個(gè)性化視頻推薦系統(tǒng)融合多種推薦算法,采用Web數(shù)據(jù)挖掘建立目標(biāo)用戶視頻個(gè)性化興趣模型,其次針對(duì)傳統(tǒng)協(xié)同過濾算法留存的數(shù)據(jù)稀疏性問題應(yīng)用基于PCA的混合推薦算法,并引入一種將Jaccard相似度和Pearson相似度加權(quán)結(jié)合的相似度計(jì)算方法,緩解了經(jīng)典相似度計(jì)算法因?yàn)閿?shù)據(jù)稀疏性帶來的誤差,同時(shí)提高了視頻推薦精度。最后利用Python Web技術(shù)搭建了電影推薦系統(tǒng)原型,測(cè)試并完成了一個(gè)為用戶定制的個(gè)性化視頻推薦系統(tǒng),緩解了解決推薦系統(tǒng)冷啟動(dòng)和推薦精確度低的問題,提高了視頻用戶的體驗(yàn)質(zhì)量。