本發(fā)明屬于推薦系統(tǒng)領(lǐng)域,尤其涉及推薦系統(tǒng)中基于異構(gòu)信息網(wǎng)絡(luò)的方法及裝置。
背景技術(shù):
推薦系統(tǒng):
隨著互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的發(fā)展,人們正處于一個(gè)信息爆炸的時(shí)代。面對(duì)海量的信息,如何從中高效的篩選出用戶感興趣的、對(duì)用戶有幫助的信息,成為越來越重要的問題。傳統(tǒng)的搜索引擎越來越無法滿足用戶個(gè)性化的信息過濾和檢索需求,尤其是當(dāng)用戶無法準(zhǔn)確描述自己的需求時(shí),搜索引擎的篩選效果將大打折扣。
推薦系統(tǒng)正是在這種背景下出現(xiàn)的。其任務(wù)在于匹配用戶和物品,使得用戶能夠發(fā)現(xiàn)對(duì)自己有價(jià)值的物品,同時(shí)物品能夠展現(xiàn)在對(duì)他感興趣的人群中。
目前,主要的推薦方法包括:基于內(nèi)容的推薦、基于協(xié)同過濾的推薦以及混合推薦方法。
基于內(nèi)容的推薦方法的主要思想是,如果用戶喜歡過某個(gè)物品,那么與此物品在各種內(nèi)在屬性上都相似的物品,就有很大可能也是用戶喜歡的。這種方法可被用于商品、音樂的推薦等。例如,在音樂推薦中,可以通過分析音樂的波形圖,得到兩個(gè)音樂之間的相似度,據(jù)此對(duì)用戶進(jìn)行推薦。
基于協(xié)同過濾的推薦方法是目前最為常用的推薦方法,其基本思想為:如果某用戶喜歡過某個(gè)物品i,并且喜歡過此物品的其他用戶大多也喜歡了另外一個(gè)物品j,那么就向此用戶推薦物品j。這種方法又分為基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾,區(qū)別在于前者使用用戶的歷史偏好數(shù)據(jù)計(jì)算用戶之間的相似度,后者則計(jì)算物品之間的相似度。
混合推薦方法綜合了上述各種方法。綜合的方法有多種。例如,在每種推薦方法給出各自的推薦物品排序列表后,對(duì)這些排序列表進(jìn)行綜合,得出一個(gè)綜合排序列表并推薦給用戶。又如,使用基本的推薦方法對(duì)所有物品進(jìn)行打分,然后根據(jù)一定的標(biāo)準(zhǔn)對(duì)這些推薦方法的結(jié)果進(jìn)行加權(quán),并將加權(quán)平均后的打分作為物品的最終得分,最后據(jù)此對(duì)物品進(jìn)行排序,并推薦給用戶。
異構(gòu)信息網(wǎng)絡(luò):
現(xiàn)實(shí)世界中存在大量的對(duì)象,它們相互之間存在各種各樣的交互關(guān)系,形成一個(gè)龐大的、相互聯(lián)系的復(fù)雜網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)稱為信息網(wǎng)絡(luò)。當(dāng)信息網(wǎng)絡(luò)中的對(duì)象和鏈接都是單類型時(shí),此網(wǎng)絡(luò)稱為同構(gòu)信息網(wǎng)絡(luò),例如根據(jù)不同作者合著同一著作這一關(guān)系建立起來的作者合作網(wǎng)絡(luò)中,對(duì)象代表作者,鏈接代表作者之間的合作關(guān)系,這就是一個(gè)同構(gòu)信息網(wǎng)絡(luò)。當(dāng)信息網(wǎng)絡(luò)中的對(duì)象或鏈接是多種類型時(shí),則稱為異構(gòu)信息網(wǎng)絡(luò),例如將論文、作者和會(huì)議聯(lián)系起來的文獻(xiàn)網(wǎng)絡(luò),論文、作者和會(huì)議為三種不同的對(duì)象,他們之間存在兩種類型的鏈接,即論文和作者之間“寫”與“被寫”的關(guān)系,論文和會(huì)議之間“發(fā)表”與“被發(fā)表”的關(guān)系。
目前,基于同構(gòu)信息網(wǎng)絡(luò)的算法比較豐富,典型的包括pagerank算法和hits算法等。但是,在許多領(lǐng)域中,同構(gòu)信息網(wǎng)絡(luò)無法表達(dá)復(fù)雜的聯(lián)系和信息,因此現(xiàn)實(shí)世界中還存在著大量的異構(gòu)信息網(wǎng)絡(luò),其中不同類型的對(duì)象間的復(fù)雜聯(lián)系揭示了更重要的結(jié)構(gòu)語義信息。如何從這些異構(gòu)信息網(wǎng)絡(luò)中挖掘出有用的信息,已成為數(shù)據(jù)挖掘領(lǐng)域一個(gè)新的研究方向和熱點(diǎn)。
基于異構(gòu)信息網(wǎng)絡(luò)的推薦方法:
基于異構(gòu)信息網(wǎng)絡(luò)的推薦方法正在吸引研究人員越來越大的興趣。這種方法是一種混合的推薦方法,它首先將用戶、物品、用戶的屬性和物品的屬性關(guān)聯(lián)起來,建立一張異構(gòu)信息網(wǎng)絡(luò),然后通過在此網(wǎng)絡(luò)上挖掘相關(guān)信息,得到用戶對(duì)物品的偏好程度,從而進(jìn)行推薦。已有研究證明,這種方法可以模擬各種傳統(tǒng)的推薦方法,包括基于內(nèi)容的推薦方法和目前最常用的協(xié)同過濾方法等。此外,這種方法還可以進(jìn)行各種基于不同語義的推薦,例如為用戶推薦與某演員主演的電影同類型的其他電影。
目前,基于異構(gòu)信息網(wǎng)絡(luò)的推薦方法尚處于起步階段,已有的算法還較少。這些算法大多利用啟發(fā)式的方法為網(wǎng)絡(luò)中的邊的權(quán)重賦值,然后據(jù)此在網(wǎng)絡(luò)上進(jìn)行隨機(jī)游走,從而得到每個(gè)物品被訪問到的概率值,以此作為用戶對(duì)該物品的偏好的反映。這些方法的缺陷在于,邊的權(quán)重是根據(jù)啟發(fā)式地規(guī)則進(jìn)行賦值的,因此受到實(shí)驗(yàn)者的影響較大,而且強(qiáng)烈的依賴于特定的數(shù)據(jù)集和實(shí)驗(yàn)者的經(jīng)驗(yàn),因此,在推廣到其他數(shù)據(jù)集時(shí),已有賦值規(guī)則往往不再適用或效果很差。簡(jiǎn)而言之,這些方法對(duì)不同數(shù)據(jù)集的適應(yīng)能力較差。
技術(shù)實(shí)現(xiàn)要素:
為解決上述提到的基于異構(gòu)信息網(wǎng)絡(luò)的推薦方法中存在的對(duì)不同數(shù)據(jù)適應(yīng)能力較差的問題,本發(fā)明提供了一種基于貝葉斯個(gè)性化排序的機(jī)器學(xué)習(xí)算法,能夠自動(dòng)地學(xué)習(xí)異構(gòu)信息網(wǎng)絡(luò)中邊的權(quán)重。
本發(fā)明所采用的技術(shù)方案是:首先根據(jù)用戶、物品、用戶屬性及物品屬性這些信息建立一張異構(gòu)信息網(wǎng)絡(luò),然后使用基于貝葉斯個(gè)性化排序的機(jī)器學(xué)習(xí)算法對(duì)每種類型的邊分別學(xué)習(xí)出一個(gè)權(quán)值。在本發(fā)明的機(jī)器學(xué)習(xí)算法中,主要包含下列幾個(gè)步驟:
(1)每輪迭代中,從用戶喜歡過的物品(也稱為正樣本)中隨機(jī)抽取一個(gè),由于接下來訓(xùn)練時(shí)的目標(biāo)是最大化此正樣本和負(fù)樣本之間評(píng)分的差距,需要平等對(duì)待此正樣本和負(fù)樣本,因此在異構(gòu)信息網(wǎng)絡(luò)中暫時(shí)將用戶與此物品的邊刪除,即在本輪迭代中,將此物品視為用戶未標(biāo)記過喜歡的物品;
(2)每輪迭代中,首先按下式計(jì)算網(wǎng)絡(luò)中所有節(jié)點(diǎn)的評(píng)分:
其中,r(0)表示網(wǎng)絡(luò)中所有節(jié)點(diǎn)的初始評(píng)分,可隨機(jī)設(shè)置,α和l為模型的參數(shù),w為一個(gè)矩陣,其中的元素wij表示節(jié)點(diǎn)i和節(jié)點(diǎn)j之間邊的權(quán)重,且對(duì)于相同類型的邊,其權(quán)重是相同的,初始時(shí),w中各元素初始值可以設(shè)置為任意的正數(shù)。此公式表示的是l步的帶重啟的隨機(jī)游走模型,參數(shù)α表示的是繼續(xù)游走的概率,相應(yīng)的,1-α就是重啟的概率。計(jì)算出每個(gè)節(jié)點(diǎn)的評(píng)分后,對(duì)每一類型的邊τ,將當(dāng)前類型的邊的權(quán)重加上一個(gè)微小的增量δ,然后使用新的w矩陣計(jì)算新的評(píng)分向量r'。然后,使用下面公式計(jì)算每個(gè)節(jié)點(diǎn)評(píng)分對(duì)邊類型τ的權(quán)值的梯度:
上述過程也就是對(duì)wτ進(jìn)行數(shù)值求導(dǎo);
(3)從當(dāng)前用戶未標(biāo)記喜歡的物品(也稱為負(fù)樣本)中,隨機(jī)抽取一組物品,組成集合i,然后設(shè)前面抽取的正樣本為i,并使用下面公式更新每個(gè)類型的邊的權(quán)重wτ:
其中,η表示學(xué)習(xí)速率,迭代中,如果任何一個(gè)類型的邊的權(quán)重在更新后會(huì)變?yōu)樨?fù)值,則將η折半,直到?jīng)]有任何一個(gè)類型的邊的權(quán)重為負(fù)。此方法來源于協(xié)同過濾方法中的貝葉斯個(gè)性化排序(bayesianpersonalizedranking,bpr)算法,本發(fā)明將其推廣到基于異構(gòu)信息網(wǎng)絡(luò)的推薦中來;
(4)在更新完所有類型的邊的權(quán)重后,將所有類型的邊的權(quán)重儲(chǔ)存起來,作為一個(gè)候選解ω,繼續(xù)下一輪迭代,直到達(dá)到指定的迭代次數(shù);
(5)從每輪迭代后取得的候選解中,使用驗(yàn)證集進(jìn)行測(cè)試,從中選擇最優(yōu)的解ω*,作為最終的解;
(6)使用最優(yōu)解ω*計(jì)算所有節(jié)點(diǎn)的評(píng)分r,并輸出評(píng)分最高的若干物品,作為對(duì)用戶的推薦物品集合。
此外,為解決現(xiàn)有基于異構(gòu)信息網(wǎng)絡(luò)的推薦方法中存在的對(duì)不同數(shù)據(jù)適應(yīng)能力較差的問題,本發(fā)明提供了一種利用基于貝葉斯個(gè)性化排序的機(jī)器學(xué)習(xí)算法自動(dòng)的學(xué)習(xí)邊的權(quán)重的裝置。包括:
異構(gòu)信息網(wǎng)絡(luò)構(gòu)建模塊,用來利用用戶、物品、用戶屬性及物品屬性這些信息建立一張異構(gòu)信息網(wǎng)絡(luò);
機(jī)器學(xué)習(xí)模塊,用來使用異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序方法來學(xué)習(xí)所有類型的邊的權(quán)重,并存儲(chǔ)在每輪迭代中得到的候選解;
候選解選擇模塊,用來根據(jù)驗(yàn)證集的效果選擇最優(yōu)候選解;
輸出模塊,用來根據(jù)得到的最優(yōu)候選解計(jì)算每個(gè)物品評(píng)分,并輸出評(píng)分最高的一組物品給用戶。
實(shí)施本發(fā)明實(shí)施例,將具有如下有益效果:
該基于異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序的推薦方法及裝置可以自動(dòng)的從數(shù)據(jù)中學(xué)習(xí)出各邊的權(quán)重,從而大大提高了對(duì)不同數(shù)據(jù)的適應(yīng)能力,同時(shí),由于該方法學(xué)到的權(quán)重能很好的匹配數(shù)據(jù),因此可以更好的對(duì)用戶偏好進(jìn)行刻畫,從而得到更好的個(gè)性化推薦效果。
下面使用grouplens研究團(tuán)隊(duì)1發(fā)布的hetrec2011movielens數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證。此數(shù)據(jù)集是movielens10m的一個(gè)擴(kuò)展版本,它組合了原始的電影數(shù)據(jù)、互聯(lián)網(wǎng)電影數(shù)據(jù)庫(internetmoviedatabase,imdb)2上對(duì)應(yīng)的電影信息頁面,以及爛番茄電影評(píng)論系統(tǒng)3上的相應(yīng)數(shù)據(jù)。表1是此數(shù)據(jù)集的一些統(tǒng)計(jì)信息。實(shí)驗(yàn)中,這些數(shù)據(jù)被按照時(shí)間順序排序,并取最早的80%作為訓(xùn)練集,余下的20%作為測(cè)試集。
表1hetrec2011movielens數(shù)據(jù)集的統(tǒng)計(jì)信息
實(shí)驗(yàn)基于訓(xùn)練集和數(shù)據(jù)集的元信息建立了一個(gè)異構(gòu)信息網(wǎng)絡(luò),如圖1所示。為了簡(jiǎn)單起見,本實(shí)驗(yàn)所構(gòu)建的異構(gòu)信息網(wǎng)絡(luò)是無向的,但本發(fā)明對(duì)于有向網(wǎng)絡(luò)也是可以應(yīng)用的。此異構(gòu)信息網(wǎng)絡(luò)中含有7種類型的節(jié)點(diǎn),分別為user、movie、tag、genre、director、actor、country,每類節(jié)點(diǎn)都使用其首字母大寫作為其縮寫。網(wǎng)絡(luò)中還有7種類型的邊,分別為um、ut、tm、mg、md、ma、mc。
對(duì)于每個(gè)用戶對(duì)電影的評(píng)分,如果此評(píng)分大于該用戶對(duì)所有電影的平均評(píng)分,那么就在用戶和電影之間建立一條邊。也就是說,將得到高于平均分的電影視為正樣本。
實(shí)驗(yàn)使用auc指標(biāo)作為衡量推薦算法好壞的標(biāo)準(zhǔn)。首先針對(duì)測(cè)試集中的每個(gè)用戶計(jì)算其推薦結(jié)果的auc指標(biāo),然后對(duì)所有這些用戶的auc指標(biāo)取平均值,以得到平均auc指標(biāo)。
實(shí)驗(yàn)比較了下面幾種基于異構(gòu)信息網(wǎng)絡(luò)的推薦算法:
1)基于路徑umum的推薦:也稱為基于用戶的協(xié)同過濾方法。
2)pathrank:基于異構(gòu)信息網(wǎng)絡(luò)的推薦算法中最好的方法之一,其中的權(quán)重使用了與原作者相同的設(shè)置,路徑組合使用了他們的文獻(xiàn)中效果最好的一個(gè)。實(shí)驗(yàn)中,將此算法作為基準(zhǔn)算法。
3)本文所提集成推薦算法:實(shí)驗(yàn)中,路徑長(zhǎng)度l設(shè)為3步,并嘗試了三個(gè)不同的α值的設(shè)定,分別為0.6、0.8和1.0。
表2參與比較的各個(gè)推薦算法的平均auc指標(biāo)
實(shí)驗(yàn)結(jié)果如表2所示。從表中可以看出,本發(fā)明的方法比目前最好的基于異構(gòu)信息網(wǎng)絡(luò)的推薦算法即pathrank算法提高了9%左右,相比的基于用戶的協(xié)同過濾算法提高了約18%。
附圖說明
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
其中:
圖1為一個(gè)實(shí)施例中一種基于異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序的推薦方法的流程圖;
圖2為一個(gè)實(shí)施例中利用數(shù)值求導(dǎo)計(jì)算所有節(jié)點(diǎn)的評(píng)分對(duì)所有邊類型權(quán)重的偏導(dǎo)數(shù)的方法流程圖;
圖3為一個(gè)實(shí)施例中一種基于異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序的推薦裝置的示意圖。
圖4為一個(gè)實(shí)施例中使用hetrec數(shù)據(jù)集建立的異構(gòu)信息網(wǎng)絡(luò)結(jié)構(gòu)圖
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和性質(zhì)進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明提供一種基于異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序的推薦方法,如圖1所示,詳細(xì)過程如下:
1)如圖步驟s101,使用用戶、物品、用戶屬性及物品屬性這些信息建立一張異構(gòu)信息網(wǎng)絡(luò);
2)如圖步驟s102,從用戶喜歡過的物品(也稱為正樣本)中隨機(jī)抽取一個(gè),并在異構(gòu)信息網(wǎng)絡(luò)中,在本輪迭代中暫時(shí)將用戶與此物品的邊刪除;
3)如圖步驟s103,利用數(shù)值求導(dǎo)計(jì)算所有節(jié)點(diǎn)的評(píng)分對(duì)所有邊類型權(quán)重的偏導(dǎo)數(shù);
4)如圖步驟s104,從當(dāng)前用戶未標(biāo)記喜歡的物品(也稱為負(fù)樣本)中,隨機(jī)抽取一組物品,并使用公式3來更新所有邊類型的權(quán)重;
5)如圖步驟s105,更新完成后,將所有邊類型的權(quán)重存儲(chǔ)起來,作為一個(gè)候選解;
6)如圖步驟s106,判斷迭代是否達(dá)到預(yù)定次數(shù),如果沒有,那么重復(fù)步驟s102、s103、s104、s105,否則進(jìn)入下一步;
7)如圖步驟s107,從每輪迭代后取得的候選解中,使用驗(yàn)證集進(jìn)行測(cè)試,從中選擇最優(yōu)的解;
8)如圖步驟s108,使用最優(yōu)解計(jì)算所有節(jié)點(diǎn)的評(píng)分,并輸出評(píng)分最高的若干物品,作為對(duì)用戶的推薦物品集合。
其中,步驟s103中所述數(shù)值求導(dǎo)方法,如圖2所示,詳細(xì)過程如下:
1)如圖步驟s201,使用公式1計(jì)算所有節(jié)點(diǎn)的評(píng)分;
2)如圖步驟s202,判斷是否每種邊的類型的權(quán)重均已求過偏導(dǎo)數(shù),如果是,則結(jié)束,如果否,則繼續(xù);
3)如圖步驟s203,取下一個(gè)邊的類型τ,將其權(quán)重wτ加上一個(gè)微小的數(shù)值δ;
4)如圖步驟s204,使用新的權(quán)重矩陣w代入公式1,計(jì)算所有節(jié)點(diǎn)的評(píng)分r';
5)如圖步驟s205,使用公式2計(jì)算所有節(jié)點(diǎn)評(píng)分對(duì)當(dāng)前邊類型τ的梯度。
重復(fù)步驟s203、s204和s205,直到所有類型的邊的權(quán)重均已求過偏導(dǎo)數(shù)。
此外,本發(fā)明提供一種基于異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序的推薦裝置,如圖3所示,包括四個(gè)模塊:異構(gòu)信息網(wǎng)絡(luò)構(gòu)建模塊101、機(jī)器學(xué)習(xí)模塊102、候選解選擇模塊103和輸出模塊104,其中:
1)異構(gòu)信息網(wǎng)絡(luò)構(gòu)建模塊101,用來利用用戶、物品、用戶屬性及物品屬性這些信息建立一張異構(gòu)信息網(wǎng)絡(luò);
2)機(jī)器學(xué)習(xí)模塊102,用來使用基于異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序的推薦方法來學(xué)習(xí)所有類型的邊的權(quán)重,并存儲(chǔ)在每輪迭代中得到的候選解;
3)候選解選擇模塊103,用來根據(jù)驗(yàn)證集的效果選擇最優(yōu)候選解;
4)輸出模塊104,用來根據(jù)得到的最優(yōu)候選解計(jì)算每個(gè)物品評(píng)分,并輸出評(píng)分最高的一組物品給用戶。
采用了上述基于異構(gòu)信息網(wǎng)絡(luò)和貝葉斯個(gè)性化排序的推薦方法及裝置之后,不僅可以自動(dòng)的從數(shù)據(jù)中學(xué)習(xí)出各邊的權(quán)重,從而大大提高了對(duì)不同數(shù)據(jù)的適應(yīng)能力,同時(shí),由于該方法學(xué)到的權(quán)重能很好的匹配數(shù)據(jù),因此可以更好的對(duì)用戶偏好進(jìn)行刻畫,從而得到更好的個(gè)性化推薦效果。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。