亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        融入項(xiàng)目相關(guān)性的加權(quán)Slope One算法研究*

        2018-10-12 02:20:02徐紅艷王嶸冰
        計(jì)算機(jī)與生活 2018年10期
        關(guān)鍵詞:矩陣預(yù)測(cè)算法

        馮 勇,徐紅艷,王嶸冰,郭 浩

        遼寧大學(xué) 信息學(xué)院,沈陽(yáng) 110036

        1 引言

        信息技術(shù)和網(wǎng)絡(luò)互連的快速發(fā)展,帶來信息量的激增,人們正步入信息過載的時(shí)代[1]。目前,個(gè)性化推薦技術(shù)被業(yè)界認(rèn)為是解決信息過載問題的首選方案,它根據(jù)使用者的歷史交互數(shù)據(jù)開展數(shù)據(jù)的分析與挖掘,將用戶可能感興趣而又未獲取的產(chǎn)品、信息等推薦給用戶[2]。近年來,個(gè)性化推薦技術(shù)已經(jīng)被廣泛應(yīng)用在電影、視頻、論文、駕駛路線和位置等與信息相關(guān)的服務(wù)領(lǐng)域。

        目前,眾多的個(gè)性化推薦方法中,協(xié)同過濾推薦是應(yīng)用較為成功的推薦方法,分為基于用戶的協(xié)同過濾推薦和基于項(xiàng)目的協(xié)同過濾推薦[3]。Slope One算法作為應(yīng)用廣泛的基于項(xiàng)目的協(xié)同過濾推薦算法,是由Lemire等人于2005年提出的。該算法易于實(shí)現(xiàn),推薦準(zhǔn)確度較高[4]。但該算法在實(shí)現(xiàn)時(shí),將所有項(xiàng)目平等對(duì)待,未對(duì)項(xiàng)目的相關(guān)性加以考量,并且在數(shù)據(jù)集稀疏時(shí)推薦效果不佳。文獻(xiàn)[4]中同時(shí)也提到了加權(quán)Slope One算法,該算法將同時(shí)被評(píng)分的兩個(gè)項(xiàng)目的用戶數(shù)量作為加權(quán)值,但是同樣缺乏對(duì)項(xiàng)目相關(guān)性的考量,推薦效果不甚理想。針對(duì)Slope One算法的不足,眾多學(xué)者從不同視角進(jìn)行了改進(jìn),如:Xiao等人將Slope One算法與基于內(nèi)容的推薦算法相結(jié)合,但此算法在數(shù)據(jù)稀疏時(shí)的推薦效果不理想[5]。Wang等人提出將機(jī)器學(xué)習(xí)的相關(guān)算法應(yīng)用于Slope One算法參數(shù)的學(xué)習(xí)計(jì)算中,再預(yù)測(cè)推薦[6]。孫麗梅等人提出了基于動(dòng)態(tài)k近鄰的Slope One算法,采用用戶相似度的k近鄰方法篩選用戶評(píng)分?jǐn)?shù)據(jù),提高了推薦準(zhǔn)確性[7]。但是,上述方法均沒有從項(xiàng)目類型上入手,減少無關(guān)項(xiàng)目對(duì)預(yù)測(cè)結(jié)果的不良影響。因此,本文在傳統(tǒng)Slope One算法中加入了項(xiàng)目類型相關(guān)性計(jì)算及項(xiàng)目篩選策略,提出了一種融入項(xiàng)目相關(guān)性的加權(quán)Slope One算法,使算法的推薦效率和推薦準(zhǔn)確率均得到了一定程度的改善。最后經(jīng)實(shí)驗(yàn)對(duì)比分析,本文所提算法切實(shí)可行,與當(dāng)前應(yīng)用較廣的Slope One算法相比具有更優(yōu)的推薦效率和準(zhǔn)確率。

        2 相關(guān)工作

        2.1 Slope One算法介紹及不足分析

        Slope One算法本質(zhì)上是基于項(xiàng)目的協(xié)同過濾推薦算法,該算法認(rèn)為在項(xiàng)目和項(xiàng)目之間、評(píng)分和用戶自身之間存在著一種線性關(guān)系。Slope One算法是采用公式f(x)=x+b來預(yù)測(cè)評(píng)分的。b代表著項(xiàng)目間的平均評(píng)分偏差,x表示評(píng)分值。

        假設(shè)S={,,…,}為用戶對(duì)項(xiàng)目X、Y的評(píng)分向量集,S中的每一個(gè)數(shù)值對(duì)表示一個(gè)用戶分別對(duì)項(xiàng)目X和項(xiàng)目Y的實(shí)際評(píng)分。在計(jì)算項(xiàng)目Y對(duì)項(xiàng)目X的評(píng)分差估計(jì)值時(shí),可以使用最小二乘法來實(shí)現(xiàn)[8],計(jì)算公式如式(1):

        計(jì)算出評(píng)分差估計(jì)值b后,采用如上所提的線性關(guān)系,根據(jù)目標(biāo)用戶給出的項(xiàng)目X的評(píng)分和b來對(duì)項(xiàng)目Y的預(yù)測(cè)評(píng)分進(jìn)行估算。

        Slope One算法對(duì)預(yù)測(cè)評(píng)分計(jì)算的一般流程如下:

        (1)生成用戶集合U:在用戶-項(xiàng)目評(píng)分矩陣中,將所有對(duì)目標(biāo)項(xiàng)目做過評(píng)分的用戶篩選出來形成用戶集合U。

        (2)生成項(xiàng)目集合P:首先找出已被目標(biāo)用戶給出評(píng)分的項(xiàng)目,若該項(xiàng)目也同時(shí)被其他用戶給出評(píng)分,則該項(xiàng)目將被加入到算法計(jì)算所需的項(xiàng)目集合P中。

        (3)預(yù)測(cè)項(xiàng)目評(píng)分[8]:篩選出U、P之后,就可以提取Slope One算法需要的評(píng)分?jǐn)?shù)據(jù),即U與P交叉處的評(píng)分?jǐn)?shù)據(jù)。多項(xiàng)目條件下,用戶u預(yù)測(cè)項(xiàng)目j的評(píng)分表示為P(u)j,計(jì)算公式如式(2)、式(3)所示:

        其中,devj,i表示項(xiàng)目j相對(duì)項(xiàng)目i的評(píng)分偏差;Uj,i表示項(xiàng)目i和項(xiàng)目j有共同評(píng)分的用戶集合;ru,i和ru,j分別表示用戶u對(duì)項(xiàng)目i、j的評(píng)分;Ij表示與目標(biāo)項(xiàng)目j同時(shí)被評(píng)分的項(xiàng)目集合;card()表示相應(yīng)集合中包含元素的數(shù)量。

        Slope One同其他推薦算法一樣,在預(yù)測(cè)完項(xiàng)目評(píng)分之后采用Top-N方式生成推薦列表。

        通過對(duì)Slope One算法計(jì)算方式的分析,可總結(jié)出該算法有如下兩點(diǎn)不足:

        (1)該算法僅僅考慮了當(dāng)前用戶的評(píng)分項(xiàng)目與目標(biāo)項(xiàng)目之間的平均評(píng)分偏差,再求加權(quán)平均值計(jì)算得出。由于沒有考慮項(xiàng)目間的相關(guān)性,因此算法在對(duì)預(yù)測(cè)評(píng)分進(jìn)行計(jì)算過程中,極有可能將與目標(biāo)項(xiàng)目在性質(zhì)上完全不相關(guān)的項(xiàng)目納入項(xiàng)目集合中,計(jì)算結(jié)果就會(huì)有較大的偏差。

        (2)文獻(xiàn)[9-10]研究的結(jié)果表明,該算法在數(shù)據(jù)集較為稠密時(shí),預(yù)測(cè)精度較高,但當(dāng)數(shù)據(jù)集相對(duì)稀疏時(shí),該算法在推薦效果上的優(yōu)勢(shì)并不明顯。

        基于上述兩種不足導(dǎo)致該算法推薦的結(jié)果準(zhǔn)確度不理想,本文算法將圍繞以上兩方面的不足開展研究與改進(jìn)工作。

        2.2 項(xiàng)目相似度計(jì)算方法介紹及不足分析

        目前對(duì)項(xiàng)目相似度的研究大多集中在項(xiàng)目評(píng)分上的相似度或項(xiàng)目的評(píng)價(jià)信息作為切入點(diǎn)來計(jì)算相似度,而沒有從項(xiàng)目類型等項(xiàng)目本質(zhì)信息來衡量。目前常用的項(xiàng)目相似度計(jì)算方法及不足分析如下:

        (1)根據(jù)購(gòu)買次數(shù)計(jì)算

        兩個(gè)不同項(xiàng)目被同一用戶購(gòu)買的次數(shù)越多,它們就越相似[11]。項(xiàng)目j和項(xiàng)目i之間的相似度計(jì)算如式(4)所示:

        這種方法在計(jì)算屬性相似度的時(shí)候,計(jì)算過程非常繁瑣。

        (3)多層次計(jì)算

        此方法首先基于共同用戶集計(jì)算第1級(jí)相似度,然后逐步融入其他維度因素[13],計(jì)算過程如下:

        基于共同用戶集的第1級(jí)相似度計(jì)算。設(shè)項(xiàng)目i、j的用戶集分別為Usr(i)、Usr(j),則使用式(6)計(jì)算項(xiàng)目i、項(xiàng)目j的相似度:

        其中,Ti表示項(xiàng)目i總共被購(gòu)買的次數(shù);Tj表示項(xiàng)目j總共被購(gòu)買的次數(shù);Ti∪Tj表示項(xiàng)目i和項(xiàng)目j被同一用戶購(gòu)買的次數(shù)。這種方法帶有一定的偶然性,不適合用在預(yù)測(cè)評(píng)分的系統(tǒng)中。

        (2)根據(jù)項(xiàng)目屬性

        在該計(jì)算方法中,項(xiàng)目之間的相似度使用項(xiàng)目屬性相似度來衡量[12]。項(xiàng)目有很多屬性,因此每個(gè)項(xiàng)目可以表示為一個(gè)t維向量,每個(gè)維度對(duì)應(yīng)當(dāng)前項(xiàng)目的一個(gè)屬性特征。aig表示項(xiàng)目i的第g個(gè)屬性,利用相關(guān)公式確定每個(gè)屬性在最終推薦中所占不同的權(quán)重wk,然后加權(quán)得到兩個(gè)項(xiàng)目屬性的相似度。那么項(xiàng)目i和項(xiàng)目j之間的相似度可以表示為式(5):

        融入活躍度的第2級(jí)相似度計(jì)算。用戶u的活躍度通過其評(píng)分項(xiàng)目數(shù)量RNum(u)來表示,則第2級(jí)相似度計(jì)算如式(7):

        融入時(shí)效的第3級(jí)相似度計(jì)算。設(shè)用戶u對(duì)項(xiàng)目i和項(xiàng)目j的評(píng)分時(shí)間分別為Timeui和Timeuj,則第3級(jí)相似度計(jì)算如式(8):

        以上給出的多級(jí)相似度計(jì)算雖然能夠從不同角度分析項(xiàng)目之間的相似性,但是算法的實(shí)現(xiàn)過程中需要進(jìn)行大量的計(jì)算,并且算法效率較傳統(tǒng)算法并沒有較大提高,其時(shí)間復(fù)雜度為O(mlgm),m為全部項(xiàng)目數(shù)。

        3 融入項(xiàng)目相關(guān)性的加權(quán)Slope One算法

        針對(duì)Slope One算法中存在的不足,本文提出了項(xiàng)目相關(guān)性的計(jì)算方法,從項(xiàng)目類型上入手,減少無關(guān)項(xiàng)目對(duì)預(yù)測(cè)結(jié)果的影響。結(jié)合Slope One算法計(jì)算平均評(píng)分差值的特點(diǎn),對(duì)用戶-項(xiàng)目矩陣進(jìn)行篩選操作,目的是得到一個(gè)局部數(shù)據(jù)稠密的用戶-項(xiàng)目矩陣,并且項(xiàng)目間評(píng)分差值較為穩(wěn)定。最后將項(xiàng)目類型相關(guān)性計(jì)算和項(xiàng)目篩選策略融合到推薦算法中,形成融入項(xiàng)目類型相關(guān)性的加權(quán)Slope One算法。

        3.1 項(xiàng)目相關(guān)性的計(jì)算

        該步驟是進(jìn)行數(shù)據(jù)預(yù)處理的過程,根據(jù)項(xiàng)目數(shù)據(jù)集的相關(guān)數(shù)據(jù)計(jì)算出項(xiàng)目之間的相關(guān)性,得到一個(gè)類型相關(guān)性的表格,然后就可以根據(jù)計(jì)算結(jié)果和目標(biāo)項(xiàng)目的類型進(jìn)行篩選。這樣既可以過濾掉無關(guān)項(xiàng)目的干擾,又可以減少用戶-項(xiàng)目矩陣的局部相似度。

        3.1.1 項(xiàng)目相關(guān)性的定義

        本文提出的計(jì)算方法是利用項(xiàng)目已有的相關(guān)數(shù)據(jù)來計(jì)算項(xiàng)目之間的相關(guān)性。項(xiàng)目類型a和b之間的相關(guān)性表示為g_corr(a,b),計(jì)算如式(9)所示:

        在式(9)中,項(xiàng)目類型之間的相關(guān)性g_corr(a,b)是由g_prob(a,b)和g_weight(a,b)來計(jì)算。項(xiàng)目類型共同出現(xiàn)的概率矩陣表示為g_prob(a,b),這個(gè)概率矩陣是不對(duì)稱的。項(xiàng)目類型評(píng)分相似度矩陣表示為g_weight(a,b),是由皮爾遜相關(guān)系數(shù)計(jì)算的一個(gè)對(duì)稱矩陣。ω表示兩者權(quán)重,由反復(fù)實(shí)驗(yàn)得到最優(yōu)取值。

        3.1.2 項(xiàng)目類型共同出現(xiàn)概率的計(jì)算

        在推薦系統(tǒng)的項(xiàng)目數(shù)據(jù)中,每個(gè)項(xiàng)目都至少有一個(gè)所屬類型,有些項(xiàng)目甚至有4到5個(gè)所屬類型。比如電影數(shù)據(jù)中,《海豚灣》的所屬類型為紀(jì)錄片,而《拯救大兵瑞恩》屬于劇情片、動(dòng)作片、歷史片和戰(zhàn)爭(zhēng)片。

        在興趣相似度中,如果兩個(gè)用戶共同感興趣的物品越多,則說明這兩個(gè)用戶的相似度越高。借鑒該思想,如果兩個(gè)類型同時(shí)被一個(gè)項(xiàng)目所屬的情況數(shù)量很多,那么可以認(rèn)為這兩個(gè)類型是有一定關(guān)系的,即相關(guān)度高。本文就是根據(jù)這種思想來衡量?jī)蓚€(gè)項(xiàng)目類型是否具有關(guān)系。在本文提出的計(jì)算方法里,項(xiàng)目類型共同出現(xiàn)的概率用條件概率來計(jì)算,計(jì)算公式如式(10):

        式(10)中Ia表示項(xiàng)目類型屬于類型a,Ia∩b表示項(xiàng)目類型既屬于類型a又屬于類型b。例如:A影片屬于類型 1、2、3,B 影片屬于類型 3、4、5,則g_prob(a,b)=1/3。

        3.1.3 項(xiàng)目類型評(píng)分相似度計(jì)算

        類型權(quán)重公式如式(11)所示,這是一個(gè)皮爾遜相關(guān)系數(shù)的變形,用來計(jì)算屬于類型a和類型b項(xiàng)目評(píng)分之間的評(píng)分相關(guān)性。

        其中,pnti(a,b)表示項(xiàng)目i的點(diǎn)數(shù);s*,i表示項(xiàng)目i的平均得分;sˉa和sˉb表示類型為a和類型為b的項(xiàng)目的平均分。

        正如前面所說,一個(gè)項(xiàng)目可以對(duì)應(yīng)很多類型。一個(gè)項(xiàng)目對(duì)應(yīng)的類型越少,對(duì)應(yīng)類型間的相關(guān)性越高。因此,pnti是根據(jù)一個(gè)項(xiàng)目所屬類型的總數(shù)不同來給定的。計(jì)算公式如式(12)所示。

        其中,類型權(quán)重等式有兩個(gè)目標(biāo)類型,pnti計(jì)算公式中的分子是2,Gi表示項(xiàng)目i所屬類型的集合,|Gi|是項(xiàng)目i所屬的類型的總數(shù)。

        3.2 項(xiàng)目的篩選策略

        本文以用戶-項(xiàng)目矩陣中的評(píng)分?jǐn)?shù)據(jù)為基礎(chǔ),利用項(xiàng)目固有的類型信息,提出以下項(xiàng)目類型篩選策略用以挖掘出用戶最喜歡和最不喜歡的項(xiàng)目作為算法預(yù)測(cè)評(píng)分過程中參與計(jì)算的項(xiàng)目。

        項(xiàng)目的類型集合G={g1,g2,…,gn}。當(dāng)Rui=5時(shí),認(rèn)為用戶u喜歡項(xiàng)目i。此時(shí),項(xiàng)目i對(duì)應(yīng)的項(xiàng)目類型gc被標(biāo)記為用戶u的喜歡項(xiàng)目類型。某個(gè)用戶可能多次對(duì)同一個(gè)喜歡的項(xiàng)目類型進(jìn)行標(biāo)記,對(duì)標(biāo)記次數(shù)進(jìn)行累加,形成用戶喜歡的項(xiàng)目矩陣。同理,當(dāng)Ruj=1時(shí),認(rèn)為用戶u不喜歡項(xiàng)目j。此時(shí),項(xiàng)目j對(duì)應(yīng)的項(xiàng)目類型gd被標(biāo)記為用戶u的不喜歡項(xiàng)目類型。對(duì)標(biāo)記次數(shù)進(jìn)行累加,形成用戶不喜歡的項(xiàng)目矩陣。

        表1中列出了用戶u1至u5對(duì)項(xiàng)目i1至i7的評(píng)分矩陣。將其分開表示成兩個(gè)矩陣,一個(gè)為保留用戶評(píng)分為5的,一個(gè)為保留用戶評(píng)分為1的,同時(shí)將其他評(píng)分值重置為0,操作結(jié)果如表2和表3所示。

        Table 1 User-item scoring matrix表1 用戶-項(xiàng)目評(píng)分矩陣

        Table 2 User favorite item matrix表2 用戶喜歡的項(xiàng)目矩陣

        項(xiàng)目-類型矩陣如表4所示,項(xiàng)目i屬于類型g就記為1,否則記為0。

        Table 3 User dislike item matrix表3 用戶不喜歡的項(xiàng)目矩陣

        表2和表3分別根據(jù)表4中的項(xiàng)目類型對(duì)應(yīng)累加后形成的結(jié)果如表5和表6所示。

        Table 5 Summary of user favorite item type表5 用戶喜歡項(xiàng)目類型匯總

        Table 6 Summary of user dislike item type表6 用戶不喜歡項(xiàng)目類型匯總

        從表5和表6中可知用戶最喜歡的項(xiàng)目類型為g2,最不喜歡的項(xiàng)目類型為g3。那么這兩個(gè)已篩選出來的類型所對(duì)應(yīng)的項(xiàng)目納入到最后預(yù)測(cè)評(píng)分的用戶-項(xiàng)目矩陣中。

        3.3 算法描述

        根據(jù)上述思想,算法流程描述如下:

        輸入:用戶-項(xiàng)目評(píng)分矩陣Rm×n,項(xiàng)目-類型矩陣Gn×s,目標(biāo)用戶u,待評(píng)分項(xiàng)目i。

        輸出:目標(biāo)用戶u對(duì)待評(píng)分項(xiàng)目i的預(yù)測(cè)評(píng)分。

        步驟1利用矩陣Rm×n,使用常用的相似度計(jì)算方法計(jì)算出用戶相似度LEsim(xu,xv),選取Top-K形成目標(biāo)用戶u的近鄰用戶集合Su,并根據(jù)Su形成相似用戶-項(xiàng)目矩陣R1k×n。

        步驟2利用矩陣Gn×s和Rm×n,根據(jù)本文所提出的項(xiàng)目類型相關(guān)性計(jì)算公式(9)計(jì)算出待評(píng)分項(xiàng)目i的類型與其他類型的相關(guān)程度,選取Top-K形成集合G1={g1,g2,…,gk}。

        步驟3利用矩陣R1k×n,挖掘出目標(biāo)用戶u最喜歡的和最不喜歡的項(xiàng)目類型,組成集合G2={g1i,gdis}。

        步驟4在矩陣R1k×n,剔除不屬于G1∪G2的項(xiàng)目,形成局部數(shù)據(jù)比較密集的矩陣R2k×c。

        步驟5利用矩陣R2k×c,根據(jù)加權(quán)Slope One算法計(jì)算出目標(biāo)用戶u對(duì)目標(biāo)項(xiàng)目i的預(yù)測(cè)評(píng)分,產(chǎn)生Top-N推薦。

        改進(jìn)算法通過步驟1至步驟4的操作將大小為m×n原始用戶-項(xiàng)目評(píng)分矩陣進(jìn)行預(yù)處理,在預(yù)處理過程中根據(jù)項(xiàng)目類型相關(guān)性的計(jì)算選擇Top-K個(gè)相關(guān)類型,并按照項(xiàng)目篩選策略形成局部數(shù)據(jù)比較密集的用戶-項(xiàng)目評(píng)分矩陣R2k×c,k?m且c?n。這樣可以在Slope One算法復(fù)雜度保持不變的情況下,通過大幅度降低輸入數(shù)據(jù)規(guī)模的方法來提高算法的執(zhí)行效率。雖然數(shù)據(jù)預(yù)處理部分會(huì)使整個(gè)算法的時(shí)間復(fù)雜度略有增加,但該部分可采用離線的方式處理,因而不會(huì)影響Slope One算法的實(shí)時(shí)性。

        4 實(shí)驗(yàn)分析

        4.1 實(shí)驗(yàn)數(shù)據(jù)集與評(píng)價(jià)標(biāo)準(zhǔn)

        本文實(shí)驗(yàn)環(huán)境配置如下:OS Win 7,CPU i5-4460、3.20 GHz,內(nèi)存2 GB或以上,硬盤空間50 GB以上。本文算法采用Java語(yǔ)言實(shí)現(xiàn),使用了Apache Mahout開源框架下提供的原生Slope One算法,在此之前用本文算法對(duì)數(shù)據(jù)集進(jìn)行了過濾篩選處理。

        本文使用數(shù)據(jù)集MovieLens(http://files.grouplens.org/datasets/movielens/)中的部分?jǐn)?shù)據(jù)來評(píng)估本文所提出的推薦算法的性能。選取的數(shù)據(jù)集包括用戶數(shù)量為943、項(xiàng)目(電影)數(shù)為1682、用戶-項(xiàng)目評(píng)分矩陣中包含100000條記錄,其中每個(gè)注冊(cè)用戶要求至少完成20部電影的評(píng)分,給出的評(píng)分采用5個(gè)等級(jí),即范圍為{1,2,3,4,5},評(píng)分?jǐn)?shù)值越大,則表示該用戶對(duì)該項(xiàng)目越喜歡。該用戶-項(xiàng)目評(píng)分矩陣的稀疏度為0.93695。

        實(shí)驗(yàn)的評(píng)價(jià)指標(biāo):平均絕對(duì)誤差(mean absolute error,MAE)和均方根誤差(root mean squared error,RMSE)[14-15]。根據(jù)它們的值來驗(yàn)證本文所提算法預(yù)測(cè)結(jié)果的優(yōu)勢(shì)。

        MAE計(jì)算如式(13)所示:

        若將用戶u表示為Uu,項(xiàng)目i表示為Ii,則在式(13)中,rui表示Uu對(duì)Ii的評(píng)分真實(shí)值,preui表示Uu對(duì)Ii評(píng)分的預(yù)測(cè)值。|T|表示測(cè)試集T中元素的個(gè)數(shù)。對(duì)于計(jì)算結(jié)果,MAE值越小,說明預(yù)測(cè)評(píng)分與實(shí)際評(píng)分越接近,預(yù)測(cè)結(jié)果就越準(zhǔn)確。

        RMSE計(jì)算如式(14)所示:

        同理,RMSE值越小,表明算法預(yù)測(cè)值與評(píng)分真實(shí)值越接近,預(yù)測(cè)效果越好。

        4.2 參數(shù)ω的最優(yōu)值確定

        參數(shù)ω表示式(9)中g(shù)_prob(a,b)和g_weight(a,b)所占權(quán)重的比例。使用基于項(xiàng)目的協(xié)同過濾算法進(jìn)行實(shí)驗(yàn),選取相似項(xiàng)目類型的數(shù)量為3,選取ω為不同值進(jìn)行多次實(shí)驗(yàn),得到使算法效果達(dá)到最好的參數(shù)值。比重參數(shù)ω對(duì)MAE值和RMSE值的影響如圖1和圖2所示。

        Fig.1 Effect of parameterωon MAE圖1 參數(shù)ω對(duì)MAE值的影響

        Fig.2 Effect of parameterωon RMSE圖2 參數(shù)ω對(duì)RMSE值的影響

        如圖1、圖2所示,經(jīng)過多次實(shí)驗(yàn),得出ω=0.5時(shí)式(9)的實(shí)驗(yàn)效果最好,因此本文實(shí)驗(yàn)中取ω為0.5。根據(jù)此實(shí)驗(yàn)結(jié)果,可以預(yù)先計(jì)算出系統(tǒng)中項(xiàng)目類型的相關(guān)性,表7計(jì)算出了MovieLens數(shù)據(jù)集中部分項(xiàng)目類型的相關(guān)性。

        Table 7 Item relevance of MovieLens data set(part)表7 MovieLens數(shù)據(jù)集部分項(xiàng)目類型相關(guān)性

        4.3 算法準(zhǔn)確度對(duì)比實(shí)驗(yàn)

        為了驗(yàn)證本文所提出算法具有較高的準(zhǔn)確度,設(shè)置如下對(duì)比實(shí)驗(yàn):在MovieLens數(shù)據(jù)集中,分別使用融合用戶相似度和項(xiàng)目相似度的加權(quán)Slope One算法(簡(jiǎn)稱算法1)[16]和基于用戶多屬性和興趣的加權(quán)Slope One算法(簡(jiǎn)稱算法2)[17]進(jìn)行實(shí)驗(yàn),根據(jù)實(shí)驗(yàn)運(yùn)行的結(jié)果來計(jì)算MAE和RMSE的值。在實(shí)驗(yàn)過程中,選取當(dāng)前目標(biāo)用戶的近鄰用戶集大小分別為5,10,20,…,160,進(jìn)行多次實(shí)驗(yàn),以排除偶然因素。3種推薦算法預(yù)測(cè)準(zhǔn)確度的比較如圖3和圖4所示。

        Fig.3 MAE contrast of 3 recommended algorithms圖3 3種推薦算法運(yùn)行結(jié)果MAE值對(duì)比

        Fig.4 RMSE contrast of 3 recommended algorithms圖4 3種推薦算法運(yùn)行結(jié)果RMSE值對(duì)比

        從圖3、圖4可以看出,本文算法在整體表現(xiàn)上優(yōu)于算法1和算法2。本文算法MAE和RMSE值呈現(xiàn)先下降后上升趨勢(shì)的原因:隨著近鄰用戶集由5增至20的過程中,與目標(biāo)用戶相似的用戶越來越多,因此預(yù)測(cè)準(zhǔn)確度會(huì)提高,隨著近鄰用戶集繼續(xù)增加,并不是很相似的用戶也被納入其中,這就必然會(huì)導(dǎo)致預(yù)測(cè)準(zhǔn)確度下降。

        4.4 稀疏數(shù)據(jù)集中的性能對(duì)比實(shí)驗(yàn)

        為了檢驗(yàn)在不同稀疏程度的數(shù)據(jù)集下本文算法的預(yù)測(cè)性能,設(shè)置實(shí)驗(yàn)數(shù)據(jù):在原始的MovieLens數(shù)據(jù)集(其稀疏度為0.93695)中刪除部分?jǐn)?shù)據(jù),使其稀疏度達(dá)到0.99。將3種算法應(yīng)用到該稀疏數(shù)據(jù)集中,預(yù)測(cè)準(zhǔn)確度的比較如圖5、圖6所示。

        Fig.5 MAE contrast of 3 recommended algorithms(sparse data set)圖5 3種算法在稀疏數(shù)據(jù)集上MAE值對(duì)比

        Fig.6 RMSE contrast of 3 recommended algorithms(sparse data set)圖6 3種算法在稀疏數(shù)據(jù)集上RMSE值對(duì)比

        根據(jù)圖5、圖6可以看出,在不同稀疏程度的數(shù)據(jù)集上,實(shí)驗(yàn)結(jié)果所呈現(xiàn)的整體趨勢(shì)是一致的,每個(gè)算法在稀疏度較小的數(shù)據(jù)集上所得的MAE和RMSE值都要小,并且在稀疏程度較大的數(shù)據(jù)集上兩種對(duì)比算法所呈現(xiàn)的差距變大,這說明本文算法在數(shù)據(jù)稀疏的情況下表現(xiàn)依舊良好。

        5 結(jié)束語(yǔ)

        本文針對(duì)加權(quán)Slope One算法中沒有考慮項(xiàng)目相關(guān)性的不足,提出了在加權(quán)Slope One算法中融合項(xiàng)目類型相關(guān)性及項(xiàng)目篩選策略,給出了項(xiàng)目類型相關(guān)性的計(jì)算方法以及適應(yīng)Slope One算法特點(diǎn)的項(xiàng)目篩選方案,排除了無關(guān)項(xiàng)目對(duì)推薦的干擾,并對(duì)算法的處理流程進(jìn)行了改進(jìn)。最后通過實(shí)驗(yàn)驗(yàn)證了本文算法在預(yù)測(cè)準(zhǔn)確度、處理稀疏數(shù)據(jù)集等方面均有優(yōu)勢(shì)。隨著網(wǎng)絡(luò)互連的飛速發(fā)展,推薦算法中使用的用戶數(shù)和項(xiàng)目數(shù)將呈指數(shù)增長(zhǎng),從而導(dǎo)致算法運(yùn)行速度較慢,且過度耗費(fèi)內(nèi)存資源。未來可以考慮將一些優(yōu)化性能較高的機(jī)器學(xué)習(xí)方法與本文改進(jìn)的推薦算法相融合,在提高算法預(yù)測(cè)準(zhǔn)確度的同時(shí)改善算法的時(shí)空效率。

        猜你喜歡
        矩陣預(yù)測(cè)算法
        無可預(yù)測(cè)
        黃河之聲(2022年10期)2022-09-27 13:59:46
        選修2-2期中考試預(yù)測(cè)卷(A卷)
        選修2-2期中考試預(yù)測(cè)卷(B卷)
        基于MapReduce的改進(jìn)Eclat算法
        Travellng thg World Full—time for Rree
        進(jìn)位加法的兩種算法
        不必預(yù)測(cè)未來,只需把握現(xiàn)在
        初等行變換與初等列變換并用求逆矩陣
        一種改進(jìn)的整周模糊度去相關(guān)算法
        矩陣
        南都周刊(2015年4期)2015-09-10 07:22:44
        国产偷国产偷亚洲欧美高清| 亚洲av永久无码一区二区三区| 国产顶级熟妇高潮xxxxx| xxxx国产视频| 日韩精品极品视频在线观看蜜桃| 国产片在线一区二区三区| 一本一道av无码中文字幕麻豆| 国产真实乱人偷精品人妻 | 亚洲女同同性一区二区| 特黄做受又硬又粗又大视频小说| 国产96在线 | 亚洲| 亚洲乱精品中文字字幕| 国产精品日韩av一区二区三区| 久久天天躁狠狠躁夜夜avapp| 国产思思99re99在线观看| 黄色三级视频中文字幕| 国产亚洲精品品视频在线| 97高清国语自产拍| 国产精品久久无码不卡黑寡妇| 中文字幕人成乱码中文| 国产精品亚洲精品日韩已方| 人妻少妇看a偷人无码精品| 99久久99久久精品免观看| 国产在线观看黄| 亚洲中文高清乱码av中文| 欧美人与善在线com| 99精品视频在线观看免费 | 亚洲天堂av在线一区| 久久人妻少妇嫩草av| 少妇厨房愉情理伦片免费 | 亚洲av毛片在线播放| 精品av熟女一区二区偷窥海滩| 青青青国产精品一区二区| 亚洲一区二区三区在线观看蜜桃| 国产偷国产偷亚洲综合av| 久久中文精品无码中文字幕下载| 国产妇女乱一性一交| 中文字日产幕码三区做法| 鲁丝片一区二区三区免费| 久久88综合| 国产美女三级视频网站|