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