趙 宇 劉 鳳 舒巧媛 韋鵬程
(重慶第二師范學(xué)院數(shù)學(xué)與信息工程學(xué)院 重慶 400065)
自從電視誕生以來,觀看電視節(jié)目一直都是人類精神生活中的重要組成部分。如今,由于計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,人們越來越習(xí)慣于在互聯(lián)網(wǎng)平臺上觀看視頻節(jié)目,這也對傳統(tǒng)廣播電視運(yùn)營商帶來了沖擊。對于廣播電視運(yùn)營商而言,客戶的流失雖然為其帶來了許多挑戰(zhàn),但也帶來了新的機(jī)遇。現(xiàn)在,付費(fèi)頻道是廣播電視的主要業(yè)務(wù),也是收入的重要來源。如果廣播電視運(yùn)營商可以準(zhǔn)確地知道每個(gè)用戶的收視偏好,為其推薦相似的電視節(jié)目,從而挖掘潛在的付費(fèi)用戶,那么廣播電視的競爭力就能得到顯著提高。另一方面,大量數(shù)據(jù)的產(chǎn)生、推薦算法和數(shù)據(jù)挖掘等技術(shù)的發(fā)展,為廣播電視運(yùn)營商實(shí)現(xiàn)精準(zhǔn)推薦提供了技術(shù)支持。因此,研究個(gè)性化的電視節(jié)目推薦算法具有重要意義[1-4]。
目前廣泛使用的推薦系統(tǒng)都是通過搜集用戶的個(gè)人行為信息,然后使用基于用戶的推薦算法或者基于物品的推薦算法幫助用戶篩選出其可能感興趣的物品。Karabadji等[5]關(guān)注用戶特征搜索空間的增長,提出了一個(gè)基于多目標(biāo)優(yōu)化的推薦系統(tǒng)來提取用戶信息,使其與活躍用戶的相似性達(dá)到最大化,提升推薦準(zhǔn)確率。Liang等[6]提出了一種基于概率的算法,將用戶對物品的曝光程度直接融合到協(xié)同過濾中,并把此曝光程度建模為一個(gè)潛在變量,算法通過數(shù)據(jù)推斷此變量的值,以此來提升推薦結(jié)果的準(zhǔn)確度。為了解決推薦過程里的數(shù)據(jù)的稀疏性和高維度問題,Koohi等[7]通過使用基于子空間聚類的方法來進(jìn)行鄰居用戶查找,此算法在推薦時(shí)將數(shù)據(jù)劃分為三個(gè)不同的子集:感興趣集合、既不感興趣也不厭惡集合、厭惡集合,基于這三個(gè)集合,為被推薦用戶創(chuàng)建三個(gè)層次的鄰居樹,然后進(jìn)行推薦。Papneja等[8]提出了一種基于擴(kuò)展激活的上下文感知個(gè)性化內(nèi)容推薦算法,通過分析物品和用戶信息之間的關(guān)系,將有意義的物品推薦給用戶。Wan等[9]提出了一個(gè)同時(shí)建模顯示特征與隱式特征的推薦框架,將用戶對物品的一系列動(dòng)作抽象成單調(diào)行為鏈,用來描述物品的信息,從而按照物品的相似度為用戶進(jìn)行推薦。
以上這些研究在推薦系統(tǒng)領(lǐng)域都取得了令人滿意的推薦準(zhǔn)確率,然而這些研究在關(guān)注推薦準(zhǔn)確率的同時(shí),卻存在一個(gè)潛在的問題:忽略了推薦結(jié)果的驚喜度和推薦結(jié)果的相關(guān)性對于用戶體驗(yàn)的改善。一般而言,基于物品的推薦算法由于推薦的是相似物品,其推薦結(jié)果的驚喜程度比較低,而基于用戶的推薦算法由于是按照相似用戶進(jìn)行推薦,其推薦結(jié)果和目標(biāo)用戶的歷史偏好的相關(guān)性會降低,這兩點(diǎn)因素都會影響推薦系統(tǒng)的用戶轉(zhuǎn)化率[10]。為了解決這個(gè)問題,本文提出了一種基于馬爾可夫聚類和混合協(xié)同過濾的推薦算法MCL-HCF。首先,使用馬爾可夫聚類算法[11]對各個(gè)時(shí)間段內(nèi)的用戶進(jìn)行聚類,得到多個(gè)用戶群組,降低群組內(nèi)用戶和整個(gè)群組之間的偏好差異性,然后以群組為單位進(jìn)行推薦。在推薦階段,本文使用IUF(inverse user frequence)[12]和IIF(inverse item frequence)[13]參數(shù)來修正用戶相似度和物品相似度的計(jì)算。最后,加權(quán)融合兩種協(xié)同過濾算法的結(jié)果,解決推薦結(jié)果的驚喜度和相關(guān)性的矛盾問題。
MCL-HCF算法是結(jié)合了馬爾可夫聚類與混合協(xié)同過濾的推薦算法。首先,MCL-HCF利用馬爾可夫聚類算法找出在各個(gè)時(shí)間段內(nèi)具有相似偏好的用戶,然后將其看作一個(gè)群組,重新定義這個(gè)群組的觀看信息,最后再通過混合協(xié)同過濾算法來獲得最終的推薦結(jié)果,達(dá)到推薦驚喜度和相關(guān)性的平衡。
一般而言,一個(gè)家庭里多個(gè)成員的電視節(jié)目觀看模式為:單個(gè)家庭由多個(gè)家庭成員組成,在某一個(gè)時(shí)間段St,某些成員對節(jié)目Pi感興趣,那么,這些成員將在這個(gè)時(shí)間段構(gòu)成一個(gè)新的群組Ub。同理,在其他的時(shí)間段,同樣對應(yīng)著其他的群組,并且從聚類的結(jié)果來看,一個(gè)家庭里的不同成員可以被劃分到多個(gè)群組中。
如圖1所示,用戶1、用戶2和用戶3在時(shí)段1觀看了節(jié)目1,所以將他們歸為群組1;用戶1、用戶2在時(shí)段2觀看了節(jié)目2,那么將他們歸為群組2;用戶3、用戶4在時(shí)段3觀看了節(jié)目3,那么將他們歸為群組3。由此可以看出,同一個(gè)用戶在不同時(shí)段被劃分到不同的群組。

圖1 分時(shí)段用戶群組示例
本文使用馬爾可夫聚類算法來建立各個(gè)時(shí)間段內(nèi)的群組。馬爾可夫聚類算法基于圖進(jìn)行聚類,其通過多次擴(kuò)展和膨脹操作,使得最后聚族達(dá)到穩(wěn)定狀態(tài)。
1.1.1建立同一時(shí)段的鄰接矩陣
本文篩選出在同一時(shí)間段內(nèi)觀看節(jié)目的用戶,當(dāng)兩個(gè)用戶同時(shí)觀看了同一個(gè)節(jié)目時(shí),其鄰接矩陣對應(yīng)元素加上1。由此可建立如下所示的鄰接矩陣:

1.1.2消除奇偶性依賴
基于圖的馬爾可夫聚類算法的核心操作之一是擴(kuò)展操作。擴(kuò)展操作模擬了流對象在圖上的隨機(jī)游走行為。流對象在具有某些特定結(jié)構(gòu)的圖上執(zhí)行隨機(jī)游走時(shí),會產(chǎn)生奇偶性依賴效應(yīng)。為了解決擴(kuò)展操作所產(chǎn)生的這種問題,需要在對圖的狀態(tài)轉(zhuǎn)移矩陣進(jìn)行處理之前,為每個(gè)頂點(diǎn)增加自循環(huán),即矩陣對角線的值置為1,得到如下所示改進(jìn)的鄰接矩陣:

1.1.3標(biāo)準(zhǔn)化概率矩陣
利用改進(jìn)的鄰接矩陣,可以使用下式來計(jì)算得到概率矩陣:
(1)


1.1.4對概率矩陣進(jìn)行擴(kuò)展和膨脹交替操作
擴(kuò)展和膨脹的交替操作是聚類過程的核心內(nèi)容,首先執(zhí)行的是擴(kuò)展。如下式所示,擴(kuò)展操作是使概率矩陣自乘e次,讓流對象擴(kuò)展到圖的不同區(qū)域,其指數(shù)e的大小決定游走區(qū)域的大小。
P=Pe
(2)
然后,對概率矩陣P進(jìn)行膨脹操作,膨脹操作的作用是增強(qiáng)聚簇節(jié)點(diǎn)內(nèi)部的關(guān)聯(lián),弱化非聚簇節(jié)點(diǎn)之間的關(guān)聯(lián),即增大當(dāng)前大概率,減小當(dāng)前小概率。膨脹操作在作用于概率矩陣時(shí),其參數(shù)r將會決定這種作用的強(qiáng)度,進(jìn)而影響聚簇的粒度。其具體計(jì)算公式如下:
(3)
式中:ΓrP表示膨脹操作,pij∈P表示位于P的第i行、第j列的元素。
1.1.5聚類過程優(yōu)化
為減小算法的迭代次數(shù),加快馬爾可夫聚類過程,本文為其設(shè)置一個(gè)閾值θ。概率矩陣經(jīng)過擴(kuò)展膨脹操作后,遍歷所有pij,當(dāng)pij≤θ時(shí),令pij=0。這樣的操作可以有效地過濾掉矩陣內(nèi)部的噪聲并加快馬爾可夫聚類過程的收斂速度。對于θ和r的取值見2.1節(jié)的實(shí)驗(yàn)結(jié)果分析。
協(xié)同過濾推薦算法可以分為兩大類:基于物品的協(xié)同過濾算法ItemCF(item-based collaborative filtering)、基于用戶的協(xié)同過濾算法UserCF(user-based collaborative filtering)。在此基礎(chǔ)上,本文分別引入IUF參數(shù)和IIF參數(shù)來修正改進(jìn)兩種算法。
1.2.1基于物品的推薦
ItemCF-IUF算法的主要步驟如下:
Step1通過電視節(jié)目的歷史播放信息,建立電視節(jié)目的相似度矩陣。
Step2根據(jù)用戶的歷史觀看行為,為該用戶推薦與其觀看歷史相似的節(jié)目。
在進(jìn)行推薦之前,本文先對數(shù)據(jù)進(jìn)行預(yù)處理。
1) 數(shù)據(jù)預(yù)處理:
(1) 數(shù)據(jù)合并。將群組內(nèi)所有用戶的觀看記錄合并在一起,以便計(jì)算群組的偏好。以下涉及的用戶的各個(gè)指標(biāo)全部是以群組為單位進(jìn)行計(jì)算。
(2) 除噪。刪去觀看時(shí)間低于5分鐘的記錄。
(3) 分組。將每個(gè)時(shí)間段的用戶分組。本文共分為5個(gè)時(shí)間段,如表1所示。

表1 觀看時(shí)間段
(4) 評分計(jì)算。計(jì)算各個(gè)群組對每個(gè)節(jié)目的評分。由于一般的廣播電視很少會有評分系統(tǒng),所以,本文利用各個(gè)群組觀看每個(gè)節(jié)目的時(shí)長、次數(shù)、付費(fèi)金額經(jīng)過加權(quán)融合得到加權(quán)總頻率,并以此作為群組對節(jié)目評分的量化,得到評分矩陣D。其計(jì)算公式如下:
(4)
式中:Dij表示第i個(gè)群組對第j個(gè)節(jié)目的評分,a1、a2和a3分別表示觀看時(shí)長、次數(shù)和金額的權(quán)重,tij、fij和dij分別表示第i個(gè)群組觀看第j個(gè)節(jié)目的時(shí)長、次數(shù)和金額。在本文實(shí)驗(yàn)中,取a1=1,a2=1,a3=2。
2) 計(jì)算節(jié)目相似度矩陣。考慮到用戶活躍度對節(jié)目相似度的影響,即活躍的用戶相比不活躍的用戶,對節(jié)目之間相似度的貢獻(xiàn)更小。例如,一個(gè)喜歡多個(gè)節(jié)目的人,比一個(gè)只喜歡節(jié)目的人,對節(jié)目的相似度貢獻(xiàn)較小,所以本文加入了IUF參數(shù)來修正相似度的計(jì)算。其計(jì)算公式如下:
(5)
式中:KIUF表示IUF參數(shù),Nu表示用戶u喜歡的節(jié)目總數(shù),Nu越大表示該用戶的活躍度越高,其對節(jié)目相似度的貢獻(xiàn)越小。
所以,節(jié)目相似度矩陣的計(jì)算公式如下:
(6)
式中:Wij表示節(jié)目i與節(jié)目j的相似度,Ni表示喜歡節(jié)目i的用戶數(shù),Nj表示喜歡節(jié)目j的用戶數(shù)。
3) 節(jié)目相似度歸一化。為了提高推薦結(jié)果的準(zhǔn)確度,本文遵循Karypis的研究[14-15],將ItemCF-IUF的相似度矩陣按最大值歸一化。其計(jì)算公式如下:
(7)
4) 基于興趣度生成推薦列表。在評分矩陣D中,找到各個(gè)群組觀看歷史記錄里評分最高的節(jié)目,再按照與該節(jié)目興趣度的差異大小來進(jìn)行排序,生成其他節(jié)目的推薦列表,推薦給這一群組里的用戶。在ItemCF-IUF算法中,通過如下公式計(jì)算群組u對一個(gè)節(jié)目j的興趣度:
(8)

Iuj越大,表示此群組對這個(gè)節(jié)目的興趣度越高,因此可以將推薦列表里興趣度較高的前幾個(gè)節(jié)目推薦給群組里的用戶。
1.2.2基于用戶的推薦
UserCF-IIF算法的主要步驟如下:
Step1找到和目標(biāo)用戶興趣相似的用戶集合,即建立用戶相似度矩陣。
Step2在這個(gè)集合中查找目標(biāo)用戶沒有觀看過的節(jié)目推薦給目標(biāo)用戶。
1) 計(jì)算用戶相似度矩陣。節(jié)目受眾程度對用戶相似度的計(jì)算存在影響。受眾程度高的節(jié)目,相對于受眾程度低的節(jié)目而言,其對用戶相似度的貢獻(xiàn)更小。例如,一個(gè)受眾程度高的節(jié)目,兩個(gè)用戶都看過,但這并不能表明這兩個(gè)用戶興趣相似,反之,如果這兩個(gè)用戶都看過受眾程度很低的節(jié)目,那就可以認(rèn)為這兩個(gè)用戶興趣比較相似。為了解決上述問題,我們在相似度計(jì)算過程里引入IIF參數(shù),用于對熱門節(jié)目進(jìn)行一定的懲罰。IIF參數(shù)的計(jì)算公式如下:
(9)
式中:KIIF表示IIF參數(shù),Ni表示喜歡看i節(jié)目的群組個(gè)數(shù),Ni越大表示這個(gè)節(jié)目的受眾程度越高,其對用戶相似度的貢獻(xiàn)就越小。
結(jié)合式(9),可以得到如下的用戶相似度矩陣計(jì)算公式:
(10)
式中:Wuv表示用戶u與用戶v的相似度,Nu表示用戶u喜歡的節(jié)目集合,Nv表示用戶v喜歡的節(jié)目集合。
2) 用戶相似度歸一化。為了提高推薦準(zhǔn)確率,我們依然對用戶相似度進(jìn)行歸一化,其計(jì)算公式如下:
(11)
3) 生成推薦列表。通過馬爾可夫聚類,將聚在一類的用戶看作一個(gè)群組,對群組進(jìn)行推薦。在UserCF-IIF算法中,通過下式計(jì)算群組u對節(jié)目i的興趣度:
(12)

Iui越大,表示此群組對這個(gè)節(jié)目的興趣度越高,則可以將興趣度較高的前幾個(gè)節(jié)目推薦給此群組里的用戶。
1.2.3混合推薦
混合推薦方法是在考慮不同推薦方法的缺點(diǎn)的基礎(chǔ)上建立的。混合推薦方法的準(zhǔn)則是組合多種方法,發(fā)揮不同推薦方法的優(yōu)點(diǎn),消除各自的缺點(diǎn)。由于ItemCF-IUF給用戶推薦的是相似物品,所以其推薦的節(jié)目的驚喜度比較低。UserCF-IIF根據(jù)用戶相似度來推薦,其推薦驚喜度較高,但推薦結(jié)果的相關(guān)性較弱。
推薦節(jié)目的驚喜度可以這樣理解:用戶對某一類節(jié)目很少涉及,但是用戶在接收到此類節(jié)目的推薦后愿意觀看它。本文定義如下公式來表示推薦節(jié)目的驚喜度:
(13)
式中:Ps表示推薦的驚喜度,NG表示群組總數(shù),PLEA(i)表示第i個(gè)群組的推薦分類中排名最低的分類節(jié)目總數(shù),GEN表示推薦總數(shù)。
推薦節(jié)目的相關(guān)性可以這樣理解:為用戶推薦的節(jié)目與用戶觀看過的節(jié)目間的相關(guān)程度,即這兩方面節(jié)目是否屬于同一類。本文定義下式來表示推薦節(jié)目的相關(guān)性:
(14)
式中:Co表示推薦結(jié)果的相關(guān)性,NG表示群組總數(shù),REC(i)表示第i個(gè)群組的推薦結(jié)果中每一個(gè)節(jié)目所屬類別總數(shù)的集合,GEN表示推薦總數(shù)。
為了在推薦節(jié)目的驚喜度和相關(guān)性之間取得一個(gè)平衡,本文使用了混合推薦方法,把ItemCF-IUF算法和UserCF-IIF算法所獲得的推薦結(jié)果,按M∶N的比例進(jìn)行加權(quán)融合,形成最終的推薦結(jié)果,其過程如算法1所示。其中,Gk表示目標(biāo)群組,Total為推薦列表的長度,topk表示篩選前k個(gè)推薦結(jié)果,k的值由輸入?yún)?shù)確定,cascade表示級聯(lián)操作,用于將篩選后的ItemCF-IUF和UserCF-IIF兩種算法的推薦結(jié)果進(jìn)行組合。本文就ItemCF-IUF和UserCF-IIF兩種算法結(jié)果的推薦比例M∶N的最佳取值進(jìn)行了探討,具體見2.2節(jié)的實(shí)驗(yàn)結(jié)果分析。
算法1混合推薦
Input: Gk,Total,M,N
Output: Result
1: while j=1,2,…,Total do
2: resItem[j]←ItemCF-IIF(Gk)
3: resUser[j]←UserCF-IUF(Gk)
4: end while
5: resM←topk(resItem,(M*Total)/(M+N))
6: resN←topk(resUser,(N*Total)/(M+N))
7: Result←cascade(resM,resN)
8: return Result
為了驗(yàn)證提出的算法的有效性,本文使用了泰迪杯數(shù)據(jù)挖掘挑戰(zhàn)賽的公開數(shù)據(jù)集[16]。使用的數(shù)據(jù)集包含250位志愿者在3個(gè)月內(nèi),對100個(gè)節(jié)目觀看時(shí)產(chǎn)生的15 375條數(shù)據(jù)。實(shí)驗(yàn)在擁有Intel i5處理器、8 GB內(nèi)存的計(jì)算機(jī)上進(jìn)行,計(jì)算環(huán)境為MATLAB 2018。
本文按照群組為單位進(jìn)行電視節(jié)目推薦,群組劃分時(shí)聚類結(jié)果是否良好對最終的推薦結(jié)果會產(chǎn)生不同影響。本文關(guān)注的重點(diǎn)是各個(gè)群組內(nèi)不同成員收視偏好的一致性,即追求在不同時(shí)間段內(nèi)聚類得到的各個(gè)群組的組員與它所屬的群組的偏好差異最小化。首先,本文采用平均絕對誤差MAE[17-18]來衡量一個(gè)群組內(nèi)的組員和群組整體的偏好差異,其定義如下:
(15)
式中:Dui表示用戶u對i的評分,DGi表示群組G對節(jié)目i的評分,N表示推薦節(jié)目的個(gè)數(shù)。
由于MAE僅僅是衡量單個(gè)群組與組內(nèi)個(gè)體的偏好差異,而本文是按照群組為單位在不同時(shí)間段進(jìn)行電視節(jié)目推薦的,所以本文定義一個(gè)新的衡量各個(gè)群組在不同時(shí)間段內(nèi)的偏好差異的指標(biāo)——群組平均絕對誤差MAEG,其計(jì)算公式如下:
(16)

利用上述公式,討論了馬爾可夫聚類參數(shù)θ和r的不同取值對于算法的收斂速度和群組劃分效果的影響,其結(jié)果如圖2和圖3所示。

圖2 迭代次數(shù)隨聚類參數(shù)的變化趨勢

圖3 MAEG指標(biāo)隨聚類參數(shù)的變化趨勢
由圖2可以看出,馬爾可夫聚類的收斂速度由θ和r的大小決定,θ與r越大,其收斂速度越快,且隨著θ的變大逐漸趨于穩(wěn)定。由圖3可以看出,當(dāng)θ較小時(shí),MAEG變化緩慢,當(dāng)θ增加到一定值時(shí),MAEG開始降低。結(jié)合圖2和圖3的結(jié)果可以看出,當(dāng)θ=0.009,r=5時(shí),群組平方絕對誤差MAEG=0.14,此時(shí)聚類得到的各個(gè)群組取得組內(nèi)差異最小化,這表明此時(shí)的群組劃分達(dá)到最優(yōu),有利于提高最終的推薦準(zhǔn)確率,且聚類過程也能達(dá)到較理想的收斂速度。
為了確定混合推薦比例M∶N的最佳值,以達(dá)到推薦結(jié)果驚喜度和相關(guān)性的平衡,本文對不同的比例組合進(jìn)行了對比,分別計(jì)算在不同M∶N取值下的推薦結(jié)果驚喜度和相關(guān)性,結(jié)果如圖4和圖5所示。

圖4 推薦驚喜度對比

圖5 推薦相關(guān)性對比
在圖4和圖5中,time1-time5表示時(shí)間段,各個(gè)時(shí)間段對應(yīng)的具體時(shí)刻見表1。由圖4可以看出,各個(gè)時(shí)間段的驚喜度在M∶N取1 ∶3處達(dá)到最大。由圖5可以看出,各個(gè)時(shí)間段在M∶N取1 ∶2處達(dá)到最高的推薦相關(guān)性,在1 ∶3處達(dá)到次高的推薦相關(guān)性。
通過對驚喜度和相關(guān)性的綜合比較,當(dāng)ItemCF-IUF和UserCF-IIF的推薦節(jié)目個(gè)數(shù)比例M∶N達(dá)到1 ∶3時(shí),推薦節(jié)目的驚喜程度和節(jié)目間的相關(guān)程度均達(dá)到相對較高的值,所以本文的混合推薦比例M∶N確定為1 ∶3。
為檢驗(yàn)提出的推薦方法的有效性,本文在公開數(shù)據(jù)集[16]上進(jìn)行了實(shí)驗(yàn),得到推薦的準(zhǔn)確率、新鮮度和個(gè)體多樣性。結(jié)合如表2所示的混淆矩陣定義,本文通過下式來計(jì)算節(jié)目推薦的準(zhǔn)確率:
(17)
式中:Acc表示推薦方法的準(zhǔn)確率。

表2 混淆矩陣
除了推薦的準(zhǔn)確率之外,推薦結(jié)果的新鮮度和個(gè)體多樣性也是衡量推薦算法性能的重要指標(biāo)。新鮮度反映了推薦算法向用戶推薦非流行物品的能力;個(gè)體多樣性反映了推薦算法為用戶推薦相似度低且符合其興趣偏好的物品的能力。本文采用下式來定義推薦結(jié)果的新鮮度:
(18)
式中:Fre表示新鮮度,NG表示群組總數(shù),λ(u)表示推薦節(jié)目是否是流行節(jié)目,若是,λ(u)=1,否則,λ(u)=0。而一個(gè)節(jié)目的流行度采用下式定義:

(19)

此外,本文采用下式來定義推薦結(jié)果的個(gè)體多樣性:
(20)
式中:Div表示個(gè)體多樣性,LN(u)表示群組u的推薦列表,N代表推薦節(jié)目個(gè)數(shù),Wjk表示節(jié)目j和節(jié)目k的相似度。
通過使用250位實(shí)驗(yàn)者觀看電視節(jié)目的行為數(shù)據(jù)進(jìn)行實(shí)驗(yàn),本文對提出的MCL-HCF混合推薦算法進(jìn)行了準(zhǔn)確率、新鮮度和個(gè)體多樣性的分析。在實(shí)驗(yàn)中,本文將電視節(jié)目劃分為綜藝、電視劇、電影、動(dòng)畫、紀(jì)錄片、其他,共六大類。對于群組內(nèi)單個(gè)用戶是否喜歡某個(gè)推薦節(jié)目的判斷依據(jù)是:在用戶歷史觀看記錄的評分矩陣中找出其喜歡的幾個(gè)節(jié)目類型,通過判斷推薦節(jié)目是否屬于用戶的偏好節(jié)目類型,確定用戶是否喜歡推薦的節(jié)目。推薦節(jié)目的準(zhǔn)確率如表3和圖6所示。

表3 推薦準(zhǔn)確率

圖6 準(zhǔn)確率對比
表3中的time1-time5表示時(shí)間段,各個(gè)時(shí)間段對應(yīng)的具體時(shí)刻見表1。Acc2表示用戶喜歡兩個(gè)節(jié)目類型時(shí)的準(zhǔn)確率,Acc3表示用戶喜歡三個(gè)節(jié)目類型時(shí)的準(zhǔn)確率。通過表3可以看出,使用MCL-HCF混合推薦算法對這250位用戶進(jìn)行電視節(jié)目推薦的準(zhǔn)確率總體比較高,Acc2各個(gè)時(shí)間段的均值為0.93,Acc3各個(gè)時(shí)間段的均值為0.96,這表明本文提出的先聚類得到群組再進(jìn)行混合推薦的策略在電視節(jié)目推薦問題上能取得令人滿意的推薦準(zhǔn)確率。
同時(shí),從表3和圖6可以看出,各個(gè)時(shí)間段的Acc3比Acc2要大,這是因?yàn)楫?dāng)用戶喜歡的節(jié)目類型增加時(shí),相當(dāng)于擴(kuò)大用戶的偏好范圍,這會提升對此用戶的推薦準(zhǔn)確率。
推薦結(jié)果的新鮮度和個(gè)體多樣性如表4和表5所示,其中time1-time5表示的時(shí)間段具體范圍見表1。通過表4可以看出,除了time3時(shí)段外,本文提出的算法能取得較高的推薦新鮮度,具備為用戶推薦非流行節(jié)目的能力。通過分析time3(14:00-20:00)時(shí)段的觀看記錄,我們發(fā)現(xiàn)此時(shí)段播出的節(jié)目主要是以受眾程度較高的綜藝、電視劇和動(dòng)畫類節(jié)目為主,這些類型的節(jié)目具備更高的普適觀眾的能力,這是在此時(shí)段進(jìn)行推薦時(shí)新鮮度低于其他時(shí)段的原因。從表5可以看出,本文提出的算法在各個(gè)時(shí)段都能取得令人滿意的個(gè)體多樣性,能夠?yàn)橛脩敉扑]更多不同類型的且符合其偏好的節(jié)目,從而能夠提升用戶的使用體驗(yàn)。

表4 推薦新鮮度

表5 推薦個(gè)體多樣性
本文主要關(guān)注為家庭用戶進(jìn)行電視節(jié)目的個(gè)性化推薦問題。為此,本文提出了MCL-HCF混合推薦算法。首先,使用馬爾可夫聚類算法對各個(gè)時(shí)間段內(nèi)的用戶進(jìn)行聚類,得到不同的用戶群組。為了衡量聚類結(jié)果的有效性,我們引入了組平均絕對誤差MAEG,在追求MAEG最小的策略下,優(yōu)化了群組劃分的結(jié)果。然后,本文以群組為單位進(jìn)行電視節(jié)目推薦,在使用ItemCF-IUF和UserCF-IIF兩種算法得到各自的推薦列表后,我們使用加權(quán)融合的方式進(jìn)行了混合推薦,以此來解決傳統(tǒng)推薦算法在推薦結(jié)果的驚喜度和相關(guān)性上的矛盾。在公開數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明本文提出的MCL-HCF算法具有如下優(yōu)點(diǎn):(1) 能夠降低群組內(nèi)用戶和群組整體之間的偏好差異程度,提升對整個(gè)家庭的用戶推薦節(jié)目時(shí)的準(zhǔn)確率;(2) 混合推薦的最終結(jié)果能夠在保持推薦準(zhǔn)確率的同時(shí),使推薦節(jié)目的驚喜度和相關(guān)性達(dá)到平衡。在后續(xù)研究中將主要關(guān)注尋找新的群組劃分策略,提升群組成員的內(nèi)聚程度,進(jìn)一步提高推薦效果。