本發(fā)明屬于數(shù)據(jù)處理領(lǐng)域,尤其涉及一種視頻推薦方法及系統(tǒng)。
背景技術(shù):
目前個性化推薦系統(tǒng)已廣泛用于書籍、論文、音樂和電影等商品及內(nèi)容的推薦上,而且個性化推薦系統(tǒng)的內(nèi)部結(jié)構(gòu)也發(fā)生了巨大變化?,F(xiàn)有的推薦方法是根據(jù)用戶對不同項目的興趣愛好,基于用戶對不同項目的這些信息,產(chǎn)生一個個性化的推薦列表,把用戶沒有接觸過的視頻、書籍、商品等對象推薦給用戶。
在學術(shù)界,個性化推薦的研究很多是依賴于協(xié)同過濾方法。協(xié)同過濾的思想主要分為基于用戶(User-based)的協(xié)同過濾和基于項目(Item-based)的協(xié)同過濾兩種,兩者的最大區(qū)別在于目標鄰近集合的選取范圍恰好相反。
基于用戶(User-based)的協(xié)同過濾算法是通過計算用戶間的相似度以獲得目標用戶的最鄰近用戶集,并根據(jù)最鄰近用戶集的評分來預測目標用戶對未知項目的評分,然后把預測評分較高的項目作為推薦項目反饋給目標用戶。系統(tǒng)通過學習用戶的歷史興趣內(nèi)容來進行相關(guān)節(jié)目的興趣預測,需要為用戶構(gòu)建模型來過濾內(nèi)容,這種方法簡單快速。但是計算最近鄰的方法通常有稀疏性和擴展性差的問題。
技術(shù)實現(xiàn)要素:
鑒于此,本發(fā)明實施例提供一種視頻推薦方法及系統(tǒng),以更好的應(yīng)對現(xiàn)有視頻推薦系統(tǒng)遇到的數(shù)據(jù)稀疏性問題,從而更準確得為用戶推薦視頻。
本發(fā)明實施例的第一方面,提供了一種視頻推薦的方法,所述方法包括:
建立全體用戶和視頻之間的關(guān)系;
根據(jù)所述全體用戶和視頻之間的關(guān)系,建立用戶聚類中心和視頻之間的關(guān)聯(lián);
基于全部所述用戶聚類中心對應(yīng)的所述關(guān)聯(lián),執(zhí)行協(xié)同過濾算法;
根據(jù)所述協(xié)同過濾算法得出的結(jié)果,向目標用戶推薦視頻。
本發(fā)明實施例的第二方面,提供一個視頻推薦的系統(tǒng),所述系統(tǒng)包括:
輸入交互模塊,用于建立全體用戶和視頻之間的關(guān)系;
推薦計算模塊,用于根據(jù)所述全體用戶和視頻之間的關(guān)系,計算用戶聚類中心和視頻之間的關(guān)聯(lián),采用基于全部所述用戶聚類中心對應(yīng)的所述關(guān)聯(lián),執(zhí)行協(xié)同過濾算法,得出推薦結(jié)果;
輸出推薦模塊,用于根據(jù)計算出的推薦結(jié)果,向目標用戶推薦視頻。
本發(fā)明實施例與現(xiàn)有技術(shù)相比存在的有益效果是:通過基于全部聚類中心點的協(xié)同過濾算法,克服了現(xiàn)有協(xié)同過濾算法會遇到的特征稀疏的問題,提高了推薦的準確性和對大規(guī)模數(shù)據(jù)的適應(yīng)能力。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的視頻推薦方法的實現(xiàn)流程圖;
圖2是本發(fā)明實施例提供的視頻推薦方法S102的具體實現(xiàn)流程圖;
圖3是本發(fā)明實施例提供的全體用戶的視頻評分矩陣;
圖4是本發(fā)明實施例提供的視頻推薦方法的加權(quán)示意圖;
圖5是本發(fā)明實施例提供的迭代計算方法S204的具體實現(xiàn)流程圖;
圖6是本發(fā)明實施例提供的視頻推薦系統(tǒng)的系統(tǒng)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例根據(jù)所述全體用戶和視頻之間的關(guān)系,建立用戶聚類中心和視頻之間的關(guān)聯(lián);基于全部所述用戶聚類中心對應(yīng)的所述關(guān)聯(lián),執(zhí)行協(xié)同過濾算法;根據(jù)所述協(xié)同過濾算法得出的結(jié)果,向目標用戶推薦視頻。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進行說明。
參見圖1,是本發(fā)明實施例提供的視頻推薦方法的實現(xiàn)流程圖,包括以下步驟:
在步驟S101中,建立全體用戶和視頻之間的關(guān)系。
全體用戶指的是所有應(yīng)用本系統(tǒng)觀看過視頻的用戶。視頻指的是本系統(tǒng)內(nèi)所有的視頻。其中,視頻作為被推薦的對象,包括電影、電視劇、綜藝節(jié)目等。本系統(tǒng)包括:網(wǎng)站或者電視系統(tǒng)等。
本發(fā)明實施例可以采用用戶為視頻打分的方式,建立用戶和視頻之間的關(guān)系。當我們已經(jīng)建立起用戶和視頻之間的關(guān)系之后,就可以利用評分數(shù)據(jù),建立起一個全體用戶對視頻的評分矩陣,為了方便說明,在此,把這個矩陣命名為本系統(tǒng)的第一視頻評分矩陣。
需要說明的是,用戶和視頻之間的關(guān)系,可以由多種參數(shù)決定,比如:用戶對視頻的評分,用戶實際觀看視頻的時長,用戶觀看視頻的次數(shù)等。任意以上參數(shù)都可以建立用戶與視頻之間的關(guān)系。
在步驟S102中,根據(jù)所述全體用戶和視頻之間的關(guān)系,建立用戶聚類中心和視頻之間的關(guān)聯(lián)。
當?shù)玫搅巳w用戶對視頻的評分數(shù)據(jù)之后,由于評分數(shù)據(jù)的數(shù)據(jù)量非常大,會導致視頻推薦算法的運算時間過長,成本過高,因此很難直接應(yīng)用這些數(shù)據(jù)對目標用戶進行推薦。在本發(fā)明實施例中,以評分數(shù)據(jù)為例,在全體用戶的評分數(shù)據(jù)基礎(chǔ)上,找到幾個“明星用戶”,從而得到明星用戶所對應(yīng)的評分數(shù)據(jù)。建立起“明星用戶”和視頻之間的聯(lián)系,這樣龐大的數(shù)據(jù)量就會被大大的簡化,便于后續(xù)的計算。
需要說明的是,以上提及的“明星用戶"并不是真正意義上的用戶,而是基于普通用戶的評分數(shù)據(jù)挖掘出來的少量具有代表性的虛擬用戶,相當于用戶聚類中心。
在“明星用戶”的獲取過程中,用到了每個普通用戶的評分數(shù)據(jù),亦即每個用戶都參與到了“明星用戶”的選取過程中,所以“明星用戶”對視頻的喜好,即用戶聚類中心對視頻的喜好,能夠在一定程度上代表普通用戶對視頻的喜好,從而提高了推薦結(jié)果的準確性。
在步驟S103中,基于全部所述用戶聚類中心對應(yīng)的所述關(guān)聯(lián),執(zhí)行協(xié)同過濾算法。
本發(fā)明實施例中涉及的協(xié)同過濾算法,實際上是通過不斷地更新用戶聚類中心的視頻評分矩陣,從而實現(xiàn)對“明星用戶”的挖掘。在此,為了方便說明,稱用戶聚類中心的視頻評分矩陣為第二視頻評分矩陣,對協(xié)同過濾算法的具體執(zhí)行過程將在下文實施例中進行詳細闡述。
在步驟S104中,根據(jù)所述協(xié)同過濾算法得出的結(jié)果,向目標用戶推薦視頻。
如上文所述,基于全部所述用戶聚類中心對應(yīng)的所述關(guān)聯(lián),執(zhí)行協(xié)同過濾算法。如圖2所示,本發(fā)明實施例提供的視頻推薦方法S103的具體實現(xiàn)如下:
在S201中,根據(jù)全體用戶對視頻的評分數(shù)據(jù),構(gòu)建第一視頻評分矩陣。
具體地,設(shè)用戶集合U={u1,u2,…,un}和視頻集合I={I1,I2,…,Im},rij代表用戶ui對電影Ij的評分,用戶評分矩陣可以表示為一個n×m的矩陣,如圖3便是一個典型的全體用戶對視頻的評分矩陣,即第一視頻評分矩陣。rij數(shù)值所代表的用戶對視頻的滿意度評分,可以人為地指定。通常的做法是把分數(shù)取值限制在特定的整數(shù)區(qū)間內(nèi)。例如可以把rij設(shè)置為0到5的整數(shù),其中0代表喜愛程度未知(即用戶未對該視頻評分),1代表最不喜歡,5代表最喜歡,其他分值代表對視頻的喜愛程度在1至5之間依次遞增。
在S202中,根據(jù)所述第一視頻評分矩陣,任意選取若干用戶作為初始用戶聚類中心,得到被選用戶的全部評分數(shù)據(jù),將被選用戶和其評分數(shù)據(jù)組成第二視頻評分矩陣。
在S203中,計算初始用戶聚類中心和全體用戶的相似矩陣。
具體地,有多種求相關(guān)系數(shù)的方式,比如:皮爾遜相關(guān)系數(shù)法,杰卡德相關(guān)系數(shù)法,余弦距離法,歐式距離法。在本發(fā)明實施例中,通過兩種方式求出所述相似矩陣。
第一種采用皮爾遜相關(guān)系數(shù)。皮爾遜相關(guān)系數(shù)算法首先會找出兩個用戶都曾評分過的視頻,然后計算兩者的評分總和與平方和。利用公式1計算出皮爾遜相關(guān)系數(shù)。X代表一個“用戶聚類中心對視頻的評分集合,Y代表一個真實用戶對視頻的評分集合。N表示該用戶聚類中心和現(xiàn)實用戶共同評分過的視頻個數(shù)。
第二種采用杰卡德相關(guān)系數(shù)。根據(jù)公式2計算得出相關(guān)度。
其中,IU和Is分別表示用戶u和用戶s評過分的物品集合。
根據(jù)上述兩種方法計算得出每個用戶聚類中心與現(xiàn)實用戶的相似度,根據(jù)所述相似度構(gòu)建相似矩陣。
在S204中,進行迭代計算,不斷更新第二視頻評分矩陣,以及不斷更新相似矩陣。具體迭代計算步驟在下文有詳細說明。
在S205中,過濾用戶聚類中心。
在海量數(shù)據(jù)環(huán)境下,為了保證計算效率,需要對用戶聚類中心進行過濾,只保留一部分與目標用戶相似度高的用戶聚類中心來做評分預測。
具體地,本系統(tǒng)采用閾值過濾方法,通過設(shè)置相似度閾值,首先將與目標用戶的相似度低于所述閥值的用戶聚類中心過濾掉,然后再從剩余的“明星用戶”中選擇N個相似度最高的用戶聚類中心作為后續(xù)計算的參數(shù)。
在S206中,根據(jù)過濾后的用戶聚類中心,加權(quán)平均計算出所述目標用戶對其未評分視頻的評分。
具體地,經(jīng)過上述S204和S205兩個步驟的計算后,得到了兩個矩陣,一個是第二視頻評分矩陣,一個是過濾后的相似矩陣。通過這兩個矩陣中的對應(yīng)數(shù)據(jù),目標用戶與其未看過的視頻建立了聯(lián)系。
具體地,目標用戶根據(jù)與不同用戶聚類中心的相似度,計算出不同的加權(quán)比重。再乘以過濾后不同用戶聚類中心對視頻的評分,計算出目標用戶對其未看過的視頻的評分。
下面舉例說明。參見圖4是本發(fā)明實施例提供的視頻推薦方法的加權(quán)示意圖。圖中明星用戶即用戶聚類中心,假設(shè)有兩個明星用戶:S1和S2,有三個視頻i1、i2和i3。假設(shè)根據(jù)第二評分矩陣得出結(jié)果,明星用戶S1為三個視頻打分分別為r11=4,r12=5,r13=3;明星用戶S2為三個視頻打分分別為r21=3,r22=4,r23=2。某目標用戶屬于全體用戶集合,并且根據(jù)用戶聚類中心與全體用戶的相似矩陣,目標用戶與明星用戶1、明星用戶2的相似度分別為:W11=0.6,W12=0.8。因此通過加權(quán)平均算法,目標用戶對視頻1的評分為;對視頻2評分為對視頻3的評分為
如上文所述,進行迭代計算,不斷更新第二視頻評分矩陣,以及不斷更新所述相似矩陣。具體步驟為:
輸入:R;(輸入第一視頻評分矩陣。)
輸出:R‘;(輸入第二視頻評分矩陣。)
l:Initialize R‘(得到初始化的第二視頻評分矩陣,具體步驟已在上文介紹。)
2:Compute similarity between each Wu,s(Vu∈U,Vs∈S)
pair,and get a relation matrix W(計算全體用戶和用戶聚類中心的相似矩陣。具體方法已在上文介紹。)
3:for iter=0:iter<maxiter;iter++do(最外層循環(huán),判斷當前迭代次數(shù)是否小于總的迭代次數(shù),控制總的迭代次數(shù)。)
4:for each user u∈U do(中間層循環(huán),判斷當前用戶是否在全體用戶集合內(nèi)。)
5:for each rating ru,i∈R by user u do(最內(nèi)層循環(huán),判斷當前視頻是否在總視頻集合內(nèi)。)
6:Computeusing equation 1(計算用戶u對電影i的評分估值。)
7:Compute eu,i using equation 2(計算評分預測值與實際值之間的誤差。)
8:Update rs,i using equation 4(更新用戶聚類中心對視頻的評分。)
9:end for(結(jié)束最內(nèi)層循環(huán)。)
10:Update mean rating(Vs∈S)every α users.(最內(nèi)層循環(huán)每進行α次更新用戶聚類中心的評分均值。)
11:end for(結(jié)束第二層循環(huán)。)
12:Update Wu,s(Vu∈U,Vs∈S)every β iterations.(迭代次數(shù)每經(jīng)過β次,更新一次用戶聚類中心與用戶的相似度。)
13:end for(結(jié)束最外層循環(huán)。)
14:return R‘(返回第二視頻評分矩陣。)
為了更清楚的介紹,如圖5所示,作為本發(fā)明實施例提供的迭代計算方法S204的具體實現(xiàn)如下:
輸入第一視頻評分矩陣(R),第二視頻評分矩陣(R‘),以及初始用戶聚類中心與現(xiàn)實用戶的相似矩陣(Wu,)。
算法的迭代過程是一個三重循環(huán)。
最外層循環(huán)控制總的迭代次數(shù)。當輸入的三個矩陣進入迭代計算后,首先比較當前迭代次數(shù)與最高迭代次數(shù),如果當前迭代次數(shù)小于等于最高迭代次數(shù),則進入第二層循環(huán),如果當前迭代次數(shù)大于最高迭代次數(shù),則輸出當前第二視頻評分矩陣;
第二層循環(huán)判斷當前用戶是否超出全體用戶的集合范圍,并負責更新每個用戶聚類中心的評分均值。如果當前用戶在全體用戶的集合范圍內(nèi),則進入最內(nèi)層循環(huán)。如果當前用戶不在全體用戶的集合范圍內(nèi),則返回最外層循環(huán),并更新相似矩陣,總迭代次數(shù)加一;
最內(nèi)層循環(huán)是整個迭代計算的核心,用于判斷當前視頻是否超出視頻的集合范圍,并計算用戶聚類中心為視頻的評分。計算步驟如下:
第一步:定義用戶u對電影i的評分預測模型:
其中:表示用戶u對電影i的評分預測值,和分別表示用戶u和“明星用戶”S的評分平均值;rs,i表示用戶聚類中心s對物品i的打分,即矩陣R‘的第s行第i列的元素,也就是接下來要求得的模型參數(shù);S表示“明星用戶”的集合,Wu,s表示用戶u和用戶聚類中心s之間的相似度。
第二步:對于訓練數(shù)據(jù)集中的每一條評分記錄,計算評分預測值與實際值之間的誤差:
第三步:最終的目標是最小化全局誤差的平方和,目標函數(shù)如下:
第四步:最后得到更新用戶聚類中心的視頻評分數(shù)據(jù)公式:
其中:μ是學習率通常采用比較小的實數(shù),如0.01,0.008,對于每條評分記錄ru,i,需要更新矩陣R‘的第i列,即所有的rs,i(Vs∈S)。
其中:ru,i為當前用戶的每條評分數(shù)據(jù),為當前用戶評分估值,eu,i為預測誤差eu,i。
參見圖6,是本發(fā)明實施例提供的視頻推薦系統(tǒng)的系統(tǒng)框圖,包括以下模塊:
輸入交互模塊601,用于建立全體用戶和視頻之間的關(guān)系;
推薦計算模塊602,用于根據(jù)全體用戶和視頻之間的關(guān)系,建立用戶聚類中心和視頻之間的關(guān)聯(lián);
過濾單元,用于基于全部用戶聚類中心對應(yīng)的所述關(guān)聯(lián),執(zhí)行協(xié)同過濾算法;
輸出推薦模塊603,用于根據(jù)協(xié)同過濾算法得出的結(jié)果,向目標用戶推薦視頻。
進一步地,輸入交互模塊具體用于獲取所述全體用戶對視頻的評分。
進一步地,推薦計算模塊,包括:
矩陣構(gòu)建子模塊,用于根據(jù)全體用戶對視頻的評分,構(gòu)建第一視頻評分矩陣;
初始化子模塊,用于根據(jù)第一視頻評分矩陣,任意選取若干用戶作為初始用戶聚類中心,得到被選用戶的全部評分數(shù)據(jù),將被選用戶和其評分數(shù)據(jù)組成第二視頻評分矩陣。
進一步地,所述推薦計算模塊,還包括:
相似性計算子模塊,用于計算所述初始用戶聚類中心和全體用戶的相似矩陣;
迭代計算子模塊,用于經(jīng)過迭代計算不斷更新所述第二視頻評分矩陣,以及不斷更新相似矩陣;
過濾子模塊,用于根據(jù)預設(shè)的相似度閥值,過濾與全體用戶的相似度低于相似度閥值的用戶聚類中心;
加權(quán)計算子模塊,用于根據(jù)過濾后的用戶聚類中心,選取其在第二視頻評分矩陣中的評分數(shù)據(jù),以及相似矩陣中的數(shù)據(jù),加權(quán)平均計算出所述目標用戶對其未評分視頻的評分;
推薦判斷子模塊,用于根據(jù)目標用戶對其未評分視頻的評分,得出推薦結(jié)果。
進一步地,所述迭代計算模塊,包括:
最內(nèi)層循環(huán)子模塊:用于根據(jù)當前的第二視頻評分矩陣、當前的所述相似矩陣,以及第一視頻評分矩陣,計算得出數(shù)據(jù),包括:計算全體用戶的評分估值;計算全體用戶對視頻的評分與所述評分估值之間的誤差值;更新用戶聚類中心的評分數(shù)據(jù);
中間層循環(huán)子模塊:用于根據(jù)最內(nèi)層循環(huán)子模塊計算得出的最新用戶聚類中心的評分矩陣,更新每一個用戶聚類中心的評分期望值;
最外層循環(huán)子模塊,用于根據(jù)最內(nèi)層循環(huán)子模塊和中間層循環(huán)子模塊更新的參數(shù),更新所述相似矩陣。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到各種等效的修改或替換,這些修改或替換都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準。