国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于用戶偏好矩陣填充的改進(jìn)混合推薦算法

2020-11-03 01:00鄭小楠譚欽紅劉武啟
計算機(jī)工程與設(shè)計 2020年10期
關(guān)鍵詞:物品權(quán)重矩陣

鄭小楠,譚欽紅,馬 浩,劉武啟

(1.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065;2.重慶郵電大學(xué) 信號與信息處理重慶市重點實驗室,重慶 400065)

0 引 言

協(xié)同過濾推薦算法(collaborative filtering recommendation algorithm,CF)作為推薦算法中應(yīng)用最普遍的算法之一,被廣泛應(yīng)用于推薦系統(tǒng)中[1]。但是其自身的數(shù)據(jù)稀疏性[2]、相似度計算不合理等問題都導(dǎo)致了算法推薦質(zhì)量的嚴(yán)重下降。

針對數(shù)據(jù)稀疏問題,目前大多數(shù)研究采用的是利用評分均值、眾數(shù)或者中位數(shù)等進(jìn)行填充。這些同等填充方法忽略了用戶偏好和物品差異,缺乏一定的可靠性。文獻(xiàn)[3,4]通過研究用戶對物品的偏好程度和物品相似度對評分缺失項進(jìn)行了填充。文獻(xiàn)[5]通過計算用戶的興趣得分進(jìn)行矩陣填充,以上方法都以不同的方式降低了數(shù)據(jù)稀疏率,但未充分考慮用戶偏好和物品屬性之間的內(nèi)在聯(lián)系。

針對相似度問題,文獻(xiàn)[6]提出了衡量物品屬性的相似度計算方法,文獻(xiàn)[7]提出一種基于評分和結(jié)構(gòu)相似度計算物品相似度的方法。文獻(xiàn)[8-10]也都針對相似度計算提出了不同改進(jìn)辦法。以上方法均未考慮不同目標(biāo)用戶的偏好。針對以上問題,本文提出了一種改進(jìn)算法,該算法考慮了用戶偏好的權(quán)重。根據(jù)目標(biāo)用戶的不同,改進(jìn)物品相似度的計算;最后結(jié)合改進(jìn)的填充算法和相似度計算公式得到基于用戶偏好矩陣填充的改進(jìn)混合推薦算法。該算法不僅大大提高了推薦的準(zhǔn)確性,而且還滿足了用戶的個性化需求。

1 傳統(tǒng)的協(xié)同過濾推薦算法

首先定義用戶集合U={U1,U2,U3,…,Um},物品集合I={I1,I2,I3,…,In},用戶評分矩陣Rm×n,符號相關(guān)概念定義見表1。其中Rui∈[1,5],當(dāng)Rui=0時表示用戶沒有評價該物品。傳統(tǒng)的協(xié)同過濾推薦算法步驟如下:

步驟1 根據(jù)用戶評級數(shù)據(jù)構(gòu)建用戶物品評分矩陣如式(1)所示

(1)

表1 本節(jié)公式符號含義

步驟2 根據(jù)步驟1構(gòu)建的評分矩陣,計算用戶或者物品間的相似度,獲取用戶或者物品相似度矩陣。用戶相似度計算如式(2)所示,其相似度矩陣為m×m的矩陣,定義為Su,計算結(jié)果如式(3)所示。物品相似度計算如式(4)所示,其相似度矩陣為n×n的矩陣,定義為SI,計算結(jié)果顯示在式(5)中,公式相關(guān)概念的定義顯示在表1中

(2)

(3)

(4)

(5)

步驟3 對步驟2獲取的用戶或者物品相似度矩陣進(jìn)行排序,得到目標(biāo)用戶或物品的近鄰集合Uk或In。

步驟4 產(chǎn)生推薦集合。如果采用基于用戶的推薦,則可以根據(jù)用戶a的近鄰集合Uk獲得尚未評級物品i的用戶a對i的預(yù)測評級分?jǐn)?shù)Pa,j,如式(6)所示

(6)

類似地,如果采用基于物品的推薦,則根據(jù)用戶的評分物品計算的推薦集合In可以獲得用戶a對沒有評分的物品i的預(yù)測評級分?jǐn)?shù)Pa,i,如式(7)所示

(7)

最后根據(jù)從大到小的預(yù)測分?jǐn)?shù),獲取目標(biāo)用戶a的推薦集合。

2 本文算法

2.1 融合用戶偏好的矩陣填充方法

不同用戶對不同物品屬性的偏好不同,我們稱之為用戶偏好。不同物品具有不同的屬性,且每個屬性對于區(qū)別該物品與其它物品的貢獻(xiàn)值不同,我們稱之為屬性權(quán)重。文獻(xiàn)[5]提出了融合用戶興趣評分的填充方法考慮了物品之間差異性,但未衡量不同用戶的物品屬性偏好權(quán)重。針對以上矩陣填充的缺陷,本文提出了一種基于用戶偏好和屬性權(quán)重的矩陣填充算法。該算法考慮了用戶對物品屬性的偏好,使填充的數(shù)據(jù)更可靠,并獲得更好的推薦。

不同的物品具有不同的屬性,每個屬性具有不同的權(quán)重值。用戶對不同物品的評分差異可以反映用戶對不同物品屬性的偏好。當(dāng)填充矩陣時,結(jié)合評分?jǐn)?shù)據(jù),分析用戶對物品屬性的偏好,并計算用戶的偏好權(quán)重和屬性評分均值。然后利用偏好權(quán)重和屬性評分均值進(jìn)行計算,計算結(jié)果用于矩陣填充,使填充值具有更好的推薦效果。

2.1.1 建立用戶偏好矩陣

本節(jié)中采用TF-IDF(term frequency-inverse document frequency)的思想,結(jié)合用戶u對電影I的評分Ru,i進(jìn)行計算,計算結(jié)果代表用戶的物品屬性偏好權(quán)重。TFut在本文的含義是,物品屬性t在用戶u的已評分物品集合中出現(xiàn)的次數(shù)。TFut越大,表示該用戶u對物品屬性t的喜好越大,越能用該物品屬性代表用戶的喜好。IDF(t)在本文的含義是,物品屬性t在整個物品集合中出現(xiàn)的次數(shù)。IDF(t)越大,表示物品屬性t對區(qū)別不同用戶喜好的貢獻(xiàn)越少。因此本文使用下面的式(8)定義了用戶u對物品屬性t的偏好,相關(guān)公式符號含義見表2。

表2 公式含義

P(u,t)=TFut×IDF(t)

(8)

(9)

(10)

用戶對物品的評級代表了用戶對物品屬性的主觀偏好。在式(8)~式(10)中,如果物品屬性t在用戶已評分物品中經(jīng)常出現(xiàn),并且TFut值比較大,這意味著用戶對物品屬性t具有高度偏好,并且用戶可能更喜歡具有屬性t的物品。如果用戶評價了很多包含某一相同元素的物品,但是TFut值比較小,這就表示用戶對屬性t比較喜好,但是很難獲取到具有物品屬性t的物品。即推薦具有物品屬性t的物品給用戶更貼近用戶的需求。IDF(t)顯示了物品屬性t在整個數(shù)據(jù)集中的流行度。用它對用戶偏好進(jìn)行加權(quán)可以保證實驗結(jié)果不會被流行元素影響。

最后對式(8)~式(10)進(jìn)行歸一化處理,使

(11)

歸一化處理后wu,t∈(0,1)。對于用戶u,它的偏好向量為wu(wu,1,wu,2,wu,3,…,wu,m)。同理可得用戶集中所有用戶的偏好向量,進(jìn)而求出用戶的偏好矩陣P(表3)。

表3 用戶偏好矩陣

由此計算出了用戶對特定物品屬性的偏好權(quán)重。

2.1.2 計算物品屬性評分

結(jié)合用戶評分?jǐn)?shù)據(jù)和物品屬性信息可以構(gòu)建評分矩陣(表4)和物品屬性矩陣(表5)。依據(jù)用戶的評分?jǐn)?shù)據(jù)和物品屬性,能夠得到用戶對具體物品屬性的評級。

表4 用戶-物品評分矩陣

表5 物品屬性矩陣

表5中的t=1表示該屬性包含在該項中,并且t=0表示該屬性未包括在該項中。計算物品屬性的用戶評分,如式(12)所示

(12)

最后根據(jù)計算式(12)的計算結(jié)果得到用戶-物品屬性評分矩陣(表6)。

表6 用戶-物品屬性評分矩陣

2.1.3 基于用戶偏好的矩陣填充

根據(jù)表3獲取的用戶偏好矩陣和表6獲取的用戶物品屬性評分矩陣,填補用戶評分缺失項。填補用戶的未評級物品時需要考慮兩個方面:

(1)未評級物品中包括的所有物品屬性都包含在用戶已評分物品集的所有物品屬性中。在該情況下,采用式(13)計算填充值

(13)

(2)未評級物品中的物品屬性未包含在用戶的評級物品集中。在該情況下,為了避免不準(zhǔn)確的填充值影響后續(xù)評分的準(zhǔn)確度,不填補該物品。

通過本節(jié)提出的算法,填補用戶未評分的物品可以很好地緩解評分?jǐn)?shù)據(jù)的稀疏性。最后在實驗部分對本節(jié)提出的填充算法與目前研究中常用的幾種填充算法進(jìn)行對比。

2.2 考慮目標(biāo)用戶的相似度計算方法

傳統(tǒng)的CF算法中,相似度的計算沒有考慮目標(biāo)用戶不同。簡而言之,在進(jìn)行相似度計算時,兩個物品之間的共同評分用戶的權(quán)重是一樣的,目標(biāo)物品的近鄰對所有用戶都是一樣的。然而合理的假設(shè)是,當(dāng)我們搜尋目標(biāo)物品近鄰時,應(yīng)該考慮對目標(biāo)物品和另一物品都評過分的用戶間的相似度,為每個目標(biāo)物品選擇不同的近鄰。另外,傳統(tǒng)的計算方法也未考慮用戶的偏好差異。因此本文提出一種考慮用戶的偏好差異的相似度算法。該算法從兩個方面改進(jìn)了相似度計算公式:用戶偏好和鄰居選擇??紤]用戶偏好,根據(jù)目標(biāo)用戶的不同,為每個目標(biāo)項選擇不同的近鄰集合,使近鄰選擇更加合理,提高推薦的精度。

從式(3)可知,當(dāng)計算兩個物品之間的相似性時,首先需要尋找對這兩個物品都評過分的用戶集合。然后根據(jù)用戶集合中的用戶的評分偏差來計算兩個物品間的相似度。對于任何用戶來說,物品之間的相似性是相同的,這顯然是不合理的。因此,本文中相似度算法改進(jìn)的第一點是將用戶相似度引入到物品相似度的計算中,并在計算物品之間的相似度時,考慮目標(biāo)用戶與已對兩個物品進(jìn)行評分的用戶之間的相似性。然后對用戶相似度的計算要考慮用戶偏好的差異。因此本文對相似度算法改進(jìn)的第二點是采用表3的用戶偏好矩陣,考慮用戶之間的偏好差異來計算用戶之間的相似性。最后,本文采用的用戶相似度的計算如下面的式(14)所示,考慮用戶偏好的物品相似度的計算如式(15)所示。其中,公式中的符號含義見表7。

表7 公式含義

(14)

(15)

2.3 基于用戶偏好和屬性權(quán)重的改進(jìn)混合推薦算法

根據(jù)用戶對物品屬性的偏好權(quán)重填充矩陣,然后改進(jìn)相似度計算公式。為不同的目標(biāo)用戶和不同的目標(biāo)物品找到更合適的鄰居集,然后根據(jù)鄰居集計算物品評分預(yù)測值。最后,提出了一種基于用戶偏好和矩陣填充的改進(jìn)混合推薦算法。

算法:基于用戶偏好矩陣填充的改進(jìn)混合推薦算法

輸入:用戶評分?jǐn)?shù)據(jù)、物品屬性信息、鄰居數(shù)目K

輸出:目標(biāo)用戶的預(yù)測評分

具體的步驟如下:

(1)計算用戶偏好和屬性評分均值;

(2)根據(jù)(1)中得到的矩陣,采用式(13)的計算結(jié)果填充矩陣;

(3)根據(jù)(1)中求解的偏好權(quán)重計算不同用戶間的相似度;

(4)根據(jù)(3)計算的結(jié)果,考慮目標(biāo)用戶的差異,使用式(15)計算物品之間的相似度;

(5)根據(jù)步驟(4)得到的對于不用目標(biāo)用戶的物品相似度,采用如式(16)獲取用戶沒有評分物品的預(yù)測值。最后,選擇預(yù)測值中得分最高的前N項作為目標(biāo)用戶的推薦集。其符號含義見表8

(16)

表8 式(16)符號含義

3 實驗與分析

3.1 實驗準(zhǔn)備

本文的所有實驗和算法都是通過MATLAB和Python實現(xiàn)。實驗運行PC的操作系統(tǒng)為Windows10,處理器為Intel Core i5-4200U CPU,內(nèi)存為8 GB。

本文采用的實驗數(shù)據(jù)是Movielens100k數(shù)據(jù)集,該數(shù)據(jù)集是推薦算法研究中的常用數(shù)據(jù)集[11]。為了更好地對本文所提出的算法進(jìn)行實驗對比和分析,選擇它作為實驗數(shù)據(jù)集。該數(shù)據(jù)集有943個用戶對1682部電影的100 000條評分?jǐn)?shù)據(jù)[11],除此之外還有用戶的基本信息和物品的屬性信息等。

3.2 評估指標(biāo)

為了評估改進(jìn)的推薦算法的準(zhǔn)確度,本文選擇平均絕對誤差(mean absolute error,MAE)作為評價標(biāo)準(zhǔn)。MAE用來計算物品的預(yù)測值和真實值之間的差異,MAE值越小,說明預(yù)測值的準(zhǔn)確度越高,其計算公式如式(17)所示

(17)

其中,n代表預(yù)測評分的個數(shù)。

3.3 結(jié)果分析

為了保證結(jié)果的準(zhǔn)確性和可行性,本文將數(shù)據(jù)集隨機(jī)分成兩部分,80%的數(shù)據(jù)用于訓(xùn)練,20%的數(shù)據(jù)用于測試。Movielens數(shù)據(jù)集由5組隨機(jī)分割的訓(xùn)練集和測試集組成,這些訓(xùn)練集和測試集在提供的5對數(shù)據(jù)集上執(zhí)行。每個實驗取5次實驗結(jié)果的平均值進(jìn)行分析。

實驗1:測試本文提出的缺失項填充算法的有效性。

通過從訓(xùn)練數(shù)據(jù)中隨機(jī)選出一些已評分電影作為評分缺失項,然后分別采用用戶評分均值填充法(URA),物品評分均值填充法(IRA),文獻(xiàn)[5]提出的融合用戶興趣評分填充法(UIR)和本文的基于用戶偏好的矩陣填充法(UPR)對缺失項進(jìn)行填充,最后,計算包含不同用戶的數(shù)據(jù)集下的MAE值,實驗結(jié)果如圖1所示。

圖1 常用填充算法的MAE比較

從圖1能夠看出,伴隨K值的變化,4種算法的MAE都剛開始逐步下降,然后再慢慢上升。這是因為近鄰個數(shù)的選取需要在一個合適的范圍內(nèi),過大過小都影響推薦精度。即便如此,采取本文的UPR算法填充評分缺失項的MAE值在包含不同用戶數(shù)的數(shù)據(jù)集中都比其它3種填充方法小,準(zhǔn)確度至少提升了4.3%。說明在填補用戶評級缺失項時考慮用戶的偏好權(quán)重可以獲得更好的推薦。

實驗2:檢測改進(jìn)相似度計算的有效性。

為了測試本文改進(jìn)的相似度計算的有效性,本文將針對以下4種情形進(jìn)行對比:

(1)計算傳統(tǒng)的CF算法的MAE值;

(2)在傳統(tǒng)CF算法上采用本文改進(jìn)的相似度計算,然后再根據(jù)推薦結(jié)果計算MAE值(CF_S);

(3)根據(jù)本文提出的填充算法采取傳統(tǒng)的Pearson相似度計算方法,根據(jù)推薦結(jié)果計算MAE值(UPR);

(4)根據(jù)本文提出的矩陣填充算法采用的本文提出的相似度計算方法(UPR_S)。

然后將近鄰數(shù)分別設(shè)置為5、10、20、30、40、50、60、70、80、90進(jìn)行實驗,最后根據(jù)推薦結(jié)果計算MAE值,實驗結(jié)果如圖2所示。

圖2 改進(jìn)相似度算法性能比較

圖2的實驗結(jié)果表明了本文提出的相似度計算方法的可行性。不管是在常規(guī)的CF算法上還是在本文提出的填充算法上使用改進(jìn)的相似度計算方法都比使用傳統(tǒng)的相似度計算取得更低的MAE值。在傳統(tǒng)算法中引入改進(jìn)的相似度計算方法,性能提升了2.7%~3.2%,在本文填充算法的基礎(chǔ)上提升了2%。說明了本文提出的改進(jìn)相似度計算方法的有效性。

實驗3:測試本文最終提出的算法的有效性

將本文提出的考慮用戶對屬性的偏好權(quán)重的改進(jìn)混合推薦算法(IHRUP)和傳統(tǒng)的協(xié)同過濾推薦算法(UBCF)、文獻(xiàn)[3]提出的基于評分矩陣填充和用戶興趣的協(xié)同過濾推薦算法(PICF)、文獻(xiàn)[5]提出的基于用戶興趣評分填充的改進(jìn)混合推薦算法(IHRIRF)分別在近鄰數(shù)設(shè)置為5、10、20、30、40、50、60、70、80、90時進(jìn)行實驗對比,實驗結(jié)果如圖3所示。

圖3 4種算法在不同數(shù)量的用戶集下的MAE比較

從圖3可以看到,隨著K值的增加,上述4種算法的MAE值開始下降并最終接近穩(wěn)定值。對于不同的近鄰個數(shù),本文所提出的算法IHRUP均優(yōu)于UBCF、PICF和IHRIRF算法,相較于UBCF算法,推薦性能提升了12%,相較于PICF算法,推薦性能提升了5.36%,相較于IHRIRF算法,推薦性能提升了0.8%,驗證該算法是有效的,可以進(jìn)一步降低 MAE值,有效提高推薦的準(zhǔn)確性。

4 結(jié)束語

本文針對現(xiàn)有的填充算法中未充分考慮用戶偏好和物品屬性內(nèi)在關(guān)聯(lián)的問題以及相似度計算中存在的不合理之處提出了一種改進(jìn)算法。該算法依據(jù)對用戶評分和物品屬性的分析,求解出用戶的偏好權(quán)重和屬性評分均值,并據(jù)此采用改進(jìn)的填充算法填補缺失項。同時在相似度計算中,通過考慮目標(biāo)用戶的差異來改進(jìn)計算公式。最后通過實驗與其它CF推薦算法進(jìn)行比較,結(jié)果表明本文改進(jìn)的算法可以有效改善評分?jǐn)?shù)據(jù)稀疏問題,充分考慮了用戶的偏好,能滿足不同用戶的喜好。

猜你喜歡
物品權(quán)重矩陣
稱物品
“雙十一”,你搶到了想要的物品嗎?
權(quán)重常思“浮名輕”
誰動了凡·高的物品
為黨督政勤履職 代民行權(quán)重?fù)?dān)當(dāng)
初等行變換與初等列變換并用求逆矩陣
基于局部權(quán)重k-近質(zhì)心近鄰算法
矩陣
矩陣
矩陣
木兰县| 吕梁市| 宁德市| 濮阳县| 北京市| 沙洋县| 房产| 诏安县| 怀仁县| 仪陇县| 湖北省| 拜城县| 鸡东县| 铅山县| 新密市| 新津县| 通海县| 南宫市| 中西区| 大港区| 黑山县| 桃源县| 讷河市| 旬阳县| 安岳县| 蓬莱市| 龙井市| 肃南| 合川市| 磴口县| 布尔津县| 苗栗市| 泗水县| 伊宁市| 民县| 陇川县| 正镶白旗| 中山市| 渑池县| 南昌市| 阜宁县|