王小青,蘇 鋒,蔡傳根
(1.東北大學(xué)秦皇島分校 管理學(xué)院,河北 秦皇島 066004;2.安徽理工大學(xué),安徽 淮南 232001)
近年來,隨著移動通信技術(shù)和無線網(wǎng)絡(luò)技術(shù)的發(fā)展,它們已經(jīng)滲透到人們生活的各個領(lǐng)域,移動通信已經(jīng)影響到了人們生活的各個方面[1]。在新媒體技術(shù)的影響下,人們將一些歷史題材改編成了電視、電影,影視數(shù)據(jù)的數(shù)量大幅度增加,隨著人們生活水平的不斷提高,對精神生活要求越來越高,而影視推薦網(wǎng)站層出不窮,人們要在短時間內(nèi)找到自己喜歡的影視作品十分困難,故出現(xiàn)了“影視過載”問題[2]。為了解決“影視過載”問題,出現(xiàn)了影視智能化推薦系統(tǒng),而影視推薦算法是最為核心的內(nèi)容[3?5]。
為了獲得理想的影視智能推薦效果,本文提出了基于數(shù)據(jù)挖掘技術(shù)的影視智能推薦算法,并與其他方法進(jìn)行影視推薦對比測試,結(jié)果表明,本文方法是一種精度高、速度快的影視智能推薦方法,相對其他方法,本文影視推薦方法具有十分明顯的優(yōu)越性。
針對影視推薦問題,國內(nèi)外學(xué)者進(jìn)行了大量深入的研究,當(dāng)前存在許多影視推薦系統(tǒng)[6]。一個影視推薦系統(tǒng)大致包括:用戶使用影視的歷史記錄、影視推薦算法、影視推薦結(jié)果的服務(wù)決策信息,其中影視推薦算法是核心,也是最為關(guān)鍵的部分。當(dāng)前推薦算法大致可以劃分為4類:基于協(xié)同過濾的影視推薦算法、基于內(nèi)容的影視推薦算法、基于關(guān)聯(lián)規(guī)則的影視推薦算法、基于知識的影視推薦算法[7]。其中,協(xié)同過濾的影視推薦算法是最早的算法,可以細(xì)化為基于內(nèi)存的影視推薦算法和基于模型的影視推薦算法,在實(shí)際中該類算法不關(guān)心用戶歷史行為記錄,因此存在冷啟動和稀疏性問題,同時,影視推薦時間長,無法進(jìn)行在線影視推薦[8?10]?;趦?nèi)容的影視推薦算法模擬信息檢索和過濾的過程,根據(jù)用戶的偏好和影視內(nèi)容之間的匹配度進(jìn)行影視推薦,該類算法的自學(xué)習(xí)能力差,無法發(fā)現(xiàn)潛在的用戶;基于關(guān)聯(lián)規(guī)則的影視推薦算法工作過程簡單,影視推薦實(shí)時性強(qiáng),但是存在冷啟動和稀疏性問題,同時一旦規(guī)則太多,那么影視推薦效率就比較低;基于知識的影視推薦算法是針對特定領(lǐng)域的影視制定推薦算法,因此通用性比較差[11?13]。
綜合當(dāng)前影視推薦算法的研究現(xiàn)狀可以發(fā)現(xiàn),每一種影視推薦算法或多或少存在一定的不足和局限性,因此影視推薦算法研究面臨巨大的挑戰(zhàn)[13?16]。
隨著計算機(jī)網(wǎng)絡(luò)的不斷發(fā)展,許多公司將一些影視數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上,使得影視數(shù)據(jù)急劇增加,當(dāng)前影視數(shù)據(jù)呈現(xiàn)大規(guī)模、海量特征,采用傳統(tǒng)單機(jī)平臺進(jìn)行影視推薦效率極低。本文首先采集大量的影視數(shù)據(jù),然后對影視數(shù)據(jù)進(jìn)行預(yù)處理,并將預(yù)處理的影視數(shù)據(jù)保存在云平臺的分布式文件系統(tǒng)中。
分布式文件系統(tǒng)具有速度快、處理能力強(qiáng)等優(yōu)點(diǎn),可以存儲海量的影視數(shù)據(jù)。一個分布式文件系統(tǒng)包括一個NameNode和多個DataNode,其中NameNode是主服務(wù)器,它可以接收用戶請求,并對文件進(jìn)行管理,而DataNode是多個計算機(jī),主要用來存儲數(shù)據(jù),分布式文件系統(tǒng)的基本結(jié)構(gòu)具體如圖1所示。
圖1 分布式文件系統(tǒng)的基本結(jié)構(gòu)
由于影視數(shù)據(jù)保存在分布式文件系統(tǒng)中,因此需要生成用戶對影視的評分?jǐn)?shù)據(jù)。用戶對影視的評分?jǐn)?shù)據(jù)由三部分組成:用戶編號(U_ID)、影視編號(M_ID)、用戶對影視的評分(Score),本文采用云計算技術(shù)中的Map/Reduce實(shí)現(xiàn),生成用戶向量和影視向量,其中用戶向量是一個用戶對所有影視的評分,影視向量是所有用戶對一個影視的評分。
2.2.1 用戶向量生成步驟
Step1:從分布式文件系統(tǒng)中讀取影視數(shù)據(jù),并計算用戶的影視評分。
Step2:通過Map將用戶對影視的評分分為兩部分:U_ID和M_ID、Score,其中,U_ID作為Map的key,M_ID、Score作為Map的value,它們組成
Step3:根據(jù)key進(jìn)行排序,將key相同的用戶的影視評分放在一起。
Step4:Reduce對相同用戶的影視評分?jǐn)?shù)據(jù)進(jìn)行整合,得到一個用戶對所有電影評分的集合。
Step5:構(gòu)建用戶?影視評分矩陣,并計算它們的平均值,從而產(chǎn)生用戶評分向量。
具體步驟如圖2所示。
圖2 用戶向量生成的過程
2.2.2 影視向量的生成步驟
Step1:將用戶評分向量作為Map的輸入,對用戶評分向量進(jìn)行分解,將M_ID作為key,將U_ID、Score作為Map的value,形成
Step2:根據(jù)key進(jìn)行排序,將key相同的用戶數(shù)據(jù)放在一起。
Step3:Reduce對用戶數(shù)據(jù)進(jìn)行整合,將得到的key作為M_ID,vU_ID、Score作為value,即為所有對影視評過分的用戶集合。
Step4:將生成的數(shù)據(jù)保存在分布式文件系統(tǒng)中。具體如圖3所示。
用戶對影視的評分主要通過興趣程度描述,假設(shè)有m個用戶,對n部影視進(jìn)行評價和打分,第i個用戶對第j部影視的評分分值為r ij,本文采用Movielens的5分制作為評分標(biāo)準(zhǔn),分值越高表示用戶對該部影視越感興趣,那么用戶?影視評分矩陣可以表示為:
圖3 影視向量生成過程
對于用戶?影視評分矩陣,根據(jù)用戶向量之間的距離估計用戶之間的相似度,用戶向量之間的距離越近,表示用戶的相似度越高,當(dāng)前相似度的計算方式主要有:
1)基于歐氏距離的相似度
2)基于余弦的相似度
3)基于皮爾遜相關(guān)系數(shù)的相似度
本文采用皮爾遜相關(guān)系數(shù)計算用戶相似度。
對于給定的訓(xùn)練樣本集,最近鄰算法根據(jù)樣本之間的距離找到最近的k個鄰居樣本,將k個鄰居頻率最高類別作為待識別類別。本文采用皮爾遜相關(guān)系數(shù)計算用戶的相似度,然后根據(jù)相似度值進(jìn)行排序,選擇前k個最近鄰“鄰居”生成目標(biāo)用戶的最近鄰用戶集合。
計算用戶預(yù)測評分,并根據(jù)用戶預(yù)測評分產(chǎn)生影視推薦結(jié)果,采用中心加權(quán)平均值的方法計算用戶u對未評分影視i的預(yù)測評分,具體如下:
為了測試基于數(shù)據(jù)挖掘技術(shù)的影視智能推薦算法的性能,采用影視推薦經(jīng)典數(shù)據(jù)集——Movielens數(shù)據(jù)集作為測試對象,從中選擇Movielens?100k進(jìn)行具體仿真實(shí)驗,選擇80%的數(shù)據(jù)作為訓(xùn)練樣本集合,20%的數(shù)據(jù)作為測試樣本集合,Movielens的三組不同規(guī)模的數(shù)據(jù)集具體如表1所示。
表1 影視智能推薦的數(shù)據(jù)集
影視智能推薦實(shí)驗平臺包括5個節(jié)點(diǎn)、1臺服務(wù)器、4臺普通計算機(jī),具體配置如表2所示,采用Java語言實(shí)現(xiàn)影視智能推薦算法。在相同條件下,選擇文獻(xiàn)[12?13]的影視智能推薦算法進(jìn)行對比實(shí)驗,選擇影視智能推薦精度和時間作為實(shí)驗結(jié)果的評價指標(biāo)。
表2 影視智能推薦的實(shí)驗環(huán)境
采用三種方法對訓(xùn)練樣本集合進(jìn)行學(xué)習(xí),建立影視智能推薦模型,然后對測試樣本集合進(jìn)行分析,統(tǒng)計每一種方法對每一個數(shù)據(jù)集的推薦精度,結(jié)果如圖4所示。從圖4可以看出,相對于文獻(xiàn)[12?13]的影視智能推薦算法,本文算法的影視智能推薦精度大幅度提升,減少了影視智能推薦誤差。
采用單機(jī)平臺的影視智能推薦算法進(jìn)行對比實(shí)驗,統(tǒng)計兩種方法的影視智能推薦時間,結(jié)果如圖5所示。從圖5可以發(fā)現(xiàn),相對于單機(jī)平臺,本文算法的影視智能推薦時間明顯減少,這是因為本文引入了大數(shù)據(jù)分析的云計算平臺,提高了影視智能推薦效率。
為了測試影視智能推薦算法的通用性,通過移動網(wǎng)絡(luò)采集大量的影視數(shù)據(jù),將它們劃分為100類,統(tǒng)計本文算法對100類影視的推薦精度,結(jié)果如圖6所示。從圖6可以看出,本文算法的平均影視智能推薦精度超過了95%,獲得了令人滿意的推薦結(jié)果,能夠適應(yīng)移動環(huán)境下的影視推薦應(yīng)用要求。
圖4 不同方法的影視智能推薦精度對比
圖6 本文算法對不同類型的影視智能推薦精度
影視智能推薦是當(dāng)前人工智能技術(shù)中的研究熱點(diǎn),針對傳統(tǒng)影視智能推薦算法存在的弊端,為了提高影視智能推薦的精度,本文提出基于數(shù)據(jù)挖掘技術(shù)的影視智能推薦算法。采用多個影視數(shù)據(jù)集合進(jìn)行仿真測試,結(jié)果表明,相對于其他影視智能推薦算法,本文方法獲得了較高精度的影視智能推薦結(jié)果,影視智能推薦效率得以改善,具有十分廣泛的應(yīng)用前景。