陳佳煒,黃麗婷,林 耿
(閩江學(xué)院 數(shù)學(xué)與數(shù)據(jù)科學(xué)學(xué)院,福建 福州 350108)
通信作者:林耿(1981—),男,福建莆田人,教授,博士,主要研究方向?yàn)閮?yōu)化理論與算法、智能計(jì)算等,E-mail:lingeng413@163.com。
隨著互聯(lián)網(wǎng)的快速發(fā)展,海量的信息涌現(xiàn)在用戶面前,在電視節(jié)目推薦問題上,雖然滿足了用戶對(duì)電視節(jié)目的基本需要,但用戶需要花費(fèi)大量時(shí)間來獲取自己感興趣的電視節(jié)目,這就是信息超載。目前,大多數(shù)用戶需要使用關(guān)鍵詞來搜索自己感興趣的節(jié)目,但由于關(guān)鍵詞并不能完全展現(xiàn)節(jié)目的信息,所以不能滿足用戶對(duì)于節(jié)目多元化和個(gè)性化的需求。
許多基于個(gè)性化信息的推薦策略已經(jīng)被應(yīng)用于各種推薦系統(tǒng)[1]。在電視節(jié)目推薦方面,Yu等[2]使用統(tǒng)計(jì)方法,Ehrmantraut等[3-4]提出了單級(jí)聯(lián)聚類算法,Zhang等[5]設(shè)計(jì)了一種模糊興趣系統(tǒng)算法,Ardissono等[6]提出了Bayes網(wǎng)絡(luò)算法。以上這些方法已經(jīng)被應(yīng)用到很多領(lǐng)域。2012年,Choi等[7]提出了一種基于類型的相關(guān)改進(jìn)方法,并使用GroupLens電影數(shù)據(jù)庫進(jìn)行了仿真實(shí)驗(yàn)。2016年,Wei等[8]利用社會(huì)標(biāo)簽和評(píng)分提出了一種電影推薦方法。這些方法并沒有考慮物品的多屬性問題和用戶多偏好問題,然而這兩點(diǎn)對(duì)于推薦準(zhǔn)確度來說起著至關(guān)重要的作用。
以用戶行為數(shù)據(jù)和電視節(jié)目的推薦策略為研究對(duì)象,本研究提出了一種個(gè)性化推薦方法。以家庭為基本單位,數(shù)字電視中產(chǎn)生的記錄反映了一個(gè)家庭的收視特征,而家庭中每個(gè)成員的偏好存在較大的差異,所以對(duì)記錄進(jìn)行統(tǒng)一處理對(duì)于推薦節(jié)目來說是不準(zhǔn)確的。因此,在算法中加入對(duì)物品屬性和用戶偏好因素的綜合考量,能夠更加準(zhǔn)確地進(jìn)行節(jié)目推薦。
協(xié)同過濾的主要思想是利用之前的大眾行為,預(yù)測(cè)當(dāng)前目標(biāo)用戶對(duì)于物品的偏好程度。算法通過對(duì)用戶歷史行為數(shù)據(jù)的挖掘發(fā)現(xiàn)用戶的偏好,基于不同的偏好對(duì)用戶進(jìn)行群組劃分并推薦類型相似的商品。協(xié)同過濾推薦算法分為兩類,分別是基于用戶的協(xié)同過濾算法[9]和基于物品的協(xié)同過濾算法[10]。
基于用戶的協(xié)同過濾算法是通過用戶的歷史行為數(shù)據(jù)發(fā)現(xiàn)用戶對(duì)商品或內(nèi)容的喜好程度,并且對(duì)喜好程度進(jìn)行打分,再根據(jù)不同用戶對(duì)相同商品的態(tài)度和偏好程度計(jì)算用戶之間的相關(guān)度,然后在相關(guān)度高的用戶之間進(jìn)行相互推薦。
假設(shè)矩陣R=(riα)m×n表示用戶和節(jié)目之間的關(guān)系,若用戶ui(i=1,2,…,m)已看過節(jié)目oα(α=1,2,…,n),則riα=1,否則riα=0。因此,通過矩陣R之間的關(guān)系,可以計(jì)算出用戶ui和用戶uj之間的相似值Sim(ui,uj),可表示為
(1)
根據(jù)式(1)計(jì)算給用戶uj推薦的節(jié)目oα的推薦指數(shù),可表示為
(2)
基于物品的協(xié)同過濾算法不是根據(jù)用戶對(duì)于物品內(nèi)容的喜好程度計(jì)算物品之間的相似度,而是通過分析用戶的行為記錄來計(jì)算用戶的相似度。該算法認(rèn)為物品A和物品B相似的依據(jù)是因?yàn)橄矚g物品A的用戶也喜歡物品B。
利用矩陣R計(jì)算節(jié)目oα和節(jié)目oβ之間的相似性,計(jì)算公式為
(3)
根據(jù)式(3),計(jì)算為用戶uj推薦節(jié)目的推薦指數(shù)為
(4)
在上述協(xié)同過濾算法中,可增加考慮物品屬性和家庭用戶偏好來提高推薦結(jié)果的準(zhǔn)確性。依照家庭用戶行為數(shù)據(jù)對(duì)物品屬性和家庭用戶偏好進(jìn)行推薦,在計(jì)算相似度時(shí),需要懲罰兩個(gè)影響因子——物品屬性和用戶偏好,生成兼顧家庭用戶偏好和物品屬性的多樣化候選推薦列表,在對(duì)推薦列表進(jìn)行多樣化處理的同時(shí)可滿足家庭中不同成員的個(gè)性化需求。
基于物品屬性的推薦是基于物品的多種屬性來計(jì)算物品之間的相似度。不同物品包含多種不同屬性,例如適用人群、欄目內(nèi)容、播放時(shí)間、劇場(chǎng)等。
針對(duì)電視頻道,可將觀看人群按年齡和性別分為兒童、中青年、老年或男性、女性等,不妨設(shè)有s種,分別用c1,c2,…,cs表示,可用鄰接矩陣G=(gαγ)n×s表示節(jié)目和適用人群之間的關(guān)系。若電視節(jié)目oα屬于類型cγ(γ=1,2,…,s),則gαγ=1,否則gαγ=0??傻?/p>
(5)
針對(duì)電視頻道,可根據(jù)欄目內(nèi)容分為戲劇、動(dòng)畫、美食等,不妨設(shè)有p種,即e1,e2,…,ep,矩陣H=(hαζ)n×p可表示兩者之間的關(guān)系。若eζ(ζ=1,2,…,p)是節(jié)目oα的播放時(shí)間段,hαζ=1,否則hαζ=0??傻?/p>
(6)
針對(duì)電視節(jié)目,可根據(jù)劇場(chǎng)分為都市、情感、古裝、動(dòng)作等,不妨設(shè)有k種,分別用d1,d2,…,dk表示,可用鄰接矩陣B=(bαη)n×k表示節(jié)目和劇場(chǎng)之間的關(guān)系。若電視節(jié)目oα屬于類型dη(η=1,2,…,K),則bαη=1,否則bαη=0。可得
(7)
類似地,也可以推出電視節(jié)目和播放時(shí)間之間的關(guān)系。不妨設(shè)有q種播放時(shí)間段,分別用α1,α2,…,αq表示,則矩陣V=(vαω)n×q可表示兩者之間的關(guān)系。若αω(ω=1,2,…,q)是節(jié)目oα的播放時(shí)間段,則vαω=1,否則vαω=0??傻?/p>
(8)
基于屬性將任意兩個(gè)節(jié)目之間的相似度定義為
Sim(oα,oβ)=Simc(oα,oβ)+Simd(oα,oβ)+Sime(oα,oβ)+Simα(oα,oβ)。
為了更好地進(jìn)行對(duì)比,對(duì)Sim(oα,oβ)進(jìn)行歸一化,得到
(9)
式中:Xmax和Xmin分別是歸一化數(shù)據(jù)集中的最大值和最小值。
因此,基于物品屬性計(jì)算為用戶ui推薦未看節(jié)目oα的推薦指數(shù)為
(10)
基于已有方法進(jìn)行推薦時(shí),利用矩陣R可獲取用戶觀看過的節(jié)目,而節(jié)目的類型、喜好程度等信息則不可獲取。
用戶在一段時(shí)間內(nèi)觀看節(jié)目的頻率越高,則認(rèn)為該用戶對(duì)此類節(jié)目的偏好越大,頻度公式為
F(p)=c/C,
(11)
式中:c為觀看節(jié)目p的時(shí)間;C為一段時(shí)間的和。
訪問時(shí)間是決定用戶偏好的一個(gè)重要指標(biāo),訪問時(shí)間的長短和節(jié)目所包含的信息緊密相關(guān),例如導(dǎo)演、出品人、主要演員等。不妨設(shè)節(jié)目p包含的信息為si(i=1,2,…,n)、觀看時(shí)長為ti(i=1,2,…,n),則觀看時(shí)間的公式為
(12)
式中:βi是節(jié)目p中包含的信息量;α為節(jié)目p的觀看時(shí)間。
觀看時(shí)間和節(jié)目p中包含的信息量決定用戶對(duì)于節(jié)目的喜好程度:
W(p)=ω·F(p)+(1-ω)·T(p),
(13)
式中:ω為0~1,是調(diào)節(jié)參數(shù)。根據(jù)用戶的喜好程度W(p)進(jìn)行節(jié)目推薦。
混合推薦是推薦算法中的一個(gè)研究熱點(diǎn)。各種推薦算法都有各自的優(yōu)缺點(diǎn),而混合推薦是將多種技術(shù)進(jìn)行混合并相互彌補(bǔ)缺點(diǎn),以達(dá)到揚(yáng)長避短的目的,從而產(chǎn)生更加符合用戶需求的推薦。根據(jù)應(yīng)用狀況的不同,混合推薦的方法也不盡相同。本研究采用推薦結(jié)果組合的混合推薦方法,得到基于物品屬性的推薦列表和基于用戶偏好的推薦列表,將兩張列表的推薦結(jié)果混合得到最終的推薦列表,以最終推薦列表的前N項(xiàng)作為最終推薦結(jié)果。
為了驗(yàn)證前面提出的對(duì)于協(xié)同過濾算法改善方法的有效性,收集了用戶機(jī)頂盒3個(gè)月的幾十萬條觀看數(shù)據(jù)為實(shí)驗(yàn)數(shù)據(jù),由于此數(shù)據(jù)集過大,故僅選用了2 000個(gè)用戶的收視數(shù)據(jù)進(jìn)行分析。刪除數(shù)據(jù)中特殊線路數(shù)據(jù)等干擾信息,以9∶1的比例將數(shù)據(jù)隨機(jī)劃分成兩部分,分別為訓(xùn)練集和測(cè)試集。
通過深層挖掘用戶行為數(shù)據(jù)中的隱性特征,對(duì)用戶瀏覽過的節(jié)目進(jìn)行學(xué)習(xí)和建模,發(fā)現(xiàn)其中包含的特征,并在此基礎(chǔ)上形成多維度的用戶畫像。
因?yàn)槭占挠脩粜袨閿?shù)據(jù)不是以個(gè)人為單位,而是以家庭為基本單位,所以首先將數(shù)據(jù)以年齡和性別進(jìn)行分類,如兒童、中青年、老年、男性、女性等,然后按照物品屬性進(jìn)行分類,如體育、財(cái)經(jīng)、生活等,還可以按照用戶觀看時(shí)間段進(jìn)行分類,如凌晨、早晨、上午等,最后將用戶與用戶標(biāo)簽庫進(jìn)行配對(duì),給符合條件的用戶貼上該類型節(jié)目的標(biāo)簽。
從推薦對(duì)象中選擇與用戶交互項(xiàng)目相似的對(duì)象作為推薦結(jié)果,改進(jìn)的算法基于用戶的收視偏好,從觀看時(shí)間長短與節(jié)目的多屬性這兩個(gè)維度進(jìn)行推薦。
對(duì)節(jié)目數(shù)據(jù)分類并得到相對(duì)應(yīng)的標(biāo)簽,大致可分為兩類:一類是針對(duì)劇場(chǎng)愛好,通過爬蟲技術(shù)獲取節(jié)目列表在網(wǎng)絡(luò)上所屬的熱門分類,如都市、情感等;另一類是針對(duì)體育愛好,根據(jù)比賽內(nèi)容可分成足球、冰上運(yùn)動(dòng)、高爾夫等。
采用準(zhǔn)確率(precision)[12]和召回率(recall)[13]對(duì)推薦效果進(jìn)行評(píng)估。推薦準(zhǔn)確率取決于推薦正確與錯(cuò)誤的數(shù)量,以下為準(zhǔn)確率計(jì)算公式:
(14)
式中:precision為準(zhǔn)確率;TP為被模型預(yù)測(cè)為正的正樣本;FP為被模型預(yù)測(cè)為正的負(fù)樣本。準(zhǔn)確率越高,推薦質(zhì)量就越高。
召回率同樣可以作為驗(yàn)證推薦正確性的指標(biāo),召回率計(jì)算公式如下:
(15)
式中:recall為召回率;TP為被模型預(yù)測(cè)為正的正樣本;FN為被模型預(yù)測(cè)為負(fù)的正樣本。
使用改進(jìn)的協(xié)同過濾算法在數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并與傳統(tǒng)推薦算法的計(jì)算結(jié)果進(jìn)行對(duì)比,用準(zhǔn)確率和召回率作為評(píng)估標(biāo)準(zhǔn)。
根據(jù)準(zhǔn)確率方程,分別得到了傳統(tǒng)的協(xié)同過濾推薦算法和改進(jìn)后的推薦算法的準(zhǔn)確率。圖1給出了準(zhǔn)確率隨召回率升高的變化趨勢(shì)。結(jié)果發(fā)現(xiàn):在相同的召回率下,改進(jìn)后的推薦算法較傳統(tǒng)的協(xié)同過濾推薦算法準(zhǔn)確率高,證明改進(jìn)的算法效果較好。
根據(jù)圖1還可知,在相同的準(zhǔn)確率下,改進(jìn)后的推薦算法召回率高于傳統(tǒng)的協(xié)同過濾推薦算法,隨著準(zhǔn)確率的降低,召回率呈現(xiàn)上升的趨勢(shì),證明改進(jìn)后的推薦算法推薦效果得以改善,且推薦的準(zhǔn)確性得到了提高,推薦更具個(gè)性化和多元化。
圖2是改進(jìn)后的推薦算法和傳統(tǒng)的協(xié)同過濾推薦算法的ROC曲線圖[14],推薦值N分別取3、5、10、15、20、30。
從圖2可以看出,改進(jìn)后的推薦算法曲線較傳統(tǒng)的協(xié)同過濾推薦算法曲線更接近圖的右上角,即改進(jìn)后的算法AUC值(ROC曲線所覆蓋的區(qū)域面積)比傳統(tǒng)的推薦算法的AUC值大,說明改進(jìn)后的推薦算法的推薦準(zhǔn)確性提高了。
圖1 準(zhǔn)確率隨著召回率的變化Fig.1 Accuracy rate changes image with the change of recall rate
圖2 ROC曲線Fig.2 ROC curve
為了給用戶提供更好的推薦,對(duì)用戶觀看節(jié)目的物品多屬性和用戶多偏好進(jìn)行了量化和計(jì)算,進(jìn)而對(duì)物品屬性和用戶偏好進(jìn)行相似度分析,構(gòu)建了用戶畫像,從而得到兩種改進(jìn)方法的推薦結(jié)果列表。將兩個(gè)列表進(jìn)行混合推薦,使推薦效果得到了進(jìn)一步改善。